La crittografia è il processo di codifica di tutti i dati utente su un dispositivo Android utilizzando chiavi di crittografia simmetriche. Una volta criptato un dispositivo, tutti i dati creati dall'utente vengono criptati automaticamente prima di essere confermati su disco e tutte le letture decriptano automaticamente i dati prima di restituirli al processo di chiamata. La crittografia garantisce che anche se una parte non autorizzata tenta di accedere ai dati, non potrà leggerli.
Android dispone di due metodi per la crittografia dei dispositivi: crittografia basata su file e crittografia del disco intero.
Crittografia basata su file
Android 7.0 e versioni successive supportano la crittografia basata su file. La crittografia basata su file consente di criptare file diversi con chiavi diverse che possono essere sbloccate indipendentemente. I dispositivi che supportano la crittografia basata su file possono supportare anche il boot diretto, che consente ai dispositivi criptati di avviarsi direttamente nella schermata di blocco, consentendo così un accesso rapido a funzionalità importanti del dispositivo come servizi di accessibilità e sveglie.
Con la crittografia basata su file e le API che informano le app della crittografia, le app possono operare in un contesto limitato. Ciò può accadere prima che gli utenti abbiano fornito le proprie credenziali, proteggendo al contempo le informazioni private degli utenti.
Crittografia dei metadati
Android 9 introduce il supporto per la crittografia dei metadati, dove è presente il supporto hardware. Con la crittografia dei metadati, una singola chiave presente al momento dell'avvio cripta i contenuti non criptati da FBE, ad esempio layout di directory, dimensioni dei file, autorizzazioni e tempi di creazione/modifica. Questa chiave è protetta da Keymaster, che a sua volta è protetta da Avvio verificato.
Crittografia completa del disco
Android 5.0 fino ad Android 9 supporta la crittografia completa del disco. La crittografia completa del disco utilizza una singola chiave, protetta con la password del dispositivo dell'utente, per proteggere l'intera partizione userdata di un dispositivo. All'avvio, l'utente deve fornire le proprie credenziali prima che qualsiasi parte del disco sia accessibile.
Sebbene sia un'ottima soluzione per la sicurezza, significa che la maggior parte delle funzionalità di base dello smartphone non è immediatamente disponibile quando gli utenti riavviano il dispositivo. Poiché l'accesso ai dati è protetto dalle credenziali di un singolo utente, funzionalità come le sveglie non potevano funzionare, i servizi di accessibilità non erano disponibili e gli smartphone non potevano ricevere chiamate.