《HTTP权威指南》——认证机制
来源:互联网 发布:二进制是谁发明的 知乎 编辑:程序博客网 时间:2024/04/27 03:51
HTTP应该实现权限机制:即某些特定的内容只有特定用户才能访问;某些特定的事务只有特定的用户能够执行。此时,我们需要对用户进行认证。
认证
什么是认证
所谓认证, 就是用户给出身份证明,然后服务器加以验证。
HTTP认证模型:
HTTP提供了质询/响应认证框架用以简化认证过程。
- 1)Web应用程序收到HTTP请求
- 2)Web应用程序以一个“认证质询”作为响应
- 3)用户提供身份证明
- 4)服务器验证身份证明。
认证协议 和 首部
HTTP定义了两个官方的认证协议:基本认证和摘要认证。(开发人员也可以设计自己的认证协议)
不同的认证协议其对应的首部及实现机制会有所差别。 但认证一般包括以下步骤
安全域
为了让服务器上不同的资源有不同的认证权限,HTTP设计者提出了安全域的概念,其实现机制是:在WWW-Authenticate
质询中包含了一个realm
指令。 Web服务器会将受保护的文档组织成一个安全域,每个安全域有自己的授权用户集。
基本认证
基本认证是目前最流行的HTTP认证协议,几乎每个主要的HTTP客户端和服务器都实现了基本认证机制。
基本认证的流程
在基本认证中,Web服务器拒绝事务,质询客户端,请客户端提供用户名和密码。服务器返回401状态码来初始化质询,并用WWW-authenticate
响应首部指定要访问的安全域。 浏览器收到质询时,会打开客户端,请求用户输入这个域的用户名和密码。然后浏览器为用户名和密码添加扰码,再用Authorization
请求首部回复给服务器。
+ Base-64编码: 在基本认证中,用户名和密码被打包在一起,并用Base-64编码方式对其进行编码。
+ 代理认证: 中间的代理服务器也可以实现认证功能。 代理认证步骤域Web服务器身份认证步骤相同,但首部和状态码有一些区别。
基本认证的缺陷
基本认证很容易导致用户名和密码泄露。
在基本认证中,用户名和密码在网络中传输,尽管进行了(如Base-64编码方式)加密,这些密文也很容易被破解。就算没有被破解,恶意用户也可以直接使用密文的密码通过服务器的认证。
另外,一些恶意的用户也可以伪装成服务器骗取用户的用户名和密码。
摘要认证
尽管基本认证便捷灵活,但存在极大的安全性问题。针对认证的安全性,摘要认证做了一些改进,很大程度上避免了安全性问题。
以下是摘要认证做的一些改进错误:
- 永远不会以明文方式在网络上发送密码。(Base-64加密几乎相当于明文)
- 可以防止恶意用户捕获并重放认证的握手过程。
- 可以有选择低防止对报文内容的篡改。
- 防范一些其他的常见的攻击方式。
摘要认证涉及到的内容较多,且比较复杂,这里不太篇幅地介绍了。等到要使用时查阅一些相关的内容就可以了。
- 《HTTP权威指南》——认证机制
- 《HTTP权威指南》——客户端识别与cookie机制
- 《HTTP权威指南》——HTTP NG
- [SSP]HTTP权威指南——概述
- [SSP]HTTP权威指南——URL
- 读书笔记1——《HTTP权威指南》
- 《HTTP权威指南》——代理
- 《HTTP权威指南》学习笔记(六)—客户端识别与cookie机制
- HTTP权威指南-缓存机制算法
- Http协议(4)—HTTP认证机制
- 【HTTP权威指南】笔记之三,识别、认证与安全
- [SSP]HTTP权威指南——HTTP报文(上)
- [SSP]HTTP权威指南——HTTP报文(下)
- 《HTTP权威指南》读书笔记——HTTP报文
- http权威指南(三)——http报文
- [HTTP权威指南读书笔记]第一章—HTTP概述
- [HTTP权威指南读书笔记]第三章—HTTP报文
- 《HTTP权威指南》学习笔记(一)—HTTP概述
- 写JQuery插件的基本知识
- Xampp套件中apache及php升级介绍
- C++中,经常有同名成员函数,一个const形式一个非const形式的解读
- 基于huffman压缩的课程设计
- Hadoop异常合集(更新中~)
- 《HTTP权威指南》——认证机制
- First Blog
- hdu 5162(概率期望)
- mysql 存储过程的权限问题 java.sql.SQLException: The user specified as a definer ('xxxx'@'%') does not exist
- block引用外部变量(三)
- 学习计划
- 欢迎使用CSDN-markdown编辑器
- Android的一些基本常识
- Android齐步走-2(2016-7-1)