連載第四回は、wolfTPM、セキュアエレメントとIoTセキュリティについて紹介します。
IoTでは、デバイスが一般市場向けに販売されたり不特定多数の人々の手に渡るなど、第三者が簡単にアクセスできるような利用状況も少なくありません。こうしたケースでは、デバイス内の情報がハードウェアな手段で読み取られたり、悪意をもって改ざんされたりすることを想定しなければなりません。
そういう場合に活躍するのが、セキュアエレメント(SE)の耐タンパー性をもった暗号鍵の保護、管理機能です。SEでは、チップ内で暗号鍵を自己生成したり、製造時に書き込んでおいたりする機能、また、その鍵を使ってチップ内デジタル署名や検証を行う機能が内包されていて、鍵を一切チップの外に出さずに必要な機能を実現できるようになっています。
こうしたSEの標準インタフェースとしてTCG(Trusted Computing Group)が策定し、ISO/IEC標準にもなっているTPM(Trusted Platform Module )があり、現在は主に最新のTPM2.0が使われています。TPMに準拠したSEチップは、以前からPCや決済端末などの固体IDの管理などに広く使用されてきましたが、IoTのような考え方が普及するにつれてネットワークに接続されたデバイス全般のアイデンティティの管理への適用が考えられるようになってきました。
wolfTPMは、IoTデバイスの鍵管理に特化した組込向けのTPMライブラリです。TPM2.0に準拠しながらSSL/TLSのクライアントに必要な鍵管理、証明書管理機能にフォーカスすることで、従来大きくなりがちだったTPMライブラリを軽量の組込ライブラリとして整理しなおしたものです。整理され軽量になった一方で、容易にwolfSSLと連携してクライアント認証に必要な証明書や鍵管理が簡単に実現できるようなラッパーAPIもそなえているという特徴もあります。
【図:wolfSSLとwolfTPMの連携】
セキュアエレメントの持つ耐タンパー性は「ファームウェアの安全な更新」のような利用シナリオでも重要な役割を果たします。連載第二回で紹介したwolfBootは、wolfSSLの暗号エンジンであるwolfCryptと連携し、ソフトウェアレベルでのファームウェアの安全な更新を実現することもできますが、より安全なファームウェア更新のためにwolfTPMと連携して容易に耐タンパー性をもったセキュリティレベルを実現するとができます。
wolfTPMの製品詳細はこちらでご紹介しています。
連載:wolfの仲間たち
第一回:全員集合
第二回:安全なファームウェア更新を支えるwolfBoot
第三回:安全なリモートコンソールwolfSSH