《HTTP 权威指南》笔记:第十二章 基本认证体制

导言

客户端可以通过网络来得到想要的信息,但是有一些信息并不能是对所有人都能看到的,因此必须有一种认证机制.
服务器需要通过这种方式来了解用户身份,一旦服务器知道了用户的身份,就可以让用户能够访问请求的资源.
这一章讲了最常见的 HTTP 认证形式之一: 基本认证(basic authentication)
本章的主要内容包括:

  1. 基本认证的基础: HTTP 的 challenge/response 框架

HTTP 的 challenge/response 框架

框架的流程

  1. 请求:客户端向服务器进行请求文件,命令为 : GET,首部:无.
  2. 质询:服务器用 401 Unauthorized 说明需要客户端提供用户名和密码,首部: WWW-Anthenticate(在这个首部中有两个内容:对保护区域的描述 & 认证算法)
  3. 授权:客户端重新发出请求,并且伴随着 Anthorization 首部(在这个首部中包含着用户名与密码、认证算法),方法为 GET
  4. 成功:如果授权证书是正确的,服务器将文档传递给客户端,首部: Anthentication-Info(其中包含与授权会话相关的附加信息)

security realm 机制

定义:

Web 服务器将受保护的文档组织成 security realm, 每个 security realm 可以有不同的授权用户集.

格式:

在 WWW-Authentication 质询首部中含有** realm **指令,用于提示用户应该用什么用户名和密码.
示例:
HTTP/1.0 401 Unauthorized
WWW-Authenticate: Basic realm=" Corporate Financials"

Basic Authentication 相关知识

基本认证首部:

格式:

  1. 质询: WWW-Authenticate: Basic realm = "quoted-realm"
  2. 响应: Authorization: Basic base64-username-and-password

具体细节:

  1. 质询——服务器发往客户端:因为在网页的不同部分可能会有不同的密码,因此需要设置域.
  2. 响应——客户端发往服务器:首先将用户的 user-name 和 password 用“:”连接起来,然后稍加扰码(Base-64编码)

Basic authentication 的安全缺陷

  1. Base-64 编码容易被解码,因此其密码实际上就是“明文”传送的.
  2. 没有措施防止重放攻击.
  3. 可能存在假冒行为,让用户相信他连接是一个受基本认证保护的合法主机.

解决方案

通过将 Basic Authentication 与加密数据传输配合使用,通过安全加密技术进行加密.





猜你喜欢

转载自www.cnblogs.com/FBsharl/p/HTTP.html
今日推荐