返回

HTTPS之TLS1.3特性解析(四)

前端

TLS1.2 已是 10 年前的“老”协议,虽历经考验,但已跟不上互联网。历经四年打磨,TLS1.3 于前年登场,再立信息安全新标准。

TLS1.3 与前代相比,在安全性、性能等方面都有了显著提升。TLS1.3 引入了以下新特性:

  • 0-RTT(零往返时间)
  • 1-RTT(一次往返时间)
  • 基于密钥协商的认证

这些特性将给互联网带来以下益处:

  • 提升安全性
  • 提升性能
  • 简化认证过程

0-RTT

0-RTT(零往返时间)是 TLS1.3 中最引人注目的新特性。它允许客户端在握手期间发送应用程序数据,而无需等待服务器响应。这可以显著减少延迟,从而提高 Web 应用的性能。

为了实现 0-RTT,TLS1.3 使用了一种称为 "Early Data Indication" 的新机制。该机制允许客户端在发送 ClientHello 消息之前向服务器发送一个 "early data" 消息。如果服务器支持 0-RTT,它将在 ServerHello 消息中包含一个 "early data" 标记。客户端收到该标记后,便可以立即发送应用程序数据。

需要注意的是,0-RTT 并不是默认启用的。服务器需要显式支持 0-RTT,客户端也需要配置为使用 0-RTT。

1-RTT

1-RTT(一次往返时间)是 TLS1.3 中的另一种新特性。它允许客户端在握手期间发送多个应用程序数据包。这可以进一步减少延迟,从而提高 Web 应用的性能。

为了实现 1-RTT,TLS1.3 使用了一种称为 "Post-Handshake Authentication" 的新机制。该机制允许客户端在握手完成之后发送应用程序数据。服务器收到应用程序数据后,将验证客户端的认证信息。如果客户端认证通过,服务器将发送一个 "post-handshake authentication" 消息。客户端收到该消息后,便可以继续发送应用程序数据。

与 0-RTT 类似,1-RTT 也不是默认启用的。服务器需要显式支持 1-RTT,客户端也需要配置为使用 1-RTT。

基于密钥协商的认证

TLS1.3 还引入了一种基于密钥协商的认证新机制。该机制允许客户端和服务器协商一个用于加密应用程序数据的会话密钥。这可以提高安全性,因为会话密钥不会被服务器存储或传输。

TLS1.3 中基于密钥协商的认证过程如下:

  1. 客户端发送 ClientHello 消息,其中包含一个 "key share" 扩展。
  2. 服务器发送 ServerHello 消息,其中包含一个 "key share" 扩展。
  3. 客户端和服务器使用 "key share" 扩展中的信息协商一个会话密钥。
  4. 客户端和服务器使用会话密钥加密应用程序数据。

这种基于密钥协商的认证机制可以防止中间人攻击,因为中间人无法窃取会话密钥。

结论

TLS1.3 是一项重大升级,它在安全性、性能和易用性方面都进行了改进。随着越来越多的服务器和客户端支持 TLS1.3,我们将看到互联网变得更加安全和高效。