Trusted Platform Module(TPM)って何?

Trusted Computing な ぜ な に シリーズ その1(なんとなくシリーズ化)

セキュリティ技術を正しく理解することはなかなか難しい。
仕様は膨大だし、理解には専門的な知識が必要になる。

さて、Trusted Platform Module(TPM)についても、誤解が多いようなので以下にまとめておく

YES。
ただし、権利者を自由に設定でき、さまざまなユースケースに適応できるところが、従来の放送暗号などとは大きく異なる。Stallmanなどはこの点を無視しているし(http://www.gnu.org/philosophy/can-you-trust.html)、TPMの権利者がMSでユーザーが一般消費者であれば、主張は正しいが、 現実ではMSはほとんどTPMを活用していない。権利者がデバイスの所有者で、外部からの攻撃からデバイスを守るように使うのが正しい使い方である。それらは設定の問題でTPMはどちらにも使える。

NO。
TPMの暗号処理速度は、汎用CPUよりも遅い。まずSmartCardと同じような半導体テクノロジで製作されている。
次に、LPCバスやI2Cバスなどの非常に遅いバスで接続されている。TPMはIT機器で容易に利用可能な安価な耐タンパーデバイスであり、物理的保護による秘密の安全な保持が目的である。ソフトウェアは安全に機密情報を保持する事ができないので、TPMはその場を提供している。TPMは一般のHSM(Hardware Security Module)と呼ばれる暗号モジュールに比べて桁違いに安価であるが、HSMのように高機能ではない。

NO。
できればすばらしいが、大きな問題はISO/IEC15408やFIPS-140などのようなセキュリティ認証フレームワークに適応させることが難しいことである。チップセットの製品寿命は短くバリエーションも多いので、高い認証レベルを獲得するコストが高い。またセキュリティチップと汎用チップとでは、必要とされるテクノロジや製造工程に違いがある。おそらく、トータルで考えると、チップのTPMを使うよりも高コストになってしまう。したがって、外付けチップの形態が現実的である。基本的にはTPMの寿命は利用している暗号の寿命になる。現状のTPM(v1.1b,v1.2)はSHA1を利用しているのでそれが寿命の制約になっている。
仮想化を利用してSWのTPMを利用することも技術的には可能であるし、実装もある。ただ、その信頼性を評価することが、チップセットへの統合よりも、もっと難しい。

  • TPM単体で使えるの?

NO。
使えなくは無いが、TPMはHSMとしてみると、リソースがものすごくしょぼい。実際に保存できるRSA鍵は2個だけである。TSSと呼ばれるソフトウェアスタックと一緒に使うことで、暗号デバイスとしてはようやく一人前になる。このアーキテクチャの良い点は、TPMのシリコンを小さくし、結果として安価に製造することができる点である。悪い点は、SWとの連携が必要になること、大量のAPIが必要になること、TPMとTSSとのトラストチェインがうまく構築できれば美しいが、これが難しいこと。