Skip to content

HTTPS ✨

要点速览

  • TLS 是 SSL 的升级版,现网使用 TLS(SSL 已弃用)。
  • HTTPS = HTTP over TLS,提供加密、完整性、身份认证三大能力。
  • 握手阶段协商密码套件并建立会话密钥;传输阶段使用对称加密。
  • 信任来自证书链与 CA;浏览器会校验域名、有效期与吊销状态。
  • 防护中间人攻击的关键:强制 HTTPS(HSTS)、正确重定向、证书合规。

HTTPS 的机制和原理可以参考文章和配套的视频介绍

基本概念

  • 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)握手过程

  1. 客户端请求服务器告诉服务器自身支持的加密算法以及密钥长度等
  2. 服务器响应公钥和服务器证书
  3. 客户端验证证书是否合法,然后一个会话密钥(对称加密),并用服务器的公钥加密密钥,接着通过请求发送给服务器。服务器使用私钥解密被加密的会话密钥并保存起来,然后使用会话密钥加密消息响客户表示自己已经准备就绪
  4. 客服端使用会话密钥解密消息,知道了服务器已经准备就绪
  5. 后续客户端和服务器使用会话密钥加密信息传息

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 大幅提升劫持难度;多数攻击依赖用户忽视红色告警或设备被植入恶意根证书。