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