HTTP基本认证
2016-03-03 10:52
716 查看
HTTP质询/响应认证框架
HTTP提供了一个原生的质询/响应框架,简化了对用户的认证过程。HTTP的认证模型如图所示.Web服务器接收到一条HTTP请求报文时,服务器没有直接响应请求的资源,而是以一个“认证质询”进行响应,要求用户提供一些保密信息来说明其身份。用户再次发起请求时,要附上保密证书(用户名和密码)。如果与要求的不匹配,服务器可以再次质询客户端,或者产生一条错误信息。如果证书匹配则返回请求的资源。
认证协议与首部
HTTP提供可定制的控制首部,为不同的认证协议提供了一个可扩展框架。HTTP提供了两个认证协议:基本认证和摘要认证。
基本认证实例
客户端请求某资源。
服务器对用户进行质询时,会返回一条401Unauthorized响应,并在WWW-Authenticate首部中说明可以使用的认证方式。
客户端重新发送请求,并在Authorization首部附加上用户名、密码等其他一些认证参数。
授权成功完成后,服务器会返回一个正常的状态码(比如,200 OK),对于高级算法来说,可能还会在Authentication-Info首部附加额外的信息。
HTTP基本认证将用户名和密码打包在一起,并使用base-64编码方式对其进行编码。具体过程如下图所示
基本认证的安全缺陷
基本认证通过网络发送用户名和密码,虽然进行base-64编码可以隐藏用户名和密码,但是很容易通过反向编码过程进行解码。即使密码以更加难以解码的方式加密,第三方用户仍然可以捕获被修改过的用户名和密码,并通过重放攻击获取服务器的访问权限。
很多用户会将不同的服务使用相同的用户名和密码,基本认证直接发送用户名和密码,会对一些重要的服务(比如在线银行网站)造成威胁。
基本认证没有提供任何针对代理和中间人节点的防护措施,他们没有修改认证首部,但却修改了报文的其余部分,这样就严重的改变了事务的本质。
假冒服务器很容易骗过基本认证。如果在用户实际链接到一台恶意服务器或者网关的时候,能够让用户相信他链接的是一个受基本认证保护的合法主机,攻击者就可以请求用户输入密码。
IIS中站点默认开启匿名身份验证,并可以直接访问。
相关文章推荐
- [转]HTTP详解(1)-工作原理
- 用xmlhttpRequest获取同域网页中文出现乱码解决方案
- 主机上的vsphere ha 代理无法访问其它主机的部分管理网络地址
- HTTP响应头和请求头信息对照表
- PF_RING数据捕获,tcpreplay使用
- 启动tomcat时报错:Exception in thread "http-bio-8080-exec-2" java.lang.OutOfMemoryError: PermGen space
- 自己对volley http模块的二次封装的使用
- 在计算机中创建网络共享盘的快捷方式
- python 免费http代理服务接口
- Linux网络编程
- 人工神经网络框架列表(neural networks library)
- iOS网络开发(9)多文件下载任务管理
- 检查网络设置网络工具类NetWorkUtil
- 网络编程
- Socket TCP连接相互通信
- HTTP权威指南 第二章 URL与资源 & 第三章 HTTP报文
- 网络问题勘查
- iOS 下实际网络连接状态
- ajax参数传递之[HttpGet]/[HttpPost]/[HttpPut]/[HttpDelete]请求
- TCP