デバイス識別子構成エンジン(DICE)は Android のセキュリティ機能のことで、デバイスごとに固有の暗号 ID を作成することで強力な構成証明を提供し、デバイスの完全性を改善します。DICE は、強力な ID 証明書と安全な通信を必要とするシナリオで使用されることのあるデバイス ID の作成に特に有用です。
リモートキー プロビジョニング(RKP)
DICE をリモートキー プロビジョニングに使用する主な利点はいくつかあります。
攻撃対象領域の最小化
DICE は、高信頼実行環境(TEE)内ではなく、デバイスで利用可能な最小の信頼できるコンピューティング ベース(TCB)のルート オブ トラスト(通常はチップ自体)に配置することで、RKP を強化します。これにより、攻撃対象領域が大幅に減少し、永続的な RKP の侵害のリスクが最小化します。
TEE 侵害からの復元
DICE は、TEE または KeyMint によって生成されたキー構成証明の有効期間に影響を与えるブートローダーに侵害があった場合でもデバイスの信頼性を復元できるメカニズムを提供します。
これまで、高信頼実行環境(TEE)またはブートローダーに脆弱性があると、影響を受けたすべてのデバイスの証明書鍵は完全に取り消され、脆弱性にパッチを適用しても信頼性を復元することはできませんでした。これは、TEE が Android 確認付きブートを通じて読み込まれる Android イメージに対してリモートで検証を実施していたためで、パッチが適用されたリモート パーティーは証明できないようになっています。DICE では、Android の外部であっても現在のファームウェアの状態をリモートで検証可能にすることでこの問題に対処し、影響を受けたデバイスの信頼性を復元できます。
分離された環境の相互認証
DICE プロセスが終了する各アプリのドメインは、ROM が導出した共有のルート オブ トラストにさかのぼる証明書チェーンを使用した鍵の形式で ID を受け取ります。DICE 導出プロセスは、どれも同じルートを共有する証明書ツリーを形成し、オンデバイスの公開鍵基盤(PKI)を作成して、異なるブランチにそれぞれの読み込みパスとして分岐します。
この PKI により個別の安全なエンクレーブのコンポーネントが相互に認証できるようになります。具体的な例としては、SecretKeeper があります。これは、特権仮想マシン(pVM)が TEE と通信してシークレットを安定して受信できるようにする Hardware Abstraction Layer(HAL)で、SecretKeeper を使用することで永続データを安全に保存できます。