等待终于结束——IETF已经正式发布了TLS 1.3
尽管IETF在之前就已批准通过TLS 1.3,但该机构并没有正式发布它。本月中旬这种局面终于有所改变:IETF最终正式发布了TLS 1.3(RFC 8446)。新标准的采用速度有望比TLS 1.2更快速。TLS 1.2到下月就要满10岁了,然而支付卡行业最近才弃用了TLS 1.0,并且一些旧的遗留系统仍旧在使用TLS 1.1。
然而,全球最大的两个浏览器已经在支持它了。谷歌在几个月之前添加了对它的支持,Mozilla也在本月中旬宣布了在Firefox浏览器上添加对TLS 1.3的支持。
正如Mozilla的Eric Rescorla写道的:
“TLS 1.3已经得到了广泛的部署:Firefox和Chrome都已经部署了不同“草稿”版本。Firefox 61”已经在部署draft-28版本了,这一版本从本质上来说是与最终发布的版本相同的(只是版本号不同而已)。我们期望在2018年10月完成最终版本在Firefox 63中的部署。当下,Cloudflare、Google和Facebook正在其服务器上运行这一协议。我们的遥感勘测数据显示,大约5%的Firefox连接都采用的是TLS 1.3。Cloudflare报告称TLS 1.3的采用比例与Firefox相似,而Facebook则表示,其50+%的流量都是TLS 1.3的。
尽管互联网上的一些大型的网站都已经更新了它们的服务,但新标准的广泛采用在很大程度上取决于其他网站对服务器端支持的添加。
TLS 1.3早在今年四月就已经敲定了,而在8月中旬才最终在于伦敦举行的一次会议上通过:尽管受到了一些质疑,但IETF还是通过了TLS 1.3的第28次草案。
什么是TLS 1.3?
若要理解TLS 1.3,你必须首先知道什么是TLS(传输层安全)。
当你在网上冲浪时,你可能曾经注意到过一些网站的链接是以HTTPS开头的,而其他一些则在链接的前面有HTTPS。你甚至可能想过它们之间的差别。是的,正如你可以从表面看出来的一样,差别就在于‘S’。‘S’代表的是安全。它意味着拥有HTTPS的网站的连接是安全的,每一位在客户和服务器之间进行传输的信息都得到了加密。
因此,你如何能让你的网站安全呢?
若要让网站安全,你需要安装SSL/TLS证书。通过不同的机制,这些证书能够使对传输途中的信息进行加密变得更容易,因此可以阻碍所有数据盗窃或篡改。
TLS 1.3是TLS家族的第四个版本。与现任加密协议TLS 1.2相比,它在一些方面进行了改进。
TLS 1.3:在安全上的改进
诸如POODLE和Heartbleed等的漏洞,以及近来发现的ROBOT攻击都表明,如果不修复漏洞,任由其自行存在,就有可能对全世界数以百万计的用户造成重大影响。TLS 1.3摒弃了一些存在于TLS 1.2中的不安全因素。
最新的TLS标准TLS 1.2包含了不安全的协议、密码和算法。然而,你不需要进行担心,因为你受到攻击的可能性比较小。但是这并意味着它不会受到利用。攻击者可能会利用TLS 1.2中的这些不安全的部分来发动降级攻击。而TLS 1.3排除了这一可能性,因为它逐步淘汰了这些老式的密码和协议,同时引入了安全的替代方案。
下面是一些在TLS 1.3中停止使用的密码和算法:
RC4流密码
RSA 密钥传输
SHA-1 哈希函数
CBC 模式密码
MD5 算法
Various Diffie-Hellman组
EXPORT-strength密码
DES
3DES
SSL/TLS握手方面的改进
TLS 1.3有别于其前身的第二个主要的改变是SSL/TLS握手的版本有了升级。在于客户和服务器之间建立安全连接之前,握手流程是在双方之间进行的。而这一版本的握手涉及到在客户和服务之间的一系列来回通讯,以便验证每一方的握手和协商数据传输的条款。
Rescorla 写道:“在TLS之前的版本中,整个握手流程都是清晰可见的,这会泄露大量的信息,包括客户和服务器的身份信息。此外,许多网络中间盒都会使用这些信息来执行网络策略,而如果这些信息不是它们所期望的信息,这些行动就会失败。当引入了新的协议功能时,这可能会导致中断。TLS 1.3对大多数的握手都进行了加密,从而能够提供更好的隐私性,也能让我们在未来有更多的自由,可以对协议进行不断的改进。”
它也对流程进行了简化,这意味着性能会更高。在TLS 1.2、1.1和1.0握手过程中,在客户和服务器之间的来回通信有两次。用专业技术术语来说,这叫做‘2-RTT’握手。
这些协议过程中的两次往返过程会使TTFB(传送首字节的时间)变得更高。有时,执行握手的时间在0.25到0.5秒之间。0.5秒的时间可能看起来并不是很多,但记住这只是握手流程——数据传输之前的一个流程。在诸如股票交易等的连接速度是最为重要的一些领域,半秒可能会产生巨大的影响。
通过对握手流程进行改进,TLS 1.3减少了一次往返过程。这样,只需一次往返便可完成SSL/TLS握手。相应地,握手时间也会大幅降低。
然而,改进还不仅限于此。TLS 1.3还使在那些之前遇到过的客户和服务器之间的0-RTT握手成为了可能。这意味着完成握手并不需要往返通讯。这可以大幅降低延迟。
此外,值得注意的是,IETF不允许在TLS 1.3中加入后门。
如何启用TLS 1.3?
Chrome和Firefox是世界上最受欢迎的两款浏览器之一,我们将介绍如何启用这两个浏览器中的TLS 1.3。
1. 启用Chrome中的TLS 1.3
首先,在地址栏中搜索chrome://flags/,然后点击Enter键
找到TLS 1.3并选择启用TLS 1.3(draft 23)
重新启动你的Chrome
转到https://istlsfastyet.com/
现在按F12键并转到安全标签
重新加载网站
点击列举在主要来源下面的链接
2. 启用Firefox中的TLS 1.3
首先,在地址栏中搜索about:config,然后点击Enter键
在搜索框中输入tls.version.max
现在把数值从3改为4
重启Firefox
转到https://istlsfastyet.com/
点击地址栏中的挂锁图标
现在,你应该可以看见一个小的弹出窗口,称连接是安全的。点击>,然后点击更多信息
此时在屏幕上将会出现一个证书详情窗口。请参阅底部的技术细节,你将看到TLS 1.3是安全协议。