ハードウェアセキュリティの最新動向
TCGが定めたDICE(Device Identifier Composition Engine)の仕組みとして、正しいものはどれか。
- Aすべての機器に同じ秘密の値を入れておき、ファームウェアが更新されて変わっても、製造時と同じ鍵をずっと使い続ける
- B起動のたびにサーバから新しい鍵をネットワークでダウンロードして使い、機器の中には秘密の値を何も持たないようにしておく
- C機器固有の秘密と次の層のファームウェアの測定値から、その層の秘密を導き出し、各層は次へ移る前に自分の秘密を読めなくする
答えと解説を見る
正解:C. 機器固有の秘密と次の層のファームウェアの測定値から、その層の秘密を導き出し、各層は次へ移る前に自分の秘密を読めなくする
DICEでは、電源を入れた直後に動く小さなハードウェアやROMのコードが、機器固有の秘密(UDS)と、最初に動くファームウェアのハッシュ値から、一方向の関数でCDIと呼ぶ秘密を作ります。そのファームウェアは、さらに次の層の測定値を使って次の層のCDIを作り、自分のCDIを消してから制御を渡します。ファームウェアが書き換えられると導き出される秘密も変わるので、改ざんされたファームウェアは正しい鍵を名乗れず、後の層が乗っ取られても前の層の秘密は漏れません。TPMを持たない小さなマイコンでも、少ないハードウェアで機器の識別とアテステーションを実現できます。
- A. 機器ごとの秘密と測定値から導くので、機器ごと、ファームウェアごとに鍵が変わります。
- B. 秘密は機器の中で導き出すもので、サーバから毎回受け取る仕組みではありません。
- C. 正しい。層ごとに測定値で秘密を導き、自分の秘密は次の層から見えなくします。