网络安全技术与实训-第7章-第2节-HTTPS与国密算法
第7章 加密技术与虚拟专用网络
上一节讲了三种加密技术,这一节看它们如何在实际协议中协同工作,以及国内常用的“国密算法”体系。
一、HTTPS ≠ 一种加密算法
先纠正一个常见误解:HTTPS 不是某个具体的加密算法,而是 HTTP 协议 + TLS 协议的组合。它在原有 HTTP 之外加了一层安全通道,由 TLS 负责完成加密、身份验证与完整性校验。
二、TLS 握手:一次简化的“商量过程”
建立 HTTPS 连接之前,客户端与服务器要先完成一次握手(Handshake),本质上是商量好“用什么算法、用哪把钥匙”。简化流程如下:
- ① 客户端打招呼:告诉服务器“我支持这些加密算法和版本”。
- ② 服务器亮身份:选择一套算法,并把自己的数字证书发过来。
- ③ 客户端验证证书:确认这张证书是由受信任的 CA 签发的、域名对得上、没有过期。这就是浏览器地址栏“小锁”背后的动作——验证失败时浏览器会给出醒目警告。
- ④ 协商会话密钥:双方通过密钥交换算法安全地算出一个本次会话专用的对称密钥。这个过程保证了即使有人在中间全程监听,也算不出这个密钥。
- ⑤ 开始加密通信:之后所有的 HTTP 数据都用这个会话密钥做对称加密,并附带完整性校验值。
注意这个设计的精妙之处:慢的非对称加密只用了一次(协商密钥),之后全程用快的对称加密。 既解决了“钥匙怎么安全传递”,又保证了性能。
三、国密算法:SM2 / SM3 / SM4
“国密”指我国自主设计并发布的商用密码算法标准。在关键行业与政务系统中,合规要求往往明确规定使用国密算法。好消息是——它们与上一节的“2、1、0”完全对应,只是换了一套算法:
| 算法 | 对应类别 | 用途 | 国际对应算法 |
|---|---|---|---|
| SM2 | 非对称(2 把钥匙) | 密钥交换、数字签名 | RSA / ECC |
| SM3 | 单向散列(0 把钥匙) | 完整性校验、口令摘要 | SHA-256 |
| SM4 | 对称(1 把钥匙) | 数据加密传输与存储 | AES |
可以这样理解:国密 = 国家自己的加密“方言”。功能上和主流算法一一对应,但算法本身是自主可控的——在关键行业,这不只是技术选择,也是合规与供应链安全的要求。
四、部署 HTTPS 的三点实操建议
- 证书用受信任 CA 签发:自签证书会让所有访问者看到“不安全”警告,等于白做加密(用户会习惯性点“继续访问”,这才是最危险的)。个人或小站可用免费的证书服务。
- 全站 HTTPS,并做跳转:只把登录页加密是不够的——如果其他页面还是 HTTP,会话 Cookie 仍可能被截获。正确做法是把所有 HTTP 请求 301 跳转到 HTTPS。
- 关注证书有效期与算法版本:证书过期会导致网站直接不可用;同时应关闭已经不安全的旧版协议,避免被降级攻击。
关键认知:看到浏览器的“小锁”只说明这条链路是加密的、且证书与域名匹配——它并不代表网站本身是正规或安全的。钓鱼网站同样可以申请到有效证书。所以“有小锁”是必要条件,不是充分条件。
五、配套实训
本章的 实训 9 · PGP 加密与数字签名 与 实训 10 · OpenVPN 隧道搭建 都建立在同一套加密原理之上:
- 实训 9 让你亲手完成一次“非对称加密 + 签名”的完整流程,把 HTTPS 握手里最难理解的部分变成手上的操作。
- 实训 10 则会用到证书:搭建 VPN 时你需要生成证书、分发公钥、验证对方身份——这正是 HTTPS 握手在做的事,只是换了应用场景。
做完这两个实训再回头看本节内容,HTTPS 握手的每一步都会变得非常具体。

