WolfSSL sucks too, so now what?
Hacker News
This article discusses the discovery of vulnerabilities in WolfSSL, a popular TLS library, and questions the implications for developers and the broader security landscape.
Hacker News
This article discusses the discovery of vulnerabilities in WolfSSL, a popular TLS library, and questions the implications for developers and the broader security landscape.
AI 生成摘要
這篇文章討論了在流行的 TLS 函式庫 WolfSSL 中發現的漏洞,並質疑其對開發者和更廣泛安全領域的影響。
本文源於一位開發者在 FreeBSD 上使用 WolfSSL 驅動 HAProxy 時遭遇的技術困境。作者指出 WolfSSL 在處理 TLS 1.3 的「中間設備相容模式」時,並未嚴格遵守 RFC 8446 規範,而是將此功能硬編碼於編譯選項中,導致與 Erlang/OTP 等預設開啟相容模式的客戶端連線失敗,進而引發對現有 TLS 函式庫可靠性的質疑。
在 Hacker News 的討論中,社群對此事的看法呈現兩極分化。一部分討論聚焦於技術層面,探討 TLS 1.3 為了相容舊有網路設備而設計的各種變通方案。有觀點認為 TLS 1.3 本質上是一個全新的協議,卻為了穿透那些只認得 TLS 1.2 的中間設備而偽裝成舊版,這種「恐怖谷」式的設計本身就是混亂的根源。部分留言者建議,與其在 TCP 443 端口上玩弄偽裝技巧,不如像 QUIC 協議改用 UDP 那樣,直接定義新的端口或版本號,徹底擺脫歷史包袱。
關於替代方案,社群展開了激烈的辯論。雖然 Rustls 被多次提及作為安全且現代的選擇,但資深開發者指出 Rustls 仍需依賴底層的密碼學原語,而目前支援的 AWS-LC 或 Ring 依然源自被作者詬病的 Amazon 或 Google 系分支。此外,儘管 C 語言在處理複雜協議邏輯時容易出錯,但在編寫需要「恆定執行時間」以防止側信道攻擊的密碼學原語時,C 與組合語言仍有其不可替代性。其他如 BearSSL、MbedTLS 或 LibreSSL 也被提及,但大多面臨開發停滯、API 變動頻繁或功能不全等問題,顯示出目前加密函式庫生態圈確實缺乏完美的通用解法。
最激烈的爭論則圍繞在「開源維護者與使用者之間的義務」上。許多留言者批評原作者在 GitHub 上的態度過於激進且缺乏誠信。維護者要求將冗長且混雜的討論整理成一份簡潔、符合 RFC 規範的全新 Issue,這在軟體工程中是合理的管理要求,但原作者卻將此解讀為拒絕修復。社群中不少維護者感嘆,這種將開源專案視為「免費客服」的心態是導致開發者倦怠的主因。他們認為,即便 WolfSSL 具有商業授權背景,對於非付費使用者的回報,維護者已盡到溝通義務,原作者不應在未配合整理資訊的情況下,便撰寫帶有情緒性的文章抨擊專案。
在討論過程中,社群成員分享了幾個值得關注的專案與資源。針對尋求 Rust 安全性但需相容 OpenSSL 介面的使用者,有人推薦了 rustls-openssl-compat 專案。在嵌入式或輕量化需求方面,除了被提及的 BearSSL 外,還有 DigiCert 開源的 TrustCore (NanoSSL) 可供參考。此外,針對開源維護的倫理與界線,留言中也引用了 Rich Hickey 關於開源權利義務的著名論述,以及一份關於軟體維護條款的草案,用以釐清維護者與使用者之間的關係。