HTTP与HTTPS的区别及加密流程理解

52 阅读5分钟

区别

httphttps
明文加密(ssl加密、安全)
端口80端口443
不需要证书需要CA证书,有一定费用
响应效率快响应效率慢,现代优化下,首次访问HTTPS相对HTTP延迟大概10-30ms,后续访问几乎没有差异

https为什么需要证书?

  1. 身份认证
    证书由CA(证书颁发机构)签发,证明服务器属于真实所有者,防止中间人伪造网站。

  2. 传递公钥
    证书包含服务器的公钥,用于加密后续生成的会话密钥。

  3. 信任链机制

    • 浏览器内置可信CA根证书列表
    • 服务器证书需由可信CA签名
    • 形成 根CA → 中间CA → 服务器证书 的信任链

⚠️ 自签名证书不被浏览器信任,会显示安全警告。

https为什么加密?

  1. 防窃听
    HTTP传输是明文的,黑客可截获敏感数据(密码、银行卡号)。HTTPS通过加密使数据变成密文,即使被截获也无法破解。
  2. 防篡改
    中间人可篡改HTTP内容(如插入广告或病毒)。HTTPS的完整性校验会识别篡改,阻止数据被修改。
  3. 防冒充
    HTTP无法验证网站真实性,黑客可伪造钓鱼网站。HTTPS证书强制验证服务器身份,确保你访问的是真实网站。

https加密流程是什么?

  1. Client Hello
    浏览器发送支持的加密算法列表 + 随机数A。

  2. Server Hello
    服务器选择加密算法,下发证书 + 随机数B。

  3. 验证证书
    浏览器检查证书:
    ✅ 是否由可信CA签发
    ✅ 域名是否匹配
    ✅ 是否在有效期内

  4. 生成会话密钥

    • 浏览器用证书中的公钥加密随机数C,发送给服务器。
    • 服务器用私钥解密获取随机数C。
    • 双方用随机数A+B+C生成对称加密密钥(后续通信使用)。
  5. 加密通信

  6. 后续所有数据传输均用对称加密(如AES-256),速度快且安全。 非对称加密只用于交换密钥,对称加密用于传输数据,兼顾安全与效率。

什么是对称加密和非对称加密?

区别点对称加密:用同一把钥匙加密码解密非对称加密:公钥加密,私钥解密
特点“高速通道”,但需秘密传递钥匙是“信任锚点”,用数学安全解决钥匙传递问题
理解两人用同一把钥匙锁保密箱传递物品(一旦钥匙被偷,箱子即被打开)。接收者将打开的挂锁(公钥) 发给发送方,发送方用挂锁锁箱后寄回,仅接收者有钥匙(私钥) 能开箱。
优点极快(GB/s级)、比非对称加密快100-1000倍依赖密钥保密性、加密大量数据资源消耗低(CPU/内存占用低)解决密钥分发问题(公钥可公开)天然支持身份验证(私钥签名)N个用户只需维护N对密钥依赖数学难题(如大数分解)、安全交换密钥/数字签名
缺点密钥分发不安全若密钥泄露,通信全盘暴露N个用户需维护 N×(N-1)/2 个密钥(管理复杂)速度极慢(比对称加密慢100-1000倍)加密数据长度受限(如RSA-2048最多加密245字节)计算资源消耗大(CPU/内存占用高)
核心原理- 加密与解密使用相同密钥发送方用密钥加密明文 → 生成密文 → 接收方用同一密钥解密密文。- 常见算法AES(高级加密标准,如AES-256)、DES、3DES、ChaCha20。- 使用一对密钥
    • 公钥(Public Key):公开给所有人,用于加密数据。
    • 私钥(Private Key):仅持有者保存,用于解密数据。
  • 数学单向性公钥加密的数据只能由对应私钥解密(即使知道公钥也无法反推私钥)。- 常见算法RSA(2048位以上)、ECC(椭圆曲线加密)、Diffie-Hellman。 | | 典型场景 | - HTTPS数据传输阶段、Wi-Fi加密(WPA2)、ZIP加密压缩。 | HTTPS密钥交换阶段、SSH登录、数字签名、区块链交易。 | | 流程对应关系 | C[双方用随机数生成会话密钥]--> D[后续数据用AES-256加密传输] | [浏览器用服务器公钥加密随机数C]--> B[服务器用私钥解密] | | 工作流程 | A[明文]--密钥加密--> B[密文]B --同一密钥解密--> C[明文] | A[明文]--接收方的公钥加密--> B[密文]B --接收方的私钥解密--> C[明文]

https为什么响应速度慢?

主要延迟来自TLS握手阶段

步骤HTTPHTTPS延迟原因
TCP握手1-RTT1-RTT基础连接建立
TLS握手(非对称加密)1-2 RTT证书传输、密钥交换等计算
后续通信明文对称加密加密/解密消耗少量CPU(可忽略)

性能优化方案

  1. TLS 1.3
    将握手缩短到1-RTT(甚至0-RTT),速度提升50%以上。
  2. 会话复用 (Session Resumption)
    复用之前协商的密钥,跳过握手过程。
  3. OCSP Stapling
    由服务器提供证书状态,避免浏览器额外查询CA。
  4. HTTP/2 + HTTPS
    多路复用技术抵消加密开销,整体性能反超HTTP。