TLS 1.3 简介以及如何开启使用?

前言

我们在此宣布,又拍云即将在其内容分发网络中部署 TLS 1.3,作为国内首家在其内容分发网络中部署 TLS 1.3 的 CDN 厂商,又拍云始终跟随安全及速度的步伐,为互联网世界的的安全与加速贡献着自己的一份力量。在互联网世界这个生态系统中,进行 TLS 安全协议的升级并不简单,这个需要客户端和服务端同时进行升级,并确保客户端和服务端的所有通信都是正常的。又拍云在其内容分发网络中进行了这个尝试,接下来,我们更期望主流的浏览器厂商默认可以启用 TLS 1.3。截止目前为止,目前还没有任何主流浏览器在其稳定版中默认启用 TLS 1.3。

什么是 TLS 1.3 ?

众所周知,TLS 1.3 是一个全新的 TLS  加密协议,相比 TLS 1.2 ,它既能提高各地互联网用户的访问速度,又能增强安全性。TLS 1.3 通过移除对老旧破损的密码协议的支持,来提高性能、效率和安全性,例如:

  • CBC 模式密码
  • SHA-1 散列函数
  • 各种 Diffie-Hellman 组
  • RSA 密钥传输
  • RC4 流密码
  • Export ciphers

它还通过简化 TLS 握手来提高速度,使其只需要一次往返,而不是之前版本中的两次。通过简化握手,可以减少延迟并提高性能。

如何在浏览器(客户端)中开启 TLS 1.3 ?

目前最新版本的 Chrome 和 Firefox  都支持 TLS 1.3,但是都需要手动开启。主要原因是 TLS 1.3 还在草案阶段。

1)在 Firefox 中手动启用 TLS 1.3

Mozilla Firefox 用户可以通过以下方式在 Firefox 中启用 TLS 1.3 支持( 请注意,Nightly 默认支持 TLS 1.3,而 Firefox Stable 需要专门配置以支持 TLS 1.3 )。

  • 在 Firefox 地址栏中加载 about:config。如果显示警告屏幕,请确认您要小心,忽略安全提示;
  • 在搜索区域搜索 security.tls.version.max
  • 通过双击它将首选项的值更改为 4,默认为 3,如上图所示。

2)在 Chrome 中手动启动 TLS 1.3

Google Chrome 用户可以通过以下方式在 Chrome 中启用 TLS 1.3 支持( 注意:Chrome 62  之前的版本需要将  Maximum TLS version enabled  改为 TLS 1.3

  • 在浏览器的地址栏中加载 chrome://flags/。这将打开 Web 浏览器的实验页面。
  • 在搜索区域搜索 TLS 或者 tls ,找到 TLS 1.3  选项,默认为 Default
  • 需要将  TLS 1.3 改为 Enabled (Draft);
  • 重新启动 Web 浏览器。

如何在又拍云 CDN (服务端)控制台开启 TLS 1.3 ?

在 又拍云 CDN 控制台,我们针对 TLS 1.3 开放了切换开关,TLS 1.3 默认为关闭状态,您可以手动开启,如截图所示:

值得声明的是, CDN  是否启用 TLS 1.3 ,这个取决于客户端浏览器是否支持,如果客户端并不支持 TLS 1.3 ,则会进行协议降级,仍会使用较低的 TLS 1.2 协议进行通信。

 

在 TLS 中,客户端和服务端如何进行版本协商?

TLS 发展至今,经历了很多版本的迭代。从 20 世纪 90 年代后期,TLS 是从最早的安全套接层(SSL)改编而来,目前 TLS 有三个版本,分别为 TLSv1.0、TLSv1.1、TLSv1.2。目前 TLSv1.3 还在草案阶段,也是迄今为止,协议版本改造最大的一个版本。

不是所有的客户端和服务端都支持相同的 TLS 协议版本,因此进行升级变得不太可能,因为这涉及到客户端和服务端的同时升级。为了达到在 TLS 通信过程中,协议版本可以达到一致,需要客户端和服务端进行协商,TLS 版本的协商相对是比较简单的,也即客户端通知服务端,其所支持的最新的 TLS 协议版本,服务端回复它们所支持的最新的协议版本。大体过程是:

1)在进行 TLS 连接时,客户端会在连接开始时发送其支持的最高版本:

client(TLSv1.2)–> server

2)如果服务端可以正常理解客户端所发的 TLS 协议版本,则会回复相同的版本给客户端

client(TLSv1.2)–> server

client    <– server(TLSv1.2)

3)如果服务端并不支持客户端所发送的通信版本,仅仅支持 TLSv1.0,则服务端回复一个 TLSv1.0 版本给客户端

client(TLSv1.2)–> server

client    <– server(TLSv1.0)

如果此时,客户端也支持服务端回复的协议版本,则接下来客户端和服务端所有的安全通信都会使用这一版本( 这里指 TLSv1.0 )。如果客户端并不支持服务端所发送的协议版本,则会导致通信失败。

如何验证服务端是否支持了 TLS 1.3 ?

可以直接通过  Qualys SSL Labs's SSL Server Test  工具来验证是否支持 TLS 1.3 了 ,如截图所示:

 

以上,可以得知,客户端以及服务端都支持 TLS 1.3 才可以使用  TLS 1.3  进行通信。如果您使用了 CDN 服务,需要 CDN 厂商的内容分发网络中部署 TLS 1.3 才可以正常启用。

结论

TLS 1.3 是 Web 安全与性能的一大进步,虽然主流浏览器还未默认开启,但是这一天的到来不会太久,又拍云紧紧跟随时代的步伐,寄希望为互联网用户提供更安全、更快的加速体验。与此同时,我们也很高兴成为国家首家推出 TLS 1.3  功能的 CDN 厂商。

 

 

留下一个评论