wolfSSL バージョン 5.9.0 をリリースしました。wolfSSL 5.9.0 では、耐量子暗号のサポート強化、Rust ラッパーの拡張、新しいハードウェアプラットフォームとの統合、そして多くのセキュリティ脆弱性の修正に重点を置いています。
セキュリティ修正
wolfSSL 5.9.0 には、CRL 解析、TLS 1.3 ECH 拡張処理、ALPNパース、PKCS7 のエンコーディング、パケットスニファ、ARM Cortex-M 上での耐量子暗号実装におけるサイドチャネル攻撃保護メカニズムなど、さまざまな重要度レベルの 15 のセキュリティ脆弱性に対する修正を含んでいます。責任を持って問題を報告してくださったすべての外部研究者の皆様に感謝いたします。各脆弱性の詳細については、wolfSSL脆弱性情報(英語)ページをご覧ください。
新機能:耐量子暗号:SLH-DSA 他
耐量子暗号は、セキュリティ業界において引き続き重要な研究分野となっています。今回のリリースでは、ステートレスハッシュベースデジタル署名規格であるSLH-DSA(FIPS 205)を追加しています。これにより、wolfSSLはML-DSAおよびFALCONに加え、NISTの耐量子デジタル署名規格3つすべてに対応しました。
SLH-DSAは、格子問題の難しさに頼ることなく強力なセキュリティ保証を提供するステートレスハッシュベース署名方式です。格子ベースのアプローチにとらわれず、耐量子ストラテジーを多様化したい導入環境にとって、代替となる署名基盤を提供します。今回の追加により、wolfSSLはNIST PQC署名ポートフォリオ全体(ML-DSA(FIPS 204)、FALCON、SLH-DSA(FIPS 205))に加え、特殊なユースケース向けにステートフルハッシュベース方式であるLMS/HSSおよびXMSS/XMSS^MTにも対応しました。
SLH-DSAに加え、今回のリリースでは既存のPQCスタック全体にわたって様々な改善を加えています。
・ML-DSAの改善:WOLFSSL_DILITHIUM_SMALL使用時のML-DSA検証に関する不具合修正、no-mallocビルドのサポート強化、ML-DSA鍵操作におけるPKCS#11統合など、複数の不具合修正
・ML-KEMの改善:no-mallocビルド、静的メモリ処理、DTLS 1.3クッキーおよびClientHelloフラグメント処理、ハイブリッド/個別ML-KEMレベルのテストカバレッジ拡大など、不具合修正とセキュリティ強化
・Cortex-MにおけるPQCのフォールトインジェクション対策強化:ARM Cortex-M上のML-KEMおよびML-DSA実装に対する新たな保護機能を追加し、特にKeccakベースのシード拡張を標的としたフォールトインジェクション攻撃に対する防御を強化
・WOLFSSL_NO_MALLOC PQC全般のサポート:no-mallocに関する広範な改善により、組み込み環境におけるPQCアルゴリズムの利用性を向上
・SLH-DSAおよびFALCON鍵タイプの検出に関する修正:SLH-DSA(SPHINCS+)およびFALCON署名アルゴリズムの実装における鍵バリアント識別ロジックを修正
そのほかの新機能
・OCSPレスポンダーAPI:wolfSSLがOCSPレスポンダーとして機能できるようになりました。証明書ステータス応答を提供するための新しいAPIとサポートインフラストラクチャを追加し、wolfSSLはTLSクライアントおよびサーバー以外のPKIインフラストラクチャの役割でも使用可能に(PR 9761)
・AES CryptoCB鍵インポート:暗号化コールバックインターフェースを介したAES鍵インポートのサポートを追加しました。これにより、wolfSSLのコールバックフレームワークを介して外部で管理されているAES鍵をより簡単に使用可能に(PR 9658)
・RNGバンク機能:新しいwc_rng_new_bankref() APIにより、複数のwolfCryptコンテキストでシード済みのRNGプールを共有できるようになり、実行時のシードの繰り返しによるオーバーヘッドが削減されます。これは、リソース制約のある組み込みシステムで特に役立ちます (PR 9616)
Rustラッパーの拡張
wolfSSLのRustラッパーは今回のリリースで大幅に拡張され、FIPS準拠と多数の新しい暗号プリミティブへの対応を追加しました。
Dilithium/ML-DSA、ChaCha20-Poly1305、Curve25519、BLAKE2、LMS、ML-KEM用の新しいモジュールを追加、また、RSA、ECC、HASH-DRBG、HMAC-BLAKE2、XChaCha20-Poly1305についても改善を行い、オプションのヒープおよびデバイスIDパラメータのサポート、基盤となるCビルドオプションに基づく条件付きコンパイルも追加しています。
TLS/DTLSの改善
TLS 1.3では、鍵交換にBrainpool曲線をサポートしました(PR 9701)。DTLSの再送信処理を改善し、クライアント側とサーバー側の両方でTLSメッセージの順序チェックを強化しています。 TLS 1.3およびTLS 1.2のFinishedメッセージにおけるMACとハッシュの比較も強化しています。その他の改善点としては、拡張されたAIA(Authority Information Access)インターフェース、ECH(Encrypted Client Hello)処理の改善、フラグメンテーション、セッションチケットの有効期間検証、QUICトランスポートパラメータ処理における様々な小規模な堅牢性向上修正などが挙げられます。
カーネルモジュールの更新
Linuxカーネルモジュールは、Tegraカーネル向けに様々な修正と機能強化を受け、オフラインFIPSハッシュ計算のサポートも含んでいます。FreeBSDカーネルモジュールは、このリリースでFIPSサポートとx86ハードウェア暗号化アクセラレーションの両方を獲得し、wolfCryptのカーネルモードにおける動作環境の適用範囲を拡大しました。
ポーティングとハードウェア統合
バージョン5.9.0では、ルネサスSK-S7G2ボード、STM32 HMACハードウェアアクセラレーション、STM32G0ハードウェア暗号化など、新たなプラットフォームサポートを追加しました。Thumb2 AESおよびSPアセンブリの最適化も追加または修正し、wolfssl_tls_sockサンプルアプリケーションにZephyr 4.1以降との互換性を加えています。
PKCSの改善
このリリースでは、PKCS7 ECC Raw Signコールバックのサポート、SignedDataに対するRSA-PSSのサポート、PKCS7 EnvelopedData KTRIに対するRSA-PSS証明書のサポートを追加しました。また、PKCS#11を介したML-DSAサポートの拡張に加え、PKCS7の解析に関するいくつかの修正も含まれています。
テストとCIの改善
テストカバレッジが拡張子、特にPQCとCMakeビルドに重点を置きました。CIテストマトリックスには、rng-tools 6.17、openldap 2.6.9、bind 9.20.11を追加しました。新しいTLS Anvil相互運用性テストワークフローを追加し、高負荷なCI実行時のテストポートの衝突を解消するために、ステートフルなポートトラッキングメカニズムを実装しています。
変更点の詳細については、wolfSSLに同梱されている ChangeLog.md をご確認ください。
最新リリースのダウンロードはダウンロードページから行えます。
ご質問やお問い合わせは info@wolfssl.jpまでお寄せください。
