À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Applications de DICE
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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 la RKP présente plusieurs avantages clés.
Minimisation de la surface d'attaque
DICE améliore la RKP en ancrant 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 du TEE ou du 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, Public Key Infrastructure) 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 de manière sécurisée des données persistantes.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Applications of DICE\n\nThe [Device Identifier Composition\nEngine (DICE)](/docs/security/features/dice) is an Android security feature that provides strong attestation and improves\ndevice integrity by creating a unique cryptographic identity for each device. DICE is especially\nuseful for creating device identities that can be used in scenarios requiring strong proof of\nidentity and secure communications.\n\nRemote Key Provisioning (RKP)\n-----------------------------\n\n\nThere are several key benefits that come from using DICE for RKP.\n\n### Minimization of the attack surface\n\n\nDICE enhances RKP by grounding the root of trust in the smallest possible\n[trusted computing base (TCB)](https://en.wikipedia.org/wiki/Trusted_computing_base)\navailable on the device, usually the chip itself, rather than within the Trusted Execution\nEnvironment (TEE). This greatly reduces the attack surface and minimizes the risk of permanent RKP\ncompromise.\n\n### Recovery from TEE compromises\n\n\nDICE provides a mechanism to recover trust in devices even if there are compromises in the TEE or\nbootloader that could affect the validity of the key attestations generated by\n[KeyMint](/docs/security/features/keystore/attestation#attestation-extension).\n\n\nHistorically, vulnerabilities in the\n[TEE](https://en.wikipedia.org/wiki/Trusted_execution_environment)\nor [bootloader](/docs/core/architecture/bootloader) led to\nfull revocation of attestation keys for all affected devices, with no path to recover trust even\nif the vulnerabilities were patched. This was because the TEE performed remote verification over\nthe Android image being loaded through the\n[Android Verified Boot](/docs/security/features/verifiedboot),\nmaking it impossible to prove to a remote party that the patches had been applied. DICE addresses\nthis issue by enabling remote verification of current firmware state, even outside of Android,\nallowing affected devices to recover trust.\n\nMutual authentication of isolated environments\n----------------------------------------------\n\n\nEach application domain that the DICE process terminates in receives an identity in the form of a\nkey with a certificate chain extending back to the shared root of trust derived by the ROM. The\nDICE derivation process separates into different branches as different loading paths diverge,\nforming a tree of certificates that all share the same root and creating an on-device public key\ninfrastructure (PKI).\n\n\nThis PKI enables components in separate secure enclaves to mutually authenticate one another. One\nconcrete example is [Secretkeeper](https://android.googlesource.com/platform/system/secretkeeper/),\na [hardware abstraction layer (HAL)](/docs/core/architecture/hal)\nthat allows privileged virtual machines (pVMs) to communicate with the TEE to receive a stable\nsecret that can be used to securely store persistent data."]]