Trusted Platform ModuleTrusted 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は以下の機能を提供する。 TPM1.2から以下の機能が追加された。
TPM2.0は機能や概念が一新され、以下が追加された。
TPMでできること上記の機能を用いて、TPMでは以下のことを実現できる。
TPM利用時の注意点TPMをハードウェアに搭載したからといって即座にシステム全体のセキュリティを担保できるわけではない。TPMを使用するシステムの要件定義からアプリケーションの実装まで全てを考慮しなければ、最終的に容易に破られるシステムができあがることになる。例えばOSのブートローダーが改竄されていないことを認証するためにTPMを使用したとしても、OS側に脆弱性があれば起動後にデータを盗み取られてしまう。 チップ自体のスペックが高くないことや、内部ファームウェアがセキュアコーディングで書かれていること、インタフェースが低速であることが原因で、数百キロバイトを超えたデータの暗号/復号は時間がかかることに留意する必要がある。 TPMのファームウェアリビジョンによっては、対称鍵暗号コマンド(TPM2_EncryptDecrypt2)が実装されておらず、伝送系路上に乗る平文を暗号化できない場合がある。 TPM利用技術
脚注
関連項目
外部リンク |