图解HTTP读书笔记-(八 确认访问用户身份的认证)

来源:互联网 发布:九鼎软件 编辑:程序博客网 时间:2024/05/22 03:07

确认访问用户身份的认证

8.1 HTTP认证方式:

认证就是为了识别用户身份。常用认证方式如下:

Basic认证

Digest认证

SSL客户端认证

Formbase认证

8.2 basic 认证:

把用户名,密码以Base64编码,安全性不高。

 

8.3 digest认证:

HTTP1.1推出,它主要是为了解决Basic模式安全问题,Digest认证也是采用challenge/response认证模式,基本的认证流程比较类似,整个过程如下:

①浏览器发送http报文请求一个受保护的资源。

②服务端的web容器将http响应报文的响应码设为401,响应头部比Basic模式复杂,WWW-Authenticate: Digest realm=”myTomcat,qop="auth",nonce="xxxxxxxxxxx",opaque="xxxxxxxx" 。其中qop的auth表示鉴别方式;nonce是随机字符串;opaque服务端指定的值,客户端需要原值返回。

③浏览器弹出对话框让用户输入用户名和密码,浏览器对用户名、密码、nonce值、HTTP请求方法、被请求资源URI等组合后进行MD5运算,把计算得到的摘要信息发送给服务端。请求头部类似如下,Authorization: Digest username="xxxxx",realm="myTomcat",qop="auth",nonce="xxxxx",uri="xxxx",cnonce="xxxxxx",nc=00000001,response="xxxxxxxxx",opaque="xxxxxxxxx" 。其中username是用户名;cnonce是客户端生成的随机字符串;nc是运行认证的次数;response就是最终计算得到的摘要。

④服务端web容器获取HTTP报文头部相关认证信息,从中获取到username,根据username获取对应的密码,同样对用户名、密码、nonce值、HTTP请求方法、被请求资源URI等组合进行MD5运算,计算结果和response进行比较,如果匹配则认证成功并返回相关资源,否则再执行②,重新进行认证。

⑤以后每次访问都要带上认证头部。

Digest模式避免了密码在网络上明文传输,提高了安全性,但它仍然存在缺点,例如认证报文被攻击者拦截到攻击者可以获取到资源。 

8.4 SSL客户端认证:

看了下原书的介绍,理解为HTTPS的双向认证的一部分。单向认证是只认证服务端,双向认证还要认证客户端。

一般采用双认证机制,客户端认证客户端计算机,密码认证是认证用户本人。

8.5 基于表单的认证:

最常见的办法。

Session管理和cookie应用

鉴于HTTP的无状态协议,我们使用cookie来管理session

 

后面两章相对独立,分别介绍了http2.0协议,web前段技术,网站安全问题,相对独立暂不展开。


阅读全文
0 0
原创粉丝点击