無償で TPM の使用方法を学べるオンラインコースがとてもよかったので紹介します。
はじめに
2024/3/11、OpenSecurityTraining2(OST2: サイバーセキュリティトレーニングの開発を行う非営利組織)と Trusted Computing Group (TCG: TPM を含む国際標準規格の策定など行う非営利組織)の協力の下、TPM 使用方法に関するオンライントレーニングが開設されました。
TCG プレスリリース: TCG and OST2 Partner to Deliver TPM Usage Training and Develop New Cybersecurity Experts
早速やってみて、これはオススメできると思ったので簡単に紹介したいと思います。
コース概要
コースは動画を見る、演習環境で手を動かす、かかった時間をフィードバックする、の繰り返しで構成されています。 自分のペースで進めることになりますが、平均すると全体で 8 時間強程度のコースになっているそうです(私もちょうど 8 時間程度かかりました)。
コースは全体を通して英語です。 とてもゆっくり丁寧に話してくれるので、私のように英語が不得手な人間でもそこそこ聞き取れます。 動画の字幕データが公開されていて、コース内で紹介があります。 私は字幕データを Google 翻訳してくれるサイトを使って翻訳し、日本語字幕で視聴しました。
コースは座学からはじまります。 TPM に関する基礎知識をとても短くわかりやすく解説してくれます。 TPM 関連の仕様や情報は本当に膨大なので、このまとめだけでも大変ありがたいです。 ざっくり次のような話がありました:
- TPM とは
- TPM の主な構成要素
- 主要なソフトウェア開発方法
- TPM の歴史
- TPM のできること・できないこと
- TPM 以外のセキュリティデバイスとの違い
次に演習環境のセットアップです。 TPM シミュレーターと開発環境の入った Docker イメージが提供されており、これを使用します。 みなが口を揃えて言うのですが、実機 TPM をいきなり触るのはやめておいた方がよいです。。
環境が準備できたら、演習が始まります。 動画を見て学んだ後に演習環境で手を動かし、さらに短い演習の解説があります。 演習では tpm-tools コマンドを使用します。 この演習を通じて TPM の利用目的毎にどんなことをやればいいのか、シュッとインプットできると思います。 コースの説明にある通りですが、次の演習があります(ました)。
- 署名
- 封印
- ハッシュ
- NVRAM(アプリケーションから利用できる TPM 内部の不揮発性メモリ)
- 中間者攻撃(通信の暗号化)
- データの暗号化
最後は wolfTPM というソフトウェアスタックを使用したプログラミング演習です。 一気に難易度が上がるように聞こえるかもしれませんが、プログラミングに着手するためのテンプレートと答えも用意されています。 答えを動かしつつフムフムするだけでも雰囲気をつかめると思われます。
おわりに
TPM のオンライン学習コース「Trusted Computing 1101: Introductory Trusted Platform Module (TPM) usage」を紹介しました。 Windows 11 の影響で TPM 普及率が向上した昨今、TPM を使用したセキュアなシステムの開発が広まっていると感じています。 自身が開発に関わることは無くても、TPM の基礎知識を身につけておくことは有益なのではないでしょうか。
最後に、さらなる学習や開発に進みたいと思われた方のために以前書いた記事を紹介致します。 TPM-JS という学習コンテンツや、今回紹介したコースとは異なる TPM シミュレーターやソフトウェアスタックに触れています。
それでは、よい TPM ライフを👋