複製鏈接
請複製以下鏈接發送給好友

LibreSSL

鎖定
LibreSSLOpenSSL加密軟件庫的一個分支,為一個安全套接層(SSL)和傳輸層安全(TLS)協議的開源實現。在OpenSSL爆出心臟出血安全漏洞之後,一些OpenBSD開發者於2014年4月創立了LibreSSL,目標是重構OpenSSL的代碼,以提供一個更安全的替代品。LibreSSL復刻自OpenSSL庫的1.0.1g分支,它將遵循其他OpenBSD項目所使用的安全指導原則。
中文名
LibreSSL
分    支
OpenSSL加密軟件庫
創立時間
2014年4月
目    標
重構OpenSSL的代碼

LibreSSL歷史

在OpenSSL爆出心臟出血漏洞後的一週之內,OpenBSD開發團隊便決定自行維護一個OpenSSL分支。開發團隊於2014年4月11日註冊libressl.org域名,該項目於2014年4月22日公佈。
OpenBSD開發團隊隨即開始清理OpenSSL的代碼,在第一週,LibreSSL開發團隊刪去了9000多行的代碼。一些陳舊或無用代碼被移除,同時對一些比較罕見的操作系統的支持也被移除。LibreSSL最初的目標平台是OpenBSD 5.6,但當代碼穩定之後,還移植至其他平台。截至2014年4月,該項目仍在尋求“穩定的”外部資金支持。 [1] 

LibreSSL變化詳情

LibreSSL內存相關

一些較顯着和重要的變化包括更換自定義的內存訪問調用為標準函數(例如strlcpy、calloc、asprintf、reallocarray等)。這有助於在將來用更先進的內存調試器,或通過觀察程序的崩潰情況來發現緩存溢出等錯誤。CVS提交日誌中也記錄了對潛在雙重釋放內存的修復(包括空指針值的顯式分配)。 [2] 

LibreSSL加密算法

原本不安全的種子生成方法(由內核原生提供)被移除,以確保隨機數種子是通過安全的隨機數生成器產生的。又新加入了一系列算法,包括ChaCha20、Poly1305等。 [2] 

LibreSSL其他改動

加入了的完整性檢查,以檢查長度參數、無符號到有符號變量的賦值、指針值/方法返回值等數據的有效性。啓用了一些使之更加安全的編譯器選項和標誌(-Wuninitialized,-Werror等),這有助於發現潛在問題。為遵循良好的編程風格,項目也提高了代碼可讀性並清理空白字符,使之匹配BSD的代碼風格(KNF)。移除了不必要或不安全的宏和變量;移除了未使用的或舊的程序集、應用程序、演示及文檔文件/代碼(Perl腳本、C語言文件等)。移除了對FIPS 140-2支持、不安全的算法Dual_EC_DRBG及舊的協議/加密器(SSLv2)。 [2] 

LibreSSLOpenSSL

計算機網絡上,OpenSSL是一個開放源代碼軟件包,應用程序可以使用這個包來進行安全通信,避免竊聽,同時確認另一端連接者的身份。這個包廣泛被應用在互聯網的網頁服務器上。
其主要是以C語言所寫成,實現了基本的加密功能,實現了SSL與TLS協議。OpenSSL可以運行在OpenVMSMicrosoft Windows以及絕大多數類Unix操作系統上(包括SolarisLinuxMac OS X與各種版本的開放源代碼BSD操作系統)。它也提供了一個移植版本,可以在IBM i(OS/400)上運作。
雖然此軟件是開放源代碼的,但其許可書條款與GPL有衝突之處,故GPL軟件使用OpenSSL時(如Wget)必須對OpenSSL給予例外。 [1] 
參考資料
  • 1.    Brodkin, Jon. OpenSSL code beyond repair, claims creator of "LibreSSL" fork. Ars Technica. 2014-04-22
  • 2.    Hessler, Peter. OpenBSD has started a massive strip-down and cleanup of OpenSSL. OpenBSD Journal. 2014-04-15