Utilizza le funzionalità descritte in questa sezione per rendere i dispositivi Android che sviluppi il più sicuri possibile.
Sandbox dell'applicazione
La piattaforma Android sfrutta la protezione basata sull'utente di Linux per identificare e isolare le risorse delle app. A questo scopo, Android assegna un ID utente (UID) univoco a ogni app per Android e la esegue nel proprio processo. Android utilizza questo UID per configurare una sandbox dell'applicazione a livello di kernel.
Firma dell'app
La firma dell'app consente agli sviluppatori di identificare l'autore dell'app e di aggiornarla senza creare interfacce e autorizzazioni complicate. Ogni app che viene eseguita sulla piattaforma Android deve essere firmata dallo sviluppatore.
Autenticazione
Android ha il concetto di autenticatori utente che possono sbloccare il dispositivo ed eseguire altre attività:
- Il sottosistema Gatekeeper esegue l'autenticazione del PIN, della sequenza o della password del dispositivo in un Trusted Execution Environment (TEE).
- Il componente Weaver facoltativo esegue l'autenticazione del PIN, della sequenza o della password del dispositivo in un Secure Element separato o in un TEE.
- I dispositivi con un sensore di impronte digitali supportano l'utilizzo delle impronte digitali registrate.
- I dispositivi possono supportare l'autenticazione volti.
Android supporta anche le chiavi di crittografia hardware che possono essere utilizzate solo se è stata eseguita l'autenticazione dell'utente con uno di questi meccanismi.
Biometria
Android 9 e versioni successive includono una BiometricPrompt
classe
che gli sviluppatori di app possono utilizzare per integrare l'autenticazione biometrica nelle loro
app in modo indipendente dal dispositivo e dalla modalità. Solo la biometria forte può essere integrata con BiometricPrompt.
Crittografia
Una volta crittografato un dispositivo, tutti i dati creati dall'utente vengono crittografati automaticamente prima di essere salvati su disco e tutte le letture decrittografano automaticamente i dati prima di restituirli al processo chiamante. La crittografia garantisce che, anche se una parte non autorizzata tenta di accedere ai dati, non possa leggerli.
Archivio chiavi
Android offre un archivio chiavi con supporto hardware che fornisce funzionalità crittografiche in cui il materiale della chiave è contenuto in un ambiente sicuro. Android Keystore supporta la generazione e l'importazione di chiavi sia simmetriche che asimmetriche, combinate con primitive di crittografia, decrittografia, firma e accordo sulle chiavi.
Security-Enhanced Linux
Nell'ambito del modello di sicurezza di Android, Android utilizza Security-Enhanced Linux (SELinux) per applicare il controllo dell'accesso obbligatorio (MAC) a tutti i processi, anche a quelli in esecuzione con privilegi di root o superutente (funzionalità Linux).
Trusty TEE
Trusty TEE
Trusty è un sistema operativo (OS) sicuro che fornisce un TEE per Android. Il sistema operativo Trusty viene eseguito sullo stesso processore del sistema operativo Android, ma Trusty è isolato dal resto del sistema sia dall'hardware che dal software.
Avvio verificato
L'Avvio verificato è progettato per garantire che tutto il codice eseguito provenga da una fonte attendibile (in genere OEM del dispositivo), anziché da un utente malintenzionato o da una corruzione. L'Avvio verificato stabilisce una catena di attendibilità completa, a partire da una radice di attendibilità protetta dall'hardware fino al bootloader, alla partizione di avvio e ad altre partizioni verificate.