DICE 的应用

设备标识符组合引擎 (DICE) 可通过多种不同的方式改善 Android 的安全状况,随着此架构的集成不断扩大,更多用例正在开发中。

远程密钥配置

DICE 的最初用例是将远程密钥配置 (RKP) 协议的信任根置于芯片可用的最小 TCB(ROM),而不是在 TEE 中。这大大缩小了 RKP 永久遭到入侵的受攻击面。更重要的是,它能够在 TEE 或引导加载程序遭到入侵(这可能会影响 KeyMint 生成的密钥认证的有效性)后恢复对设备的信任。

过去,TEE 或引导加载程序中的漏洞会导致所有受影响设备的认证密钥被完全撤消,即使修复了漏洞,也无法恢复信任。这是因为无法向远程方证明已应用补丁,因为 TEE 会对通过 Android 启动时验证加载的 Android 映像执行远程验证。DICE 通过提供远程验证在 Android 之外加载的固件的当前状态的功能,弥补了这一差距。

隔离环境的双向身份验证

DICE 终止的每个应用域都会收到一个密钥形式的身份,其证书链会延伸回 ROM 派生的共享信任根。由于 DICE 派生过程在加载路径拆分时进行分支,因此这会创建具有相同根的证书树。因此,在 DICE 过程中创建设备端 PKI。

DICE 派生过程创建的公钥基础设施 (PKI) 为单独的安全隔区中的组件创建了一种机制,以便他们相互进行身份验证。一个具体的例子是 SecretKeeper,它是一种可信 HAL,允许 pVM 与 TEE 通信以接收可用于安全存储持久性数据的稳定密钥。