Firefox Nightly 和 Chrome Canary 都已支持TLS1.3加密协议,Cloudflare也在其CDN中添加了TLS1.3的开关(Beta),不过目前TLS1.3仍然在草案阶段,但已经是到了最后的阶段。

TLS1.3中大幅度的改动了加密套件

删除了:

●RSA密钥传输——不支持前向安全性
●CBC模式密码——易受BEAST和Lucky 13攻击
●RC4流密码——在HTTPS中使用并不安全
●SHA-1(早就应该删除了)
●任意Diffie-Hellman组——CVE-2016-0701漏洞
●输出密码——易受FREAK和LogJam攻击

不过,改动最大的应该是握手部分。在 TLS1.2 以前,有许多站长认为启用 HTTPS 会减慢网站的访问速度,实际上 HTTPS 对速度影响是在握手阶段(启用了HTTP2的站点在建立连接后反而更快),因为多个 RTT 导致握手时的延迟增加,如果用户与服务器的地理位置距离太远,感觉会更明显,尤其是在移动设备上–使用 WiFi 和 移动基站 会导致每次发送数据都可能会增加近 100ms 的延迟。在 TLS1.2 时我们一般会保存 TLS 握手时的 Session ,以加快第二次对相同网站的访问。不过在TLS1.3中问题会有非常大的好转。

这张 Cloudflare 的图片清晰的介绍了TLS1.3与TLS1.2握手时的区别,在TLS1.3中提供了 1-RTT 的握手机制:将 Key Share 的过程提前到Client Hello ,同时大幅度简化握手过程,使第一次握手时只需要一个RTT,并且在第二次访问时提供了0-RTT模式。

实际上,基于TLS1.3草案的改造版本已经应用在淘宝无线微信上使用,在TLS1.3正式发布后,全民HTTPS时代应该会更进一步。