これまでwolfSSLでは、さまざまなシステムで暗号化ハードウェアとキーストアを活用できるように、独自の PKCS11プロバイダーライブラリを実装してきました。最近、wolfTPMでTPM 2.0モジュールを使用するためのサポートを追加しました (プル リクエスト#23 を参照)。 この機能は、アプリケーションがPKCS11標準(セキュリティデバイスと通信するためのAPI仕様)に準拠していて、それをTPMまたはfTPMの機能を利用したものに切り替える必要があるようなユーザーにとって特に便利です。
wolfTPMライブラリとwolfPKCS11ライブラリは両方とも、ベアメタルを含むあらゆるRTOSまたは組み込みシステムに完全に移植可能です。PKCS11インターフェイスは、ハードウェアモジュールへの暗号化呼び出しを行うための標準化されたAPI セットを提供します。すべてのTPMはRSA鍵とECC鍵をサポートしているため、TPMを使用する場合は、これら2つの非対称アルゴリズムをサポートします。
TPMが利用可能なLinuxまたはWindows上で実行できるPKCS11サンプルアプリケーションも用意しています。TPMが使用できない場合でも、TPMシミュレーターを使用できます(SWTPM.md を参照)。 また、テスト用にベアメタルSTM32 ターゲットへの移植も完了しました。
TPMはすべての秘密鍵を物理的に保護し、署名、検証、共有シークレットなどの非対称操作を実行するときにTPM パフォーマンス向上の恩恵を受けます。TPMへのすべての通信では、AES CFBモードによるパラメータ暗号化機能が使用されます。必要に応じて、PKCS11キーストアは、暗号化されたキーマテリアルを保存するためにTPM NVを使用できます。
TLSサポートを含めた典型的な実装は次の図の様になります:
ご質問がある方はinfo@wolfSSL.jp までお問い合わせください。
原文:https://www.wolfssl.com/how-to-make-your-tpm-talk-pkcs11/