TPM の PCR と構成証明
TPM(Trusted Platform Module)に関する記述として,適切なものはどれか。
- アCPU 内に OS からも隔離された実行環境を作り出し,アプリケーションのコードとデータをその中で実行して保護する。
- イPCR に記録された値は OS が任意の値を直接書き込んで更新できるので,起動時の測定結果を後から修正できる。
- ウ大容量の暗号化ストレージを内蔵しており,ディスク全体のデータを TPM の内部に格納して保護する。
- エ起動の各段階で次に実行するファームウェアなどのハッシュ値を PCR に拡張(Extend)して記録し,TPM の鍵で署名した PCR の値を検証者に提示して,プラットフォームの完全性を確認できるようにする。
正解と解説を見る
正解 エ
この問題の基礎知識
- TPM は,鍵の生成・保管,暗号処理,乱数生成などを行うセキュリティチップ(モジュール)であり,内部の記憶領域は鍵や少量のデータを保持できる程度である。
- PCR は測定値を記録するレジスタで,現在の値と新しい測定値を連結したもののハッシュ値で置き換える Extend 操作によってだけ更新され,任意の値を直接書き込めない。
- 測定ブートは起動する各コンポーネントのダイジェストを PCR に記録する仕組みであり,リモートアテステーションは TPM の鍵で署名した PCR の値を検証者に示して,プラットフォームの完全性を確認させる仕組みである。
- Intel SGX や Arm TrustZone などの TEE は,CPU 内に隔離された実行環境を作ってコードを実行するものであり,暗号処理用のモジュールである TPM とは異なる。
アCPU 内に OS からも隔離された実行環境を作り出し,アプリケーションのコードとデータをその中で実行して保護する。
CPU 内に隔離された実行環境を作り,アプリケーションのコードを実行するのは Intel SGX や Arm TrustZone などの TEE(Trusted Execution Environment)の説明である。TPM は独立した暗号処理用のモジュールである。
イPCR に記録された値は OS が任意の値を直接書き込んで更新できるので,起動時の測定結果を後から修正できる。
PCR は,現在の値と新たな測定値を連結したもののハッシュ値で置き換える Extend 操作によってだけ更新される。任意の値を直接書き込めないので,記録された起動時の測定結果を改ざんすることは困難である。
ウ大容量の暗号化ストレージを内蔵しており,ディスク全体のデータを TPM の内部に格納して保護する。
TPM の内部記憶領域は鍵や少量のデータを保持できる程度の容量しかない。ディスク暗号化では,データの暗号化に用いる鍵を TPM で保護し,データ自体はディスク上に暗号化して保存する。
エ起動の各段階で次に実行するファームウェアなどのハッシュ値を PCR に拡張(Extend)して記録し,TPM の鍵で署名した PCR の値を検証者に提示して,プラットフォームの完全性を確認できるようにする。正解
測定ブートでは,各段階のコンポーネントのダイジェストを PCR に Extend して記録する。リモートアテステーションでは,TPM 内の鍵で署名した PCR の値(Quote)と測定ログを検証者が確認し,期待どおりのファームウェアが起動したかを判断する。
検証用の出典出典照合済み
NIST IR 8320 Hardware-Enabled Security: Enabling a Layered Approach to Platform Security for Cloud and Edge Computing Use Cases / RFC 9683 Remote Integrity Verification of Network Devices Containing Trusted Platform Modules / NIST SP 800-164 (Draft) Guidelines on Hardware-Rooted Security in Mobile Devices照合の根拠(6 件)
- エ(正解): ファームウェアのダイジェストを TPM の PCR に Extend して記録する
Each firmware module is measured by generating a digest, which is then extended to a TPM platform configuration register (PCR).
NIST IR 8320 · Section 3.1 Hardware Security Module (HSM)(新しいタブで開きます) - エ(正解): PCR の値は TPM だけが知る鍵で署名された Quote として取り出され,検証者が確認する
It is the hashes in log entries that are extended into PCRs, where the final PCR values can be retrieved in the form of a structure called a Quote, which is signed by an AK known only to the TPM.
RFC 9683 · Section 2.1.1 What Does RIV Attest?(新しいタブで開きます) - イ(誤り): PCR はハッシュの連鎖による Extend だけで更新され,直接の書込みはできない
this interface may allow extensions of these storage locations through a hash chaining method, but disallow direct writes (such as the TPM method for extending Platform Configuration Registers, PCRs).
NIST SP 800-164 (Draft) · Section 3.1.1 Roots of Trust (RoTs)(新しいタブで開きます) - イ(誤り)の解説: Extend は現在の値と新たな測定値を連結したもののハッシュ値で置き換える操作である
IMRnew = H(IMRold||H(BIOScomponent))
NIST SP 800-155 (Draft) · Section 3.2.2.2 BIOS Integrity Measurement Registers(新しいタブで開きます) - ウ(誤り): TPM が保護できるのは鍵やパスワードなどの少量の情報であり,ディスク全体を格納するものではない
A tamper-resistant integrated circuit built into some computer motherboards that can perform cryptographic operations (including key generation) and protect small amounts of sensitive information, such as passwords and cryptographic keys.
NIST CSRC Glossary · trusted platform module(新しいタブで開きます) - ア(誤り): プロセッサが保護する隔離領域でコードを実行するのは TEE(SGX,TrustZone など)である
A trusted execution environment (TEE) is an area or enclave protected by a system processor.
NIST IR 8320 · Section 5 Data Protection and Confidential Computing(新しいタブで開きます)
旧エ(PCR を条件とするシーリング)は読める一次資料で裏付けが取れなかったため,NIST IR 8320 と RFC 9683 で確認できる測定ブートとリモートアテステーションの記述に作り直した(topic も変更)。