DICE 的应用

设备标识符组合引擎 (DICE) 是一项 Android 安全功能,可为每台设备创建唯一的加密身份,从而提供强大的认证并提高设备完整性。DICE 特别适合用于创建设备标识,这些标识可用于需要严格身份验证和安全通信的场景。

远程密钥配置 (RKP)

使用 DICE 进行远程密钥配置有以下几项主要优势。

尽可能缩小攻击面

DICE 通过将可信根置于设备上可用的最小 可信计算基 (TCB) 来增强 RKP,这些 TCB 通常是芯片本身,而不是可信执行环境 (TEE) 内)。这可以大大减少攻击面,并最大限度地降低 RKP 永久受损的风险。

从 TEE 入侵中恢复

DICE 提供了一种机制,即使 TEE 或引导加载程序遭到入侵(可能会影响 KeyMint 生成的密钥认证的有效性),也能恢复对设备的信任。

过去,可信执行环境 (TEE)引导加载程序中的漏洞会导致所有受影响设备的认证密钥完全失效,即使修补了漏洞,也无法恢复信任。这是因为 TEE 对通过 Android 启动时验证加载的 Android 映像执行了远程验证,因此无法向远程方证明已应用补丁。DICE 通过启用对当前固件状态进行远程验证来解决此问题,即使在 Android 之外,从而允许受影响的设备恢复信任。

隔离环境的相互身份验证

DICE 进程终止的每个应用网域都会以密钥的形式接收一个身份,密钥的证书链会延伸回由 ROM 派生的共享信任根。随着不同的加载路径出现分支,DICE 派生过程会分成不同的分支,形成一个共享相同根的证书树,并创建设备端公钥基础架构 (PKI)。

此 PKI 可让位于单独安全隔区中的组件相互进行身份验证。一个具体示例是 Secretkeeper,这是一种硬件抽象层 (HAL),可让特权虚拟机 (pVM) 与 TEE 通信以接收稳定的 Secret,该 Secret 可用于安全地存储永久性数据。