《http权威指南》阅读笔记(九)

服务器要求客户端进行认证,可以通过401响应码,以及头部加上www-authenticate:Basic realm=”xxxx”

 

需要对client进行验证,有两种方式

基本认证和摘要认证,基本认证通过base64对user:password进行加密,然后发送给服务器,通过头部 Authentication: Basic 密文 发送给服务器,由服务器进行验证。这个是可逆的,可以通过密文知道用户的用户名和密码

摘要认证:采取生成消息摘要的方式对用户进行认证。一般采取md5,对user:password:请求头部:实体报文  进行摘要,不可逆,不能通过密文算出原文,安全性较高,但是一般可以通过截获请求 ,重新生成请求来进行恶意攻击,比如我截获了user:password生成的摘要,我用这个发送给服务器,还是可以通过认证的。所以有时候客户端和服务器还会约定一个随机数,客户端在请求服务器的时候,如果验证通过,服务器会发送下一次请求验证给出一个随机数,客户端使用把随机数也一起加入到请求报文进行消息摘要。这样就避免了截获报文。

以上两种方式都会存在监听情况

客户端和服务器端的请求会被监听

无法确认服务器是否是正确的通信服务器,可能导致请求截获而转发到欺骗的服务器

服务器没有办法确认客户端是否是正确的客户端,客户端的信息会被代理更改