日前,OpenSSL官方博客,发布消息宣布其新的版本OpenSSL 1.1.1,这是OpenSSL既上个LTS(长期支持版本)1.0.2之后有一个LTS版本,承诺至少支持五年。
200贡献5000次commits
OpenSSL 1.1.1是一项庞大的团队协作项目。根据官方统计:自OpenSSL 1.1.0发布以来,已经有超过200人提交了代码,提交了近5000次提交。这些统计数据只是说明了OpenSSL社区的惊人活力和多样性。当然除了直接代码贡献以外,还有大量的内侧和问题反馈报告的贡献者。
TLS 1.3
本次更新除了是一个LTS版本以外,最重要的功能是支持了TLSv1.3。这个新版本的传输层安全性(以前称为SSL)协议,才在一个月前由IETF发布为RFC8446。新协议对TLS标准的做了重大改写,OpenSSL 1.1.1 版本做这些重大变化,功能和改进做实现。
值得提及的是,OpenSSL 1.1.1 从API和ABI兼容OpenSSL 1.1.0,所以大多数已使用1.1.0的应用程序只需通过新的OpenSSL版本就可以获得TLSv1.3的许多特性。由于TLSv1.3与TLSv1.2的工作方式非常不同,但有一些警告可能会影响少数应用程序。更多详细信息,请参阅OpenSSL wiki上的TLSv1.3详细信息。
TLSv1.3带来的好处有:
优化了TSL握手:减少了客户端和服务器之间所需的往返次数,缩短了连接时间,
0-RTT:客户端能够立即开始将加密数据发送到服务器而无需与服务器进行任何握手(称为0-RTT或"早期数据")。
算法更安全:删除了各种过时和不安全的加密算法以及更多连接握手的加密,提高了安全性。
OpenSSL 1.1.1版本中的其他功能包括:
1、完全重写OpenSSL随机数生成器
默认的RAND方法现在使用符合NIST标准SP 800-90Ar1的AES-CTR DRBG。
通过种子链支持多个DRBG实例。
有一个公共和私人DRBG实例。
DRBG实例是fork安全的。
可以启用,所有全局DRBG实例保留在安全堆上。
公共和私有DRBG实例是独立于线程,并且无锁操作。
2、各种新的加密算法
SHA3
SHA512/224 and SHA512/256
EdDSA (including Ed25519 and Ed448)
X448 (adding to the existing X25519 support in 1.1.0)
Multi-prime RSA
SM2
SM3
SM4
SipHash
ARIA (including TLS support)
3、显著的侧通道攻击安全性改进
4、最大片段长度TLS扩展支持
5、一个新的存储模块
它实现了一个基于统一和URI的存储读取器,可以包含密钥,证书,CRL和许多其他对象。
尽快升级,OpenSSL 1.0.2支持到2019年底
由于1.1.1是新的LTS版本,官方建议所有用户应该尽快升级。对于大多数应用程序,如果编译时候使用的是OpenSSL 1.1.0则无需重新编译,直接升级OpenSSL就可以使用。
OpenSSL 1.1.0不是LTS版本,根据OpenSSL的发布策略,该版本将不会有新版本更新,除非是安全修复更新。并会在一年内停止所有支持。
之前的LTS版本(OpenSSL 1.0.2)将继续获得全面支持,直到2018年年底。之后只会发布安全修复程序。它将在2019年底停止所有支持。强烈建议该版本的用户升级到OpenSSL 1.1.1。