Cryptology Academy · 课时

TLS 1.3 握手详解

逐步学习 ClientHello、ServerHello、密钥派生和 Finished

第 1 / 4 课13 个步骤

TLS 1.3 握手详解 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。

为什么使用 TLS

TLS(传输层安全)保护互联网上传输中的数据。每个 HTTPS 连接都使用 TLS。TLS 1.3 在 RFC 8446(2018 年)中标准化,移除了旧算法,并将握手往返次数从 2 次减少到 1 次。

ClientHello

客户端发送:TLS 版本(1.3)、一个随机的 32 字节随机数、支持的密码套件列表(例如 TLS_AES_256_GCM_SHA384),以及包含所支持组(X25519、P-256)ECDH 公钥的密钥共享扩展。

ServerHello

服务器选择密码套件和密钥共享组,生成自己的 ECDH 临时密钥对,并回复其公钥。此时双方都可以通过 ECDH 计算共享密钥。

通过 HKDF 派生密钥

TLS 1.3 按照密钥调度流程使用 HKDF(基于 HMAC 的密钥派生函数):早期密钥 → 握手密钥 → 主密钥。每个阶段都会为客户端和服务器的握手流量以及应用程序数据派生独立的密钥。

服务器完成握手

服务器发送其证书、CertificateVerify(使用其私钥对握手转录进行的签名)以及完成消息(对转录进行的 HMAC)。所有这些内容都使用握手流量密钥加密。

客户端完成握手

客户端验证证书链,检查 CertificateVerify 签名,验证完成消息的 MAC,然后发送自己的完成消息。握手现在已在 1 次往返(1-RTT)内完成。

0-RTT 恢复

TLS 1.3 支持使用上一个会话中的预共享密钥(PSK)进行 0-RTT(零往返)恢复。客户端可以立即发送应用程序数据,但 0-RTT 数据缺少重放防护,因此应当具有幂等性。

TLS 1.3 密码套件

TLS 1.3 只允许 AEAD 密码:AES-128-GCM-SHA256、AES-256-GCM-SHA384、ChaCha20-Poly1305-SHA256。它们全部使用 ECDHE 或 DHE 进行密钥交换。弱密码套件(RC4、3DES、CBC)已被移除。

记录层

握手完成后,所有数据都会封装在 TLS 记录中:5 字节标头(内容类型、版本、长度)加上经过 AEAD 加密的载荷。序列号是隐式的,会作为 AEAD 随机数的一部分使用,以防止重放。

前向保密

由于 TLS 1.3 始终使用临时密钥交换(ECDHE),即使服务器的长期私钥泄露,也无法解密过去的会话。每个会话都有一个独特的临时密钥对,并会在握手完成后销毁。

Wireshark 视图

在 Wireshark 中:ClientHello 显示随机数和 key_share;ServerHello 显示选定的组;后续记录显示为“应用程序数据”(已加密)。导出 SSLKEYLOGFILE 后,即可使用会话密钥进行解密。

快速检查

TLS 1.3 的完整握手需要多少次往返?

回顾

TLS 1.3 将 ECDHE、HKDF、AEAD 密码和基于证书的身份验证组合起来,实现了具有强制前向保密的 1-RTT 握手。接下来:深入学习 TLS 记录层和密码套件。

免费开始

用 AI 导师学习 Cryptology Academy — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
67
课程
261

常见问题解答

「TLS 1.3 握手详解」课时是免费的吗?

是的 — 「TLS 1.3 握手详解」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。

「TLS 1.3 握手详解」这节课中我会学到什么?

逐步学习 ClientHello、ServerHello、密钥派生和 Finished 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cryptology Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「TLS 1.3 握手详解」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cryptology Academy 课中编写并运行代码吗?

能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. TLS 1.3 握手详解
  2. TLS 记录层与密码套件
  3. TLS 中的证书验证
  4. TLS 攻击:BEAST、POODLE 与降级攻击
← 返回 Cryptology Academy