网购下单那一刻,四件事都可能出事:被窃听(信用卡号被偷看)、被篡改(付款金额被改)、被冒充(登录页是钓鱼假站)、不认账(商家否认订单)。解药是 SSL/TLS——夹在 HTTP 和 TCP 之间的一层"盔甲"协议:先靠数字证书验明"我是真网站"(7.7),再用混合加密保护整条通信(公钥/密钥交换送会话密钥 + AES 加密全部数据,7.2~7.5 的总装),每条记录还带着完整性校验(7.6 的指纹思想)。地址栏的 🔒 和 https 的 s,就是"这四道防线全部就位"的标记。教材标题的两个词各管一半:SSL 是这套盔甲协议的老名字(现名 TLS),混合加密是它的核心发动机。
这是第七章前半部的大合流:7.1 的认证框架、7.3 的 AES、7.4 的公钥加密、7.5 的密钥交换、7.6 的签名与防篡改、7.7 的证书——在"网购下单"这一个场景里全部同时上岗。
老账对上:4.12 说过"HTTP 是明信片,全程裸奔",本节就是给它穿上铠甲的完整方案;Demo90 在浏览器密码套件里见过的 ECDHE + AES,本节揭晓它们在握手中的分工。看完本节,"打开 https 网站的那一秒发生了什么"可以完整讲清——这也是 4.11~4.12(Web 原理)和 7.1~7.7(安全原理)两条线最终的汇合点。
一、SSL/TLS 是什么:HTTP 和 TCP 之间的一层盔甲
回忆 4.12 的结构:浏览器用 HTTP 说"要买什么",TCP 负责把话可靠送到。但这两层说的都是明文——HTTP 报文里信用卡号裸奔,TCP 只管送到、不管保密。
SSL/TLS 就是为这个缺口设计的协议:它夹在应用层(HTTP)和传输层(TCP)之间——HTTP 先把报文交给 SSL/TLS 加密,加密后的密文再交给 TCP 传输;对面 TCP 收到密文交给 SSL/TLS 解密,还原成 HTTP 报文给服务器。
- SSL(Secure Sockets Layer): Netscape 时代的老名字,3.0 及以前已全部淘汰;
- TLS(Transport Layer Security):SSL 的继任者,现在说"SSL 证书"其实都是 TLS——名字沿用了,协议早换了三代;
https://的 s,指的就是"这条 HTTP 走在 SSL/TLS 加密的通道上"。
二、HTTPS 握手七步:下单那一刻的完整时间线(第一张配图)
点下"提交订单"(实际是访问 https 网站)时,浏览器和网站要先谈妥一切:
- TCP 连接:三次握手先通(老朋友,4.11)——盔甲要穿在可靠的管道上;
- ClientHello:浏览器打招呼,报出自己支持的 TLS 版本和密码套件清单;
- ServerHello + 证书:网站选定一套方案,并递上数字证书(7.7);
- 验证书:浏览器沿信任链验章——域名匹配、没过期、没吊销;验不过直接红色警告,掉包计到此破产;
- 密钥交换:双方用 ECDHE 现场商量出会话密钥(7.5)——这把钥匙从没在网络上出现过,两端各自算出同一个;
- 切换加密:之后改用 AES 会话密钥加密全部数据(7.3),每条记录附带完整性校验码(7.6 的指纹思想);
- 加密通信开始:订单、地址、付款信息全程密文——4.12 的明信片流水线穿上了铠甲。
其中 ⑤+⑥ 合起来就是教材标题说的混合加密:公开密钥干"商量钥匙"的小活,共享密钥干"加密数据"的大活。
三、混合加密在握手中的分工(第二张配图)
7.2 埋的"两条路线"、7.4 讲的"只干小活"、7.5 的 ECDHE——本节全部归队:
| 阶段 | 用什么 | 为什么 |
|---|---|---|
| 验明身份 | 数字证书 + 信任链(7.7) | 公钥得先是真的 |
| 商量会话密钥 | ECDHE / RSA(7.4、7.5) | 公钥加密/密钥交换不怕被看——钥匙不上线 |
| 加密全部数据 | AES 会话密钥(7.3) | 快,扛得住整页商品图和视频 |
| 每条记录防篡改 | MAC 完整性校验(7.6 思想) | 改一位就现形 |
为什么叫"混合":单一方案都有死穴——纯对称加密分发不了钥匙(7.3 两大难题),纯公钥加密又慢得没法用(7.4)。混合起来,各自只干擅长的事,这就是工程上的取长补短。
四、小锁图标背后:四道防线同时在场
回到开头那四件担心的事,逐一销账:
- 被窃听 → 全程 AES 密文,窃听者只能看见"你在和这个网站说话",看不见内容(7.2 说过的:加密≠匿名,元数据仍可见);
- 被篡改 → 每条记录带完整性校验,改一位就报警断连;
- 被冒充 → 证书信任链验明"真网站",钓鱼站没有合法证书;
- 不认账 → 握手中的签名环节给通信记录留了"章",事后抵赖不了。
同时保留 7.7 那条清醒剂:小锁担保"链路安全",不担保"网站是好人"——骗子网站也能有合法证书,付款前看清楚域名仍是最后一道人肉防线。
五、动手 Demo(Demo96)
亲手确认"这条通道真的穿上了盔甲,且盔甲是新一代的"。
第一步:确认 443 端口在岗
按 Win 键 → 输入 powershell → 回车,粘贴运行(以京东为例,可换成任意 https 网站):
Test-NetConnection www.jd.com -Port 443
看什么算成功:输出里 TcpTestSucceeded : True——443 就是 HTTPS 的"岗哨端口"(http 老家的 80 岗哨走的是明文),在岗说明这条加密通道的入口开着。
第二步:亲眼看到协商出来的"盔甲型号"
打开任意 https 网站 → 按 F12 打开开发者工具 → 找「安全」(Security)标签 → 查看"安全连接"一栏。
看什么算成功:能看到类似 TLS 1.3 的协议版本,和一串密码套件如 TLS_AES_256_GCM_SHA384 或 ECDHE_RSA + AES_256_GCM——ECDHE 是 7.5 的密钥交换,AES 是 7.3 的加密主力,GCM 是防篡改模式,一张纸上同框的正是本节全队。
第三步:对比裸奔的 http
找一个支持 http 的老网站(或自己起的本地服务),对比地址栏:http 无锁、浏览器标"不安全"(7.2 的 Demo 已见过这个标记)——同一台浏览器,待遇差别就在 SSL/TLS 有没有上岗。
30 秒实验:在开发者工具安全面板里点开证书查看器,确认网站证书的颁发链(7.7 的信任链)——至此,"点开一个 https 网站"这件事你可以从 TCP 到证书到 AES 全程讲清,第七章前半部的总装验收通过。
六、常见误区
- "https 网站 = 安全可信的网站":https 只保证链路安全(不窃听、不篡改、验明服务器身份)——网站本身是不是骗子、会不会泄露你的信息,锁管不了。付款前看清域名仍是必修课。
- "SSL 和 TLS 是两种东西":TLS 是 SSL 的继任与改名,现在统称 TLS;SSL 3.0 及更早已淘汰,就像"叫惯了的老名字"。
- "http 和 https 是不同的协议":HTTP 本体一模一样,https 只是"HTTP 先过一层 SSL/TLS 再走 TCP"——区别在通道,不在内容格式。
- "装了 https 就一劳永逸":握手用的算法会过时(老版本 TLS、弱密码套件会被淘汰),浏览器和服务器要持续更新——Demo96 里看到的"TLS 1.3"就是最新一代。
- "会话密钥被服务器的公钥加密送过去,所以服务器私钥泄露也没事":不全对。若攻击者事先录下了旧握手的全部流量,服务器私钥泄露后握手可被倒推(除非用 ECDHE 这类"前向保密"的密钥交换)——这也是现代网站全面转向 ECDHE 的原因。
七、动手自测
点开自测(先自己答,再展开对答案)
1. 网购下单怕的四件事是什么?SSL/TLS 分别用什么手段挡住? 2. SSL/TLS 位于哪两层之间?`https` 的 s 是什么意思? 3. 写出 HTTPS 握手的大致七步。哪两步合起来是"混合加密"? 4. 会话密钥为什么"从没在网络上出现过"却双方都有? 5. SSL 和 TLS 什么关系?为什么老的 SSL 不能用了? 6. "https 网站是安全网站"这句话错在哪?答案
1. 窃听→AES 全程加密;篡改→每条记录的完整性校验;冒充→数字证书信任链;抵赖→签名留章。四道防线对应 7.2~7.7 的全部成果。 2. 夹在**应用层(HTTP)和传输层(TCP)之间**;s = HTTP 走在 SSL/TLS 加密通道上。 3. ①TCP 连接 ②ClientHello(报版本和套件)③ServerHello + 证书 ④沿信任链验证书 ⑤密钥交换(ECDHE 出会话密钥)⑥切换 AES 加密 + MAC ⑦加密通信。**⑤+⑥** 合起来是混合加密:公钥商量钥匙、AES 加密数据。 4. ECDHE 这类密钥交换靠数学构造:双方各自拿对方传来的公开参数和自己的秘密参数**本地计算**,算出同一个会话密钥——过程中网络上只有公开参数,密钥本体从未传输。 5. TLS 是 SSL 的继任者(同一套协议的演进),SSL 3.0 及以前已被证明不安全而全面淘汰;现在说"SSL 证书"实际都是 TLS。 6. 错在混淆了"链路安全"和"网站可信"。https 只担保通信不窃听、不篡改、服务器身份真实(证书合法)——**骗子网站同样能拿到合法证书**;网站自己是不是好人,锁管不了。八、下一步学什么
- ☑ 7.9 低成本、安全地在站点之间进行通信(互联网VPN)
相关笔记
-
低成本、安全地在站点之间进行通信(互联网VPN) —— 同一批零件装出的另一种产品:把"安全链路"放大成"打通两个内网的隧道"
-
加密使用的公开密钥是真的吗(数字证书) —— 握手第 ③④ 步的全部内容:证书验明"我是真网站",掉包计在此破产
- 使用两个密钥管理数据(公开密钥加密方式) —— "公钥只干小活"的最终归宿:握手时商量会话密钥
- 使用一个密钥管理数据(共享密钥加密方式) —— AES 会话密钥扛起了下单后的全部数据加密
- 防止数据被窃听的方法(加密) —— "混合加密"概念首次出场的地方,本节看它正式上岗
- 浏览Web网站时执行的处理(DNS的域名解析、HTTP请求与HTTP响应) —— 当年的"明信片流水线"在本节穿上铠甲,两条线在此汇合
- 浏览Web网站时的准备工作(访问Web时使用的应用软件与协议) —— 握手第一步的 TCP 连接,是盔甲要穿的"可靠管道"