A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Aplicativos do DICE
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O Device Identifier Composition
Engine (DICE) é um recurso de segurança do Android que oferece atestado forte e melhora
a integridade do dispositivo criando uma identidade criptográfica exclusiva para cada dispositivo. O DICE é especialmente
útil para criar identidades de dispositivos que podem ser usadas em cenários que exigem uma prova de
identidade forte e comunicações seguras.
Provisionamento de chaves remotas (RKP)
Há vários benefícios importantes que vêm do uso do DICE para RKP.
Minimização da superfície de ataque
O DICE aprimora o RKP fundamentando a raiz de confiança na menor base de computação confiável (TCB, na sigla em inglês)
disponível no dispositivo, geralmente o próprio chip, em vez de dentro do ambiente de execução
confiável (TEE). Isso reduz bastante a superfície de ataque e minimiza o risco de comprometimento permanente do RKP.
Recuperação de comprometimentos do TEE
O DICE oferece um mecanismo para recuperar a confiança em dispositivos, mesmo que haja comprometimentos no TEE ou
no carregador de inicialização que possam afetar a validade dos atestados de chave gerados pelo
KeyMint.
Historicamente, as vulnerabilidades no
TEE
ou no bootloader
levavam à revogação completa das chaves de atestado de todos os dispositivos afetados, sem um caminho para recuperar a confiança, mesmo
se as vulnerabilidades fossem corrigidas. Isso ocorreu porque o TEE realizou a verificação remota sobre
a imagem do Android carregada pela
Inicialização verificada do Android,
o que impossibilitou provar a uma parte remota que os patches foram aplicados. O DICE resolve
esse problema ativando a verificação remota do estado atual do firmware, mesmo fora do Android,
permitindo que os dispositivos afetados recuperem a confiança.
Autenticação mútua de ambientes isolados
Cada domínio de aplicativo em que o processo do DICE é encerrado recebe uma identidade na forma de uma
chave com uma cadeia de certificados que se estende até a raiz de confiança compartilhada derivada pelo ROM. O
processo de derivação do DICE se separa em diferentes ramos à medida que diferentes caminhos de carregamento divergem,
formando uma árvore de certificados que compartilham a mesma raiz e criando uma infraestrutura de chave pública
no dispositivo (PKI).
Essa PKI permite que componentes em enclaves seguros separados se autentiquem mutuamente. Um
exemplo concreto é o Secretkeeper,
uma camada de abstração de hardware (HAL, na sigla em inglês)
que permite que máquinas virtuais privilegiadas (pVMs) se comuniquem com o TEE para receber um segredo
estável que pode ser usado para armazenar dados persistentes com segurança.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]