OpenSSL 4.0.0は、長時間廃止予定だった複数の機能を削除し、暗号化クライアントハローのサポートを追加します。さらに、古いバージョンに対して構築されたアプリケーションではコードの更新が必要なAPIレベルの変更を導入しています。

SSLv3、SSLv2クライアントハロー、そしてエンジンが廃止
SSLv3のサポートが削除されました。このプロトコルは2015年に廃止予定となり、OpenSSLはバージョン1.1.0以降の2016年からデフォルトで無効にしていました。SSLv2クライアントハローのサポートも削除されています。
外部の暗号化ハードウェアとソフトウェアの実装を統合するメカニズムを提供していたエンジンAPIは完全に削除されました。no-engineビルドオプションとOPENSSL_NO_ENGINEマクロは常に存在するようになりました。廃止予定のカスタムEVP_CIPHER、EVP_MD、EVP_PKEY、EVP_PKEY_ASN1メソッドも、廃止予定の固定SSL/TLSバージョンメソッド関数と、エラー状態関数ERR_get_state()、ERR_remove_state()、ERR_remove_thread_state()とともに削除されました。
暗号化クライアントハローと量子耐性の追加
このリリースはRFC 9849に基づいて暗号化クライアントハロー(ECH)のサポートを追加します。これによりクライアントハローメッセージを暗号化でき、受動的な観察者がクライアントが接続しているサーバー名を読み取ることができなくなります。
量子耐性の面では、このリリースはハイブリッド鍵交換グループcurveSM2MLKEM768、ML-DSA-MUダイジェストアルゴリズム、NIST SP 800-185に基づくcSHAKE関数、およびRFC 7919に基づくTLS 1.2での交渉可能なFFDHE鍵交換のサポートを追加します。
統合者に影響するAPIと動作の変更
ASN1_STRINGは不透明になりました。X.509処理に使用されるものを含む、API関数全体のシグネチャには、適用可能な場所にconst修飾子が含まれるようになりました。関数X509_cmp_time()、X509_cmp_current_time()、X509_cmp_timeframe()はX509_check_certificate_times()に置き換えられ、廃止予定となりました。
libcryptoはatexit()を介してグローバルに割り当てられたデータをクリーンアップしなくなりました。OPENSSL_cleanup()はグローバルデストラクタで実行されるか、デフォルトでは実行されません。BIO_f_reliable()は置換なしで削除されました。バージョン3.0のリリース以降、これは機能していません。
X509_V_FLAG_X509_STRICTが設定されている場合、AKID検証チェックが強制され、CRL検証プロセスは追加チェックを受けるようになりました。FIPSプロバイダーでPKCS5_PBKDF2_HMACを使用する場合、下限チェックが強制されるようになりました。
ビルドとツーリングの変更
RFC 8422に基づくTLSの廃止予定楕円曲線のサポートと明示的なEC曲線のサポートは、デフォルトではコンパイル時に無効になっており、各を再度有効にするための設定オプションが利用可能です。darwin-i386およびdarwin-ppcバリアントのビルドターゲットは削除されました。
c_rehashスクリプトはopenssl rehashに置き換えられ削除されました。FIPS自己テストはopenssl fipsinstallの-defer_testsオプションを使用して遅延させることができるようになりました。Windowsでは、このリリースは静的と動的Visual C++ランタイムリンケージの間で選択するサポートを追加しています。
OpenSSL 4.0.0はGitHubで利用可能です。
翻訳元: https://www.helpnetsecurity.com/2026/04/14/openssl-4-0-0-released/