整个HTTPS通信大致过程如图:

 这里写图片描述

HTTPS由于使用SSL独立协议,根据上面的处理过程,我们知道该协议需要大量消耗CPU及内存资源等资源,故通信较慢,网络负载较大。

确认访问用户身份的认证

HTTP协议通信过程会通过各种认证方式来确定其身份,通常涉及到的核对信息有以下几点:

密码:只有本人才会知道的字符串信息。

动态令牌:仅限本人持有的设备内显示的一次性密码。

数字认证:仅限本人持有的信息。

生物认证:指纹和虹膜等本人的生理信息。

IC 卡等:仅限本人持有的信息。

HTTPS一般的认证方式:BASIC认证(基本认证),DIGEST认证(摘要认证),SSL客户端认证,FormBase认证(基于表单认证)。

BASIC认证步骤:

当请求的资源需要BASIC认证时,服务器会随状态码401,返回带WWW-Authenticate首部字段的响应,该字段内包含认证的方式(BASIC)及Request-URI安全域字符串(realm)。

接收到状态码401的客户端为了通过BASIC认证,需要将用户ID及密码发送给服务器,发送的字符串内容是由用户ID和密码构成,两者中间以冒号(:)连接后,再经过Base64编码处理,如:用户ID为guest,密码是guest,连接起来就是guest:guest,然后会经过浏览器Base64编码后,发送请求。

接收到包含首部字段Authorization请求的服务器,会对认证信息的正确性进行验证,验证通过,则返回一条包含Request-URI资源的响应。

整个认证过程如图:

 这里写图片描述

BASIC认证缺点:

在HTTP等非加密通信的线路上进行这种认证,容易被拦截窃听。(注:Base64编码用来加密,而是为能在通信传输信息)

浏览器无法实现认证注销操作。

DIGEST认证步骤:

请求需认证的资源时,服务器会随状态码401,返回带WWW-Authenticate首部字段的响应,该字段内包含质问响应方式认证所需的临时质询码(随机数,nonce).其中首部字段WWW-Authenticate内必须包含realm和nonce这两个字段(nonce是一种每次随返回的401响应生成的任意随机字符串)。

接收到状态码401的客户端,提取返回响应中首部字段Authorization信息,并在自己的首部字段Authorization还必须加上usename,uri,response的字段信息(response也叫做Request-Digest,存放经过MD5运算后的密码字符串,形成响应码。)

接收到包含首部字段Authorization请求的服务器,会对认证信息的正确性进行验证,验证通过,则返回一条包含Request-URI资源的响应。

整个认证过程如图:

 这里写图片描述

DIGEST认证比BASCI认证安全性等级要高,能提供防止密码被窃听的保护机制,但是并不存在防止用户伪装的保护机制。




相关内容