确认访问用户身份的认证
- 密码:只有本人才会知道的字符信息
- 动态令牌:仅限本人持有的设备内显示的一次性密码
- 数字证书:仅限本人(终端)持有的信息。
- 生物认证:指纹和虹膜等本人生理信息。
- IC卡等:仅限本人持有的信息。
- HTTP/1.1使用如下认证:
BASIC认证
DIGEST认证
SSL客户端认证
FormBase认证
BASIC认证
- 从HTTP/1.0就定义的认证方式,现在仍有一部分网站用。
- 认证虽然采用Base64编码方式,但这不是加密处理。在认证过程中,被人窃听,被盗的可能性极高。
- 另外一般浏览器无法实现认证注销操作。因此这种方式安全性不高,不灵活所以不常用。
DIGEST认证
- HTTP/1.1有了DIGEST认证,但不会像BASIC认证发送明文密码。
- 服务器会发送临时质询码(随机数,nonce)以及告知认证的状态码401
- 客户端发送摘要以及由质询码计算出的响应码(response)。
SSL客户端认证
- SSL客户端认证是借由HTTPS的客户端证书完成认证的方式。凭借客户端证书认证,服务器可确认访问是否 来自已登录的客户端。
- SSL客户端认证不会仅依靠证书认证,一般会基于表单认证组合形成一种双因素认证。认证过程中不仅需要密码,还需要申请认证者提供其他持有信息,从而作为另一个因素,与其组合使用的认证方式。
基于表单认证
- 基于表单 认证方法并不是在HTTP协议中定义的。
- 基于表单认证的标准规范尚未定论,一般使用Cookie来管理Session。
总结
- 主要是HTTP的认证方式,前面2个都是HTTP自带的,就是以前访问某些网站弹出个框让你输入用户名密码那种。现在大家一般都自己做表单然后发给服务器。