TPM(Trusted Platform Module)
1. 概要
A. 定義
暗号鍵の生成・保管、プラットフォーム構成要素の完全性測定、シーリング・リモート検証などを行うハードウェアベースのセキュリティチップ(セキュリティコプロセッサ) であり、TCG(Trusted Computing Group)が標準化した信頼の基点(Root of Trust)デバイスである。現在はTPM 2.0が事実上の標準である。
TPMの核心となる発想は「セキュリティの基点をソフトウェアではなくハードウェアに置く」ことである。OSやウイルス対策ソフトのようなソフトウェアセキュリティは、結局それ自体もメモリ上で実行されるコードであるため、カーネルが乗っ取られたり起動初期段階が改ざんされたりすれば、ともに無力化される。つまり「セキュリティを守るコード自体の完全性を何が保証するのか」という循環問題が残る。TPMは改ざん耐性(tamper-resistant)を持つ独立したチップに秘密鍵と測定値を隔離し、上位のソフトウェアが感染しても基点の信頼だけは維持されるようにする。
B. 登場背景および必要性
ディスク暗号化鍵や証明書を一般のメモリ・ディスクに置くと、メモリダンプやファイル窃取によって鍵が漏洩する。また、ブートローダやカーネルを密かにすり替えるブートキット・ルートキットは、OSが起動する前に常駐するため検知が難しい。TPMは鍵をチップ外に平文で露出させずに使用できるようにし、起動各段階のハッシュを物理的に累積記録して改ざんを事後に証明可能にすることで、この二つの問題を同時に解決する。Windows 11がTPM 2.0を必須要件としたことも、個人PCレベルまでハードウェアの信頼基盤を引き上げようとする流れを示している。
2. 主要機能
flowchart LR
K[鍵生成・保管] --- M[完全性測定<br/>PCR]
M --- S[シーリング Sealing]
S --- A[リモート検証<br/>Attestation]
TPMの機能は個別の部品ではなく、「測定 → シーリング → 証明」へとつながる一つの信頼の連鎖である。以下では各機能がなぜ必要で、どのように噛み合うのかを述べる。
A. 鍵生成・保管 — TPMは内部の乱数生成器で鍵を生成し、秘密鍵をチップ外に平文の形で出さないまま署名・復号にのみ使用する。最上位のルート鍵(SRKなど)はチップから離れず、下位の鍵はこのルート鍵で暗号化(wrapping)されてディスクに保管されるため、ファイルが流出しても当該チップがなければ使用できない。これがソフトウェアキーストアとの根本的な違いである。
B. 完全性測定(PCR) — 起動時にファームウェア→ブートローダ→カーネルの順に、各段階が次の段階を実行する前にそのコードのハッシュを計算し、PCR(Platform Configuration Register) に記録する。このときPCRは上書きではなく new = Hash(old ‖ 測定値) の方式で累積(extend)されるため、途中で一度でも改ざんされれば最終的なPCR値はまったく異なるものになる。つまり起動履歴を偽造不可能なフィンガープリントに圧縮するのである。
C. シーリング(Sealing) — データを暗号化する際に「特定のPCR状態でのみ復号可能」という条件を付ける。例えばディスク暗号化鍵を「正常起動時のPCR値」にシーリングしておけば、攻撃者がブートローダを差し替えて起動した場合はPCRが変わるため鍵が解除されない。測定結果を実際のアクセス制御に結び付ける仕組みである。
D. リモート検証(Attestation) — TPMがPCR値を自身の鍵で署名(Quote)してリモートサーバに提出すると、サーバはその機器が信頼できる状態で起動したかどうかを遠隔で判断する。ゼロトラストにおいて「このデバイスを信頼してよいか」にハードウェアの根拠で答える中核的手段である。このほか、ハードウェアエントロピーに基づく乱数生成(RNG) も提供する。
| 機能 | 説明 | 解決する問題 |
|---|---|---|
| 鍵生成・保管 | 秘密鍵をチップ内部に隔離し、平文を露出しない | 鍵の窃取・漏洩 |
| 完全性測定(PCR) | 起動構成要素のハッシュを累積記録 | ブートキット・改ざんの隠蔽 |
| シーリング(Sealing) | 特定のプラットフォーム状態でのみ復号 | 改ざんされた環境からのデータアクセス |
| リモート検証(Attestation) | PCR署名値で状態を遠隔証明 | 遠隔での信頼判断 |
| 乱数生成(RNG) | ハードウェアエントロピー | 予測可能な鍵 |
3. 活用
TPMは上記の機能が組み合わさることで、実際のセキュリティシナリオを実現する。セキュアブートは測定・シーリングを用いて信頼の連鎖(Chain of Trust)を構築し、改ざんされたブート構成要素では正常に起動できないようにする。ディスク暗号化の代表例であるWindows BitLockerはボリューム鍵をTPMにシーリングし、ディスクを別のPCに移したり起動環境を変更したりすると自動復号が阻止される。デバイス認証では、チップに格納された鍵で機器固有のアイデンティティを証明して資格情報の窃取を困難にし、企業のMDM・ゼロトラストにおける機器信頼の基盤となる。
| 分野 | 活用 | 使用機能 |
|---|---|---|
| セキュアブート | Measured/Secure Boot 信頼チェーン | 測定・シーリング |
| ディスク暗号化 | BitLockerボリューム鍵の保護 | シーリング |
| デバイス認証 | 機器アイデンティティ・資格情報の保護 | 鍵保管・検証 |
| プラットフォーム完全性 | Windows 11の要件、DRM | 測定・リモート検証 |
4. 関連概念の比較 — TPM vs HSM
両者ともハードウェアベースの鍵保護装置であるが、目的と規模が異なる。TPMは個々の機器1台の「プラットフォームの信頼・完全性」を低コストで保証する内蔵チップであり、HSM(Hardware Security Module)はデータセンターで大量の鍵を高性能に管理・署名する専用アプライアンスである。つまりTPMは「このPCを信頼できるか」、HSMは「銀行の署名鍵を安全に大量運用できるか」に焦点がある。
| 区分 | TPM | HSM |
|---|---|---|
| 形態 | PC/サーバ内蔵チップ | 専用アプライアンス |
| 焦点 | プラットフォームの信頼・完全性(1台) | 大規模な鍵管理・署名 |
| 性能/コスト | 低性能・低コスト・汎用 | 高性能・高コスト |
5. 考慮事項および示唆
- ゼロトラストの物理的アンカー: 「信頼するが検証する」の検証根拠をハードウェアで提供し、デバイスの信頼をソフトウェアの宣言ではなく測定・証明で置き換える。
- 鍵のバックアップ・復旧ポリシーが必須: チップに依存する鍵は強力であるが、マザーボード交換やチップ故障時にデータが永久にロックされる可能性があるため、回復キー(BitLocker回復キーなど)の保管体制が必ず必要である。
- 限界の認識: ファームウェアの脆弱性(例: ロジック・実装上の欠陥)や高度な物理攻撃(測定バスのスニッフィング)には依然としてさらされうるため、TPMは万能ではなく多層防御の一層として扱うべきである。
- 拡張の方向性: 機密コンピューティング(Confidential Computing)、リモート証明に基づくソフトウェアサプライチェーンセキュリティなどへと、信頼の基点の役割が広がっている。
一言まとめ: TPMは鍵保管・完全性測定(PCR)・シーリング・リモート検証 を行うハードウェアセキュリティチップであり、「測定→シーリング→証明」の信頼の連鎖を通じてセキュアブート・ディスク暗号化・デバイス認証の信頼の基点(Root of Trust) を提供し、ゼロトラストの物理的アンカーとなる。