基本介紹
歷史,變化詳情,記憶體相關,加密算法,其他改動,OpenSSL,
歷史
在OpenSSL爆出心臟出血漏洞後的一周之內,OpenBSD開發團隊便決定自行維護一個OpenSSL分支。開發團隊於2014年4月11日註冊libressl.org域名,該項目於2014年4月22日公布。
OpenBSD開發團隊隨即開始清理OpenSSL的代碼,在第一周,LibreSSL開發團隊刪去了9000多行的代碼。一些陳舊或無用代碼被移除,同時對一些比較罕見的作業系統的支持也被移除。LibreSSL最初的目標平台是OpenBSD 5.6,但當代碼穩定之後,還移植至其他平台。截至2014年4月,該項目仍在尋求“穩定的”外部資金支持。
變化詳情
記憶體相關
一些較顯著和重要的變化包括更換自定義的記憶體訪問調用為標準函式(例如strlcpy、calloc、asprintf、reallocarray等)。這有助於在將來用更先進的記憶體調試器,或通過觀察程式的崩潰情況來發現快取溢出等錯誤。CVS提交日誌中也記錄了對潛在雙重釋放記憶體的修復(包括空指針值的顯式分配)。
加密算法
原本不安全的種子生成方法(由核心原生提供)被移除,以確保隨機數種子是通過安全的隨機數生成器產生的。又新加入了一系列算法,包括ChaCha20、Poly1305等。
其他改動
加入了的完整性檢查,以檢查長度參數、無符號到有符號變數的賦值、指針值/方法返回值等數據的有效性。啟用了一些使之更加安全的編譯器選項和標誌(-Wuninitialized,-Werror等),這有助於發現潛在問題。為遵循良好的編程風格,項目也提高了代碼可讀性並清理空白字元,使之匹配BSD的代碼風格(KNF)。移除了不必要或不安全的宏和變數;移除了未使用的或舊的程式集、應用程式、演示及文檔檔案/代碼(Perl腳本、C語言檔案等)。移除了對FIPS 140-2支持、不安全的算法Dual_EC_DRBG及舊的協定/加密器(SSLv2)。