wolfSSL v5.0.0 をリリースしました

wolfSSL 5.0.0をリリースしダウンロード可能になったことをお知らせします。本リリースには機能追加、不具合修正、改善/最適化と脆弱性の修正を含んでいます。このリリースはFIPS140-3への対応に同期してメジャーバージョンを5としています。

新機能

新製品

  • FIPS 140-3  現在、ラボテスト、コードレビュー、最終CMVP検証が進行中です。
    • 連邦情報処理標準(FIPS)140-3は、連邦システム内の機密データまたは貴重なデータを保護するための必須の標準です。 FIPS 140-3は、FIPS 140-2の段階的な進歩であり、ISO 19790:2012およびISO 24759:2017仕様で標準化されています。

ポスト量子化

  • TLS 1.3グループとしてのNISTラウンド3 KEMのOQS(liboqsバージョン0.7.0)実装のサポート –with-liboqs
  • NIST ECCグループとOQSグループのハイブリッド化
  • レガシーNTRUとQSHを削除
  • 量子力学的に安全なグループが互換性レイヤーで利用可能に

Linux カーネルモジュール

  • FIPS 140-3の完全サポート、カーネル内パワーオンセルフテスト(POST)および条件付きアルゴリズムセルフテスト(CAST)
  • FIPS用の位置に依存しないカーネル内wolfCryptコンテナ –enable-linuxkm-pie
  • PKアルゴリズム(RSA、ECC、DH、DSA)およびAES / AES-GCMでのベクトル化されたx86アクセラレーション
  • 割り込みハンドラーでのベクトル化されたx86アクセラレーション
  • Linuxネイティブモジュールの署名
  • SSL/TLSとCrypto APIが他のカーネルモジュールから呼び出し可能に
  • LTSカーネル行@のサポート: 3.16, 4.4, 4.9, 5.4, 5.10
  • KCAPI: 暗号化のためのlibkcapiの利用をサポート

OpenSSL互換レイヤーの追加

  • ポーティング
    – Add support for libssh2
    – Add support for pyOpenSSL
    – Add support for libimobiledevice
    – Add support for rsyslog
    – Add support for OpenSSH 8.5p1
    – Add support for Python 3.8.5

 

  • API/構造体

– ERR_lib_error_string
– EVP_blake2
– wolfSSL_set_client_CA_list
– wolfSSL_EVP_sha512_224
– wolfSSL_EVP_sha512_256
– wc_Sha512_224/2256Hash
– wc_Sha512_224/256Hash
– wc_InitSha512_224/256
– wc_InitSha512_224/256_ex
– wc_Sha512_224/256Update
– wc_Sha512_224/256FinalRaw
– wc_Sha512_224/256Final
– wc_Sha512_224/256Free
– wc_Sha512_224/256GetHash
– wc_Sha512_224/256Copy
– wc_Sha512_224/256SetFlags
– wc_Sha512_224/256GetFlags
– wc_Sha512_224/256Transform
– EVP_MD_do_all and OBJ_NAME_do_all
– EVP_shake128
– EVP_shake256
– SSL_CTX_set_num_tickets
– SSL_CTX_get_num_tickets
– SSL_CIPHER_get_auth_nid
– SSL_CIPHER_get_cipher_nid
– SSL_CIPHER_get_digest_nid
– SSL_CIPHER_get_kx_nid
– SSL_CIPHER_is_aead
– SSL_CTX_set_msg_callback
– a2i_IPADDRESS
– GENERAL_NAME_print
– X509_VERIFY_PARAM_set1_ip
– EVP_CIPHER_CTX_set_iv_length
– PEM_read_bio_RSA_PUBKEY
– i2t_ASN1_OBJECT
– DH_set_length
– Set_tlsext_max_fragment_length
– AUTHORITY_iNFO_ACCESS_free
– EVP_PBE_scrypt
– ASN1_R_HEADER_TOO_LONG
– ERR_LIB
– X509_get_default_cert_file/file_env/dir/dir_env() stubs
– SSL_get_read_ahead/SSL_set_read_ahead()
– SSL_SESSION_has_ticket()
– SSL_SESSION_get_ticket_lifetime_hint()
– DIST_POINT_new
– DIST_POINT_free
– DIST_POINTS_free
– CRL_DIST_POINTS_free
– sk_DIST_POINT_push
– sk_DIST_POINT_value
– sk_DIST_POINT_num
– sk_DIST_POINT_pop_free
– sk_DIST_POINT_free
– X509_get_extension_flags
– X509_get_key_usage
– X509_get_extended_key_usage
– ASN1_TIME_to_tm
– ASN1_TIME_diff
– PEM_read_X509_REQ
– ERR_load_ERR_strings
– BIO_ssl_shutdown
– BIO_get_ssl
– BIO_new_ssl_connect
– BIO_set_conn_hostname
– NID_pkcs9_contentType

脆弱性対応

本リリースには2つの脆弱性対応を含んでいます。

  • [重要度:低]悪意を持って作成された鍵で特定のq値が使用された場合、DSA署名の作成でハングする – DSA鍵が無効なq値である1または0でデコードされ署名の作成に使用された場合、wolfSSLがハングします。 DSAで署名を作成していて、外部ソースから提供された鍵を使用しているユーザーが影響を受けます。
  •  [重要度:低]証明書に名前の制約があり、複数のサブジェクトの別名を持つ場合の誤った証明書検証 – 証明書に複数のサブジェクト代替名が使用されている場合、以前のバージョンのwolfSSLは証明書を誤って検証する可能性がありました。 複数の代替名と名前の制約を持つ証明書を検証するユーザーは、証明書検証コールバックを使用してこのケースをチェックするか、wolfSSLをこのバージョン5.0.0に更新することを推奨します。Luiz Angelo Daros de Luca氏の報告に感謝します。

その他

  • KCAPI:暗号化にlibkcapiを使用するためのサポートを追加(Linuxカーネル)
  • –with-max-rsa-bits= および –with-max-ecc-bits=  の構成オプション
  • keilのためのSP ARMM Thumのサポートとパフォーマンス改善
  • WOLFSSL_VERIFY_POST_HANSSHAKE検証モードのサポートを追加
  • PKCS#11: PKCS #11ライブラリとの静的リンクをサポート –enable-pkcs11=static  LIBS=-1
  • wolfCLU製品で使用するビルドオプション –enable-wolfcluを追加
  • X9.42ヘッダーをサポート 例:”BEGIN X9.42 DH PARAMETERS”
  • 代替証明書チェーン機能を有効にしてwolfSSLを構成するための –enable-altcertchainを追加
  • ASN.1ヘッダーなしでRSA公開鍵を取得できるようパブリックAPI wc_RsaKeyToPublicDer_exを追加(seq + n + eのみをかえすことが可能)
  • CMakeビルドにSNI及びTLSxオプションを追加

 

変更点の完全なリストについては、wolfSSLにバンドルされているChangeLog.mdを確認するか、GitHubのページ(https://github.com/wolfSSL/wolfssl)を参照してください。

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。
原文:https://www.wolfssl.com/wolfssl-v5-0-0-release/