跳转到内容

LibreSSL

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由S8321414留言 | 贡献2014年10月13日 (一) 00:47编辑。这可能和当前版本存在着巨大的差异。

LibreSSL
開發者OpenBSD计划
当前版本2.1.0(2014年10月12日,​10年前​(2014-10-12
源代码库 編輯維基數據鏈接
编程语言C汇编语言
操作系统OpenBSDFreeBSDLinuxMac OS XSolaris
类型安全库
许可协议Apache许可证1.0、4句BSD许可证ISC許可證,部份為公有领域
网站http://www.libressl.org

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

历史

在裁剪代码的第一周,分支中删除了超过90,000行的C代码。[6][7]旧的或无用的代码已被删除,对较老或目前罕见操作系统的支持也一并被移除。LibreSSL的最初开发目的是作为OpenBSD 5.6中的OpenSSL预期替代品,一旦库的精简版稳定下来,它还有望移植至其他平台。[8]截至2014年4月 (2014-04),该项目仍在寻求“稳定的”外部资金承诺。[7]

变化

更详细地说,迄今为止,一些较显着和重要的变化包括更换自定义的内存调用为标准函数(例如strlcpycallocasprintfreallocarray等)。[9][10]这有助于将来用更先进的内存分析工具,或仅通过观察程序的崩溃来发现缓存溢出错误。CVS提交日志中也记录了潜在双重释放内存的修复(包括空指针值的显式分配)。[11]不安全的种子生成方法(借助于内核自己原生提供的功能)被替换掉,以确保基于随机数生成器的方法使用了正确的随机数种子。额外的完整性检查也被加入进来,以检查长度参数、无符号到有符号变量的赋值、指针值/方法返回值等数据的有效性。一些使之更加安全的编译器选项和标志也有助于发现潜在问题,以使其能被及早修复(-Wuninitialized,-Werror等)。

为符合良好的编程风格,项目也增强了代码可读性及清理空白字符(KNF)。移除对不需要平台的支持(MacOSNetwareOS/2VMSMicrosoft Windows等),以消除潜在的安全隐患。移除不必要或不安全的#define语句和变量。移除未使用的或旧的程序集、应用程序、演示及文档文件/代码(Perl脚本、C语言文件等)。移除对FIPS支持、不安全的算法(Dual_EC_DRBG)及旧的协议/加密器(SSLv2)。对不必要的方法包装和宏的修改也有助于增强可读性(Error & BIO(I/O抽象)库)。

最后并同样重要的,复刻的一个主要原因是OpenSSL团队的不合作态度,之前几年提交的漏洞补丁不是没注意到就是被忽略了。提交日志显示LibreSSL修复了这些较旧的漏洞。[12]

参见

参考

  1. ^ Unangst, Ted. Origins of libressl. flak. 22 April 2014 [24 April 2014]. 
  2. ^ Kemer, Sean Michael. After Heartbleed, OpenSSL Is Forked Into LibreSSL. eWeek. 22 April 2014 [24 April 2014]. 
  3. ^ Not Just a Cleanup Any More: LibreSSL Project Announced. Slashdot. April 22, 2014 [24 April 2014]. 
  4. ^ Holwerda, Thom. OpenBSD forks, prunes, fixes OpenSSL. OSNews. 23 April 2014 [24 April 2014]. 
  5. ^ Hessler, Peter. OpenBSD has started a massive strip-down and cleanup of OpenSSL. OpenBSD Journal. 15 April 2014 [24 April 2014]. 
  6. ^ Seltzer, Larry. OpenBSD forks, prunes, fixes OpenSSL. Zero Day. ZDNet. 21 April 2014 [21 April 2014]. 
  7. ^ 7.0 7.1 Brodkin, Jon. OpenSSL code beyond repair, claims creator of "LibreSSL" fork. Ars Technica. 22 April 2014 [24 April 2014]. 
  8. ^ McCallion, Jane. Heartbleed: LibreSSL scrubs "irresponsible" OpenSSL code. PC Pro. 22 April 2014 [23 April 2014]. 
  9. ^ Orr, William. A quick recap over the last week. OpenSSL Valhalla Rampage. 23 April 2014 [30 April 2014]. [自述来源]
  10. ^ OpenBSD LibreSSL CVS Calloc Commits. 
  11. ^ OpenBSD LibreSSL CVS Double Free Commits. 
  12. ^ OpenBSD LibreSSL CVS Buffer Release (#2167 bugfix) Commit. 10 April 2014 [1 May 2014]. 

外部链接