Security(03):网络安全——TLS/HTTPS 原理、证书链、握手流程
更新时间:2026-09-02。本文是
security/Security 领域第 03 篇,接 加密算法。网络安全是边界防护,TLS 保护传输数据,防火墙做端口过滤,IDS/IPS 做入侵检测,VPN 做远程访问。理解 HTTPS 握手流程是基础,证书链是认证。
本文要回答的问题
- TLS 和 HTTPS 有什么区别?TLS 1.2 vs TLS 1.3?
- TLS 握手流程为什么要三次握手?密钥交换怎么来的?
- 证书链怎么验证?根证书是什么?
- 防火墙包过滤 vs 状态检测 vs 应用层网关区别?
- IDS 和 IPS 区别?怎么配合?
一、TLS vs HTTPS
HTTPS = HTTP over TLS
TLS = Transport Layer Security,传输层安全协议
前身是 SSL,现在 SSL 不安全,都用 TLS
TLS 版本:
TLS 1.0 → 不安全,弃用
TLS 1.1 → 不安全,弃用
TLS 1.2 → 现在主流,安全
TLS 1.3 → 最新,更快,更安全,推荐
TLS 1.3 优势:
- 握手更快(1-RTT,0-RTT)
- 密码套件更现代,只保留 AEAD
- 移除了不安全算法(MD5、SHA-1)二、TLS 握手流程(TLS 1.2)
TLS 握手目的:协商密码套件、交换密钥
RSA 密钥交换流程(TLS 1.2):
1. Client Hello
→ 客户端发:支持的密码套件、随机数 A
2. Server Hello
→ 服务器选密码套件、发随机数 B、发证书
→ 证书含服务器公钥
3. Pre-Master Secret
→ 客户端用服务器公钥加密预主密钥 → 发给服务器
→ 服务器用私钥解密得到预主密钥
4. 双方根据 A + B + Pre-Master → 生成会话密钥
5. 握手完成 → 用会话密钥 AES 加密传输数据TLS 1.3 简化流程:
1. Client Hello(带密钥分享)
2. Server Hello(带密钥分享,证书,Finished)
3. Client Finished
一次 RTT 完成握手,比 TLS 1.2 少两次 RTT核心思路:
- 非对称加密:交换预主密钥
- 对称加密:加密实际 HTTP 数据
- 就是 RSA + AES 混合用法,RSA 交换密钥,AES 加密数据
三、证书链验证
证书作用:证明服务器公钥是谁的,防止中间人攻击
证书链结构:
根证书(Root CA)→ 中间证书 → 服务器证书
验证流程:
1. 客户端用根证书公钥验中间证书签名
2. 中间证书验服务器证书签名
3. 验证通过 → 信任服务器公钥
根证书:
操作系统 / 浏览器预装根证书
你不能伪造根证书,中间人也不能为什么需要证书链:
- 根证书离线,不签名新证书
- 中间证书签名服务器证书
- 根证书只信任中间证书,这样更安全
- 一个根证书可以对应多个中间证书
四、防火墙分类
1. 包过滤防火墙(网络层)
工作在网络层,检查 IP 包:
- 源 IP / 目的 IP
- 源端口 / 目的端口
- 协议类型(TCP/UDP/ICMP)
根据规则允许/拒绝
优点:快,简单
缺点:不理解应用层内容,不能防应用层攻击
示例:iptables、华为ACL2. 状态检测防火墙(传输层)
维护 TCP 连接状态表:
只允许发起于内网的连接入站
出站响应自动允许
优点:比包过滤安全,比包过滤快
缺点:还是不理解应用层
示例:大多数商业防火墙3. 应用层网关(WAF/NGFW)
工作在应用层,理解 HTTP 内容
可以过滤 SQL 注入、XSS
可以理解 JSON、Cookie
可以做访问控制
优点:理解应用层,防应用层攻击
缺点:慢,开销大
示例:WAF(Web 应用防火墙)、NGFW(下一代防火墙)选型: 网络边界放 NGFW,Web 前面放 WAF,内网 ACL 用包过滤。
五、IDS vs IPS
| 对比 | IDS(入侵检测系统) | IPS(入侵防御系统) |
|---|---|---|
| 位置 | 旁路,流量镜像 | 串联,流量必经 |
| 动作 | 告警,不阻断 | 检测到攻击直接阻断 |
| 误报影响 | 误报不影响业务 | 误报会阻断正常流量 |
| 性能 | 不需要实时处理 | 需要线速处理 |
| 用途 | 事后分析,告警 | 实时阻断攻击 |
配合: IDS 在旁路做深度检测,IPS 在入口做实时阻断。IDS 漏的,IPS 拦;IPS 漏的,IDS 告警。
六、VPN 分类
1. IPsec VPN
工作在网络层,加密整个 IP 包
站点到站点 VPN,适合两个网络互联
公司总部 ↔ 公司分支
两端网关做加密解密
特点:对上层透明,不需要客户端改
场景:企业互联2. SSL VPN
工作在应用层,基于 HTTPS
远程访问 VPN,适合个人用户
个人用户浏览器直接访问,不需要装客户端
web 资源直接访问,TCP 应用可以代理
特点:方便,穿透性好
场景:远程办公3. OpenVPN
开源 VPN,基于 SSL/TLS
支持 UDP/TCP,穿透性好
可以穿越防火墙(443 端口)
大多数开源 VPN 都用 OpenVPN4. WireGuard
新一代 VPN,代码简单(几千行 vs OpenVPN 几万行)
更快,更安全,现代加密(Curve25519、ChaCha20)
内核态,性能好
现在越来越流行,推荐选型:
- 企业站点互联:IPsec
- 个人远程访问:WireGuard 或 OpenVPN(UDP 快)
- Web 应用访问:SSL VPN
七、常见网络攻击
| 攻击 | 原理 | 防护 |
|---|---|---|
| DDoS 分布式拒绝服务 | 流量把带宽打满,服务不可用 | 流量清洗、CDN、高防IP |
| ARP 欺骗 | 伪造 MAC 地址,中间人劫持 | 静态 ARP、DAI 端口安全 |
| DNS 欺骗 | 伪造 DNS 响应,把用户导到钓鱼站 | DNSSEC、DoH |
| SYN Flood | 半连接耗尽服务器资源 | SYN cookie、防火墙限流 |
| 中间人攻击 | 窃听通信 | TLS 证书验证 |
八、常见坑对照
| 错误 | 现象 | 对策 |
|---|---|---|
| TLS 版本太低(1.0/1.1) | 不安全,浏览器警告 | 配置 TLS 1.2+ |
| 自签名证书不被信任 | 浏览器警告 | 用可信 CA 证书,Let's Encrypt 免费 |
| 防火墙放错端口 | 外部能访问内部管理端口 | 默认拒绝,只开放需要的端口 |
| IDS 误报太多 | 每天大量告警,没人看 | 调整规则,减少误报 |
| VPN 用不安全加密 | VPN 被破解 | 用 AES-256-GCM + ECC 密钥交换 |
相关与延伸
下一篇:Web 安全——OWASP Top 10、SQL 注入、XSS、CSRF、SSRF;加密算法,见 加密算法——AES、RSA、哈希。
一句话总结
网络安全:HTTPS = HTTP + TLS,TLS 1.3 比 TLS 1.2 握手快(1-RTT),推荐用 TLS 1.3;TLS 握手:客户端发随机数 + 服务器发随机数+证书 + 客户端发预主密钥 → 双方生成会话密钥 → AES 加密传输,用 RSA 加密预主密钥,AES 加密实际数据;证书链:根证书预装,根验中间,中间验服务器;防火墙:包过滤快,状态检测维护连接,应用层网关(WAF)防应用层攻击;IDS 旁路告警不阻断,IPS 串联在线阻断;VPN:IPsec 适合站点互联,SSL/OpenVPN/WireGuard 适合个人访问。