L'APK Signature Scheme v3 è stato individuato nel progetto Android Open Source e sembra che supporti la rotazione delle chiavi.
Se sei uno sviluppatore o hai familiarità con la decompilazione, la modifica e/o l'installazione di file APK modificati, probabilmente hai familiarità con le firme delle applicazioni. Per dirla semplicemente, Android impone che un'app dovere essere firmato con la stessa chiave affinché il sistema permetta l'aggiornamento dell'app in questione. Android lo verifica controllando la firma dell'APK.
Firme APK sono una misura di sicurezza basilare in Android, di cui abbiamo parlato in precedenza. Fondamentalmente, tutte le firme sono univoche per un determinato sviluppatore o gruppo di sviluppatori, quindi se la firma/il certificato in un APK non è valido o non corrisponde a quello dell'app originale, l'installazione fallirà, impedendo così l'installazione di file APK manomessi o falsi sul tuo Android dispositivo. Anche le chiavi della firma devono essere conservate in modo sicuro dallo sviluppatore poiché sono fondamentali per verificare ed, eventualmente, inviare un aggiornamento dell'app. Fortunatamente lo schema di firma per gli APK sta ricevendo un'altra revisione, la v3, che sembra aggiungere una funzionalità utile pur mantenendo elevati standard di sicurezza.
Schema di firma APK v1 e v2
Non è passato molto tempo dall'attuale versione dello schema di firma APK, v2, è stato rilasciato per gli sviluppatori. Dopotutto, ci è stato presentato a malapena con il lancio di Android 7.0 Nougat, alla fine del 2016. L'utilizzo dello schema di firma v2 nelle app Android 7.0+ è stato fortemente incoraggiato poiché ha introdotto una serie di patch essenziali e miglioramenti alla sicurezza: mentre v1 ha firmato solo il JAR, v2 adotta ulteriori misure per proteggere l'integrità del tutto file. Gli schemi di firma, tuttavia, non sono retrocompatibili e Android Marshmallow e versioni precedenti richiedono firme v1 per le app.
A meno che non ti rivolgi specificamente agli utenti di Nougat o versioni successive, lo scenario ideale sarebbe utilizzare entrambi gli schemi di firma fianco a fianco, firmando prima con v1 e poi dimettendosi con v2. In questo modo, Nougat e versioni successive riconosceranno la firma v2, mentre Marshmallow e versioni successive riconosceranno la firma v1.
L'utilizzo solo della versione v1, tuttavia, è fortemente sconsigliato a causa di una serie di vulnerabilità e altri problemi di sicurezza, il più notevole dei quali è la vulnerabilità di Giano, che consente agli aggressori di attaccare e modificare direttamente gli APK senza intaccare le firme. Le app popolari con aggiornamenti poco frequenti come Instagram o Snapchat sono firmate solo con firme v1, il che significa che sono vulnerabili a questi problemi.
Schema di firma APK v3
La caratteristica principale della v3, pensata per essere una revisione della v2, sarà supporto per la rotazione delle chiavi. IL Schema di firma v3 introduce l'APK Signer Lineage, che, secondo uno dei commit, "contiene una cronologia dei certificati firmati con ciascun antenato che attestano la validità del suo discendente. Ogni discendente aggiuntivo rappresenta una nuova identità che può essere utilizzata per firmare un APK. In questo modo, il lignaggio contiene una prova di rotazione attraverso la quale l'APK che lo contiene può dimostrare agli altri parti, la sua capacità di essere considerato attendibile con il suo certificato di firma attuale, come se fosse firmato da uno dei suoi certificati più vecchi quelli."
La rotazione delle chiavi è un'ottima funzionalità per gli sviluppatori in diversi modi. Per cominciare, questo può essere utile per gli sviluppatori di team che lavorano su una singola app, in modo che gli sviluppatori non debbano condividere le proprie chiavi di firma con il team. Poiché l'app necessita della stessa identica firma per l'aggiornamento, tutte le app attualmente devono essere compilate dallo stesso sviluppatore o da un gruppo di sviluppatori sviluppatori che lavorano con la stessa chiave, diminuendo la sicurezza (ci sono più possibilità che la chiave venga rubata) e rallentando lo sviluppo.
Inoltre, può essere utile anche nel caso in cui uno sviluppatore abbia la chiave di firma rubata/persa, which normalmente significherebbe che l'app dovrebbe essere ricaricata sul Play Store con un pacchetto diverso nome. Questo non è affatto un caso insolito, dato che molto tempo fa anche Google avrebbe perso la chiave di firma dell'app Google Authenticator, cosa che ha portato a ripubblicarla con un nome di pacchetto diverso. Da allora Google ha fornito i mezzi per archiviare in modo sicuro le chiavi di firma nel cloud Firma dell'app Google Play, ma la rotazione delle chiavi ti consentirebbe di continuare ad aggiornare la tua app in caso di ipotetico errore.
Quando verrà lanciato?
Anche se potresti essere ansioso di provarlo per maggiore comodità, lo schema di firma v3 è stato avvistato fluttuare nell'AOSP Gerrit Code Review e i commit stessi non sono stati uniti nel ramo principale in questo momento, quindi non è pronto solo Ancora. Dovremmo aspettarci che lo schema di firma v3 arrivi nelle mani degli sviluppatori con l'imminente rilascio di Android P se la precedente versione v2 con Android Nougat ci dice qualcosa.
Dovremmo anche notare che la rotazione dei tasti non è, molto probabilmente, l'unica differenza rispetto alla v2. Lo schema di firma APK v3 è ancora in fase di elaborazione, quindi vedremo i miglioramenti effettivi dello schema di firma v3 quando verrà pubblicata la documentazione completa in futuro.