Appearance
HTTPS ✨
要点速览
- TLS 是 SSL 的升级版,现网使用 TLS(SSL 已弃用)。
- HTTPS = HTTP over TLS,提供加密、完整性、身份认证三大能力。
- 握手阶段协商密码套件并建立会话密钥;传输阶段使用对称加密。
- 信任来自证书链与 CA;浏览器会校验域名、有效期与吊销状态。
- 防护中间人攻击的关键:强制 HTTPS(HSTS)、正确重定向、证书合规。
基本概念
- SSL(Secure Sockets Layer):早期的安全协议,已不再推荐。
- TLS(Transport Layer Security):SSL 的后续版本,当前标准。
- HTTPS(Hyper Text Transfer Protocol over TLS):HTTP 通过 TLS 安全传输。
text
应用层:HTTP
安全层:TLS (握手/记录)
传输层:TCP
为什么需要 HTTPS
- HTTP 明文传输,易被窃听、篡改、伪造。
- HTTPS 通过加密与完整性校验,防止数据泄露与被动/主动攻击。
- 现代浏览器对敏感能力(Service Worker、地理位置等)要求 HTTPS。
证书与信任
- 证书链:站点证书 → 中间 CA → 根 CA(根 CA 预置在系统/浏览器信任库)。
- 域名校验:证书的
CN/SAN必须匹配访问域名(含通配符规则)。 - 吊销检查:OCSP/CRL;现代浏览器多采用 OCSP stapling 与预加载机制。
- SNI:在同一 IP 上区分域名,服务器基于 SNI 选择证书。
常见风险
- 用户忽视证书错误继续访问,可能被劫持或降级到 HTTP。
- 混合内容(HTTPS 页面加载 HTTP 子资源)会破坏整体安全性。
常见面试题
1. 介绍 HTTPS 中间人攻击
- 证书替换(伪造证书):攻击者拦截连接并返回自签或不可信证书,诱导用户忽略警告继续访问。
- SSL 剥离(降级到 HTTP):攻击者与服务器维持 HTTPS,与客户端伪装为 HTTP,明文窃取数据。
- 恶意根证书:通过恶意软件在系统信任库植入私有根 CA,从而“合法”签发伪证书实现劫持。
text
用户 ←HTTP→ 攻击者 ←HTTPS→ 真实服务器
└─ 伪造证书 / 降级剥离 / 恶意根证书防护清单
- 启用并预加载 HSTS,强制使用 HTTPS,防止降级。
- 全站 301 跳转到 HTTPS,启用
upgrade-insecure-requests/阻止混合内容。 - 证书合规:域名匹配、有效期、OCSP stapling,拒绝过期或不可信证书。
风险表现
- 浏览器地址栏证书错误提示(切勿忽略并继续访问)。
- HTTPS 页面加载 HTTP 子资源导致的混合内容警告。
2. 介绍 HTTPS(TLS)握手过程
- 客户端请求服务器告诉服务器自身支持的加密算法以及密钥长度等
- 服务器响应公钥和服务器证书
- 客户端验证证书是否合法,然后一个会话密钥(对称加密),并用服务器的公钥加密密钥,接着通过请求发送给服务器。服务器使用私钥解密被加密的会话密钥并保存起来,然后使用会话密钥加密消息响客户表示自己已经准备就绪
- 客服端使用会话密钥解密消息,知道了服务器已经准备就绪
- 后续客户端和服务器使用会话密钥加密信息传息
3. 客户端如何验证证书的合法性
- 信任链校验:站点证书由中间 CA 颁发,最终链到系统/浏览器信任的根 CA。
- 域名匹配:
CN/SAN必须匹配访问域名,含通配符与子域名规则。 - 有效期与时间:验证当前时间在证书有效期内。
- 吊销状态:OCSP/CRL;优先使用 OCSP stapling 缩短验证路径。
- 私钥证明:服务器在握手中对消息签名,证明持有证书对应的私钥。
4. TLS/SSL 身份验证过程(单向与双向)
- 单向认证(常见):客户端验证服务器证书与签名,确立服务器身份。
- 双向认证(mTLS):服务器也要求客户端提供证书,完成双向身份验证(适用于企业内网、API 调用)。
mTLS 适用场景
- 零信任网络、机器到机器通信、金融与高合规场景。
5. 为什么需要 CA 机构对证书签名
- 建立公共可信的身份体系,客户端可验证证书不是伪造。
- 没有 CA 的签名与信任链,HTTPS 无法抵抗证书替换与伪造。
6. 如何劫持 HTTPS 的请求(安全分析)
- 安装恶意根 CA 到系统信任库,使伪造证书被客户端接受。
- 公共 Wi‑Fi/网关进行 SSL 剥离,诱导用户访问 HTTP。
- 企业代理(合法场景)在受控设备上安装企业根证书实现流量审计。
攻击门槛与用户行为
- 现代浏览器的证书校验与 HSTS 大幅提升劫持难度;多数攻击依赖用户忽视红色告警或设备被植入恶意根证书。
