2021 年 11 月の時点で、wolfSSL 軽量 SSL/TLS ライブラリとその基盤となる wolfCrypt 暗号化ライブラリには、NXP SE050 セキュア エレメントのサポートが含まれています。それ以来、SCP03 (セキュア チャネル プロトコル 03) 認証の使用とともに、SE050 との互換性を高めてきました。 最近、wolfSSL 内の SSL/TLS の下で NXP SE050 を使用するためのいくつかの修正を行いました。 ユーザーが TLS の使用を開始する方法を理解できるように、2 つのサンプル クライアント アプリケーションも作成しました。
NXP SE050 の SSL/TLS 使用の修正は、2023 年 2 月の時点で wolfSSL マスター ブランチにマージされており、wolfSSL の次の安定版リリースに含まれる予定です。
wolfSSL TLS ユーザーは、wolfSSL_CTX_use_PrivateKey_Id() API を使用して、特定の鍵 ID で SE050 にある秘密鍵を使用するように wolfSSL に指示できるようになりました。 これにより、wolfSSL_CTX_use_PrivateKey_file() または wolfSSL_CTX_use_PrivateKey_buffer() の呼び出しが置き換えられ、秘密鍵を SE050 内に保存 (およびオプションで生成) できるようにすることで、アプリケーションのセキュリティが強化されます。
#include <wolfssl/ssl.h>
int wolfSSL_CTX_use_PrivateKey_Id(WOLFSSL_CTX* ctx, const unsigned char* id, long sz, int devId);
wolfSSL_CTX_use_PrivateKey_Id() にアクセスするには、wolfSSL を WOLF_PRIVATE_KEY_ID を定義してコンパイルする必要があります。 これは、CFLAGS を介して構成を介して渡すことができます。次に例を示します。
./configure CFLAGS=”-DWOLF_PRIVATE_KEY_ID”
make
sudo make install
SE050 を使用した TLS クライアントのデモ
wolfSSL には、ユーザーが wolfSSL の SSL/TLS 実装の下で SE050 を活用する方法を示す 2 つの新しいサンプル SSL/TLS クライアント アプリケーションを追加してあります。 これらのサンプルプログラムは、NXP EdgeLock SE050 開発キットが接続された Raspberry Pi で簡単に実行できるように設定されています。 利用可能なサンプルプログラムは、SE050 サブディレクトリの下の”wolfssl-examples” GitHub リポジトリに含まれており、次のものが含まれます。
1. wolfSSL SSL/TLS クライアントのサンプルプログラム
このサンプルプログラムでは、SE050 内でサポートされているハードウェア ベースの暗号化を使用する単純な SSL/TLS クライアントを示します。 C 配列/バッファーから証明書と秘密鍵を読み込んで使用します。 SE050 から直接秘密鍵を使用する、より高度なデモについては、次のサンプルプログラムを参照してください。 詳細については、サンプルプログラムの README.md または wolfssl_client.c を参照してください。
2. SE050 の証明書と秘密鍵を使用した wolfSSL SSL/TLS クライアントのサンプルプログラム
このサンプルプログラムでは、SE050 内でサポートされているハードウェア ベースの暗号化を使用する単純な SSL/TLS クライアントを示します。 C 配列/バッファーから SE050 に証明書と秘密鍵を読み込んで使用し、鍵 ID に基づいて、TLS 秘密鍵の SE050 内ですべての秘密鍵操作を実行します。 詳細については、サンプルプログラムの README.md または wolfssl_client_cert_key.c を参照してください。
その他のリソース
NXP SE050 で wolfSSL または wolfCrypt を使用する方法の詳細については、次のリンクのいずれかを参照してください。 wolfSSL 組み込み SSL/TLS ライブラリは、最新の TLS 1.3 および DTLS 1.3 プロトコル標準をサポートし、パフォーマンスとフットプリント サイズが最適化されており、検証と認証の要件 (FIPS 140-3、FIPS 140- 3 (進行中)、CAVP、DO-178C)への近道です。
ブログ: wolfSSLはNXP SE050をサポートしています
ブログ:SCP03を使用したNXP SE050のwolfSSLサポート (英文)
ドキュメント: wolfSSL NXP SE050 サポート (README_SE050.md)(英文)
サンプルプログラム: wolfSSL NXP SE050 のサンプルプログラム (README.md) (英文)
開発キット: NXP EdgeLock SE050 開発キット (英文)
SE050 製品ページ: EdgeLock SE050: Plug & Trust Secure Element Family(英文)
原文:https://www.wolfssl.com/ssltls-support-nxp-se050-wolfssl/