LibreSSL

维基百科,自由的百科全书
跳转到导航 跳转到搜索
LibreSSL
File:LibreSSL logo as of 2014-04-22.png
开发者OpenBSD项目组
首次发布2.0.0 / 2014年7月11日,​11年前​(2014-07-11
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    源代码库github.com/libressl-portable/portable
    编程语言C语言汇编
    引擎
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      操作系统OpenBSDFreeBSDNetBSDLinuxHP-UXSolarisOS XWindows and others[1]
      类型安全性加密函数库
      许可协议Apache许可证1.0
      原版BSD许可证
      ISC许可证
      部分为公有领域

      LibreSSLOpenSSL加密软件库的一个分支,是一个安全套接层(SSL)和传输层安全(TLS)协议的开源实现。在OpenSSL爆出心脏出血安全漏洞之后,一些OpenBSD开发者于2014年4月创立了LibreSSL,[2][3][4]目标是重构OpenSSL的代码,以提供一个更安全的替代品。[5]LibreSSL复刻自OpenSSL库的1.0.1g分支,它将遵循OpenBSD基金会在其他项目所使用的安全指导原则。[6]

      历史[编辑]

      在OpenSSL爆出心脏出血漏洞后的一周之内,OpenBSD开发团队便决定自行维护一个OpenSSL分支。开发团队于2014年4月11日注册libressl.org域名,该项目于2014年4月22日公布。

      OpenBSD开发团队随即开始清理OpenSSL的代码,在第一周,LibreSSL开发团队删去了90000多行的代码。[7][8]一些陈旧或无用代码被移除,同时对一些比较罕见的操作系统的支持也被移除。LibreSSL最初的目标平台是OpenBSD 5.6,但当代码稳定之后,还移植至其他平台。[9]截至2014年4月 (2014-04),该项目仍在寻求“稳定的”外部资金支持。[8]

      变化详情[编辑]

      内存相关[编辑]

      一些较显着和重要的变化包括更换自定义的内存访问调用为标准函数(例如strlcpy、calloc、asprintf、reallocarray等)。[10][11]这有助于在将来用更先进的内存调试器英语Memory_debugger,或通过观察程序的崩溃情况来发现缓存溢出等错误。CVS提交日志中也记录了对潜在双重释放内存的修复(包括空指针值的显式分配)。[12]

      加密算法[编辑]

      原本不安全的种子生成方法(由内核原生提供)被移除,以确保随机数种子是通过安全的随机数生成器产生的。又新加入了一系列算法,包括ChaCha20-Poly1305等。

      其他改动[编辑]

      加入了的完整性检查英语Sanity_check#Software development,以检查长度参数、无符号到有符号变量的赋值、指针值/方法返回值等数据的有效性。启用了一些使之更加安全的编译器选项和标志(-Wuninitialized,-Werror等),这有助于发现潜在问题。为遵循良好的编程风格,项目也提高了代码可读性并清理空白字符,使之符合BSD的代码风格(KNF英语Kernel Normal Form)。移除了不必要或不安全的宏和变量;移除了未使用的或旧的程序集、应用程序、演示及文档文件/代码(Perl脚本、C语言文件等)。移除了对FIPS 140-2英语FIPS_140-2的支持、不安全的算法Dual EC DRBG及旧的协议/加密器(SSLv2)。

      参见[编辑]

      参考[编辑]

      1. ^ LibreSSL Releases. [2018-02-14]. (原始内容存档于2021-01-28). 
      2. ^ Unangst, Ted. Origins of libressl. flak. 2014-04-22 [2014-04-24]. (原始内容存档于2014-04-24). 
      3. ^ Kemer, Sean Michael. After Heartbleed, OpenSSL Is Forked Into LibreSSL. eWeek英语eWeek. 2014-04-22 [2014-04-24]. [失效链接]
      4. ^ Not Just a Cleanup Any More: LibreSSL Project Announced. Slashdot. 2014-04-22 [2014-04-24]. (原始内容存档于2014-04-24). 
      5. ^ Holwerda, Thom. OpenBSD forks, prunes, fixes OpenSSL. OSNews英语OSNews. 2014-04-23 [2014-04-24]. (原始内容存档于2018-03-04). 
      6. ^ Hessler, Peter. OpenBSD has started a massive strip-down and cleanup of OpenSSL. OpenBSD Journal英语OpenBSD Journal. 2014-04-15 [2014-04-24]. (原始内容存档于2020-12-03). 
      7. ^ Seltzer, Larry. OpenBSD forks, prunes, fixes OpenSSL. Zero Day. ZDNet. 2014-04-21 [2014-04-21]. (原始内容存档于2014-04-21). 
      8. ^ 8.0 8.1 Brodkin, Jon. OpenSSL code beyond repair, claims creator of "LibreSSL" fork. Ars Technica. 2014-04-22 [2014-04-24]. (原始内容存档于2014-08-19). 
      9. ^ McCallion, Jane. Heartbleed: LibreSSL scrubs "irresponsible" OpenSSL code. PC Pro英语PC Pro. 2014-04-22 [2014-04-23]. (原始内容存档于2014-06-26). 
      10. ^ Orr, William. A quick recap over the last week. OpenSSL Valhalla Rampage. 2014-04-23 [2014-04-30]. (原始内容存档于2014-04-29). [自述来源]
      11. ^ OpenBSD LibreSSL CVS Calloc Commits. [2014-05-02]. (原始内容存档于2019-02-17). 
      12. ^ OpenBSD LibreSSL CVS Double Free Commits. [2014-05-02]. (原始内容存档于2019-02-17). 

      外部链接[编辑]