图解HTTP——确认访问用户身份的认证(学习记录10)

某些Web页面只想让特定的人浏览,或者干脆仅本人可见,为了达到这个目标,必不可少的就是认证功能。

核对的信息通常是指以下这些:

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

HTTP使用的认证方式:

  • BASIC认证(基本认证)
  • DIGEST认证(摘要认证)
  • SSL客户端认证
  • FormBase认证(基于表单的认证)

BASIC认证,是Web服务器与通信客户端之间进行的认证方式。




DIGEST认证,同样使用质询/响应的方式(所谓质询/响应方式是指,一开始一方会先发送认证要求给另一方,接着使用从另一方那接收到的质询码计算生成的响应码,最后将响应码返回给对方进行认证的方式),但不会像BASIC认证那样直接发送明文密码。


DIGEST认证提供防止密码被窃听的保护机制,但并不存在防止用户伪装的保护机制。



SSL客户端认证是借由HTTPS的客户端证书完成认证的方式。在多数情况下,SSL客户端认证不会仅依靠证书完成认证,一般会和基于表单认证组合形成一种双因素认证(所谓双因素认证就是指认证过程中不仅需要密码这一个因素,还需要申请认证者提供其他持有信息,从而作为另一个因素,与其组合使用的认证方式)来使用。

换言之,第一个认证因素的SSL客户端证书用来认证客户端计算机,另一个认证因素的密码则用来确认这是用户本人的行为。



基于表单认证

基于表单的认证方法并不是在HTTP协议中定义的,客户端会向服务器上的Web应用程序发送登录信息(Credential),按登录信息的验证结果认证。



认证多半为基于表单认证:由于便利性及安全性问题,HTTP协议标准提供的BASIC认证和DIGEST认证几乎不怎么使用。另外,SSL客户端认证虽然具有高度的安全等级,但因为导入及 维持费用等问题,还尚未普及。

Session管理及Cookie应用:使用Cookie来管理Session,以弥补HTTP协议中不存在的状态管理功能。





猜你喜欢

转载自blog.csdn.net/zmeilin/article/details/80800522