D26-《图解HTTP》读书笔记5

2017-05-18  本文已影响23人  小红鱼

第7章确保Web安全的HTTPS

1、HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全传输层协议)的组合使用,加密HTTP的通信内容。与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)或HTTP over SSL;

2、MIME:Man-in-the-Middle attack。请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击;

3、不光是HTTP协议,其它运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。当前主流的版本是SSL3.0和TLS1.0;

4、HTTPS使用SSL时,它的处理速度会变慢。SSL的慢分两种,一种是通信慢,另一种是由于大量消耗CPU、内存等资源,导致处理速度变慢。HTTPS比HTTP要慢2~100倍;

第8章确认访问用户身份的认证

1、HTTP/1.1使用的认证方式如下:

1)BASIC认证(基本认证)

2)DIGEST认证(摘要认证)

3)SSL客户端认证

4)FormBase认证(基于表单认证)

2、BASIC认证采用Base64编码方式,但这并不是加密处理,不需要任何附加信息即可对其进行解密,并不常用。BASIC认证步骤:

1)请求的资源需要BASIC认证时,服务器返回401 Unauthorized,响应报文含WWW-Authentication首部字段,该字段内包含认证方式BASIC及安全域字符串realm;

2)客户端将用户ID及密码发送给服务器。假设用户ID为admin,密码是password,用冒号连接后形成字符串admin:password,然后经过Base64编码,最后的结果是YWRtaW46cGFzc3dvcmQ=。客户端把这串字符串写入首部字段Authorization后,发送请求;

当用户代理为浏览器时,用户仅需输入用户ID和密码,浏览器会自动完成到Base64编码的转换工作;

3)服务器对认证信息进行验证,如果通过验证,返回包含请求资源的响应,若认证失败则返回401;

3、DIGEST认证的步骤:

1)客户端发送请求;

2)服务器返回401 Unauthorized,响应报文中包含WWW-Authentication首部字段,该字段必须包含realm和

nonce两个字段的信息。nonce是随机字符串,通常由base64编码的十六进制数组成;

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

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

上一篇下一篇

猜你喜欢

热点阅读