HTTPS 与 TLS

HTTP 以明文传输,存在被窃听、篡改、伪装三大风险。HTTPS 就是在 HTTP 与 TCP 之间加入 TLS(传输层安全协议),通过加密与证书解决安全问题。如今全站 HTTPS 已是标配,"HTTPS 握手过程"是网络面试出现率最高的考题之一。

HTTP 的三个风险与对策

风险现象HTTPS 的应对
窃听报文明文,可被中途读取数据对称加密
篡改内容可被改写而不被发现摘要校验 / MAC
伪装攻击者冒充服务器骗取信息CA 数字证书验身份

两类加密算法

  • 对称加密:加密与解密用同一把密钥,速度快(如 AES)。
  • 非对称加密:公钥加密、私钥解密,无需提前共享密钥但速度慢(如 RSA、ECC)。

HTTPS 采用混合加密:先用非对称加密安全协商出临时的会话密钥,之后用对称加密传输海量业务数据,兼顾安全与性能:

明文数据 →(会话密钥, 对称加密 AES)→ 密文传输 →(同一密钥解密)→ 明文
会话密钥本身 →(服务器公钥, 非对称加密)→ 只有服务器私钥能解开

数字证书与 CA

如何证明"手里的公钥确实是服务器的"?由权威机构 CA 签发数字证书

  • 证书内容包含:域名、公钥、有效期、颁发者、CA 的数字签名。
  • 浏览器/系统内置可信 CA 根证书,用根证书验证签名是否有效。
  • 域名不符、证书过期、签名校验失败时,浏览器会给出安全警告。

TLS 握手过程

HTTPS 加密身份完整性

客户端                                  服务器
  │ 1. ClientHello: 支持的TLS版本/算法/随机数 │
  │────────────────────────────────────>│
  │ 2. ServerHello + 证书 + 服务器公钥       │
  │<────────────────────────────────────│
  │ 3. 验证证书合法性,生成"预主密钥"          │
  │ 4. 用服务器公钥加密预主密钥                │
  │────────────────────────────────────>│
  │ 5. 服务器私钥解密,双方各自算出会话密钥      │
  │ 此后改用会话密钥对称加密通信(业务数据)      │

一句话概括:先验身份,再传密钥,后加密通信。TLS 1.3 进一步把握手压缩到 1 个 RTT,并移除了不安全的旧算法。

HTTPS 与 HTTP 对比

对比项HTTPHTTPS
默认端口80443
传输内容明文TLS 加密
身份验证CA 证书
性能更快多出握手开销,略慢
典型场景测试/内网登录、支付、生产环境

优化与场景

登录、支付、涉及隐私的接口必须启用 HTTPS。常见优化手段:

  • 会话复用:同一客户端复用已协商的密钥,减少握手次数;
  • TLS 1.3 与 HTTP/2 配合降低连接建立成本;
  • CDN 边缘做证书卸载,把 TLS 终止在离用户更近的节点。

小结:HTTPS = HTTP + TLS。核心链路是"CA 证书验身份 → 非对称算法协商会话密钥 → 对称加密传输数据"。能画出握手时序并解释混合加密的动机,这一考点就稳了。

笔记加载中…