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 univoco (UID) a ogni app 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 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 della sequenza o della password del dispositivo in un Trusted Execution Environment (TEE).
- Il componente Weaver opzionale esegue l'autenticazione con sequenza o password in un elemento sicuro separato.
- I dispositivi con un sensore di impronte digitali supportano l'utilizzo delle impronte registrate.
- I dispositivi possono supportare l'autenticazione del volto.
Android supporta anche chiavi crittografiche basate sull'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 avanzata può
integrarsi con BiometricPrompt
.
Crittografia
Una volta criptato un dispositivo, tutti i dati creati dall'utente vengono criptati automaticamente prima di essere salvati su disco e tutte le letture decriptano 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 può leggerli.
Archivio chiavi
Android offre un keystore basato sull'hardware che fornisce funzionalità crittografiche in cui il materiale delle chiavi è 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.
Linux con sicurezza avanzata
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 eseguiti con privilegi di root o superutente (funzionalità Linux).
Trusty TEE
Trusty TEE
Trusty è un sistema operativo sicuro che fornisce un TEE per Android. Trusty OS viene eseguito sullo stesso processore del sistema operativo Android, ma è 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 (di solito gli OEM del dispositivo), anziché da un malintenzionato o da dati corrotti. L'Avvio verificato stabilisce una catena di affidabilità completa, a partire da una radice di affidabilità protetta dall'hardware fino al bootloader, alla partizione di avvio e ad altre partizioni verificate.