TLS 1.3是IETF正在制定的TLS 新标准,新的 TLS 1.3 基于 TLS 1.2,将移除对部分弱加密算法如 MD5 和 SHA-22 的支持,TLS 1.3是TLS标准更新过程中变动较大的一次,除了对于运行过程中的若干问题如密码套件的选择、密钥的计算方式、握手消息的发送方式等做了更改。
TLS 1.3是IETF正在制定的TLS 新标准,新的 TLS 1.3 基于 TLS 1.2,将移除对部分弱加密算法如 MD5 和 SHA-22 的支持,TLS 1.3是TLS标准更新过程中变动较大的一次,除了对于运行过程中的若干问题如密码套件的选择、密钥的计算方式、握手消息的发送方式等做了更改。
TLSv1.3 新特性
-
将不再支持静态RSA密钥交换,握手将默认使用前向安全(Perfect Forward Secrecy),一个安全性足够强的 Diffie-Hellman 参数。
-
将移除 ChangeCipherSpec协议。
-
将大幅改进握手,注重隐私,在握手尽可能早的阶段加密信息,ServerHello 之后的所有消息都是加密的,客户端只需要一次往返就能与服务器建立安全和验证的连接。
-
客户端将在 ClientHello 阶段将提高 key_share(共用密钥)。
-
Sessions 将在握手完成之后,才会被建立。
-
Renegotiation攻击不可能发生。
-
绝大部分的握手将处于加密状态。
-
很多类型的信息现在也有了扩展(如 Certificate Transparency)
-
改进后的握手流程
支持程度
-
nginx
在 nginx 的最新 mainline 版本 1.13.0 中,可以看到有一条这样的介绍(Feature: the "TLSv1.3" parameter of the "ssl_protocols" directive.),也就是nginx在最新的版本已经加入这个配置选项,并且支持1.3版本的 TLS 了。
-
Firefox
Firefox 52 已正式支持 TLS 1.3。
-
Chrome
Google Chrome 浏览器最新版中开始支持TLS 1.3了。
速度提升
在升级 HTTPS 的过程中,很多大型网站会有所顾虑,因为相比传统 HTTP 协议,TLS 的握手会耗费更多的延时,进而会影响网站的打开时间,并且使用TLS还是有可能在第一次连接的时候受到中间人攻击。
在 TLS 1.2 时代,我们可以通过完美前向加密、HTTP/2、HSTS、HSTS preload list、CHACHA20_POLY1305 协议等方式,提升网站的安全性,加快网站的访问速度,这方面也确实起到了很好的效果。
降低延时
访问安全加密网站时,首先要建立共用密钥,这一过程叫做一次握手。有专门的加密消息往来于浏览器和网站之间,每一次连接,TLS握手就随之发生。
通过移动网络访问时,由于 4G 网络的延时,加载时间可能会增加上百ms不等,也会影响到用户体验。
两代协议握手对比
对于 TLS 1.2,每次请求需要2次消息往来,才能完成握手。
对于 TLS 1.3,首次握手只需要1次消息往来,可以节约几十到上百ms不等。
TLS 1.3 改进增加了“不额外增加网络延时”模式(0-RTT)。对于近期访问过的站点,可以直接发送有用的数据,而不需要经过握手。
针对0-RTT及其他相关的扩展性,早在2016年5月之前,微信就基于TLS1.3草案标准,设计实现了一套安全通信协议mmtls。基于TLS1.3的微信安全通信协议mmtls介绍。
因此,加上 HTTP/2 对多资源加载的优化,通过 HTTPS + HTTP/2 完全有希望使得速度比传统 HTTP 协议更快更安全。
Chrome 开启TLSv1.3
在地址栏输入chrome://flags/
-
找到Maximum TLS version enabled.并选择TLS 1.3
-
重启浏览器
OpenSSL支持
近期OpenSSL也发布了一篇新文章Using TLS1.3 With OpenSSL。
该文章介绍了新版本的开发进展及一些需要注意事项。
OpenSSL 1.1.1 版本发布,该版本将支持 TLSv1.3,将完全兼容于原有1.1.0,理论上,只要应用支持 1.1.0,那么可以直接升级到 1.1.1。将自动支持 TLSv1.3,而不需要做任何其他操作。
编译的时候,需增加选项enable-tls1_3。
新增加密套件
-
TLS13-AES-256-GCM-SHA384
-
TLS13-CHACHA20-POLY1305-SHA256
-
TLS13-AES-128-GCM-SHA256
-
TLS13-AES-128-CCM-8-SHA256
-
TLS13-AES-128-CCM-SHA256
文章来源:
- https://yatesun.com/2017/05/tlsv1.3/
参考资料:
- https://zhuanlan.zhihu.com/p/28850798
- https://www.inforsec.org/wp/?p=1960
- https://github.com/openssl/openssl/tree/tls1.3-draft-19