LibreSSL

此條目翻譯品質不佳。 (2014年8月5日) |
![]() | |
開發者 | OpenBSD计划 |
---|---|
当前版本 | 2.5.5(2017年7月12日 | )
预览版本 | 2.6.0(2017年7月12日 | )
源代码库 | |
编程语言 | C,汇编语言 |
操作系统 | OpenBSD、FreeBSD、Linux、Mac OS X、Solaris |
类型 | 安全库 |
许可协议 | Apache许可证1.0、4句BSD许可证、ISC許可證,部份為公有领域 |
网站 | http://www.libressl.org |
LibreSSL是OpenSSL加密软件库的一个分支,为一个安全套接层(SSL)和传输层安全(TLS)协议的开源实现。在OpenSSL爆出心脏出血安全漏洞之后,一些OpenBSD开发者于2014年4月创立了LibreSSL,[1][2][3]目标是重构OpenSSL的代码,以提供一个更安全的替代品。[4]LibreSSL复刻自OpenSSL库的1.0.1g分支,它将遵循其他OpenBSD项目所使用的安全指导原则。[5]
历史
在OpenSSL爆出心脏出血漏洞后的一周之内,OpenBSD开发团队便立即决定自行维护一个OpenSSL分支。域名libressl.org于2014年4月11日注册,而该项目于2014年4月22日公布。
在清理代码的第一周,LibreSSL开发团队即删去了多于9000行的代码。[6][7]一些陈旧或无用代码被移除;而对于一些比较罕见的操作系统的支持也被移除。LibreSSL的最初目的是作为OpenBSD 5.6中的OpenSSL替代品。当代码库稳定之后,还有望移植至其他平台。[8]截至2014年4月[update],该项目仍在寻求“稳定的”外部资金支持。[7]
变化详情
内存相关
一些较显着和重要的变化包括更换自定义的内存存取调用为标准函数(例如strlcpy、calloc、asprintf、reallocarray等)。[9][10]这有助于将来用更先进的内存调试器或仅通过观察程序的崩溃情况来发现缓存溢出错误。CVS提交日志中也记录了潜在双重释放内存的修复(包括空指针值的显式分配)。[11]
加密算法
原本不安全的种子生成方法(由内核原生提供)被移除,以确保通过随机数生成器的方法产生了正确的随机数种子。又新加入了一系列算法,包括ChaCha20、Poly1305等。
其他改动
加入额外的完整性检查,以检查长度参数、无符号到有符号变量的赋值、指针值/方法返回值等数据的有效性。启用了一些使之更加安全的编译器选项和标志(-Wuninitialized,-Werror等),有助于发现潜在问题,以使其能被及早修复。 为符合良好的编程风格,项目也增强了代码可读性并清理空白字符使之符合BSD的代码风格(KNF)。移除不必要或不安全的宏和变量;移除未使用的或旧的程序集、应用程序、演示及文档文件/代码(Perl脚本、C语言文件等)。移除对FIPS 140-2支持、不安全的算法Dual_EC_DRBG及旧的协议/加密器(SSLv2)。
参见
参考
- ^ Unangst, Ted. Origins of libressl. flak. 2014-04-22 [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].
- ^ Holwerda, Thom. OpenBSD forks, prunes, fixes OpenSSL. OSNews. 2014-04-23 [2014-04-24].
- ^ Hessler, Peter. OpenBSD has started a massive strip-down and cleanup of OpenSSL. OpenBSD Journal. 2014-04-15 [2014-04-24].
- ^ Seltzer, Larry. OpenBSD forks, prunes, fixes OpenSSL. Zero Day. ZDNet. 2014-04-21 [2014-04-21].
- ^ 7.0 7.1 Brodkin, Jon. OpenSSL code beyond repair, claims creator of "LibreSSL" fork. Ars Technica. 2014-04-22 [2014-04-24].
- ^ McCallion, Jane. Heartbleed: LibreSSL scrubs "irresponsible" OpenSSL code. PC Pro. 2014-04-22 [2014-04-23].
- ^ Orr, William. A quick recap over the last week. OpenSSL Valhalla Rampage. 2014-04-23 [2014-04-30].[自述来源]
- ^ OpenBSD LibreSSL CVS Calloc Commits.
- ^ OpenBSD LibreSSL CVS Double Free Commits.