在计算机网络上,OpenSSL是一個開放原始碼的軟體函式庫套件,應用程式可以使用這個套件來進行安全通訊,避免竊聽,同時確認另一端連線者的身份。這個套件廣泛被應用在網際網路的網頁伺服器上。
其主要函式庫是以C語言所寫成,實作了基本的加密功能,實作了SSL與TLS協定。OpenSSL可以運行在OpenVMS、 Microsoft Windows以及絕大多數類Unix作業系統上(包括Solaris,Linux,Mac OS X與各種版本的開放原始碼BSD作業系統)。
雖然此軟體是開放原始碼的,但其3.0以前版本的授權條款與GPL有衝突之處,故GPL軟體使用OpenSSL時(如Wget)必須對OpenSSL給予例外。
歷史
OpenSSL計劃在1998年開始,其目標是發明一套自由的加密工具,在網際網路上使用。OpenSSL以Eric Young以及Tim Hudson兩人開發的SSLeay為基礎,隨著兩人前往RSA公司任職,SSLeay在1998年12月停止開發。因此在1998年12月,社群另外分支出OpenSSL,繼續開發下去。
OpenSSL管理委員會目前由7人組成[2],有13個開發人員[3]具有提交權限(其中許多人也是OpenSSL管理委員會的一部分)。只有兩名全職員工(研究員),其餘的是志願者。
該項目每年的預算不到100萬美元,主要依靠捐款。 TLS 1.3的開發由Akamai贊助。[4]
主要版本发布
OpenSSL版本历史[5][6]
版本 |
初始版本日期 |
备注 |
最近更新版本
|
舊版本,不再支援: 0.9.1
|
1998年12月23日
|
|
0.9.1c(1998年12月23日)
|
舊版本,不再支援: 0.9.2
|
1999年3月22日
|
|
0.9.2b(1999年4月6日)
|
舊版本,不再支援: 0.9.3
|
1999年5月25日
|
|
0.9.3a(1999年5月27日)
|
舊版本,不再支援: 0.9.4
|
1999年8月9日
|
|
0.9.4(1999年4月9日)
|
舊版本,不再支援: 0.9.5
|
2000年2月28日
|
|
0.9.5a(2000年4月1日)
|
舊版本,不再支援: 0.9.6
|
2000年9月24日
|
|
0.9.6m(2004年3月17日)
|
舊版本,不再支援: 0.9.7
|
2002年12月31日
|
|
0.9.7m(2007年2月23日)
|
舊版本,不再支援: 0.9.8
|
2005年7月5日
|
|
0.9.8zh(2015年12月3日)
|
舊版本,不再支援: 1.0.0
|
2010年3月29日
|
|
1.0.0t(2015年12月3日)
|
舊版本,不再支援: 1.0.1[7]
|
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[8]
|
2015年1月22日
|
|
1.0.2u(2019年12月20日 (2019-12-20))
|
舊版本,不再支援: 1.1.0[9]
|
2016年8月25日 (2016-08-25)
|
|
1.1.0l(2019年9月10日 (2019-09-10))
|
舊版本,不再支援: 1.1.1[11]
|
2018年9月11日 (2018-09-11)
|
|
1.1.1w(2023年9月11日 (2023-09-11))
|
舊版本,仍被支援: 3.0[note 1]
|
2021年9月7日 (2021-09-07)
|
|
3.0.10 (2023年8月1日 (2023-08-01))
|
當前版本: 3.1
|
2023年3月14日 (2023-03-14)
|
|
3.1.2 (2023年8月1日 (2023-08-01))
|
格式: 舊版本 舊版本,仍被支援 当前版本 最新的预览版 未来版本
|
算法
OpenSSL支持许多不同的加密算法:
- 加密
- AES、Blowfish、Camellia、Chacha20、Poly1305、SEED、CAST-128、DES、IDEA、RC2、RC4、RC5、TDES、GOST 28147-89[15]、SM4
- 密碼雜湊函數
- MD5、MD4、MD2、SHA-1、SHA-2、SHA-3、RIPEMD-160、MDC-2、GOST R 34.11-94[15]、BLAKE2、Whirlpool[16]、SM3
- 公开密钥加密
- RSA、DSA、ECDSA、ECDHE、迪菲-赫爾曼密鑰交換、椭圆曲线密码学、X25519、Ed25519、X448、Ed448、GOST R 34.10-2001[15]、SM2
(从1.0版开始,橢圓曲線迪菲-赫爾曼金鑰交換用于支持前向安全性)[17])
心脏出血漏洞
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/ECDH,SM3替代MD5/SHA-1/SHA-256,SM4替代DES/AES,SM9替代PKI/CA体系,所有代码在GitHub上开源[26],并由北京大学信息安全实验室开发和维护[27]。此项目获得2015年度中国Linux软件大赛二等奖(一等奖空缺)[28]。
参见
註記
- ^ 跳過主要版本號2.0.0,因為該版本號先前被用於OpenSSL的FIPS模組中。[14]
参考
外部連結