0%

图解HTTP:认证

认证,即确认对方身份。一般核对这些信息:

  • 密码。只有本人才会知道的字符串信息。
  • 动态令牌。仅限本人持有的设备内显示的一次性密码。
  • 数字令牌。仅限本人(终端)持有的信息。
  • 生物认证。指纹和虹膜等本人的生理信息。
  • IC 卡等。仅限本人持有的信息。

HTTP使用的认证方式:

  • BASIC认证,基本认证。
  • DIGEST认证,摘要认证。
  • SSL客户端认证。
  • FromBase认证,基于表单认证。

BASIC 认证

base64 发送明文密码。

问题:

  • 明文传输,可窃听。
  • 一般浏览器无法实现认证注销操作。
  • 缺乏灵活,安全性差。

DIGEST 认证

使用质询(challenge/reponse),但不直接发送明文密码。

一开始一方先发送认证要求给对方,接着使用从另一方接收到的质询码计算生成响应码。最后将响应码返回给对方进行认证。

SSL 客户端认证

借由 HTTPS 的客户端证书来完成认证的方式,没错,这里就是上面的双向认证。步骤:

  1. 接收到需要认证资源的请求,服务器会发送 Certificate Request 报文,要求客户端提供客户端证书。
  2. 用户选择将发送的客户端证书后,客户端会把客户端证书以 Client Certificate 报文发送给服务器。
  3. 服务器验证客户端证书通过后,方可领取证书内客户端的空开密钥,然后开始 HTTPS 加密通信。

双因素认证(Tow-factor authentication)

  • SSL 客户端认证通常会和基于表单认证组合形成一种双因素认证。

    • SSL 客户端证书:认证客户端计算机

    • 密码:用来确定这是用户本人的行为

欢迎关注我的其它发布渠道