Applicazioni di DICE

Device Identifier Composition Engine (DICE) è una funzionalità di sicurezza di Android che fornisce un'attestazione avanzata e migliora l'integrità del dispositivo creando un'identità crittografica univoca per ogni dispositivo. DICE è particolarmente utile per creare identità dei dispositivi che possono essere utilizzate in scenari che richiedono una prova dell'identità e comunicazioni sicure.

Provisioning di chiavi da remoto (RKP)

L'utilizzo di DICE per la RKP offre diversi vantaggi chiave.

Minimizzazione della superficie di attacco

DICE migliora la RKP basando la radice della piattaforma di attendibilità sulla Trusted Computing Base (TCB) più piccola possibile disponibile sul dispositivo, in genere il chip stesso, anziché all'interno del Trusted Execution Environment (TEE). In questo modo si riduce notevolmente la superficie di attacco e si riduce al minimo il rischio di compromissione permanente del RKP.

Recupero da compromessi del TEE

DICE fornisce un meccanismo per recuperare la fiducia nei dispositivi anche se sono presenti compromessi nel TEE o nel bootloader che potrebbero influire sulla validità delle attestazioni delle chiavi generate da KeyMint.

In passato, le vulnerabilità nel TEE o nel bootloader hanno portato alla revoca completa delle chiavi di attestazione per tutti i dispositivi interessati, senza alcun percorso per recuperare la fiducia anche se le vulnerabilità sono state corrette. Questo perché il TEE ha eseguito la verifica da remoto sull'immagine Android caricata tramite Android Verified Boot, rendendo impossibile dimostrare a una parte remota che le patch erano state applicate. DICE risolve questo problema attivando la verifica da remoto dello stato corrente del firmware, anche al di fuori di Android, consentendo ai dispositivi interessati di recuperare l'affidabilità.

Autenticazione reciproca di ambienti isolati

Ogni dominio di applicazione in cui termina il processo DICE riceve un'identità sotto forma di chiave con una catena di certificati che si estende fino alla radice di attendibilità condivisa ricavata dalla ROM. Il processo di derivazione di DICE si suddivide in diversi rami man mano che i percorsi di caricamento divergono, formando un albero di certificati che condividono tutti la stessa radice e creando un'infrastruttura a chiave pubblica (PKI) sul dispositivo.

Questa PKI consente ai componenti in enclave sicuri separati di autenticarsi reciprocamente. Un esempio concreto è Secretkeeper, un hardware abstraction layer (HAL) che consente alle macchine virtuali privilegiate (pVM) di comunicare con il TEE per ricevere un segreto stabile che può essere utilizzato per archiviare in modo sicuro i dati permanenti.