O Mecanismo de composição de identificador de dispositivo (DICE) melhora a postura de segurança do Android de várias maneiras, com mais casos de uso em desenvolvimento à medida que a integração dessa arquitetura se expande.
Provisionamento de chaves remoto
O caso de uso original do DICE era fundamentar a raiz de confiança do protocolo de provisionamento de chave remota (RKP, na sigla em inglês) no menor TCB disponível para o chip, a ROM, em vez de dentro do TEE. Isso reduz muito a superfície de ataque para comprometimento permanente do RKP. Mais importante, ele permite recuperar a confiança em dispositivos após comprometimentos no TEE ou no carregador de inicialização que possam afetar a validade das confirmações de chaves geradas pelo KeyMint.
Historicamente, as vulnerabilidades no TEE ou no carregador de inicialização levavam à revogação completa das chaves de atestado para todos os dispositivos afetados, sem um caminho para recuperar a confiança, mesmo que as vulnerabilidades fossem corrigidas. Isso ocorreu porque não foi possível provar para uma parte remota que os patches foram aplicados, já que a verificação remota foi realizada pelo TEE sobre a imagem do Android carregada pela inicialização verificada do Android. O DICE preenche essa lacuna, oferecendo a capacidade de verificar remotamente o estado atual do firmware carregado fora do Android.
Autenticação mútua de ambientes isolados
Cada domínio de aplicativo em que o DICE termina 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. Como o processo de derivação do DICE se ramifica à medida que os caminhos de carregamento são divididos, isso cria uma árvore de certificados que compartilham a mesma raiz. Assim, uma ICP no dispositivo é criada durante o processo de DICE.
A PKI criada pelo processo de derivação do DICE cria um mecanismo para que componentes em enclaves seguros separados se autentiquem mutuamente. Um exemplo concreto disso é o SecretKeeper, um HAL confiável que permite que pVMs se comuniquem com o TEE para receber uma chave secreta estável, que pode ser usada para armazenar dados persistentes com segurança.