LibreSSL
LibreSSL是OpenSSL加密软件库的一个分支,是一个安全套接层(SSL)和传输层安全(TLS)协议的开源实现。在OpenSSL爆出心脏出血安全漏洞之后,一些OpenBSD开发者于2014年4月创立了LibreSSL,[4][5][6]目标是重构OpenSSL的代码,以提供一个更安全的替代品。[7]LibreSSL复刻自OpenSSL库的1.0.1g分支,它将遵循OpenBSD基金会在其他项目所使用的安全指导原则。[8]
開發者 | OpenBSD项目组 |
---|---|
首次发布 | 2.0.0 / 2014年7月11日 |
当前版本 | |
源代码库 | github |
编程语言 | C语言、汇编 |
操作系统 | OpenBSD、FreeBSD、NetBSD、Linux、HP-UX、Solaris、OS X、Windows and others[3] |
类型 | 安全性加密函式庫 |
许可协议 | Apache许可证1.0 原版BSD许可证 ISC許可證 部份為公有领域 |
网站 | www |
历史
在OpenSSL爆出心脏出血漏洞后的一周之内,OpenBSD开发团队便决定自行维护一个OpenSSL分支。开发团队于2014年4月11日注册libressl.org域名,该项目于2014年4月22日公布。
OpenBSD开发团队随即开始清理OpenSSL的代码,在第一周,LibreSSL开发团队删去了90000多行的代码。[9][10]一些陈旧或无用代码被移除,同时对一些比较罕见的操作系统的支持也被移除。LibreSSL最初的目标平台是OpenBSD 5.6,但当代码稳定之后,还移植至其他平台。[11]截至2014年4月 ,该项目仍在寻求“稳定的”外部资金支持。[10]
变化详情
内存相关
一些较显着和重要的变化包括更换自定义的内存存取调用为标准函数(例如strlcpy、calloc、asprintf、reallocarray等)。[12][13]这有助于在将来用更先进的内存调试器,或通过观察程序的崩溃情况来发现缓存溢出等错误。CVS提交日志中也记录了对潜在双重释放内存的修复(包括空指针值的显式分配)。[14]
其他改动
加入了的完整性检查,以检查长度参数、无符号到有符号变量的赋值、指针值/方法返回值等数据的有效性。启用了一些使之更加安全的编译器选项和标志(-Wuninitialized,-Werror等),这有助于发现潜在问题。为遵循良好的编程风格,项目也提高了代码可读性并清理空白字符,使之符合BSD的代码风格(KNF)。移除了不必要或不安全的宏和变量;移除了未使用的或旧的程序集、应用程序、演示及文档文件/代码(Perl脚本、C语言文件等)。移除了对FIPS 140-2的支持、不安全的算法Dual EC DRBG及旧的协议/加密器(SSLv2)。
参见
- TLS实现比较
- OpenSSH,OpenBSD社区所创的另一个安全软件的分支
参考
- "LibreSSL 3.9.0 released"; 作者姓名字符串: Brent Cook; 出版日期: 2024年3月9日; 检索日期: 2024年3月10日.
- . 2024年3月28日 [2024年3月28日] (英語).
- . [2018-02-14]. (原始内容存档于2021-01-28).
- Unangst, Ted. . flak. 2014-04-22 [2014-04-24]. (原始内容存档于2014-04-24).
- Kemer, Sean Michael. . eWeek. 2014-04-22 [2014-04-24].
- . Slashdot. 2014-04-22 [2014-04-24]. (原始内容存档于2014-04-24).
- Holwerda, Thom. . OSNews. 2014-04-23 [2014-04-24]. (原始内容存档于2018-03-04).
- Hessler, Peter. . OpenBSD Journal. 2014-04-15 [2014-04-24]. (原始内容存档于2020-12-03).
- Seltzer, Larry. . Zero Day. ZDNet. 2014-04-21 [2014-04-21]. (原始内容存档于2014-04-21).
- Brodkin, Jon. . Ars Technica. 2014-04-22 [2014-04-24]. (原始内容存档于2014-08-19).
- McCallion, Jane. . PC Pro. 2014-04-22 [2014-04-23]. (原始内容存档于2014-06-26).
- Orr, William. . OpenSSL Valhalla Rampage. 2014-04-23 [2014-04-30]. (原始内容存档于2014-04-29).
- . [2014-05-02]. (原始内容存档于2019-02-17).
- . [2014-05-02]. (原始内容存档于2019-02-17).