El Device Identifier Composition Engine (DICE) es una función de seguridad de Android que proporciona una certificación sólida y mejora la integridad del dispositivo, ya que crea una identidad criptográfica única para cada dispositivo. DICE es especialmente útil para crear identidades de dispositivos que se pueden usar en situaciones que requieren una prueba de identidad sólida y comunicaciones seguras.
Aprovisionamiento de claves remoto (RKP)
El uso de DICE para el aprovisionamiento de claves remoto tiene varios beneficios clave.
Minimización de la superficie de ataque
DICE mejora la RKP porque basa la raíz de confianza en la base de procesamiento confiable (TCB) más pequeña disponible en el dispositivo, por lo general, el chip en sí, en lugar de dentro del entorno de ejecución confiable (TEE). Esto reduce en gran medida la superficie de ataque y minimiza el riesgo de una vulneración permanente de la RKP.
Recuperación de compromisos de TEE
DICE proporciona un mecanismo para recuperar la confianza en los dispositivos, incluso si hay vulnerabilidades en el TEE o el bootloader que podrían afectar la validez de las certificaciones de claves generadas por KeyMint.
Históricamente, las vulnerabilidades en el entorno de ejecución confiable (TEE) o el bootloader provocaron la revocación total de las claves de certificación para todos los dispositivos afectados, sin posibilidad de recuperar la confianza, incluso si se aplicaban parches a las vulnerabilidades. Esto se debía a que el TEE realizaba una verificación remota de la imagen de Android que se cargaba a través del inicio verificado de Android, lo que imposibilitaba demostrar a una parte remota que se habían aplicado los parches. DICE aborda este problema habilitando la verificación remota del estado actual del firmware, incluso fuera de Android, lo que permite que los dispositivos afectados recuperen la confianza.
Autenticación mutua de entornos aislados
Cada dominio de aplicación en el que finaliza el proceso de DICE recibe una identidad en forma de una clave con una cadena de certificados que se extiende hasta la raíz de confianza compartida que deriva la ROM. El proceso de derivación de DICE se separa en diferentes ramas a medida que divergen las diferentes rutas de carga, formando un árbol de certificados que comparten la misma raíz y crean una infraestructura de clave pública (PKI) en el dispositivo.
Esta PKI permite que los componentes en enclaves seguros separados se autentiquen mutuamente. Un ejemplo concreto es Secretkeeper, una capa de abstracción de hardware (HAL) que permite que las máquinas virtuales con privilegios (pVM) se comuniquen con el TEE para recibir un secreto estable que se puede usar para almacenar datos persistentes de forma segura.