Applicazioni di DICE

Device Identifier Compose Engine (DICE) migliora il livello di sicurezza di Android in diversi modi, con un numero maggiore di casi d'uso in fase di sviluppo man mano che l'integrazione di questa architettura si espande.

Provisioning delle chiavi da remoto

Il caso d'uso originale di DICE era basare la radice di attendibilità per il protocollo RKP (Remote Key Provisioning) nel TCB più piccolo disponibile per il chip, la ROM, anziché all'interno del TEE. In questo modo, viene notevolmente ridotta la superficie di attacco per la compromissione permanente dell'RKP. Ancora più importante, offre la possibilità di recuperare la fiducia nei dispositivi dopo 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 modo per recuperare la fiducia anche se le vulnerabilità sono state corrette. Questo perché non era possibile dimostrare a una parte remota che le patch erano state applicate, poiché la verifica remota è stata eseguita dal TEE sull'immagine Android caricata tramite l'Avvio verificato di Android. DICE colma questa lacuna offrendo la possibilità di verificare da remoto lo stato corrente del firmware caricato al di fuori di Android.

Autenticazione reciproca di ambienti isolati

Ogni dominio dell'applicazione in cui termina DICE riceve un'identità sotto forma di chiave con una catena di certificati che si estende fino alla radice di attendibilità condivisa derivata dalla ROM. Poiché il processo di derivazione DICE si ramifica man mano che i percorsi di caricamento si dividono, viene creato un albero di certificati che condividono la stessa radice. Pertanto, durante la procedura DICE viene creata una PKI on-device.

La PKI creata dal processo di derivazione DICE crea un meccanismo per l'autenticazione reciproca dei componenti in enclave sicure separate. Un esempio concreto è SecretKeeper, un HAL attendibile che consente alle pVM di comunicare con il TEE per ricevere un secret stabile, che può essere utilizzato per archiviare in modo sicuro dati permanenti.