LibreSSL
LibreSSL是OpenSSL加密軟件庫的一個分支,是一個安全套接層(SSL)和傳輸層安全(TLS)協議的開源實現。在OpenSSL爆出心臟出血安全漏洞之後,一些OpenBSD開發者於2014年4月創立了LibreSSL,[3][4][5]目標是重構OpenSSL的代碼,以提供一個更安全的替代品。[6]LibreSSL復刻自OpenSSL庫的1.0.1g分支,它將遵循OpenBSD基金會在其他項目所使用的安全指導原則。[7]
開發者 | OpenBSD項目組 |
---|---|
首次發布 | 2.0.0 / 2014年7月11日 |
當前版本 |
|
源代碼庫 | github |
編程語言 | C語言、匯編 |
操作系統 | OpenBSD、FreeBSD、NetBSD、Linux、HP-UX、Solaris、OS X、Windows and others[2] |
類型 | 安全性加密函式庫 |
許可協議 | Apache許可證1.0 原版BSD許可證 ISC許可證 部份為公有領域 |
網站 | www |
歷史
在OpenSSL爆出心臟出血漏洞後的一周之內,OpenBSD開發團隊便決定自行維護一個OpenSSL分支。開發團隊於2014年4月11日註冊libressl.org域名,該項目於2014年4月22日公布。
OpenBSD開發團隊隨即開始清理OpenSSL的代碼,在第一周,LibreSSL開發團隊刪去了90000多行的代碼。[8][9]一些陳舊或無用代碼被移除,同時對一些比較罕見的操作系統的支持也被移除。LibreSSL最初的目標平台是OpenBSD 5.6,但當代碼穩定之後,還移植至其他平台。[10]截至2014年4月[update],該項目仍在尋求「穩定的」外部資金支持。[9]
變化詳情
內存相關
一些較顯着和重要的變化包括更換自定義的內存存取調用為標準函數(例如strlcpy、calloc、asprintf、reallocarray等)。[11][12]這有助於在將來用更先進的內存調試器,或通過觀察程序的崩潰情況來發現緩存溢出等錯誤。CVS提交日誌中也記錄了對潛在雙重釋放內存的修復(包括空指針值的顯式分配)。[13]
加密算法
原本不安全的種子生成方法(由內核原生提供)被移除,以確保隨機數種子是通過安全的隨機數生成器產生的。又新加入了一系列算法,包括ChaCha20-Poly1305等。
其他改動
加入了的完整性檢查,以檢查長度參數、無符號到有符號變量的賦值、指針值/方法返回值等數據的有效性。啟用了一些使之更加安全的編譯器選項和標誌(-Wuninitialized,-Werror等),這有助於發現潛在問題。為遵循良好的編程風格,項目也提高了代碼可讀性並清理空白字符,使之符合BSD的代碼風格(KNF)。移除了不必要或不安全的宏和變量;移除了未使用的或舊的程序集、應用程序、演示及文檔文件/代碼(Perl腳本、C語言文件等)。移除了對FIPS 140-2的支持、不安全的算法Dual EC DRBG及舊的協議/加密器(SSLv2)。
參見
參考
- ^ LibreSSL 4.0.0 Released. 2024年10月14日 [2024年10月15日].
- ^ LibreSSL Releases. [2018-02-14]. (原始內容存檔於2021-01-28).
- ^ Unangst, Ted. Origins of libressl. flak. 2014-04-22 [2014-04-24]. (原始內容存檔於2014-04-24).
- ^ Kemer, Sean Michael. After Heartbleed, OpenSSL Is Forked Into LibreSSL. eWeek. 2014-04-22 [2014-04-24].[失效連結]
- ^ Not Just a Cleanup Any More: LibreSSL Project Announced. Slashdot. 2014-04-22 [2014-04-24]. (原始內容存檔於2014-04-24).
- ^ Holwerda, Thom. OpenBSD forks, prunes, fixes OpenSSL. OSNews. 2014-04-23 [2014-04-24]. (原始內容存檔於2018-03-04).
- ^ Hessler, Peter. OpenBSD has started a massive strip-down and cleanup of OpenSSL. OpenBSD Journal. 2014-04-15 [2014-04-24]. (原始內容存檔於2020-12-03).
- ^ Seltzer, Larry. OpenBSD forks, prunes, fixes OpenSSL. Zero Day. ZDNet. 2014-04-21 [2014-04-21]. (原始內容存檔於2014-04-21).
- ^ 9.0 9.1 Brodkin, Jon. OpenSSL code beyond repair, claims creator of "LibreSSL" fork. Ars Technica. 2014-04-22 [2014-04-24]. (原始內容存檔於2014-08-19).
- ^ McCallion, Jane. Heartbleed: LibreSSL scrubs "irresponsible" OpenSSL code. PC Pro. 2014-04-22 [2014-04-23]. (原始內容存檔於2014-06-26).
- ^ Orr, William. A quick recap over the last week. OpenSSL Valhalla Rampage. 2014-04-23 [2014-04-30]. (原始內容存檔於2014-04-29).[自述來源]
- ^ OpenBSD LibreSSL CVS Calloc Commits. [2014-05-02]. (原始內容存檔於2019-02-17).
- ^ OpenBSD LibreSSL CVS Double Free Commits. [2014-05-02]. (原始內容存檔於2019-02-17).