Device Identifier Composition Engine(DICE)は、さまざまな方法で Android のセキュリティ ポスチャーを改善しており、このアーキテクチャの統合が拡大するにつれて、さらに多くのユースケースが開発される予定です。
リモートキー プロビジョニング
DICE の元のユースケースは、TEE ではなく、チップで利用可能な最小の TCB(ROM)にリモート キー プロビジョニング(RKP)プロトコルのルート オブ トラストを配置することでした。これにより、RKP の永続的な不正使用に対する攻撃対象領域が大幅に減少します。さらに重要なのは、KeyMint が生成した鍵の構成証明の有効性に影響する可能性がある TEE またはブートローダーの侵害後に、デバイスの信頼を回復できることです。
これまで、TEE またはブートローダーの脆弱性により、影響を受けるすべてのデバイスの構成証明鍵が完全に取り消され、脆弱性にパッチが適用された場合でも信頼を回復する方法がありませんでした。これは、Android の確認付きブートによって読み込まれた Android イメージに対して TEE によってリモート検証が行われたため、パッチが適用されたことをリモート パーティに証明できなかったためです。DICE は、Android の外部で読み込まれたファームウェアの現在の状態をリモートで検証する機能を提供することで、このギャップを埋めています。
分離された環境の相互認証
DICE が終了する各アプリケーション ドメインは、ROM から派生した共有ルート オブ トラストまで遡る証明書チェーンを持つ鍵の形式で ID を受け取ります。DICE の派生プロセスは、読み込みパスの分割に応じて分岐するため、同じルートを共有する証明書のツリーが作成されます。したがって、DICE プロセス中にオンデバイス PKI が作成されます。
DICE の導出プロセスによって作成された PKI は、個別の安全なエンクレーブ内のコンポーネントが相互に認証するためのメカニズムを作成します。その具体的な例が SecretKeeper です。これは、pVM が TEE と通信して安定したシークレットを受信できるようにする、信頼できる HAL です。このシークレットは、永続データを安全に保存するために使用できます。