TCGが提供するTPM2.0の基本技術

  0. TPMを始める前に

  1. TPM1.2とTPM2.0の違いについて
  2. 信頼の基点(Root of Trust)の重要性
  3. TPM2.0チップの基本構成
  4. 階層
  5. 鍵について
  6. 復号/暗号化セッションの重要性
  7. TPM2.0を使用したソフトウェア開発
  8. Q&A


5.鍵について

TPMの最大の特徴の一つは、TPM内で暗号鍵を生成して、その秘密を守ることです。概念から言うと、秘密鍵と公開鍵のペア鍵がある場合、これまでは秘密鍵をどのように守るかにセキュリティを保証する上で一番重要な役割がありましたが、TPMはその秘密鍵を守るハードウェアセキュリティモジュールになります。各々の階層ではルートとなる親鍵(プライマリ鍵)と子鍵のツリー構造を持っています。

TPMは、各種の鍵を自身で生成することが可能ですが、その基本はシードになります。TPMは鍵を生成するためにTPM自身にエントロピーを加味した乱数生成器(RNG)を持っており、乱数生成のために外部ソースに依存することはありません。

以下はTPM2.0で使用することができる非対称鍵と対称鍵の説明になります。

非対称鍵(Asymmmetric Key)
非対称鍵はRSA、ECC(楕円曲線暗号)が通常は標準的に実装されていて、一部のTPM2.0で中国暗号のSM2が搭載されています。
対称鍵(Symmetric Key)
TPM1.2で、対称鍵はTransport Protection、つまり通信するバスの暗号にのみ使用されていましたが、TPM2.0ではAES128、256で各種モードが使用できるようになりました。また、一部のTPM2.0には中国暗号のSM4が搭載されています。

鍵の複製(デュプリケーション)

TPM1.2で、鍵の複製をマイグレーションとしていましたが、用語的に適切ではないとのことでデュプリケーションに改められました。詳細の仕組みは異なりますが、概要は同じです。鍵を複製(デュプリケート)することは、異なる親で鍵をラップ(暗号化)することです。親鍵の下に、階層になっている複数の子鍵も含めてある場合、親鍵が複製されると、親鍵の下の鍵をすべて複製することが可能です。

鍵の使用制限

TPM2.0は、作成した鍵に制限機能を付与することができます。例えば上記の複製には、複製ができない制限をつけることによりTPMの外部に鍵をコピーすることができない機能を設定することができます。他には、署名のみに使用できる専用の署名鍵や、ある特定のデータの復号ができる制限復号鍵など設定することができます。また、鍵の使用をTPM2.0で新しく定義されたポリシーを使用して複雑な鍵管理を行うこともできます。