wolfSSL 5.1.1をリリースしダウンロード可能になったことをお知らせします。このリリースには、OpenSSL互換性レイヤーの拡張、サポートするオープンソースプロジェクトのバージョンの更新、ポスト量子暗号の追加、新しいハードウェアへの移植を含んでいます。 また、2つの脆弱性の対策を追加しています。 ECCのwolfSSL SP(single precision)のC実装に大幅なパフォーマンス向上を加えています。ケースによってはパフォーマンスが20%以上向上します。 このパフォーマンス向上は、有効化オプション’–enable-sp’を使用して有効化できます。
新機能の追加
移植
- NXP SE050でCurve25519のサポートを追加
- Renesas RA6M4でSCEプロテクトモードとFSP3.5.0をサポート
- Renesas RX65NとRX72NでTSIP 1.14をサポート
ポスト量子化暗号
- ポスト量子暗号アルゴリズムをApache移植に追加
- NISTポスト量子暗号ラウンド3 FALCON署名スキームをTLS1.3接続に追加
- ポスト量子暗号アルゴリズムFALCONをベンチマークサンプルプログラムに追加
- cURLをポスト量子化対抗オプションでビルドした際のテストを追加
OpenSSL互換レイヤー
- NGINX v1.21.4に対応するよう互換レイヤーを更新
- Apache v2.4.51に対応するよう互換レイヤーを更新
- wolfSSL_CTX_set_options 関数においてSSL_OP_NO_TLSv1_2 フラグを追加
- 次のOpenSSL関数をサポート:
- SSL_CTX_get_max_early_data
- SSL_CTX_set_max_early_data
- SSL_set_max_early_data
- SSL_get_max_early_data
- SSL_CTX_clear_mode
- SSL_CONF_cmd_value_type
- SSL_read_early_data
- SSL_write_early_data
修正点
移植上の修正
- Android wpa_supplicant をKeyStoreとともに使用するビルドでの修正
- TSIPを有効としてビルドする際のCA証明書に関する変数の初期化を修正
- Cryptcell ECCビルド時の障害とRSAをディセーブルにした際のビルド障害を修正
- IoT-SAFEにおける、鍵/ファイル スロットIDサイズの改善、C++コンパイルに関する修正、鍵生成後の公開鍵の取得での修正
演算ライブラリの修正
- TFMライブラリのモンゴメリーリダクションでシステムがメモリ不足となった際の戻り値チェックを修正。この修正で不正なECC署名が生成されるケースを解決
- SP演算ライブラリでsp_gcdに渡されたサイズに対するサニティチェック
- SP演算ライブラリでmod_expで0によるべき乗に対するサニティチェック
- ゼロを扱うエッジケースに対応するようにECC_sqrtmod_prime関数を更新
- TFM演算ライブラリにおいて、アセンブリ言語で記述した際のIntel MULX乗算のキャリーの不正を修正
性能改善/最適化
ビルドオプションと警告
- liboqsを指定したビルドとDHが有効化されていないビルドができなかった障害を修正
- NO_ECC_KEY_ECPORTマクロが指定された場合のビルド障害を修正
- session exportが有効にしてかつHAVE_ENCRYPT_THEN_MACマクロを指定してビルドした場合のビルドエラーを修正
- HAVE_EX_DATAマクロが指定されたビルドの障害を修正
演算ライブラリ
- SPオプションを指定した場合に、ECC(P256とP384)のモンゴメリーリダクションのC言語実装のパフォーマンスを改善。加えてSP ARM64への実装でECC(P384)のパフォーマンスを改善
- SPオプション指定で被除数の長さでの除算のケースを扱えるよう改善
- SPオプション指定で古いGCCコンパイラで使用される乗除算用lo/hi レジスタの割り付け処理を改善
脆弱性
- [重要度:低] wolfSSLを使っているクライアント側において本来処理してはいけないClient Helloパケットを処理することでDoS攻撃を受ける潜在的な脆弱性がありました。これは中間者攻撃を受けたTLS1.2あるいはそれ以下の接続を使用している場合にのみ影響があります。この件を報告していただいたJames Henderson, Mathy Vanhoef, Chris M. Stone, Sam L. Thomas, Nicolas Bailleut, Tom Chothia(バーミンガム大学、KU Leuven, ENSRennes)に感謝します。
- [重要度:低] wolfSSLを使っているクライアント側において、セッション再開用キャッシュが満杯となるとセッション再開で障害が発生する脆弱性がありました。これまでのところ、セッション再開を利用したセッションハイジャックはサーバー側のCAが検証されていない接続においてのみ実証されています。サーバーが危険にさらされている状況で、プロキシーを含めてwolfSSLを使用する場合には可能な限り、wolfSSL_get1_session, wolfSSL_SESSION_freeを使用することをお勧めします。それらの関数を使用しない場合には、セッション再開を行うwolfSSLクライアント側ではwolfSSLの最新バージョン(wolfSSL version 5.1.0 以降)に更新することをお勧めします。レポートを提供していただいた英国National Cyber Security Center(NCSC)に感謝します。
変更点のすべてが記載されたチェンジログはwolfSSL ChangeLog で参照できます。
ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。
原文:https://www.wolfssl.com/wolfssl-v5-1-1-release/