第8章 确认访问用户身份的认证
1.何为认证
核对的信息通常是指
-密码:只有本人才会知道了字符串信息
-动态令牌:仅限本人持有的设备内显示的一次性密码
-数字证书:仅限本人(终端)持有的信息
-生物认证:指纹和虹膜等本人的生理信息
-IC卡等:仅限本人持有的信息
2.HTTP使用的认证方式
HTTP/1.1 使用的认证方式如下
-BASIC认证(基本认证)
-DIGEST认证(摘要认证)
-SSL客户端认证
-FormBase认证(基于表单认证)
3.BASIC认证
Web服务器与通信客户端之间进行的认证方式
使用不够便捷灵活,达不到多数Web网站期望的安全性等级,因此它并不常用。
认证步骤:
-发送请求
-返回状态码401 Authorization Required,返回带WWW-Authenticate首部字段的响应。该字段内包含认证的方式(BASIC)及Request-URI安全域字符串(realm)
-将用户ID及密码发送给服务器。用户ID和密码中间以冒号(:)连接,经过Base64编码处理,写入首部字段Authorization后,发送请求
-认证成功返回状态码200,失败返回401
2017.10.1 15:39:25~2017.10.1 15:55:30
4.DIGEST认证 - 使用质询/响应的方式(challenge/response)
一开始会发送认证要求给另一方,接着使用从另一方那接收到的质询计算响应码。最后将响应码返回给对方进行认证的方式。
认证步骤:
-发送请求
-返回临时的质询码(随机数,nonce)以及告知需要认证的状态码401
-发送摘要以及同质询码计算出的响应码(response)
-认证成功返回状态码200,失败则再次发送状态码401
5.DIGEST认证提供防止密码被窃听的保护机制,但并不存在防止用户伪装的保护机制。
6.DIGEST认证和BASIC认证一样,使用上不那么便捷灵活,仍达不到多数Web网站对高度安全等级的追求标准。因此它的适用范围也有所爱限。
7.SSL客户端认证
借同HTTPS的客户端证书完成认证的方式。凭借客户端证书认证,服务器可确认访问是否来自自己登录的客户端。
8.SSL客户端认证步骤
客户端必须事先安装此证书。
-接收到需要认证资源的请求,服务器会发送Certificate Request报文,要求客户端提供客户端证书。
-用户选择将发送的客户端证书后,客户端会把客户端证书信息以Client Certificate报文方式发送给服务器。
-服务器验证客户端证书,验证通过后方可领取证书内客户端的公开密钥,然后开始HTTPS加密通信。
9.SSL客户端认证采用双因素认证
证书认证和基于表单认证
10.基于表单认证
此方法并不是在HTTP协议中定义的。
多数情况下,输入已事先登录的用户ID和密码等登录信息后,发送给Web应用程序,基于认证结果来决定认证是否成功。
11.认证多半为基于表单认证
12.Session管理及Cookie应用
使用Cookie来管理Session,以弥补HTTP协议中不存在的状态管理功能。
2017.10.2 21:54:08~2017.10.2 22:19:00