任务描述
本关任务:分析 HTTP 认证过程及 HTTP 协议中认证相关的字段。
相关知识
为了完成本关任务,你需要掌握:
- HTTP 协议中如何完成认证;
- 识别 HTTP 协议中认证相关的字段。
HTTP认证方式
HTTP 中有如下常用认证方式:
- Basic 认证;
- Digest 认证;
- SSL Client 认证;
- 表单认证。
HTTP 基本认证
当一个客户端向 HTTP 服务器进行数据请求时,如果客户端未被认证,则 HTTP 服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。
客户端在接收到 HTTP 服务器的身份认证要求后,会提示用户输入用户名及密码,然后将用户名及密码以BASE64
加密,加密后的密文将附加于请求信息中。 如当用户名为anjuta
,密码为:123456
时,客户端将用户名和密码用“:”合并,并将合并后的字符串用BASE64
加密为密文,并于每次请求数据时,将密文附加于请求头(Request Header)中。HTTP 服务器在每次收到请求包后,根据协议取得客户端附加的用户信息(BASE64
加密的用户名和密码),解开请求包,对用户名及密码进行验证,如果用户名及密码正确,则根据客户端请求,返回客户端所需要的数据;否则,返回错误代码或重新要求客户端提供用户名及密码。
BASIC 认证的步骤:
- 客户端访问一个受 HTTP 基本认证保护的资源;
- 服务器返回 401 状态,要求客户端提供用户名和密码进行认证。(验证失败的时候,响应头会加上
WWW-Authenticate: Basic realm="请求域"
),如下所示:401 Unauthorized
WWW-Authenticate: Basic realm="WallyWorld"
- 客户端将输入的用户名密码用
Base64
进行编码后,采用非加密的明文方式传送给服务器;Authorization: Basic xxxxxxxxxx.
- 服务器将 Authorization 头中的用户名密码解码并取出,进行验证,如果认证成功,则返回相应的资源;如果认证失败,则仍返回 401 状态,要求重新进行认证。
HTTP 摘要认证 digest authentication
该认证是 HTTP1.1 提出的基本认证的替代方法,不包含密码的明文传递。 摘要认证使用随机数 + MD5 加密哈希函数
来对用户名、密码进行加密,在上述第二步时,服务器返回随机字符串 nonnce 之后,客户端发送摘要MD5(HA1:nonce:HA2)
。 其中HA1=MD5(username:realm:password),HA2=MD5(method:digestURI)
。
HTTP 开放认证 OAuth Authentication
开放认证允许用户提供一个令牌,而不是用户名和密码来访问它们存放在特定服务器的数据,每一个令牌授权一个特定的第三方系统。
HTTP(令牌认证) Token Authentication
令牌认证是指当用户第一次登陆时,服务器生成一个 token 并返回给客户端,之后的每次访问客户端都会带上该 token,无需再次带上用户名和密码。
基本认证中的认证相关字段
本实训主要对基本认证进行分析,从上述过程中可以看出,与基本认证有关的字段分别为: (1)服务器响应状态码与状态描述:当服务器响应状态码为 401 时,表明服务器资源需要认证。 其状态描述为Unauthorized
,表明未通过认证,当响应200 OK
时,表明通过认证,正常响应; (2)当用户提供用户名和密码后,重新提出请求时: Authorization: Basic xxxxxxxxxx. Authorization 字段表明在请求中,提供了需要的认证方式和认证信息(已经经过加密)。
操作要求
双击打开桌面上的工作区文件夹”workspace”,再打开实训文件夹”myshixun”,将查询的信息保存到文件message-5.txt
。具体要求如下:
(1)打开 Wireshark,加载实训文件夹中的http-ethereal-trace-5
文件并筛选出其中的 HTTP 报文;
(2)查看对浏览器的初始 HTTP GET 消息的服务器响应状态描述的值,写入文件中;
(3)查看上述服务器响应报文中 WWW-Authenticate 字段的值,并写入文件中;
(4)查看第二次发送 GET 请求报文中的认证方式,写入文件中;
(5)对第二次 GET 请求服务器响应的状态描述,写入文件中;
message-5.txt
文章来源:https://www.toymoban.com/news/detail-761801.html
文章来源地址https://www.toymoban.com/news/detail-761801.html
到了这里,关于HTTP协议分析--第5关:HTTP 认证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!