Funzionalità di sicurezza di Android

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 sugli utenti di Linux per identificare e isolare le risorse delle app. A tale scopo, Android assegna un ID utente (UID) univoco a ogni app Android ed esegue ogni app nel proprio processo. Android utilizza questo UID per configurare una sandbox delle applicazioni 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 dell'utente che possono sbloccare il dispositivo ed eseguire altre attività:

  • Il sottosistema Gatekeeper esegue l'autenticazione tramite sequenza o password del dispositivo in un Trusted Execution Environment (TEE).
  • Il componente Weaver facoltativo esegue l'autenticazione tramite sequenza o password in un elemento sicuro separato.
  • I dispositivi con un sensore di impronte digitali supportano l'uso delle impronte registrate.
  • I dispositivi possono supportare l'autenticazione volti.

Android supporta anche chiavi crittografiche basate su hardware che possono essere utilizzate solo se è avvenuta 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 i sistemi biometrici avanzati possono essere integrati con BiometricPrompt.

Crittografia

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 un soggetto non autorizzato tenta di accedere ai dati, non possa leggerli.

Archivio chiavi

Android offre un keystore basato su hardware che fornisce funzionalità di crittografia 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 è un sistema operativo sicuro che fornisce un TEE per Android. Il sistema operativo Trusty funziona sullo stesso processore del sistema operativo Android, ma è isolato dal resto del sistema sia hardware sia software.

Avvio verificato

L'Avvio verificato è progettato per garantire che tutto il codice eseguito provenga da una fonte attendibile (in genere gli OEM del dispositivo), anziché da un malintenzionato o da dati corrotti. L'Avvio verificato stabilisce una catena di attendibilità completa, che parte da un'autorità di attendibilità radice protetta dall'hardware al bootloader, alla partizione di avvio e ad altre partizioni verificate.