TLS 握手
了解安全会话如何建立
TLS 握手 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
什么是 TLS 握手?
TLS 握手是在任何加密数据传输之前进行的协商。
它让客户端和服务器就加密参数达成一致、验证身份并建立共享的秘密密钥。
握手的目标
TLS 握手会完成三件事:
- 身份验证:客户端验证服务器的证书。
- 密钥交换:双方派生共享的会话密钥。
- 协商:双方选择一个加密套件和协议版本。
ClientHello
客户端首先发送一条包含以下内容的 ClientHello 消息:
- 支持的 TLS 版本
- 它可以使用的加密套件列表
- 一个随机值(客户端随机数)
- 类似 SNI(主机名)的扩展
ServerHello
服务器使用 ServerHello 回复,从客户端列表中选择 TLS 版本和一个加密套件,并附带自己的随机值。
随后,服务器发送自己的证书,以便客户端验证身份。
验证服务器
客户端会验证服务器的证书链:签名、有效日期、吊销状态,以及主机名是否匹配。
如果验证失败,握手会中止,不会发送任何数据。
密钥交换
现代 TLS 使用临时迪菲–赫尔曼(ECDHE)。双方交换公钥份额,并独立计算出相同的共享秘密。
这提供了前向保密:即使日后窃取了服务器的长期密钥,也无法解密过去的会话。
派生会话密钥
双方根据共享秘密和两个随机值,派生出对称的会话密钥。
开销较大的非对称加密仅用于启动快速的对称加密,以处理实际数据。
完成消息
双方都会发送一条使用新密钥加密的完成消息,其中包含整个握手的哈希值。
如果双方都验证通过,就能证明没有人篡改协商过程,并且双方的密钥相匹配。
TLS 1.3 提速
TLS 1.3将握手精简为一次往返(1-RTT),并移除了不安全的选项。
它甚至可以通过0-RTT恢复之前的会话,在第一条消息中发送数据。
观察握手过程
您可以使用 OpenSSL 查看握手详情,包括协商出的版本和加密算法。
openssl s_client -connect example.com:443 -tls1_3为何重要
握手决定了安全性是否建立,或是否被破坏。有缺陷或被降级的握手可能会暴露之后的所有流量。
理解握手过程有助于您诊断连接失败并识别攻击。
快速检查
临时迪菲–赫尔曼(ECDHE)在握手中提供了什么好处?
总结
您了解了TLS 握手的步骤。
- ClientHello / ServerHello协商版本和加密套件。
- 客户端验证证书。
- ECDHE在提供前向保密的同时派生共享会话密钥。
- TLS 1.3让握手更快、更安全。
接下来,我们将详细研究加密套件。
常见问题解答
「TLS 握手」课时是免费的吗?
是的 — 「TLS 握手」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「TLS 握手」这节课中我会学到什么?
了解安全会话如何建立 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「TLS 握手」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。