图解HTTP-7-8
2016-09-257 确保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
属性。