wolfSSL 4.6.0をリリースしました

wolfSSLの新しいバージョンが利用可能になりました! バージョン4.6.0を入手するにはwolfSSLウェブサイトのダウンロードページあるいは、GitHubリポジトリのリリースセクションにアクセスしてください。このリリースでは、多くの技術的な追加が行われました。今後のブログのいくつかは新機能に触れていく予定です。このリリースには、Linuxカーネルモジュールのサポート、Apache httpd TLS 1.3のサポート、NXP DCP(i.MX RT1060 / 1062)暗号コプロセッサーのハードウェアアクセラレーションの追加、SiliconLabsハードウェアのサポートを始めとして多くの新機能が追加されています。

リリースアイテムの完全なリストは、バンドルされているREADME.mdにありますが、注目すべき変更点は次のとおりです。

  • Linuxカーネルモジュール! wolfSSLは、FIPS認証版のLinuxカーネルモジュールのサポートを有効になりました。これは、暗号機能に要望をお持ちのLinuxカーネルモジュール開発者にとってのビッグニュースです! wolfCryptとwolfSSLがLinuxカーネルのモジュールとしてロード可能になり、libwolfsslAPI全体を他のカーネルモジュールにネイティブに提供します。 Linuxで初めて、カーネル内ハンドシェイクが可能とする完全にカーネルに常駐するTLS / DTLSエンドポイントとして、TLSプロトコルスタック全体をモジュールとしてロードできるようになりました。 (–enable-linuxkm、–enable-linuxkm-defaults、–with-linux-source)。詳細については、ブログをご覧ください。
  • 新しいAppleA12Zベンチマーク! AppleのA12Zチップセットで使用するためのビルドテストの追加とインストラクションの更新。詳細を読み、ブログでベンチマークを確認してください。
  • wolfSSL数学ライブラリ! wolfSSL Single Precision Mathライブラリの拡張と、新しい–enable-sp-math-allビルドオプションの追加(より広範なアセンブリサポートが含まれ、より高速になりました)。
  • TLS 1.3の修正と追加!いくつかの追加は、SnifferサポートとApache httpd TLS1.3サポートの追加です。私たちはTLS1.3スニフィングで先導しています。これは、例えば幼い子供たちがコンピューターラボで見ることができるものを保護したい学校などの少数のユーザーにとって重要です。
  • 新しいハードウェアアクセラレーション! NXP DCP(i.MX RT1060 / 1062)暗号コプロセッサーのサポートが追加され、SL SEManagerを使用したSiliconLabsハードウェアアクセラレーションが追加されました。

