DICE(Device Identifier Composition Engine)とは

だいす

TCG(Trusted Computing Group)が定めた、機器固有の秘密と、起動する各層のファームウェアの測定値から、層ごとの秘密や鍵を一方向の関数で導き出す仕組み。各層は次の層の秘密を作った後、自分の秘密を読めなくしてから制御を渡す。ファームウェアが変わると導き出される鍵も変わるので、改ざんされたファームウェアは正しい鍵を使えない。TPMを持たない小さなマイコンでも、機器の識別とアテステーションを実現できる。

「DICE(Device Identifier Composition Engine)」は、1分野の1問の練習問題に出てきます(ハードウェアセキュリティの最新動向など)。

この用語の分野: ハードウェアセキュリティの最新動向

層ごとに秘密を導き出す

製造時に機器ごとに異なる秘密(UDS:Unique Device Secret)を、ヒューズやPUFなどで用意します。電源を入れると、最初に動く小さなハードウェアやROMのコードが、UDSと、次に動くファームウェアのハッシュ値から、一方向の関数でCDI(Compound Device Identifier)と呼ぶ秘密を作り、UDSを読めないようにしてから制御を渡します。次の層も同じように、自分のCDIと次の層の測定値から次のCDIを作り、自分のCDIを消してから先へ進みます。こうして、各層の秘密は、その層までに起動したすべてのファームウェアの内容に結びつきます。

鍵と証明書

各層は、自分のCDIから署名の鍵の対を決定的に作れます。最初の層から作る機器の識別用の鍵(DeviceID)は、ファームウェアが同じ限り変わらないので、製造時にメーカーが証明書を発行しておけます。その上の層の鍵(Alias鍵など)には、下の層が測定値を含む証明書を発行し、証明書の連鎖で「どの機器が、どのファームウェアで動いているか」を外部に示せます。これがDICEによるアテステーションの基本です。

利点と注意点

必要なハードウェアは、UDSを守る仕組みと一方向の関数を計算する小さな回路やROMのコードだけなので、安価なマイコンにも入れやすいのが利点です。後の層に脆弱性があって乗っ取られても、前の層のCDIやUDSは消されているので漏れません。一方、ファームウェアを更新すると導き出される鍵が変わるので、更新の後に新しい証明書を発行する手順などを設計しておく必要があります。

DICE(Device Identifier Composition Engine)の練習問題に挑戦

TCGが定めたDICE(Device Identifier Composition Engine)の仕組みとして、正しいものはどれか。

  1. Aすべての機器に同じ秘密の値を入れておき、ファームウェアが更新されて変わっても、製造時と同じ鍵をずっと使い続ける
  2. B起動のたびにサーバから新しい鍵をネットワークでダウンロードして使い、機器の中には秘密の値を何も持たないようにしておく
  3. C機器固有の秘密と次の層のファームウェアの測定値から、その層の秘密を導き出し、各層は次へ移る前に自分の秘密を読めなくする
答えと解説を見る

正解:C. 機器固有の秘密と次の層のファームウェアの測定値から、その層の秘密を導き出し、各層は次へ移る前に自分の秘密を読めなくする

DICEでは、電源を入れた直後に動く小さなハードウェアやROMのコードが、機器固有の秘密(UDS)と、最初に動くファームウェアのハッシュ値から、一方向の関数でCDIと呼ぶ秘密を作ります。そのファームウェアは、さらに次の層の測定値を使って次の層のCDIを作り、自分のCDIを消してから制御を渡します。ファームウェアが書き換えられると導き出される秘密も変わるので、改ざんされたファームウェアは正しい鍵を名乗れず、後の層が乗っ取られても前の層の秘密は漏れません。TPMを持たない小さなマイコンでも、少ないハードウェアで機器の識別とアテステーションを実現できます。

よくある質問

DICEとTPMの違いは何ですか?

TPMは鍵の保管や測定値の記録、署名などを行う独立した部品(またはその機能)で、比較的多くの回路を必要とします。DICEは、測定値から鍵を導き出す手順を定めたもので、ごく小さなハードウェアで実現でき、測定の結果が記録ではなく鍵そのものに反映されます。目的は似ていますが、守り方と必要な規模が違います。

ファームウェアを更新すると鍵が変わって困りませんか?

変わることが安全上の利点でもあり、古いファームウェアの鍵は更新の後には使えなくなります。実際の設計では、機器の識別用の鍵は変わらない層から作り、変わる層の鍵には更新のたびに新しい証明書を発行するなど、層によって扱いを分けます。

解説の中の「DICE(Device Identifier Composition Engine)」

「DICE(Device Identifier Composition Engine)」が出てくる問題(1問)

  1. TCGが定めたDICE(Device Identifier Composition Engine)の仕組みとして、正しいものはどれか。

ハードウェアセキュリティの最新動向の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

TPM マイコン(マイクロコントローラ) Arm CCA HBOM(ハードウェア部品表) MTE(メモリタギング拡張) 過渡的実行攻撃 機密コンピューティング シャドウスタック 数論変換 制御フロー完全性

用語集の一覧へ