Le moteur de composition de l'identifiant de l'appareil (DICE) est une fonctionnalité de sécurité Android qui fournit une attestation solide et améliore l'intégrité de l'appareil en créant une identité cryptographique unique pour chaque appareil. DICE est particulièrement utile pour créer des identités d'appareils pouvant être utilisées dans des scénarios nécessitant une preuve d'identité forte et des communications sécurisées.
Provisionnement de clés à distance (RKP)
L'utilisation de DICE pour le provisionnement de clés à distance présente plusieurs avantages clés.
Minimisation de la surface d'attaque
DICE améliore la RKP en plaçant la racine de confiance dans la plus petite base de calcul sécurisée (TCB) disponible sur l'appareil, généralement la puce elle-même, plutôt que dans l'environnement d'exécution sécurisé (TEE). Cela réduit considérablement la surface d'attaque et minimise le risque de compromission permanente du RKP.
Récupération après une compromission du TEE
DICE fournit un mécanisme permettant de restaurer la confiance dans les appareils, même en cas de compromission du TEE ou du bootloader pouvant affecter la validité des attestations de clé générées par KeyMint.
Historiquement, les failles dans l'environnement d'exécution sécurisé (TEE) ou le chargeur de démarrage entraînaient la révocation complète des clés d'attestation pour tous les appareils concernés, sans possibilité de restaurer la confiance, même si les failles étaient corrigées. En effet, le TEE effectuait une validation à distance sur l'image Android chargée via le démarrage validé Android, ce qui rendait impossible de prouver à une partie distante que les correctifs avaient été appliqués. DICE résout ce problème en activant la validation à distance de l'état actuel du micrologiciel, même en dehors d'Android, ce qui permet aux appareils concernés de récupérer la confiance.
Authentification mutuelle des environnements isolés
Chaque domaine d'application dans lequel le processus DICE se termine reçoit une identité sous la forme d'une clé avec une chaîne de certificats remontant à la racine de confiance partagée dérivée de la ROM. Le processus de dérivation DICE se sépare en différentes branches à mesure que les différents chemins de chargement divergent, formant un arbre de certificats qui partagent tous la même racine et créant une infrastructure à clé publique (PKI) sur l'appareil.
Cette PKI permet aux composants d'enclaves sécurisées distinctes de s'authentifier mutuellement. Secretkeeper est un exemple concret de couche d'abstraction matérielle (HAL) qui permet aux machines virtuelles privilégiées (pVM) de communiquer avec le TEE pour recevoir un secret stable pouvant être utilisé pour stocker des données persistantes de manière sécurisée.