HTTP 和 HTTPS 的区别?HTTPS 的加密原理是什么?

对比

特性 HTTP HTTPS
端口 80 443
加密 ❌ 明文传输 ✅ TLS/SSL 加密
证书 不需要 需要 CA 证书
性能 快 略慢(握手开销)
SEO 无加分 搜索引擎优先
安全性 低(可被中间人攻击) 高

HTTPS 加密原理

HTTPS = HTTP + TLS/SSL,使用混合加密:

1. 非对称加密(握手阶段)

2. 对称加密(数据传输阶段)

TLS 握手流程(TLS 1.2)

Client                          Server
  | --- ClientHello --------------> |
  |     (支持的加密套件、随机数)     |
  |                                 |
  | <--- ServerHello -------------- |
  |     (选择的加密套件、随机数)     |
  | <--- Certificate -------------- |
  |     (服务器证书,含公钥)         |
  | <--- ServerHelloDone ---------- |
  |                                 |
  | --- ClientKeyExchange --------> |
  |     (用公钥加密的会话密钥)       |
  | --- ChangeCipherSpec ---------> |
  | --- Finished -----------------> |
  |                                 |
  | <--- ChangeCipherSpec --------- |
  | <--- Finished ---------------- |
  |                                 |
  | <=== 加密通信开始 =============> |

TLS 1.3 改进

为什么不全部用非对称加密

同分类其他题目