下面解释 TLS 1.3 协议。

TLS(Transport Layer Security)[1] 是一个传输层加密协议,通过 PKIDH 实现身份认证和密钥协商。

TLS 1.3 提供了:

  • 仿窃听

  • 仿伪造

  • 仿篡改

  • 前项加密

  • 基于 (EC)DHE 的 1-RTT 握手和基于 PSK 的 0-RTT 握手。

TLS 只是一个应用层协议,其要求底层的传输通道是可靠的。然而,由于 TCP 将字节流当作透明数据,因此 TCP + TLS 的组合中,需要先进行 TCP 握手,然后进行 TLS 握手。在 QUIC 协议中,通过内置对 TLS 的支持,从而减小了握手的 RTT。

握手

TLS 1.3 支持三种密钥交换方式:

  • (EC)DHE

  • PSK-only

  • PSK with (EC)DHE

基于 DHE 的握手方式如下:

Diagram

若 ClientHello 中提供的信息不充分,则 Server 可以发送 Hello Retry Request 要求 Client 重传 ClientHello。

PSK 模式

PSK(Pre-Shared Key, 预共享密钥) 模式允许在 0-RTT 的时间内进行握手协商。PSK 有两种形式,第一种是静态共享密钥,第二种是在先前的回话中创建 PSK,然后用于建立新的连接:

Diagram
Figure 1. 在会话中创建 PSK

可以看到,第二次握手依然经历了完整的 Hello 流程,然而 PSK 模式下允许客户端通过 psk 验证身份,因此允许在 ClientHello 阶段就发送数据,这种数据被称为 early_data。[2]

双向认证

双向认证流程如下:

Diagram

在 TLS 1.3 中,证书内容是通过密钥进行加密的,主要是防止明文传输的证书导致客户端身份泄露。

Last moify: 2025-01-29 00:53:41
Build time:2025-07-18 09:41:42
Powered By asphinx