◎本文翻譯自 ars technica,原作者為 Jon brodkin︰
https://arstechnica.com/information-technology/2014/04/openssl-code-beyond-repair-claims-creator-of-libressl-fork/
OpenBSD 創辦人 Theo de Raadt 建立了 OpenSSL 的分支,OpenSSL 就是包含眾所皆知 Heartbleed 安全漏洞的知名開源加密軟體程式庫。儘管被許多世界上最大且最富有公司運用在網站與產品中,OpenSSL 卻飽受缺少資金與程式碼貢獻之苦。
鑑於 OpenSSL 早已運用在數十萬網站伺服器中,分支 OpenSSL 的決定勢必引發爭議。被問到為何要重頭開始,而不協助改善 OpenSSL,de Raadt 表示現存的程式實在太亂了。
在電郵中,de Raadt 對媒體表示,他們的團隊在一周內移除了大半的 OpenSSL 源碼樹。留下的就像剩菜一般。開源模式有賴於能夠讀懂程式碼的人們。清楚明白是一大關鍵。而這並不是一份清晰的程式碼基礎,因為他們的社群顯然不關心清晰度。這個決定並不是我下的,它是自然而然出現的。
LibreSSL 程式碼基礎位於 OpenBSD.org,專案由 OpenBSD 基金會與 OpenBSD 專案提供金援。LibreSSL 有個陽春的網站,而且顯然是故意弄的一點都不吸引人。
該網站表示,這個網頁是費心地設計來惹怒網頁時尚人士,請捐款以停止 Comic Sans 字體與閃爍標籤。在解釋分支決定時,該網站連接到 Twisted Sister 歌曲「絕不忍耐」 (We're not gonna take it) 的 YouTube 影片。
LibreSSL 最初是為 OpenBSD 所建立,在程式碼與資金穩定之後,將支援多種作業系統。OpenBSD 作業系統本身即為在 1995 年創造的 NetBSD 分支。
被問到說 OpenSSL 包含留下的剩菜是什麼意思時,de Raadt 表示有數千行的 VMS 支援。數千行的古老 WIN32 支援。今天,Windows 已經有類似 POSIX 的 API,不再需要針對 sockets 有特別的處置。數千行的 FIPS 支援,更是會幾乎自動地調降密碼。
De Raadt 說,這裡有數千行 API,OpenSSL 團隊早在 12 年前就想揚棄,不過卻依然存在。他說,他的團隊移除了 9 萬行程式碼。即使歷經這些更動,該程式碼依然具備 API 相容性。我們整個 ports tree(有 8700 個應用程式)在這些更動後,還是可以編譯並且運作。
OpenBSD 團隊是在一周前開始投入 LibreSSL。OpenSSL 軟體基金會總裁 Steve Marquess 拒絕對 LibreSSL 表示意見。Marquess 表示還沒有機會了解他們的工作,因此不希望加以評論。
在一篇部落格文章中,Marquess 描述了 OpenSSL 在取得金援與程式碼貢獻上的困境。Marquess 寫到,我在看著你,Fortune 一千大企業。那些把 OpenSSL 納入你的防火牆、應用設備、雲端、財務、安全產品,加以販售獲利或使用來保障你內部架構與通訊的人。那些不必花錢設置自家團隊來撰寫加密程式,只想在不知道如何使用時,向我們索求免費顧問服務的人。以及那些從未動過一根手指貢獻開源社群的人。你自己知道我在講你。
對於 Heartbleed,Marquess 表示,神奇的不是少數過勞自願者看漏了這個臭蟲,而是為何這種錯誤並非經常發生。
可能暴露用戶密碼與保障網站之用的私有加密金鑰的 Heartbleed 漏洞,被一名自願貢獻者意外地加入程式碼中,並且在 2 年內都沒被發現。
Comments
又因為 openssl 缺近正式文件,我看的文件其實就 是源碼。
openssl的源碼缺乏文件( 註解)、結構混雜、名稱不統一、 難以閱讀(當然也難以維護)。
我真TM認同「openssl 程式碼沒法修了」這句話。