图解HTTP-7-8

Executive Summary

核心观点(金字塔原理)

结论先行: HTTPS通过SSL/TLS解决了HTTP的三大安全缺陷(窃听、伪装、篡改),配合多种认证机制确保Web通信的安全性。

支撑论点:

  1. HTTP存在明文传输、无身份验证、无完整性保护三大安全隐患
  2. HTTPS = HTTP + SSL/TLS,实现加密、认证、完整性保护三位一体
  3. 认证方式从BASIC到SSL客户端认证,安全级别逐步提升,表单+Session是主流方案

SWOT 分析

维度 分析
S 优势 HTTPS提供端到端加密;SSL证书验证服务器身份;Session机制弥补HTTP无状态缺陷
W 劣势 HTTPS增加服务器计算开销;BASIC认证仅Base64编码不够安全;客户端证书成本高
O 机会 全站HTTPS已成行业标准;OAuth等现代认证协议可增强安全性
T 威胁 证书私钥泄露风险;Session劫持攻击;中间人攻击(证书伪造)

适用场景

  • 电商、金融等需要高安全性的Web应用
  • API接口的身份认证设计
  • 单点登录(SSO)系统实现

7 确保Web安全的HTTPS

1-HTTP的缺点
通信使用明文可能会被窃听
  • TCP/IP 是可能被窃听的网络
  • 加密处理防止被窃听
  • 内容加密
  • 不验证通信方的身份就可能遭遇伪装
  • 任何人都可以发起请求
  • 查明对手的证书
  • 无法证明报文完整性,可能已遭篡改
2-HTTP+加密+认证+完整性保护=HTTPS
SSL(Secure Socket Layer) TLS(Transport Layer Security)

HTTPS就是在HTTP协议的基础上加上SSL和TLS

8 确认访问用户身份的认证
认证方式
  • 密码
  • 动态令牌
  • 数字证书
  • 生物认证
  • IC卡等
HTTP/1.1认证方式
  • BASIC认证
  • DIGEST认证
  • SSL客户端认证
  • FormBase认证
BASIC认证
C->>S:发送请求
S->>C:返回状态吗401告知C需要认证
C->>S:用户ID和PWD以Base64方式编码(并不是加密处理)后发送
S->>C:认证成功返回200失败则401
DIGEST认证
C->>S: 发送请求
S->>C: 发送临时的质询码(随机数,nonce)以告知需要认证的状态吗401
C->>S: 发送摘要以及由质询码计算出的响应码
S->>C: 认证成功返回200失败401
SSL认证

客户端证书收费

C->>S:请求某一需要认证的资源比如登陆
S->>C:发送Certificate Request报文要求提供客户端证书
C-->S:将Certicicate信息以Client Certificate报文方式发送给S
S->>C:验证证书,通过后领取客户端的公开密钥进行HTTPS加密通信
基于表单认证

大多认证采用表单认证,涉及Session管理Cookie应用,即Cookie来管理Session,弥补HTTP协议为无状态的缺点。

C->>S:发送登陆信息ID,PWD
S->>C:返回包含Session ID的Cookie,以纪录认证状态
C->>S:发送包含Session ID的Cookie的请求

⚠️为减轻跨域站脚本攻击(XSS)造成的损失,建议事先在Cookie内加上httponly属性。