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 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.