概要
年々ネットワークに接続される製品が増えるとともに、AIを利用した攻撃も普及してきています。このような背景から欧州サイバーレジリエンス法を始めとした、様々なセキュリティ法案や規格が策定されるようになり、各企業が対応に追われています。
この記事では、セキュリティに特化したICチップであるTPMの概要と、Raspberry Piを用いたTPM評価ボードの動作確認の手順をご紹介します。
TPMのようなセキュリティICはセキュアエレメントとも呼ばれ、サイドチャネル攻撃や故障利用攻撃、リバースエンジニアリングなどの外部攻撃に対して非常に強い耐性(耐タンパ性)があります。
ソフトウェアによるサイバー攻撃への対策に加えて、ハードウェアの観点からもセキュリティ対策を行うことで、様々なセキュリティ要件への対応をサポート・促進することが可能となります。
TPMの基礎知識

暗号鍵を安全に格納することに重点を置いた設計となっており、暗号鍵を用いるデータの保護や、証明書のセキュリティ性向上を実現することが可能です。
TPMはWindows11のシステム要件から必須となり注目を集めましたが、セキュリティへの関心の高まりから、多くの組み込み機器でも検討されるようになってきています。

Raspberry Piを用いたTPMの動作確認
今回はInfineon社が提供しているOPTIGA™ TPM SLB9672評価ボードを使用しました。TPMを動作させるためにはデバイスドライバーとミドルウェアが必要になります。本動作確認ではミドルウェアにEmbedded Linux TPM Toolbox 2 (ELTT2) を使用しました。
ELTT2は、TPM 2.0デバイスのテスト、診断、および基本的な状態変更を目的とした単一ファイルの実行可能プログラムです。 Githubで公開されているこのツールは、Linuxシステム上でTPM 2.0が動作する環境での使用を前提としており、gccを用いて簡単にビルドおよび実行できます。
評価ボードの動作環境

ハードウェア
◦Raspberry Pi 3 Model B V1.2 : Raspberry Pi OS(64-bit)
ソフトウェア
デモの準備
1. Raspberry Pi OS のインストール
- Raspberry Pi Imager で 「Raspberry Pi OS」 を書き込む
2. TPMデバイスドライバーの確認
- Raspberry Pi を起動後、以下を実行しTPMが認識されているか確認
- $ ls -l /dev/tpm*

3. ELTT2の準備
- Github(https://github.com/Infineon/eltt2)からソースコードをダウンロード
- makeコマンドを用いてソースコードをコンパイルし「eltt2」を生成

テスト例
次のようにコマンドを呼び出します。
- $ sudo ./eltt2 <option(s)>
①sudo ./eltt2 -g
TPM の固定プロパティを読み取る

➁sudo ./eltt2 -s [hash algorithm] <data bytes>
SHA-1/256/384のハッシュアルゴリズムを使用して特定のデータをハッシュ化する


③sudo ./eltt2 -G <data length>
指定された量のランダムバイトを取得
※下記は08hと14hのランダムバイトを指定

④sudo ./eltt2 -e [hash algorithm] <PCR index> <PCR digest>
指定したPCR(Platform Configuration Register) に新しい値を拡張(追加)してハッシュ計算を行う

⑤sudo ./eltt2 -r [hash algorithm] <PCR index>
指定したPCRの値を読み取る

⑥sudo ./eltt2 -z <PCR index>
指定したPCRの値を初期状態に戻す

まとめ
- ネットワーク接続デバイスの増加とAIを活用した攻撃の高度化などによって、セキュリティ対策の重要性が高まっている
- 欧州サイバーレジリエンス法などの規制が進み、企業はそれらへの対応が求められている
- セキュリティ対策には、ソフトウェアだけでなくハードウェアベースのアプローチも有効である
- TPMは高い耐タンパ性を実現し、暗号鍵を安全に管理する
- Infineon社のTPM評価ボードとELTT2を活用することで、TPM 2.0の基本的な機能テストを行った
お問い合わせ / お見積もり
本製品に関してご質問、お見積もりなどの希望がありましたら、以下より問い合わせください。