TPMについて、詳しくなりたい。
  • とにかく調べる。
TPM(Trusted Platform Module)。概要はこんな感じ。
Trusted Platform Module(TPM)とは、セキュリティを実現するための、ハードウェア耐タンパー性を持つセキュリティ機能のこと。主に専用チップとして実装されたディスクリートTPMと、CPU内部のセキュリティ領域で実行されるファームウェアTPMがある。
よく分からないので読み進める。
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が初めて正式にサポートした。Intelチップを搭載した初期のMacintoshにもTPMチップを搭載したものがある。この技術は、さらに発展を遂げている。チップセット等の連携を強化した技術として、Intel Trusted Execution Technology がある。また、仮想機械向けの命令仕様拡張も提案されている。組み込み用途向けとしては、SPIやI2Cなどのインタフェースを持つものがリリースされている。ピン数が少なくなるためコストが縮小するほか、インタフェースの簡素化など攻撃表面の縮小(Attack surface reduction)の概念と相性が良いという利点がある。近年、車の自動運転やIoTなどで需要を伸ばしている分野である。
なんとなくわかった気がする。
  • TPMハードを積んだらソフトは何すればいいの?
ハードを乗せただけでセキュリティが守られるハズはない。セキュリティモジュールの最新規格TPM 2.0/TSS 2.0対応ソフトウェアライブラリとかFFRI,Inc.1Monthly ResearchTPM 2.0 の概要とIoT デバイスでの利用例を読むと、TCG(Trusted Computing Group)が策定したTPM 2.0をカンタンに使えるようにするためのTSS 2.0(TCG software stack)が必要になるみたい。
  • LinuxでTPM2.0対応するにはどうするの?

ユビキタスのTPM2.0対応ミドルウェアみたいなソフトを買わなきゃいけない訳だ。

【TPM2.0】【Linux】でWEB検索してみた。LinuxでTPM2.0を使うとかRaspberry Pi でTPMを使うを読むと、例えばラズパイはTPMがついてないので、外付けのTPMチップをSPI接続させたりするらしい。

で、肝心のTPMチップの一例を挙げる。IRIDIUM SLM 9670 TPM2.0を見るとOSS implementation of the TCG TPM2 Software Stack (TSS2)とかELTT2 - Infineon Embedded Linux TPM Toolbox 2 for TPM 2.0TSS(ソフトウェア)がGitHubに落ちてる。TPMチップを買ってくればフリーウェアだけでシステム作れそうな感じ。

他にRSA signatures with TPM2.0 and OpenSSLあたりを見ると、OpenSSL暗号のオフロード化も可能みたい。
  • 独りごと
セキュリティは突破されたら終わりだから、要件も自ずと厳しくなる。OSSソフトウェアを使った場合にセキュリティホールが見つかると厄介なので、業務用でTPM2.0を使うなら商用ソフトウェアが欲しくなるだろう。

開発費を安く済ませようとして組込Linuxシステムを構築するケースがあるかもしれないが、IoT機器を踏み台にしてネットワークに侵入するみたいな話も聞くため、セキュリティ対策が必須になる。そのとき選択するソフトウェアによっては割高になるし、Linuxのセキュリティパッチを当て続けるのはしんどい。そういった場合にWindows10 IoTという選択肢があるかもしれないと思った。

続く






にほんブログ村 IT技術ブログ IT技術メモへ

IMG_20190422_065626

スポンサードリンク