修正事項


  • Mathライブラリ
    • mp_to_unsigned_bin_lenによる、最大MPより長いバッファーからの範囲外読み出しを修正
    •  fp_read_radix_16の範囲外読み出しを修正
    • H/W によるECCアクセラレーションで、新しいタイミング耐性のあるwc_ecc_mulmod_ex2関数のラッパーを追加するための修正
    • RSA-PSSエンコーディングされたメッセージをハッシュする際のエッジケースを処理
  • OpenSSL互換レイヤー
    • シリアルナンバーを設定するwolfSSL_X509_set_serialNumber関数の修正
    • WOLFSSL_X509 定義下で”これ以前は無効/これ以降は無効”のASN1時刻の設定を修正
    • X509_signにおける発行者名内のコンポーネントの順序の修正
    • DH_compute_keyの修正
    • AES GCMモードの暗号化・復号時の誤ったブロックサイズとAADのバッファリングを修正
    • EVP_KEYの作成時にRNGで失敗した際のミューテックス解放を修正
    • TLS接続の互換性レイヤーBIOでのノンブロッキング使用方法の修正
  • ビルド・コンフィギュレーション
    • WOLFSSL_USER_MALLOCが定義されたカスタムビルドの修正
    • Intel32ビットシステムでのED448コンパイラの警告を修正
    • Curve448を使用する32ビットシステムでCURVE448_SMALLを指定したビルドを行う際の修正
    • IARでSP_Mathを指定してビルドする際の修正
    • Macに対してのみranlib引数を設定するようにCMakeを修正,及び”->”のtypoを修正
    • –enable-wpas = smallを指定してのビルドを修正
    • openssl extraを使用してFIPS Readyのビルドを修正
    • マイクロチップを使用したビルドの修正(min/maxおよび未定義のSHA_BLOCK_SIZE)
    • WindowsでのNO_FILESYSTEMビルドの修正
    • IMX-RT1060におけるSHA-256サポートを修正
    • NO_TFM_64BITを使用したECCキー生成を修正
  • sniffer
    • 静的ECCキーを使用する場合のスニファの修正。 TLS v1.2静的ECCキーフォールバック検出を追加し、タイミングレジスタンスの為に新しいECC RNG要件を修正
    • SNIが有効の場合のProcessClientHello関数で、WOLFSSL_SUCCESSエラーコードを適切に処理するるように修正
    • “certificate”タイプのメッセージにHAVE_MAX_FRAGMENTを使用する際の修正
    • WOLFSSL_SNIFFER_WATCHでビルドする際の未使用の”ret”ビルドエラーを修正
    • myWatchCbおよびWOLFSSL_SNIFFER_WATCHで証明書/キーが見つからないことをエラーとして扱わないように修正
    • TCPの’out-of-range sequence number’ をハンドリングするように修正
    • ECDHを使用する場合のSSLv3の扱いを修正
  • PKCS
    • 復号化/署名または派生用のECCキーを生成するためのPKCS#11の修正
    • 不正な形式のPKCS#7バンドルをPKCS7_VerifySignedData関数で解析するときに内部変数をリセットするための修正
    • 抽出された公開鍵をwc_PKCS7_InitWithCert関数で確認する修正
    • PKCS#7で解凍を使用する場合の内部バッファーサイズの修正
  • その他
    • ガベージコレクションを防ぐために、C#検証コールバック関数を固定
    • ハンドシェイク後に公開鍵が所有され、解放された場合のDH修正
    • TLS1.3初期データパケットの修正
    • 一部のCube HALバージョン関するSTM32の問題とサンプルタイムアウトの修正
    • 二重ロックを防ぐためにmmCAUおよびLTCハードウェアミューテックスロックを修正
    • CRLモニターで潜在的な競合状態を発生する障害を修正
    • 3DESが負の長さを引き起こす可能性のある不正な形式の暗号化キーの修正
    • AES-NIでAES-CTRのパフォーマンス改善

