TPM Overview
- TPM: Trusted Platform Module (ISO/IEC 11889)
- PCなどのマザーボードに直付けされていて(対タンパ性)、CPUからLPC経由でアクセスできるコプロセッサとして働く
- 企画団体: TCG (Trusted Computing Group)
- Version Change: 1.1b => 1.2 (2011) => 2.0 (2014)
TPM 1.2の提供機能(Issues to be addressed)
- Identification of devices: MAC / IPアドレスではないSecurity Identifierによる識別
- Secure generation of keys: 鍵作成はH/WによるRandom-number generatorが理想
- Secure storage of keys: 良質な鍵をセキュアに格納
- NVRAM storage: ハードディスクではなく別のチップのNVRAM(Non Volatile RAM - 不揮発性RAM)に証明書を格納
- Device health attestation: TPMが出る前はS/Wによるhealth attestation (システムが正常である証拠・認証)が用いられたが、システムが改ざんされた場合、health attestation結果は信用出来ない
TPM 2.0 (TPM 1.2 + 下記の新機能)
- Algorithm agility: 暗号化アルゴリズムをあとから(不十分な強度であることがわかった場合)柔軟に変えられる仕組み
- Enhanced authorization: Multifactor / Multiuser authenticationの可能にするAuthorization policyを可能にする
- Quick key loading: TPMへの鍵のロードをすばやくする。Asymmetric => Symmetricへ変更。
- Non-brittle PCRs: 堅牢なPCRs (Platform Configuration Registers) - TPM内部の動的メモリ領域
- Flexible management: Authorization種類の多様化。TPMリソースの柔軟な管理
- Identifying resources by name: TPM 1.2の間接参照の弱点を克服
TPM 2.0を利用しているPlatform Technology
- Intel TXT (Trusted Execution Technology)
- AMD Secure Technology
TPM vs. TEE / SE
- ARM TrustZone (TEE)
- SoCの中でVirtualな2nd Processorを設ける
- TrustZoneというfirmware TPMを持つというイメージ。ただしこの場合、firmware Secure Elementを持つという言い方もできるので、TPM = Secure Element(?)という点で誤解が生じやすい
- Intel TXTはTPM、ARM TrustZoneはTEEと言うのが無難
- Secure Element
- CPUとは完全に別の専用チップを設け、この中にTPMと似たような機能を持たせる。
- 一般的にJava Card OS + GlobalPlatformのライブラリを用いて、機能を実装
- TPMの利用は、Server/PCの世界が主流。Secure ElementはMobile / Edge Device等が主流