Smart Card Guy

Smart Card, Java Card, PCI DSS, IoT Device Security

TPMとは

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等が主流

Link

A Practical Guide to TPM 2.0: Using the Trusted Platform Module in the New Age of Security (English Edition)

A Practical Guide to TPM 2.0: Using the Trusted Platform Module in the New Age of Security (English Edition)