图解HTTP-7-8

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属性。