问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

用大白话了解HTTPS的“两次握手”到底在干嘛?

创作时间:
作者:
@小白创作中心

用大白话了解HTTPS的“两次握手”到底在干嘛?

引用
1
来源
1.
https://www.nmssb.cn/post/251.html

HTTPS的安全通信建立在TCP三次握手和TLS握手两个阶段的基础上。很多人容易混淆这两个过程,实际上它们是独立的步骤,共同保障通信的安全性和可靠性。

1. 先打个电话:TCP三次握手(确认双方能正常沟通)

场景:就像你打电话给朋友,要先确认对方能听到你说话。

第一步(你说“喂,听得到吗?”)
客户端发个消息:“我要连你了,我这边准备好了(SYN)”。

第二步(朋友说“听得到,你呢?”)
服务器回复:“收到!我这边也准备好了(SYN-ACK)”。

第三步(你说“我也听得到!”)
客户端再回:“好,那咱们开始聊天吧(ACK)”。

结果:双方确认了能互相收发消息,普通电话线接通了。

2. 再对暗号:TLS握手(确保聊天内容绝对保密)

场景:电话接通后,你怕被窃听,决定用“密语”聊天。

第一步(你说“咱们用密码聊天吧!”)
客户端告诉服务器:“我支持这些加密方式(比如AES),再给你个随机数当密码原料”。

第二步(朋友说“用AES加密!这是我的身份证”)
服务器选一个加密方式,发回自己的数字证书(相当于身份证),再加一个随机数。

第三步(你检查身份证,生成密码)
客户端检查证书是不是合法的(比如银行网站要确认是“真官网”)。生成一个临时密码,用服务器的公钥加密后发过去(只有服务器能解开)。
双方用两个随机数+临时密码,生成最终通话密码。

第四步(互相说“暗号正确!”)
双方用新密码加密一条测试消息,确认密码一致。

结果:之后的聊天内容全用这个密码加密,外人就算窃听也看不懂。

3. 总结:为什么HTTPS要搞两次“握手”?

TCP三次握手:解决“能不能通信”的问题,像确认电话线有没有接通。

TLS握手:解决“通信安不安全”的问题,像给电话加了个保险箱,只有你和对方有钥匙。

关键区别:
TCP是基础通信,不加密(就像普通电话,谁都能听)。
TLS是加密层,保障隐私(像特工电话,内容必须加密)。

补充内容

HTTPS是三次还是两次握手?

答案:HTTPS 既需要 TCP 的三次握手,也需要 TLS 的多次握手,两者缺一不可。

具体来说:

  1. TCP 三次握手(必选)是基础,保证客户端和服务器能正常通信。
  2. TLS 握手(必选)是加密层,次数取决于 TLS 版本(如 TLS 1.2 需多次交互,TLS 1.3 优化为 1 次)。

为什么容易混淆?
很多人误以为“HTTPS 握手”是单独的一次过程,实际上它由两部分组成:

步骤
作用
握手次数
是否加密
TCP 三次握手
建立底层可靠连接
3 次交互(SYN → SYN-ACK → ACK)
不加密(明文传输)
TLS 握手
协商加密算法、验证身份、验证链接是否存活及证书是否吊销失效等
TLS 1.2 需 2 次往返,TLS 1.3 需 1 次
加密(后续通信)

举个实际例子:访问一个 HTTPS 网站

TCP 三次握手(先做):
你的浏览器对服务器说:“我要连你”(SYN)。
服务器回复:“好的,我准备好了”(SYN-ACK)。
你的浏览器确认:“开始吧”(ACK)。
此时双方已建立普通连接,但数据未加密。

TLS 握手(后续):
你的浏览器说:“咱们用密码聊天吧!这是我的加密能力列表”(Client Hello)。
服务器回复:“用 AES 加密!这是我的证书和随机数”(Server Hello)。
浏览器验证证书,生成临时密码加密发送,双方计算最终密钥(Key Exchange)。
最后互相确认密钥一致,开始加密通信。

关键结论
TCP 三次握手 ≠ TLS 握手:前者是通信基础,后者是安全增强。
HTTPS 总耗时 = TCP 握手时间 + TLS 握手时间。
TLS 1.3 的优势:将 TLS 握手合并为 1 次往返(减少延迟),但 TCP 三次握手依然需要。

常见误区澄清
误区:“HTTPS 是三次握手”。
正解:HTTPS 依赖 TCP 三次握手(基础) + TLS 握手(安全),总次数是两者叠加。
误区:“TLS 握手只有一次”。
正解:TLS 1.2 需多次交互,TLS 1.3 才优化为 1 次。

一句话总结
HTTPS 既要走完 TCP 三次握手“铺路”,也要完成 TLS 握手“上锁”,两者共同保障安全和可靠。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号