OpenSSL 4.0.0 リリース
(github.com/openssl)- 多数の新機能と非互換な変更を含む大規模リリース
- ECH(Encrypted Client Hello, RFC 9849) サポートを内蔵し、TLSクライアントのプライバシー保護のための別実装が不要
- SSLv2 Client Hello および SSLv3、engine コードを完全削除し、レガシープロトコルとの決別を確定
- RFC 8998 ベースの SM2 署名(
sm2sig_sm3)、鍵交換(curveSM2)、ポスト量子グループcurveSM2MLKEM768のサポートを追加 - cSHAKE(SP 800-185)、ML-DSA-MU ダイジェスト、SNMP KDF、SRTP KDF など新しい暗号機能を追加
- TLS 1.2 で RFC 7919 ベースの FFDHE 鍵交換 のネゴシエーションをサポート
- FIPS モジュールのインストール時に
-defer_testsオプションで FIPS 自己テストの遅延実行 が可能 - 多数の API 関数シグネチャに
const修飾子を追加、ASN1_STRINGの不透明化など API をモダナイズ X509_cmp_time()などの deprecated 関数はX509_check_certificate_times()への置き換え を推奨PKCS5_PBKDF2_HMACの FIPS プロバイダー使用時に 下限値チェックを強制、CRL 検証に追加のチェック項目を強化- deprecated となったカスタム
EVP_CIPHER、EVP_MD、EVP_PKEYメソッド、固定 SSL/TLS バージョン関数、c_rehashスクリプト、BIO_f_reliable()など レガシー機能を大規模に整理 darwin-i386、darwin-ppcなど 旧式 Apple ビルドターゲットを削除- Windows で 静的/動的 VC ランタイムリンクの選択 をサポート
- 今回のリリースは OpenSSL の セキュリティと標準互換性強化に向けた転換点
2件のコメント
1.1.1を使っていた頃が昨日のことのようだ
Hacker Newsの意見
ついに Encrypted Client Hello(ECH) のサポートが追加されたことへの喜びが示されている
HAProxyブログのSSLスタック現況の記事を引用し、もはや v3を使うべきではない と強調している
以前はOpenSSLを使うと、QUIC実装も強制的にOpenSSLのスタックを使わなければならなかった
QUICはUDP上にTCPの機能を再実装したプロトコルで、HTTP/3の基盤 となる
しかしOpenSSLのQUIC実装が気に入らなくても他に選択肢がなかった
たとえばcurlがOpenSSLにリンクされていれば、curlも自動的にOpenSSLのQUICを使わなければならなかった
これについてcurlのDaniel Stenbergが批判的なブログ記事を書いたと紹介している
OpenSSLの現状を問う質問に対し、かつての Heartbleed事件 以降、セキュリティ面は大きく改善されたと言及している
しかし ソフトウェア品質 はむしろ後退したという評価が多い
OpenSSL 3.0の設計は性能面で後退し、pyca/cryptographyのような主要プロジェクトがOpenSSLを 置き換えようとする動き を見せている
OpenSSL 3の中核演算は1.1.1よりはるかに遅く、HAProxyのSSLスタック分析記事とPython cryptographyチームの声明を引用している
OpenSSL 3では多くの要素を動的に変更できるようにした結果、ロック(lock) が多用され、APIもOSSL_PARAM方式に変わって性能低下とコード複雑化を招いたと説明している
OpenSSL 3と比べると、今回の移行は非常に スムーズに進んだ と述べている
Fedoraでは「Engines」の削除を除けば大きな問題なく、ほとんどの依存関係が修正された
手動の opt-out手続き がますます大きな摩擦要因になっていると指摘している
コミュニティの反発があって初めてデフォルト設定が改善される現実を批判し、信頼は築くのが難しく、失うのは簡単だ という点を強調している
「suckerpinch video」のタイミングに合わせてリリースされたようだと冗談交じりに反応している
非専門家として、今回の変更はかなり きれいな整理 に見えるが、互換性破壊は常に負担だと述べている
OpenSSL 3.xがあまり好まれなかった記憶を思い出している
メジャーバージョンアップなので遅くなるのではと心配しているが、実際のベンチマークでは平均 10%程度の性能低下 にとどまったという
インターネット環境全体で見れば大きな問題ではないとも付け加えている
コードで constの使用が増えた点 を歓迎している
組み込み環境では自分でconstを追加しなければならないことが多かったが、今後はそれが標準的に適用される方向なのが気に入っているという
最後に、Linuxディストリビューションのパッケージマネージャーたちの悲鳴 を想像して冗談を飛ばしている