性能改善/最適化


  • 単一精度、大きな整数演算
    • 0が先行する際のmp_radix_size調整
    • SPビルドで暗黙のキャスト警告を解決
    • 結果が固定長のdpに収まらない場合にエラーを返すように、mp_sqrを変更
    • clang使用時のARM64アセンブリの改善(clangがインラインアセンブリコードでの–x29を使用しないようにsp_2048_sqr_8を作り直し)
    • SP mod expが異なる長さの指数をサポートするように変更
    • TFM div:qのサイズの初期値を修正して、クランプがOOB読み取りを行わないように変更
    • –enable-smallstack指定時に多数のスタック深度の改善
    • Base64操作でキャッシュレジスタンスを改善
  • TLS 1.3
    • wolfSSL_peekに読み取りサイズを返す
    • P-521アルゴリズムのマッチングを修正
  • PKCS
    • PKCS#11キールックアップの改善とリファクタリング
    • 秘密鍵からRSA公開鍵に署名してロードするためのPKCS#11の変更
    • PKCS#7 SignedDataを使用前に秘密鍵の有効性を確認するよう変更
    • PKCS#7 VerifySignedDataにおいてコンテンツの長さをバンドルの合計サイズと照合して、大きなmallocを回避
  • OpenSSL互換レイヤー
    • wolfSSL_EVP_CIPHER_block_size関数でより多くの暗号のブロックサイズを追加
    • wolfSSL_OBJ_obj2txt関数で短い名前の代わりに長い名前を返す
    • サポートされているApachehttpdのバージョンを更新するために、OpenSSL互換性関数を追加
    • OpenSSL互換の場合、cipher_names「CCM-8」暗号に「CCM8」バリアントを追加
  • ビルド
    • IAR6.70に対するCortex-MSPASMのサポート追加
    • STMキューブパックのサポート(IDE / STM32Cube)
    • 4ビットテーブルを使用するAES-GCM GMULTにビルドオプション–enable-aesgcm = 4bitが追加
    • XTIMEオーバーライドを可能にするXilinx IDEのアップデート, Xilinx README.md 内のスペルミス修正、Xilinx SDK printf のサポート
    • 全オプションにED448を追加し、ED448チェックキーのnull引数のサニティチェックを追加
    • 全オプションにARC4、3DES、nullcipher、BLAKE2、BLAKE2s、XChaCha、MD2、およびMD4を追加
    • 特定の–disable-オプションを使用して–enable-allおよび–enable-all-cryptoから機能を選択的に削除する機能を追加
    • Windows上でRDSEED と RDRANDにIntel intrinsicsを使用
    • WOLFSSL_NO_CLIENT_AUTHでビルドするオプションを追加
    • wolfSSHの使用に関するビルド要件を更新し、制限を緩和
    • v1.4.56のlighttpdサポートアップデート
    • ファイルをESP-IDFフォルダーにコピーするバッチファイルを追加し、v4.0ESP-IDF使用時の警告を解決
    • –enable-stacksize = verboseの追加で、wolfCryptテストアプリ(testwolfcrypt)の各サブテストのスタック最高水準点を可視化
  • ECC
    • 非一定時間化のSP modinvを使用し、ECC検証のみのパフォーマンスの向上
    • ECC検証中に、使用する前にrとsの検証を追加
    • ECCでは常にsafe addとdblを使用
    • Joye’s double-add ladderを使用し、タイミングレジスタンスのスカラー乗算を変更
    • mp_jacobi関数を更新して、スタックを減らし、ベースECCビルドのパフォーマンスを向上
    • wc_EccPrivateKeyDecode関数でヒープメモリの使用を減らし、wc_ecc_sig_to_rsとwc_ecc_rs_raw_to_sigを改善して、メモリの使用を削減
    • StoreECC_DSA_Sig境界チェックを改善
  • OCSP
    • singleResponseで拡張機能を処理するためのOCSPの改善
    • 複数の証明書に対するOCSP要求/応答のサポート
    • OCSPステープリング応答を要求するために追加されたOCSPマストステープルオプション
    • id-pkix-ocsp-nocheck拡張機能のサポートを追加
  • Misc
    • ECCおよびRSA、PKCS#7、3DES、EVP、およびBlake2b操作用にコードカバレッジを追加
    • DTLS で書き込み時にMTUを確認
    • ハッシュ署名の選択をリファクタリングし、マクロWOLFSSL_STRONGEST_HASH_SIG(最強のハッシュを選択)とWOLFSSL_ECDSA_MATCH_HASH(ECC曲線に一致するハッシュを選択)を追加
    • クライアントから許可された厳密な証明書バージョン、TLS 1.2 / 1.3は、バージョン3より前のクライアント証明書を受け入れることができません
    • wolfSSL_get_ciphers_compat()、再ネゴシエーション表示やクォンタムセーフハイブリッドなどの偽のインジケーター暗号をスキップ
    • セッションチケットを解析するときは、TLSバージョンをチェックして、バージョン互換かどうかを確認
    • 整数型の無効なASN1パディングの追加のサニティチェック
    • MacおよびIntelアセンブリビルドでChaCha20ストリーミング機能を追加
    • –enable-oldtlsオプションをオンにしたスニファビルド

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。

原文:https://www.wolfssl.com/wolfssl-4-6-0-now-available/