HTTP 身份认证
身份认证信息
密码 只有本人知道的字符串信息
动态令牌 仅限本人持有的设备的一次性密码
数字证书 本人持有的终端信息
生物认证 指纹,虹膜
IC卡
- BASIC认证 基本认证
- DIGEST认证 摘要认证
- SSL客户端认证
- FormBase认证 基于表单认证
BASIC认证 发送base64编码过的明文
HTTP1.0 定义的认证
服务器和客户端定义的统一认证
过程:
- 服务器收到请求,向客户端返回状态码401(Authorization Required),告知客户端需要进行验证
- 客户端通过basic认证,需要通过用户名和密码以Base64编码(浏览器实现)发送给服务器(Authorization:Basic 编码后字符串)
- 如果成功返回200,失败继续返回401
由于明文信息经过base64解码后就是信息文本,安全性不高
DIGEST认证 通过指定算法如md5+质询码加密
HTTP 1.1
为弥补BASIC认证存在的弱点,从HTTP1.1起就有了digest认证
digest认证同样使用质询/响应的方式,但不会像basic认证那样直接发送明文密码
提供了高于basic认证的安全机制
在HTTP1.1提供的digest认证中,服务器收到请求以后,返回的是digest认证所需要的头部字段
- 状态码401和临时质询码nonce
- www-Authenticate:Digest realm ... algorithm=MD5,qop="auth"...
- 客户端发送摘要以及由质询码计算得来的响应码给服务器(比如经过MD5算法计算得来的字符串)
防止密码窃听的机制,但是没有防止用户伪装机制,使用上不便捷灵活
SSL客户端认证
SSL客户端认证是皆有HTTPS的客户端证书完成认证的方式。
凭借客户端证书认证,服务器可确认访问是否来自于已登录的客户端
证书会通过报文的方式发送给服务端
客户端把证书以client-satificate的方式发送给服务器
服务器验证客户端证书,验证通过后,领取公开密码
具有一定的使用成本,一般是金融相关行业使用
高度安全等级,因为导入,费用问题,导致难以维持,一般是金融机构使用
FormBase 基于表单的认证(cookie和session机制,用得更多,由web应用程序定义)
基于表单的认方法并不是在HTTP协议中定义的
使用由Web应用程序各自实现基于表单的认证方式
通过cookie和session的方式来保持用户的状态
cookie和session还是存在安全问题
基于代码的方式保证有效性和安全性
分类:
软件工程相关 / 计算机网络
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)