某些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协议中不存在的状态管理功能。