http抓包实战笔记(10) http基本认证

1.Basic认证

把 "用户名+冒号+密码"用BASE64编码的字符串放在http request 中的header Authorization中发送给服务端, 这种方式叫HTTP基本认证

认证流程

请求: 客户端发送http request 给服务器

质询: 因为request中没有包含Authorization header,服务器会返回一个401 拒绝请求(Basic:说明需要基本认证,realm:说明客户端需要输入这个安全区的用户名和密码)

授权 :客户端程序发出请求,这一次会加上Authorization heade,用来说明认证算法,用户名和密码(由于用户名密码是通过Base64编码得到的,而Base64不属于加密范畴,可以被逆向解码,等同于明文,因此Basic传输认证信息是不安全的)

成功: 如果授权证书正确,服务器会返回200

 

2.优缺点

优点: 简单,被广泛支持

缺点: 不安全

3.TextWizard

Fiddler自带工具,可以用来编码和解码

 

4.摘要认证(Digest认证)

Digest认证是为了修复基本认证协议的严重缺陷而设计的,秉承“绝不通过明文在网络发送密码”的原则,通过“密码摘要”进行认证,大大提高了安全性.

改进之处: 绝不通过明文在网络上发送密码; 可以有效防止恶意用户进行重放攻击; 可以有选择的防止对报文内容的篡改

 

流程

请求: 客户端发送http request 给服务器

质询: 服务器会返回一个401 拒绝请求(服务器产生一个随机数nonce,服务器将这个随机数放在WWW-Authenticate响应头,与服务器支持的认证算法列表,认证的域realm一起发送给客户端)

realm的值是一个简单的字符串

qop是认证的(校验)方式

nonce是随机数, 可以用GUID

opaque是个随机字符串,它只是透传而已,即客户端还会原样返回过来.

algorithm 是个字符串,用来指示用来产生分类及校验和的算法对. 如果该

授权: 客户端程序发出请求,客户端选择一个算法,计算出密码和其他数据的摘要(response),将摘要放到Authorization的请求头中发送给服务器,如果客户端要对服务器也进行认证,这个时候,可以发送客户端随机数

成功: 如果授权证书正确,服务器会返回200

发布了47 篇原创文章 · 获赞 1 · 访问量 3720

猜你喜欢

转载自blog.csdn.net/pdd51testing/article/details/104905765