現代のコンピューティングにおいて、ソフトウェアによる防御だけでは不十分な時代となっています。そこで重要となるのが、ハードウェアレベルでセキュリティを担保するTPM(Trusted Platform Module)です。TPMは、暗号鍵の生成や保存、システムの整合性チェックを行うための専用のセキュア・クリプトプロセッサであり、PCやサーバーの根幹となる信頼性を構築します。
もともとTrusted Computing Group(TCG)によって策定され、現在はISO/IEC 11889として国際標準化されているこの技術は、OSが起動する前の段階からハードウェアの正当性を検証し、不正な改ざんや攻撃からシステムを保護する役割を担っています。

Key Facts
- ハードウェアベースの保護: ソフトウェアから独立した物理チップ(またはファームウェア)で暗号処理を行うため、OSが侵害されても鍵情報が漏洩しにくい。
- 主要機能: 真の乱数生成器の提供、暗号鍵の安全な保管、プラットフォームの整合性検証。
- 標準規格: TCGおよびISO/IEC 11889に基づき、世界的に共通の仕様で運用されている。
- 主な用途: BitLockerなどのディスク暗号化や、セキュアブートによる起動プロセスの保護。
TPMの進化:バージョン1.2から2.0へ
TPMは時代とともに進化しており、特にバージョン1.2から2.0への移行で大幅な機能拡張が行われました。1.2では固定的なアルゴリズムが中心でしたが、2.0では柔軟性が向上し、より多様な暗号方式に対応できるようになっています。
大きな変更点の一つが「階層構造」の導入です。1.2ではストレージ用の単一階層のみでしたが、2.0ではプラットフォーム、ストレージ、エンドースメントの3つの階層が設けられ、用途に応じた鍵管理が可能になりました。また、認証方式においてもHMACや物理的な存在確認(Physical Presence)など、より高度な制御が導入されています。

| 比較項目 | TPM 1.2 | TPM 2.0 |
|---|---|---|
| 暗号アルゴリズム | 固定的な仕様 | 柔軟な選択が可能 |
| 管理階層 | 1つ(ストレージ) | 3つ(プラットフォーム、ストレージ、エンドースメント) |
| ルート鍵 | 単一(SRK RSA-2048) | 階層ごとに複数の鍵とアルゴリズムをサポート |
| NVRAMデータ | 非構造化データのみ | カウンタ、ビットマップ、PIN判定などの構造化データをサポート |
TPMの具体的な活用シーンと実装形態
プラットフォームの整合性とディスク暗号化
TPMの最も代表的な利用例は、ディスク暗号化です。暗号化に使用する鍵をTPM内部に保存することで、ストレージを物理的に取り出して別のPCで読み取ろうとしても、正しいTPMチップと整合性チェック(PCR値の検証)が一致しない限り、データへのアクセスを拒否できます。
多様な実装形態
TPMは物理的な独立チップとしてマザーボードに実装されるほか、CPUのファームウェア内でエミュレートされる形式(fTPMなど)や、仮想環境で動作する仮想TPM(vTPM)としても提供されています。これにより、物理サーバーだけでなくクラウド上の仮想マシンでもハードウェアと同等の信頼基盤を構築できます。

エコシステムとソフトウェアサポート
TPMを効率的に利用するためには、OSやライブラリによるサポートが不可欠です。Linuxカーネルではバージョン4.0(2015年)からTPM 2.0を正式にサポートしており、Windowsなどの主要OSでも標準的に組み込まれています。
開発者向けには、TCG仕様に基づいたtpm2-tssや、IBM、Google(go-tpm)、wolfSSLなどが提供するソフトウェアライブラリが存在します。これらを利用することで、アプリケーションレベルからTPMの暗号機能やアテステーション(正当性証明)機能を呼び出すことが可能です。
Frequently Asked Questions
TPMがないPCではセキュリティが低下しますか?
TPMがなくてもソフトウェアベースのセキュリティ対策は可能ですが、暗号鍵がメインメモリやストレージに保存されるため、物理的な攻撃や高度なマルウェアに対して脆弱になります。TPMがあることで、鍵をハードウェア的に隔離できるため、安全性が飛躍的に向上します。
TPM 2.0へのアップグレードは可能ですか?
物理チップとして実装されている場合は、チップ自体の交換が必要になります。ただし、CPU内蔵のファームウェアベースTPM(fTPM)を利用している場合は、BIOS/UEFIのアップデートによってバージョンが変更されたり、設定で有効化できたりすることがあります。
TPMはプライバシーに影響を与えますか?
TPMには個体識別用の「エンドースメントキー」が含まれていますが、これはハードウェアの正当性を証明するためのものであり、ユーザーの個人情報を直接収集するものではありません。多くの実装では、プライバシー保護のために匿名化された鍵を使用する仕組みが導入されています。
LinuxでTPMを利用するにはどうすればよいですか?
Linuxカーネル 4.0以降であれば基本機能がサポートされています。具体的に操作を行うには、tpm2-toolsなどのツールセットをインストールし、tpm2-tssなどのライブラリを介してデバイスにアクセスすることで、乱数生成や鍵管理などの機能を利用できます。
References
- There is a separate project called "CHARRA" by Fraunhofer that uses the tpm2-tss library for Remote Attestation. The other stacks have accompanying attestation servers or directly include examples for attestation. IBM offer their open-source Remote Attestation Server called "IBM ACS" on SourceForge and Google have "Go-Attestation" available on GitHub, while "wolfTPM" offers time and local attestation examples directly in its open-source code, also on GitHub.
- There is an application note about an example project for the AURIX 32-bit SoC using the tpm2-tss library.
- Requires additional libraries (dotnet) to run on Linux.
📸 フォトギャラリー


