TLS/SSL加密通信过程全解

一、

  • 客户端 (curl) 向服务器 (localhost) 发起一个 HTTPS 连接请求。

  • 服务器会将其数字证书发送给客户端。

  • 客户端的操作系统(也就是"你的系统")接收到这个证书后,必须进行验证。它会查看自己本地的"信任证书库"(Trust Store),检查这个证书是不是由一个它已经信任的"证书颁发机构"(CA)签发的。

  • 如果验证通过,连接继续。

  • 如果验证失败(因为签发这个证书的机构不在客户端的信任列表里),curl 就会报错,也就是我们一开始试图解决的"证书错误"。

二、

接下来会发生密钥交换(Key Exchange) ,这是整个 TLS/SSL 握手过程中最核心、最巧妙的部分。目标是让客户端和服务器能够安全地商定一个只有它们俩知道的密钥,用来加密后续的所有通信内容。

这个过程大致如下:

1. 客户端生成一个"秘密"

客户端会生成一个随机的、一次性的对称加密密钥,我们称之为**"会话密钥" (Session Key)**。这个密钥将是接下来所有数据传输的"密码本"。

2. 用服务器的"公开锁"加密这个"秘密"

还记得吗?服务器发过来的证书里包含了一个公钥 (Public Key)。公钥就像一把可以无限复制分发的"开着的锁",任何人都可以用它来加密信息。 客户端现在就用这个公-钥,把刚刚生成的"会话密钥"给锁起来(加密)。

关键点: 被公钥加密的信息,只有拥有与之配对的私钥 (Private Key) 的人才能解开。而这个私钥,全世界只有那台服务器自己持有,从未公开过。

3. 将加密后的"秘密"发送给服务器

客户端把这个被服务器公钥锁住的"会话密钥"发送给服务器。即使这个数据包在网络上被黑客截获了,黑客也没有服务器的私钥,所以完全无法解开它,也就不知道真正的"会话密钥"是什么。

4. 服务器用自己的"私人钥匙"解密

服务器收到这个加密包后,就用自己珍藏的私钥来解密,轻松地得到了客户端发来的那个"会话密钥"。

握手完成,开始安全通信!

至此,客户端和服务器双方都拥有了同一个、不为外人所知的"会话密钥"。这个过程称为TLS/SSL 握手 (Handshake) 成功。

从这一刻起:

  • 客户端 发送给服务器的所有数据(例如 HTTP 请求),都会用这个"会话密钥"进行对称加密。

  • 服务器接收到数据后,用同一个"会话密钥"解密,读取内容。

  • 服务器发送给客户端的所有数据(例如网页内容),也用这个"会话密钥"进行加密。

  • 客户端接收到数据后,用同一个"会话密钥"解密。

相关推荐
迪康coolmu15 分钟前
基于迪康端点安全一体化管理系统的 AI 工具使用审计实战
运维·网络·人工智能·安全·电脑
minglie129 分钟前
zynq联网配置
网络·数据库·php
小此方1 小时前
Linux网络(二十九):从内网穿透到P2P打洞:NAT转换、代理机制与局域网通信的底层全景解析
linux·网络·p2p
Likeadust1 小时前
一文吃透云点播/本地点播/网络点播EasyDSS点播模块
网络·音视频·easydss
腾科IT教育1 小时前
HCIP-Security 华为Portal认证技术与配置解析
网络·华为·portal·hcip-security
斌糖雪梨2 小时前
registerListeners(); 方法详解
网络·网络协议·rpc
Jtti2 小时前
香港服务器CPU不高但用户请求排队的原因有哪些?
运维·服务器·网络
福芯微电子有限公司nfc2 小时前
国产收音芯片 FSV4755:多波段调谐与高集成设计,赋能多种音频终端
网络协议·网络安全·音视频·信息与通信·信号处理
道尔柯南3 小时前
Linux 网络编程:从零掌握 TCP Socket 编程(附 C++ 实战)
linux·网络·tcp/ip
星恒讯工业路由器3 小时前
工业路由器在中小 IoT 场景的选型与适配实践:从标准品到定制化的技术路径
开发语言·网络·物联网·php·工业路由器选型·工业网关odm·链路冗余切换