文档简介:本文档深度拆解了 TLS 1.3 在底层协议设计上相较于 TLS 1.2 的提速机制。TLS 1.3 的提速核心不仅在于“优化”,更在于“做减法”——通过精简握手流程和剔除低效算法,将网络延迟降至物理极限。


一、 核心概念:什么是 RTT?

在理解提速原理前,必须先理解 RTT (Round Trip Time,往返时延):

  • 定义:一个数据包从客户端发出,到达服务器,再将服务器的响应返回客户端所经历的总时间。
  • 影响:RTT 往往受限于物理距离。如果客户端在北京,服务器在美国,1 个 RTT 大约是 200 毫秒。握手所需的 RTT 越多,用户看到网页首屏的等待时间就越长。

二、 提速核心 1:握手流程减半(2-RTT ➔ 1-RTT)

TLS 1.2 采用的是“先互相了解,再交换密钥”的两步走策略;而 TLS 1.3 采用了“直接猜你喜欢,带着密钥去打招呼”的一步到位策略。

1. TLS 1.2 握手流程(需要 2 个 RTT)

在 TLS 1.2 中,建立安全连接需要反复沟通 2 次才能开始发送真实的 HTTP 数据。

【 TLS 1.2 握手全过程 】

[ 客户端 ]                                           [ 服务端 ]
   |                                                    |
   | --- 1. Client Hello (我支持哪些算法) --------------->|
   |                                                    |
   |<--- 2. Server Hello (我选定算法,附带证书) ----------| 
   |                  (此时完成 1-RTT)                   |
   |                                                    |
   | --- 3. Key Exchange (发送我生成的随机数/公钥) ------>|
   |                                                    |
   |<--- 4. Finished (密钥生成完毕,握手完成) ------------|
   |                  (此时完成 2-RTT)                   |
   |                                                    |
   | === 5. 开始发送真实的加密 HTTP 数据 (GET /) ========>|

2. TLS 1.3 握手流程(仅需 1 个 RTT)

TLS 1.3 极其聪明地利用了现代密码学算法高度统一的特点。客户端在第一次打招呼时,就顺便把密钥材料一起发了过去。

【 TLS 1.3 握手全过程 】

[ 客户端 ]                                           [ 服务端 ]
   |                                                    |
   | --- 1. Client Hello (我支持啥算法 + 我算好的公钥) --->|
   |                                                    |
   |<--- 2. Server Hello (选定算法 + 证书 + 握手完成) ----|
   |                  (此时完成 1-RTT)                   |
   |                                                    |
   | === 3. 开始发送真实的加密 HTTP 数据 (GET /) ========>|

💡 提速本质:TLS 1.3 将“协商加密算法”和“交换密钥”这两个步骤合并了。这就好比去饭店,TLS 1.2 是先要菜单再点菜;TLS 1.3 是进门直接大喊“给我来份招牌菜(主流算法公钥)”,极大节省了沟通成本。


三、 提速核心 2:老用户免检通道(支持 0-RTT)

对于第一次访问网站的用户,TLS 1.3 将延迟从 2-RTT 降到了 1-RTT。 对于曾经访问过该网站的老用户,TLS 1.3 甚至可以做到 0-RTT(零往返)。

  • 工作原理:当客户端第一次与服务器完成 TLS 1.3 握手后,服务器会给客户端下发一个类似“月票”的凭证(PSK, Pre-Shared Key)。
  • 0-RTT 极速连接:当客户端短时间内再次访问时,在发送第一个数据包(Client Hello)的同时,直接将 HTTP 请求(如请求图片的 GET 命令)用 PSK 加密后一起塞进数据包里发过去。
  • 效果:服务器收到第一个数据包后,直接解密并返回图片。握手时间彻底清零,达到了物理极限!

⚠️ 安全提示:0-RTT 存在重放攻击(Replay Attack)风险。因此,业界最佳实践是:仅允许对服务器数据没有修改作用的 GET 请求使用 0-RTT,而 POST 请求(如支付、登录)依然退回 1-RTT 保证安全。


四、 提速核心 3:算法“断舍离”(剔除慢速加密套件)

TLS 1.2 诞生于 2008 年,背负了沉重的历史包袱,支持海量又慢又旧的加密算法。TLS 1.3 进行了一场彻底的“大扫除”:

1. 废弃 RSA 密钥协商,强制使用 ECDHE

  • TLS 1.2 的痛点:经常使用 RSA 算法进行密钥协商,该算法涉及极其复杂的超大素数运算,非常消耗服务器与手机的 CPU 算力,导致解密极慢。
  • TLS 1.3 的优化:强制废弃 RSA 密钥协商,全面采用 ECDHE(椭圆曲线 Diffie-Hellman)。椭圆曲线算法计算量小、速度极快,是实现 1-RTT 的数学基础。

2. 引入对移动端极度友好的 ChaCha20

  • TLS 1.2 的痛点:高度依赖 AES 加密。对于没有内置 AES 硬件加速芯片的老旧或低端安卓手机,纯靠软件算力解密非常卡顿。
  • TLS 1.3 的优化:引入了 ChaCha20-Poly1305 流密码算法。该算法在纯软件环境下的计算速度比 AES 快 3 倍以上,让移动端 App 的网络响应如丝般顺滑。

五、 总结与对比速查表 (Cheatsheet)

对比维度 TLS 1.2 TLS 1.3 性能收益
首次握手时间 2-RTT 1-RTT 延迟降低 50%,首屏加载明显变快
恢复连接 (老用户) 1-RTT 0-RTT (Early Data) 会话恢复瞬间完成,达到物理极限
密钥协商机制 繁杂 (RSA / DH 等) 极简 (强制 ECDHE) 降低 CPU 计算耗时,提高并发量
加密算法集合 庞大且包含不安全算法 仅 5 种现代 AEAD 算法 没有烂算法拖后腿,整体平均速度提升
移动端友好度 一般 极高 (支持 ChaCha20) 弱算力设备(低端手机/IoT)不再卡顿

最后修改日期: 26 9 月, 2026

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。

允许上传的最大文件为80 MB。 您可以上传:图像, 音频, 视频, 文档, 电子表格, 互动, 文本, 存档, 代码, 其他。 评论文本中插入的YouTube、Facebook、Twitter和其他服务的链接将自动嵌入。 Drop files here