OpenSSL

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻
OpenSSL
开发者OpenSSL项目
首次发布1998
稳定版本3.0.1(2021年12月14日,​2年前​(2021-12-14[1][±]
预览版本3.0 Beta 2(2021年7月29日,​2年前​(2021-07-29[2][±]
编程语言C语言汇编Perl
类型安全性加密库
许可协议3.0以前:OpenSSL与SSLeay双重许可协议
3.0开始:Apache许可证2.0
网站www.openssl.org

计算机网络上,OpenSSL是一个开放源代码软件包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。这个包广泛被应用在互联网的网页服务器上。

其主要是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。OpenSSL可以运行在OpenVMSMicrosoft Windows以及绝大多数类Unix操作系统上(包括SolarisLinuxMac OS X与各种版本的开放源代码BSD操作系统)。

虽然此软件是开放源代码的,但其许可书条款与GPL有冲突之处,故GPL软件使用OpenSSL时(如Wget)必须对OpenSSL给予例外。

历史

OpenSSL计划在1998年开始,其目标是发明一套自由的加密工具,在互联网上使用。OpenSSL以Eric Young以及Tim Hudson两人开发的SSLeay为基础,随着两人前往RSA公司任职,SSLeay在1998年12月停止开发。因此在1998年12月,社群另外分支出OpenSSL,继续开发下去。

OpenSSL管理委员会目前由7人组成[3],有13个开发人员[4]具有提交权限(其中许多人也是OpenSSL管理委员会的一部分)。只有两名全职员工(研究员),其余的是志愿者。

该项目每年的预算不到100万美元,主要依靠捐款。 TLS 1.3的开发由Akamai赞助。[5]

主要版本发布

OpenSSL版本历史[6][7]
版本 发布时间 备注 最近更新版本
旧版本,不再支持: 0.9.1 1998年12月23日
  • OpenSSL项目的正式开启
0.9.1c(1998年12月23日)
旧版本,不再支持: 0.9.2 1999年3月22日
  • 取代0.9.1c
0.9.2b(1999年4月6日)
旧版本,不再支持: 0.9.3 1999年5月25日
  • 取代0.9.2b
0.9.3a(1999年5月27日)
旧版本,不再支持: 0.9.4 1999年8月9日
  • 取代0.9.3a
0.9.4(1999年4月9日)
旧版本,不再支持: 0.9.5 2000年2月28日
  • 取代0.9.4
0.9.5a(2000年4月1日)
旧版本,不再支持: 0.9.6 2000年9月24日
  • 取代0.9.5a
0.9.6m(2004年3月17日)
旧版本,不再支持: 0.9.7 2002年12月31日
  • 取代0.9.6m
0.9.7m(2007年2月23日)
旧版本,不再支持: 0.9.8 2005年7月5日
  • 取代0.9.7m
0.9.8zh(2015年12月3日)
旧版本,不再支持: 1.0.0 2010年3月29日
  • 取代0.9.8n
1.0.0t(2015年12月3日)
旧版本,不再支持: 1.0.1[8] 2012年3月14日
  • 取代1.0.0
  • 维护至2016年12月31日
  • 支持RFC 6520 TLS/DTLS心跳
  • 支持SCTP
  • RFC 5705 TLS key material exporter
  • RFC 5764 DTLS-SRTP协商
  • Next Protocol Negotiation
  • PSS signatures in certificates, requests and 证书吊销列表
  • Support for password based recipient info for CMS
  • 支持TLS v1.2以及TLS v1.1
  • Preliminary FIPS capability for unvalidated 2.0 FIPS module
  • 支持安全远程密码协议(SRP)
1.0.1u(2016年9月22日)
旧版本,不再支持: 1.0.2[9] 2015年1月22日 1.0.2u(2019年12月20日 (2019-12-20)
旧版本,不再支持: 1.1.0[10] 2016年8月25日 (2016-08-25)
  • 取代1.0.2h
  • 预计维护到2019年9月[11]
  • 支持BLAKE (RFC 7693)
  • 支持ChaCha20-Poly1305(RFC 7539)
  • 支持X25519(RFC 7748)
  • 支持DANE证书透明度
  • 支持扩CCM密码包
  • 支持扩展主密钥
  • 移除SSLv2
  • 移除对Kerberos密码包的支持
  • 将RC4和3DES从libssl从DEFAULT密码包中移除
  • 将DSS、SEED、IDEA、CAMELLIA以及AES-CCM从DEFAULT密码包中移除
  • 将40和56位密码从libssl中移除
1.1.0l(2019年9月10日 (2019-09-10)
旧版本,仍被支持: 1.1.1[12] 2018年9月11日 (2018-09-11) 1.1.1l(2021年8月24日 (2021-08-24)
当前版本: 3.0.0[note 1] 2021年9月7日 (2021-09-07) 3.0.0 (2021年9月7日 (2021-09-07)
格式:
旧版本
旧版本,仍被支持
当前版本
最新的预览版
未来版本

算法

OpenSSL支持许多不同的加密算法:

加密
AESBlowfishCamelliaChacha20Poly1305SEEDCAST-128DESIDEARC2RC4RC5TDESGOST 28147-89[16]SM4
密码散列函数
MD5MD4MD2SHA-1SHA-2SHA-3RIPEMD-160MDC-2GOST R 34.11-94[16]BLAKE2Whirlpool[17]SM3
公开密钥加密
RSADSAECDSAECDHE迪菲-赫尔曼密钥交换椭圆曲线密码学X25519Ed25519X448Ed448GOST R 34.10-2001[16]SM2

(从1.0版开始,椭圆曲线迪菲-赫尔曼密钥交换用于支持前向安全性))

心脏出血漏洞

OpenSSL 1.0.1版本(不含1.0.1g)含有一个严重漏洞,可允许攻击者读取服务器的内存信息。该漏洞于2014年4月被公诸于世,影响三分之二的活跃网站[18]

分支

Agglomerated SSL

在2009年,OpenSSL API受挫之后,当时的OpenBSD开发人员Marco Peereboom创建了分支Agglomerated SSL(assl),它重新使用OpenSSL API,但提供了更简单的外部接口。[19]

LibreSSL

2014年4月的心脏出血漏洞事件之后,OpenBSD项目成员以OpenSSL 1.0.1g作为分支,创建一个名为LibreSSL的项目。[20]在缩减OpenSSL的代码库的第一周,将超过90,000行的C语言代码从分支中删除。[21]

BoringSSL

2014年6月,Google发布了自己的OpenSSL分支BoringSSL[22],计划与OpenSSL和LibreSSL的开发者合作。[23][24][25]

GmSSL

GmSSL支持SM2/SM3/SM4/SM9/ZUC等商用密码,主要使用SM2替代RSA/Diffie-Hellman/ECDSA/ECDHSM3替代MD5/SHA-1/SHA-256SM4替代DES/AESSM9替代PKI/CA体系,所有代码在GitHub上开源[26],并由北京大学信息安全实验室开发和维护[27]。此项目获得2015年度中国Linux软件大赛二等奖(一等奖空缺)[28]

参见

注记

  1. 跳过主要版本号2.0.0,因为该版本号先前被用于OpenSSL的FIPS模块中。[15]

参考

  1. OpenSSL: Newslog. [2021-12-14]. 
  2. OpenSSL: Newslog. [2021-07-29]. 
  3. OpenSSL Management Committee. OpenSSL Software Foundation. [2018-07-22]. 
  4. OpenSSL Committers. OpenSSL Software Foundation. [2018-07-22]. 
  5. Marquess, Steve. Akamai sponsors TLS 1.3. openssl-announce (邮件列表). 2017-01-19 [2018-11-09]. 
  6. OpenSSL – Changelog. OpenSSL Software Foundation. [2016-09-26]. 
  7. OpenSSL – Release Strategy. OpenSSL Software Foundation. [2016-09-26]. 
  8. OpenSSL 1.0.1 Series Release Notes. [2017-02-20]. 
  9. OpenSSL 1.0.2 Series Release Notes. [2017-02-20]. 
  10. OpenSSL 1.1.0 Series Release Notes. [2017-02-20]. 
  11. 11.0 11.1 Caswell, Matt. OpenSSL 1.1.1 Is Released - OpenSSL Blog. www.openssl.org. OpenSSL Foundation. 2018-09-11 [2018-09-18] (英语). 
  12. Inc., OpenSSL Foundation,. OpenSSL 1.1.1 Is Released - OpenSSL Blog. www.openssl.org. [2018-09-18]. 
  13. Caswell, Matt. Using TLS1.3 With OpenSSL - OpenSSL Blog. www.openssl.org. OpenSSL Foundation. 2018-02-08 [2018-02-17] (英语). 
  14. Caswell, Matt. OpenSSL 1.1.1 Is Released. www.openssl.org. OpenSSL Foundation. 2018-09-11 [2018-09-18] (英语). 
  15. 15.0 15.1 Matt Caswell. The Holy Hand Grenade of Antioch. OpenSSL Blog. 2018-11-28 [2019-10-07]. 
  16. 16.0 16.1 16.2 GOST engine OpenSSL 1.0.0 README. cvs.openssl.org. [2020-12-09]. 
  17. OpenSSL source code, directory crypto/whrlpool. [2017-08-29]. 
  18. OpenSSL安全协议存在漏洞危及网络用户数据安全. 网易科技报道. 2014-04-09 [2014-04-10] (简体中文(中国大陆)). 
  19. security/assl: assl-1.5.0p0v0 – hide awful SSL API in a sane interface. OpenBSD ports. 2014-05-22 [2015-02-10]. 
  20. OpenBSD has started a massive strip-down and cleanup of OpenSSL. OpenBSD journal. 2014-04-15 [2018-02-14]. 
  21. OpenBSD forks, prunes, fixes OpenSSL. ZDNet. 2014-04-21 [2014-04-21]. 
  22. https://boringssl.googlesource.com/boringssl/ BoringSSL
  23. Google unveils independent 'fork' of OpenSSL called 'BoringSSL'. Ars Technica. 2014-06-21 [2018-02-14]. 
  24. BoringSSL. Adam Langley's Weblog. 2014-06-20 [2018-02-14]. 
  25. 存档副本. [2018-02-14]. 
  26. GitHub上的GmSSL页面
  27. GmSSL —— 支持国密算法和标准的 OpenSSL 分支. 开源中国. [2016-05-17]. 
  28. 首届中国Linux软件大赛:100万元奖金发出. 安全牛. [2015年12月12日]. 

外部链接