原文地址:https://blog.cloudflare.com/introducing-tls-1-3/
翻译水平有限,有不通顺的语句,请见谅。
原作者:Nick Sullivan(Cloudflare安全工程团队的负责人) 写于 20 Sep 2016

CloudFlare 正在飞速发展加密的互联网

安全加密的互联网即将变得复杂. 对于浏览网页来说, 我们一直在驾驶着来自90年代的旧(beat-up)车. 很少有人知道, 我们即将把我们的客货车(station wagons)换为排气的新型跑车(smoking new sports car). 速度提升的来源是 TLS 1.3, 一种新的加密协议,可以提高各地互联网用户的速度和安全性. 从今天起(As of today), CloudFlare的所有客户都可以使用TLS 1.3了.

安全加密的互联网

您访问的许多主要网络媒体资源都是被加密过的, 由挂锁图标表示,并且地址栏显示的是“https”而不是“http”. “s”代表的是安全(secure). 当你连接到一个HTTPS的网站, 您和网站之间的通信将被加密,这使得浏览网页变得更加安全,保护您的通信免受窥探和恶意代码的注入. HTTPS不仅可以在网站使用,还可以保护大多数API和移动应用程序后端。

实现互联网上安全通信的基础技术是称为传输层安全性(TLS,Transport Layer Security)的协议. TLS是安全套接字层(SSL,Secure Sockets Layer)的演变,这是由Netscape在20世纪90年代开发的协议. 互联网工程任务组(IETF,The Internet Engineering Task Force),是一个负责定义协议的标准组织,而该协议经历了组织的多次迭代. TLS 1.2, 是目前最新的版本,标准化于2008年,目前支持大多数浏览器和支持HTTPS的Web服务。

如果配置正确,TLS 1.2是安全的,但它的年长所带来的缺陷已经开始逐渐显现出来。在过去的几年中,几个引人注目的攻击被公布出来,揭示了协议中的缺陷。在计算机安全领域中,8年是一个很长的时间,因此IETF一直致力于研究新版协议TLS 1.3,该协议将于2016年底完成。

TLS 1.3是一项重大改革,与以前的版本相比有两个主要优势:

  • 提升安全性
  • 提升速度

提升安全性

过去几年中,对TLS的大多数攻击都是针对90年代遗留下来的残留部分协议。TLS 1.2具有高度可配置性,易受攻击的站点因为想要无法与旧浏览器兼容,而不能禁用旧功能。

TLS 1.3 尊从“少即是多(less is more)”的理解, 移除了对老旧的易被破解的加密方式的支持。这意味着即使您愿意,也无法开启潜在的易受攻击的功能。已删除的TLS 1.2功能列表非常广泛,大多数废除的功能都与引人注目的攻击相关。这包括:

CC 2.0 Generic Aqua Mechanical

TLS 1.3移除了这些来自遗留功能的“不良加密(bad crypto smell)”,使得对先前版本协议的攻击不太可能影响TLS 1.3。这种简化还使TLS 1.3更易于配置服务器运营商。此次更新的次要副作用是协议可以更快地进行,从而产生更好的Web浏览体验。

提升速度

快速页面的加载时间对Web服务的成功至关重要。有名的亚马逊,发现每增加100毫秒的页面加载时间,销售额就会减少1%。页面加载时间的一个主要组成部分是延迟:在浏览器和Web服务器之间发送数据所需要的时间。

影响延迟的尤为明显是:
a)移动设备上的用户
b)地理位置远离服务器的用户

从悉尼到纽约的消息可能需要200毫秒,足以引起人们的注意。在移动端浏览还会增加连接的延迟。通过现代4G移动网络发送消息,通常会为请求增加超过100毫秒的延迟。在欧洲仍然常见的3G网络上,会增加超过200毫秒的额外延迟。即使是家庭WiFi连接和ISP也会为请求添加几十毫秒的时间。这种额外的延迟会使移动端浏览感觉变慢。不幸的是,加密可能使这些慢速连接看起来更慢。TLS 1.3有助于改善这种情况。

要将消息发送到加密站点,必须先建立共享加密密钥。此过程被称为加密握手。它需要在浏览器和网站之间来回发送四次特殊消息。只要您使用浏览器连接到加密站点,就会在幕后发生TLS握手。

使用TLS 1.2,在发送请求之前需要两次往返才能完成握手。通过移动网络访问站点可以为其加载时间增加超过半秒的时间。使用TLS 1.3,初始握手减少一半,只需要一次往返。这就像是从快速客货车(10秒钟内从0加速到60英里/小时)到特斯拉 Model S(5秒钟)。

如果连接的往返时间大约为100毫秒,则TLS 1.3的速度提升足以使看起来“缓慢”(超过300毫秒)的网站,转换为可以快速加载(低于300毫秒)的站点。

只有将TLS 1.2中存在的一些遗留功能从协议中删除,才能实现更高效的握手。TLS 1.3还具有额外的优势,对于您最近访问过的站点,您可以将第一条消息的数据发送到服务器。这称为“零往返”模式(0-RTT),将导致更快的加载时间。CloudFlare计划在未来几周内支持TLS 1.3 0-RTT。

所有人均可在线体验

TLS 1.3是Web安全性和性能的重大进步。它适用于所有CloudFlare客户,默认情况下为所有Free和Pro客户启用。您将在CloudFlare仪表板的加密选项卡中找到启用/禁用TLS 1.3的按钮(toggle)。

TLS 1.3规范仍在进行中,但IETF非常接近于协议的最终版本。主要的浏览器供应商Firefox和Chrome已经在他们的开发者版本(Firefox NightlyChrome Canary)中实现了TLS 1.3的初步版本,我们正在更新我们的实施方案以匹配这些浏览器中的当前版本,直到规范最终为止。由于越来越多的浏览器将在未来几个月默认启用TLS 1.3,因此可以获得更快,更安全的Web浏览体验。


如何在浏览器中启用TLS 1.3

Firefox Nightly

  • 安装并运行 Firefox nightly: https://nightly.mozilla.org/
  • 在地址栏中输入 “about:config”
  • 将 security.tls.version.max 的值从3改为4
  • 重启浏览器

Chrome Canary