wolfTPM 4.2.0 では、ファームウェア TPM(fwTPM)における TCG TPM 2.0 v1.85 仕様への準拠、TLS 1.3 の認証までを対象とした耐量子暗号対応の拡張、そして新しいプラットフォーム向けバックエンドの追加を中心に開発を進めました。これにより、マイクロコントローラーから Linux エッジデバイスまで幅広いハードウェアにおいて、標準に準拠し耐量子暗号にも対応した、移植性の高いハードウェアベースの Root of Trust を実現しています。
fwTPM における TPM 2.0 v1.85 仕様準拠
ファームウェア TPM を TCG v1.85 に適合させる作業を幅広く進め、Measured Boot とアテステーションで使う経路では、認証取得済みのディスクリート TPM と同様に動作するようにしました。
- コマンドコードのマスク処理と、ベンダービットの戻り値の修正(PR #556)
- PolicyAuthorize の仕様準拠と、keySign の名前チケットおよび approvedPolicy のレスポンスコードの修正(PR #567、#572)
- ContextSave / ContextLoad におけるオブジェクトコンテキストブロブへの認証付与(PR #568)
- LoadExternal で未対応の秘密鍵タイプを拒否する処理、作成チケットの HMAC 計算順序の修正、および LoadExternal と CreateLoaded における ML-DSA / ML-KEM テンプレートの検証(PR #573、#578)
- NV 領域の認可検証と、v1.85 リビジョンの報告(PR #575)
- コマンド属性の報告、検証済みチケットの HMAC アルゴリズム、SPDM レスポンダのバージョンネゴシエーションの修正(PR #577、#579、#584)
TLS 1.3 向けの耐量子暗号認証
耐量子暗号への対応を、暗号プリミティブの段階から認証フロー全体へと拡張しました。
- 耐量子暗号 TLS 1.3 向けの TPM による ML-DSA 認証。サンプルとテスト一式も追加(PR #559)
- SealSQ QVault の耐量子暗号 TPM への対応(PR #570)
- fwTPM における ML-KEM のクレデンシャルアクティベーションと ML-DSA の Quote(PR #592)
–enable-pqc、–enable-mldsa、–enable-mlkem のビルドオプションにより、耐量子暗号のフットプリントを、製品が実際に行う処理に必要な分だけに抑えられます。
新しいプラットフォームと HAL バックエンド
本リリースでは、TPM へアクセスする経路を新たに 2 つ追加しました。あわせて、ファームウェア更新と、fwTPM のコードサイズ制御に関する変更も加えています。
- wolfHAL の I2C および SPI バックエンド。–enable-wolfhal と、アプリケーション側で用意する board.h で有効化します(PR #562)
- NVIDIA Jetson Orin(Tegra234)の OP-TEE ファームウェア TPM。Linux の TPM カーネルドライバ経由で /dev/tpmrm0 としてアクセスします(PR #576)
- fwTPM のコマンドグループ単位の切り替えマクロを細分化。コードサイズをより細かく制御できます(PR #574)
- ファームウェア更新のポリシー認可。呼び出し側から指定できます(PR #560)
本リリースのその他の変更
ST33 のファームウェア更新:第 1 世代のマニフェストサイズ計算を修正し、サイズ超過のコマンドを拒否するようにしました(PR #583)。また、フィールドアップグレードで使うコマンドを、TPM のコマンドセットから選ぶようにしました(PR #586)。
性能:トランスポート接続を再利用し、NV 書き込みとハッシュキャッシュにかかるオーバーヘッドを削減しました(PR #563)。
ビルドとライセンス:OpenSSL と共存する場合の AES_BLOCK_SIZE(PR #552)、wolfCrypt なしでの TIS ロックビルド(PR #564)、–enable-pqc と –disable-wolfcrypt を組み合わせた場合(PR #606)の不具合を修正しました。サンプルの CA 証明書を更新するスクリプトを追加し、証明書も差し替えました(PR #601)。コントリビューションガイドを追加しました(PR #569)。また、Cisco Systems, Inc. の U-Boot と組み合わせた wolfTPM を GPLv2 でライセンスできるよう、GPLv2 の例外条項を追加しました(PR #557)。
セキュリティ強化
v4.2.0 では、Fenrir、Coverity、静的解析、異常系テスト、そして入力値検証のレビューをもとに、セキュリティ強化をまとめて実施しました。主な内容は次のとおりです。
- 暗号コールバック、ASN.1 パース、パラメータ暗号化、マーシャリングの堅牢化(PR #551)
- レスポンスの復号パラメータサイズに上限を設け、プライマリ鍵の認可情報をゼロ化(PR #555)
- fwTPM のレスポンスバッファオーバーフローと、SPDM の平文フレームによるコマンドバイパスの修正(PR #561)
- P521 のプライマリ鍵導出における wolfCrypt の参照カウント競合と、ポリシーセッションの認可バイパスの修正(PR #571)
- fwTPM の状態変更をトランザクション化し、PolicyPCR と秘密鍵ブロブのラップを堅牢化(PR #593)
- fwTPM のプロトコル、鍵導出、ゼロ化、境界チェックに関する追加の修正(PR #554、#558、#565、#581、#582、#588、#591、#595、#596、#597、#598、#599、#600、#603、#604、#605、#608)
クイックスタート
git clone https://github.com/wolfSSL/wolfTPM.git
cd wolfTPM
git checkout v4.2.0
./autogen.sh
./configure --enable-fwtpm --enable-swtpm
make && make check
すべての変更点は ChangeLog.md でご確認いただけます。
商用ライセンス、FIPS 140-3 との統合、DO-178C DAL A 認定キット、カスタム HAL の移植、TPM 2.0 v1.85 における耐量子暗号の導入支援についても、ご相談を承っております。
今すぐ wolfSSL をダウンロード
もし弊社製品についてご質問があれば、お問い合わせ窓口info@wolfssl.jpまでご連絡をお願い致します。