首页 > 代码库 > 【科普】什么是TLS1.3
【科普】什么是TLS1.3
TLS1.3是一种新的加密协议,它既能提高各地互联网用户的访问速度,又能增强安全性。
我们在访问许多网页的时候,常常会在浏览器的地址栏上看到一个锁的图标,并使用“https”代替传统的“http”。这里的“s”代表着安全。当你连接到一个HTTPS站点时,你和该站点之间的通信会被加密,这会显著提高浏览的安全性,使你的通信避开那些窥视的眼睛,并防止恶意代码的注入。HTTPS不仅应用于网站,还保护着大部分API和移动应用后台的安全。
我们把使互联网实现安全通信的基础性技术称为传输层安全协议(TLS)。TLS是安全套接层协议(SSL)的进化版本,SSL是由Netscape公司在1990年代研发的。国际互联网工程任务组(IETF)做为一个标准化组织,负责定义该协议,该协议已经历了多次修订。最新版本TLS1.2在2008年被确立为标准,目前被大多数浏览器和启用HTTPS的web服务所支持。
在配置正常的情况下,TLS1.2会很安全,但如今它却显得有些过时了。在过去几年中,几次引人注目的攻击暴露出该协议的一些漏洞。在计算机安全领域,8年是一段很长的时间,因此IETF已经在着手开发该协议的新版本TLS1.3,并将于2016年底完工。
TLS1.3是一次全面升级,与此前版本相比,它有两个主要优势:
●增强安全性
●提升速度
增强安全性
过去几年来,大部分针对TLS的攻击都是以该协议90年代遗留下来的残余部分为目标的。TLS1.2具有很强的可配置性,因此一些有安全漏洞的站点为兼容老版本的浏览器而没有关闭那些旧的属性。
TLS1.3信奉“少即是多”哲学,取消了对一些老旧而衰弱的加密方式的支持。这意味着你无法打开那些潜在的漏洞。TLS1.2中原有的大量特性都被删除了,其中大部分特性与那些著名的攻击有关,这些特性包括:
●RSA密钥传输——不支持前向安全性
●CBC模式密码——易受BEAST和Lucky 13攻击
●RC4流密码——在HTTPS中使用并不安全
●SHA-1哈希函数——建议以SHA-2取而代之
●任意Diffie-Hellman组——CVE-2016-0701漏洞
●输出密码——易受FREAK和LogJam攻击
TLS1.3消除了旧版本中糟糕的加密方式,同时降低了旧的攻击方式对其产生影响的可能性。这种精简使网络管理员可以更简便地进行配置。此外,这次更新提高了协议的速度,也给用户带来更好的浏览体验。
提升速度
网页加载速度的提高对web服务的成功是至关重要的。亚马逊公司曾有一个著名的发现:网页加载时间每增加100毫秒,销售额就会下降1%。网页加载时间的一个主要组成部分就是浏览器和web服务器之间发送数据耗费的“延迟时间”。
“延迟时间”特别会显著影响到:
a)移动设备用户
b)服务器在地理上相距很远的用户
一条消息从悉尼往返纽约会花费超过200毫秒,而在移动设备上浏览还会增加这一延迟时间。通过现代4G移动网络发送一条消息通常会额外增加100毫秒的延迟。在欧洲仍普遍使用的3G网络下,这一延迟则会增加200毫秒。就连家用WiFi和ISP也会再增加几十毫秒的延迟。这些额外的延迟会使人感觉到移动浏览速度很缓慢。不幸的是,数据加密会进一步降低连接的速度。而TLS1.3有助于改善这种状况。
要向加密网站发送一条消息,你必须首先建立共用密钥。这一过程叫做一次握手。它要求有专门的消息往来于浏览器和网站之间。只要你的浏览器连接到一个加密站点,TLS握手就会在后台发生。
对于TLS1.2来说,在请求发送出去之前,需要2次消息往来才能完成握手。通过移动网络访问一个站点时,加载时间会额外增加超过半秒钟。而对于TLS1.3来说,首次握手只需要1次消息往来。这就像把一辆0-60迈加速需10秒的旅行车升级成一辆只需5秒的特斯拉Model S。如果一次连接所需的消息往来耗时约100毫秒,那么TLS1.3的速度提升足以让那些反应迟缓(加载时间超过300毫秒)的站点变得足够快(加载时间低于300毫秒)。
不仅如此,而TLS1.3还有其他的优点。对于近期访问过的站点,你可以在第一次给服务器发消息时就发送有用的数据。这叫做“零消息往来”模式(0-RTT),会使网页加载变得更快!
它为所有浏览器而生
TLS1.3对网络安全和性能来说都是一大进步。尽管TLS1.3规范仍在进一步完善中,但IETF已非常接近完成这一协议的最终版本。主要浏览器Firefox和Chrome都已在其开发版(火狐Nightly版和Chrome Canary版)中使用了TLS1.3的初步版本。
那么问题来了,怎样才能在你的浏览器中启用TLS1.3呢?
火狐Nightly版
●安装并运行火狐Nightly版:https://nightly.mozilla.org/
●在地址栏输入“about:config”
●将security.tls.version.max的值由3改为4
●重启浏览器
Chrome Canary版
●安装并运行Chrome Canary版:
https://www.google.com/chrome/browser/canary.html
●在地址栏输入“chrome://flags/”
●找到“Maximum TLS version enabled.”并选择“TLS 1.3”
●重启浏览器
关于TLS1.3的更多细节,请戳此处
【科普】什么是TLS1.3