某些Web页面只想让特定的人浏览,或者仅本人可见,未达到这个目标,必不可少的就是认证功能。
HTTP/1.1使用的认证方式:
BASIC认证(基本认证)是从HTTP/1.0就定义的认证方式。
BASIC认证步骤:
:
连接,再经过Base64编码处理。BASIC认证采用Base64编码方式,但不是加密处理。不需要任何附加信息即可对其解码,安全性偏低。并且BASIC认证使用上不够便捷灵活,且达不到多数Web网站期望的安全性等级,因此它并不常用。
为了弥补BASIC认证的缺点,从HTTP/1.1开始就有了DIGEST认证。DIGEST认证同样使用质询/响应的方式(challenge/response),但不会像BASIC认证那样直接发送明文密码。
所谓质询响应方式是指,一开始一方会先发送认证要求给另一方,接着使用从另一方那接收到的质询码计算生成响应码。最后将响应码返回给对方进行认证的方式。
DIGEST认证步骤:
DIGEST认证提供了高于BASIC认证的安全等级,但是和HTTPS的客户端认证相比仍旧很弱。DIGEST认证提供防止密码被窃听的保护机制,但不会防止用户伪装的保护机制。
从使用用户ID和密码的认证方式方面来讲,只要二者的内容正确,即可认证是本人的行为。但如果用户ID和密码被盗,就很有可能被第三者冒充。利用SSL客户端认证则可以避免该情况的发生。
SSL客户端认证是借由HTTPS的客户端证书完成认证的方式。凭借客户端证书认证,服务器可确认访问是否是自己登陆的客户端。
SSL客户端认证步骤:
由于使用上的便利性及安全性问题,HTTP协议标准提供的BASIC认证和DIGEST认证几乎不怎么使用。另外,SSL客户端认证虽然具有高度的安全等级,但因为导入及维持费用等问题还尚未普及。
基于表单的认证方法并不是在HTTP协议中定义的,使用Web应用程序格子实现基于表单的认证方式,通过Cookie和Session的方式来保持用户的状态。
目前绝大多数的网站基本使用表单认证+SSL认证结合的方式,基本能保证99%的请求能建立安全链接,保证客户的信息不被窃取。但是因为表单认证没有规范和标准,质量也参差不齐,所以不是所有网站有表单认证就是安全的,但是有比没用强不少。