Trusted Platform Module

Trusted Platform Module
https://ja.wikipedia.org/wiki/Trusted_Platform_Module

 ※ これを読むと、物理的な形態としては、「コンピュータのマザーボードに直付けされているセキュリティに関する各種機能を備えた半導体部品」ということのようだ…。

 ※ 何か、CPUの内部に「回路として」組み込まれているようなものと誤解していた…。

 ※ 「CPU内部のセキュリティ領域で実行されるファームウェアTPM」とか、書いてあるからな…。

『Trusted Platform Module (TPM、トラステッド プラットフォーム モジュール) とは、コンピュータのマザーボードに直付けされているセキュリティに関する各種機能を備えた半導体部品で、データの暗号化・復号や鍵ペアの生成、ハッシュ値の計算、デジタル署名の生成・検証などの機能を有する。国際標準規格(ISO/IEC 11889)に則っている[1][2]。主に専用半導体部品として実装されたディスクリートTPMと、CPU内部のセキュリティ領域で実行されるファームウェアTPMがある[3]。

概要

RSA暗号演算やSHA-1ハッシュ演算といった機能を有しており、チップ内で暗号化・復号、デジタル署名の生成・検証、プラットフォームの完全性検証を行うことができる。また、TPMの内部でRSAの鍵ペア(公開鍵と秘密鍵)を生成することができる。

TPMの仕様はTCG (Trusted Computing Group) という国際的な業界団体で策定されており、最新のバージョンは2.0である。1.2まではRSAのみであったが、2.0からはAESやECDSAなどを含め多種多様な暗号アルゴリズムをチップ内で処理できるようになり、ソフトウェアが暗号ライブラリを負担する必要が大幅に減ったため、暗号境界がより明瞭になった。

ノートPCだけではなく、デスクトップPCにもTPMは搭載されている。Windows OSとしてはWindows Vistaが初めて正式にサポートした[4]。Intelチップを搭載した初期のMacintoshにもTPMチップを搭載したものがある[5]。

この技術は、さらに発展を遂げている。チップセット等の連携を強化した技術として、Intel Trusted Execution Technology がある。また、仮想機械向けの命令仕様拡張も提案されている[6]。

組み込み用途向けとしては、SPIやI2Cなどのインタフェースを持つものがリリースされている。ピン数が少なくなるためコストが縮小するほか、インタフェースの簡素化など攻撃表面の縮小(Attack surface reduction)の概念と相性が良いという利点がある。近年、車の自動運転やIoTなどで需要を伸ばしている分野である。

Trusted Computing Groupは、特にディスクリートTPMについて、求められるセキュリティレベルを考慮すると、耐タンパー性を備えているべきだとしている[7]。

TPMの機能

TPMは以下の機能を提供する。

RSA
    演算
    鍵生成
    鍵格納
SHA-1ハッシュ
    ハッシュ値計算
    ハッシュ値保管
乱数生成

TPM1.2から以下の機能が追加された。

カウンタ
    単純増加カウンタ
    ティックカウンタ
オーナー権委任(パスワードは公開しない)
不揮発性ストレージ保存機能

TPM2.0は機能や概念が一新され、以下が追加された。

シードとオブジェクトの概念
認証形式の追加(KDFによるセッション鍵生成、Policy認証)
認証と秘密通信の高速化

アルゴリズムの大幅な追加
    各種ハッシュ演算(SHA256、SM3、HMAC、KDFなど)
    楕円曲線暗号(NIST curve P-256、SM2など)
    AES(128bit~256bit、OFB、CTRなどの各種モード)
グループの複製(Key duplication)

不揮発性カウンタ
不揮発性ビットフィールド

TPMでできること

上記の機能を用いて、TPMでは以下のことを実現できる。

プラットフォームの完全性を計測し、OSやアプリケーションの改竄を検知できる。
公開鍵証明書を用いた端末の個体識別、詐称困難な端末認証を実現する。
データ(ストレージ)を暗号化し、不正に持ち出した情報は復号させない。

TPM利用時の注意点

TPMをハードウェアに搭載したからといって即座にシステム全体のセキュリティを担保できるわけではない。TPMを使用するシステムの要件定義からアプリケーションの実装まで全てを考慮しなければ、最終的に容易に破られるシステムができあがることになる。

チップ自体のスペックが高くないことや、内部ファームウェアがセキュアコーディングで書かれていること、インタフェースが低速であることが原因で、数百キロバイトを超えたデータの暗号/復号は時間がかかることに留意する必要がある。

TPMのファームウェアリビジョンによっては、対称鍵暗号コマンド(TPM2_EncryptDecrypt2)が実装されておらず、伝送系路上に乗る平文を暗号化できない場合がある。
TPM利用技術

BitLocker

マイクロソフトのドライブ暗号化技術。TPMを利用したハードディスクドライブの暗号化が可能。ただし必ずしもTPMを用いなければならないわけではなく、USBメモリキーに鍵を格納する方法や、パスワードで保護する方法がある[8]

Trusted HTTP-FUSE KNOPPIX

産業技術総合研究所からリリースされている、HTTPブートクノーピクスのTPM利用版。TPMのプラットフォーム検証技術を利用して、ブートシーケンスが改ざんされていないかを監視することが可能 』