新增 DTLS 1.3 支援及其現階段限制

OpenSSL 4.1.0 正式納入對 DTLS 1.3 (RFC 9147) 的支援。社群評論指出,DTLS 1.3 相較於舊版 DTLS 1.2 在效率與架構簡潔性上是重大改進,並認為 OpenSSL 終於釋出該支援是好事。

然而,官方發布說明中列出了四項已知問題 (Known Issues),顯示該功能尚未完全穩定。例如,當收到 DTLS 1.3 KeyUpdate 訊息時,所有其他未完成的握手後記錄會從重傳緩衝區中被丟棄,導致若原始傳輸遺失,這些記錄將不會被重新傳送。

此外,在處理非阻塞連線或永久接收失敗時,錯誤代碼的回報可能存在誤導性。例如,可重試的寫入失敗可能被回報為 SSL_ERROR_SYSCALL 而非正確的 SSL_ERROR_WANT_WRITE,這可能導致應用程式錯誤地關閉仍可使用的連線。官方表示修復工作正在進行中,預計將在未來的版本中解決。

後量子加密演算法與特定硬體架構的效能優化

OpenSSL 4.1.0 針對 ML-DSA 和 ML-KEM 演算法進行了優化。具體包括在 ppc64le 架構上新增優化的 ML-DSA 和 ML-KEM NTT 運算;在 x86_64 架構上優化 ML-DSA 操作,並引入 AVX-512 優化的 SHAKE x4 運算以加速 ML-DSA。

在 PPC64LE 架構上,新增了 ML-DSA 和 ML-KEM 的 NTT (Number Theoretic Transform) 運算最佳化。針對 x86_64 架構,則優化了 ML-DSA 的操作,並引入了 AVX-512 指令集來加速 SHAKE x4 運算。

除了後量子演算法,傳統加密方面也有改進。x86_64 架構上的 AES-CBC 解密操作獲得了 AVX-512 和 VAES (Vectorized Advanced Encryption Standard) 的優化支援,這將顯著提升相關加解密任務的處理速度。

移除舊版 Windows 平台支援與建置選項調整

OpenSSL 4.1.0 從設定中移除了 Windows Itanium (VC-WIN64I) 和 Windows CE (VC-CE) 的建置目標。社群評論指出,雖然 Windows Server 2008 R2 對 Itanium 的支援持續到近期,但這些平台已逐漸退出主流開發視野。

同時,Configure 指令中的 no-ecdsa 和 no-ecdh 選項已被移除,因為這些選項實際上並未真正停用相關實作。開發者現在應使用 no-ec 選項來統一停用所有橢圓曲線 (Elliptic Curve) 支援。

建置系統也新增了 VC-WIN32-MSVC2013 和 VC-WIN64A-MSVC2013 目標,旨在提供內部函數以彌補 MSVC 2013 編譯器在 C99 標準支援上的缺口。

工具鏈依賴變更與社群反應

tsget 公用程式現在改用 Net::Curl::Easy (來自 Net-Curl CPAN 發行版) 取代已被放棄維護的 WWW::Curl::Easy。依賴 tsget 的使用者在升級前必須先安裝 Net::Curl::Easy,否則可能導致工具無法運作。

社群討論中,有開發者指出 OpenSSL 仍是少數仍強制要求 Perl 環境的主要軟體專案之一,這對於現代開發工作流構成一定門檻。另有評論質疑此版本是否未能解決先前在 3.0 版本引入的過度效能回退問題,並認為部分用戶已開始轉向其他 SSL/TLS 堆疊實作。

除了上述變更,4.1.0 還新增了對 RFC 8701 GREASE (Generate Random Extensions And Sustain Extensibility) 的支援、IKEV2 KDF 支援,以及 Elbrus2000 (e2k) 架構的初步支援。