48.HTTP基本认证与摘要认证

2023-05-16

文章目录

  • 基本认证
  • 摘要认证

转载请注明原始出处:http://blog.csdn.net/a464057216/article/details/52705855

后续此博客不再更新,欢迎大家搜索关注微信公众号“测开之美”,测试开发工程师技术修炼小站,持续学习持续进步。
在这里插入图片描述

基本认证与摘要认证用于在HTTP报文交互中,服务端确认客户端身份。

基本认证

在HTTP 1.0提出,服务器收到客户端请求,返回401 UNAUTHORIZED,同时在HTTP响应头的WWW-Authenticate域说明认证方式及认证域,比如:

这里写图片描述

如果客户端是浏览器,收到401后会弹出对话框要求输入用户名及密码:

这里写图片描述

输入的用户名和密码会按照username:password的格式拼接后用base64编码,填入请求报文头部的Authorization域,如Basic bWFyczpsb28=。如果输入的是错误的用户名和密码,服务器会反复要求输入用户名及密码,直至正确或用户点击取消按钮放弃认证。如果输入的是正确的用户名及密码,浏览器返回认证通过后的页面。
由于base64编码本身是可逆的过程,所以如果有中间人截获报文后,通过重放攻击即可获取正确授权。基本认证这种方式适合于弱认证要求的场景:

这里写图片描述

上面的base64字符串的解密过程如下:

这里写图片描述

摘要认证

在HTTP 1.1提出,服务器收到客户端请求后返回401 UNAUTHORIZED,同时在WWW-Authenticate字段说明认证方式是Digest,其他信息还有realm域信息、nonce随机字符串、opaque透传字段(客户端会原样返回)等:

这里写图片描述

浏览器收到响应后,弹出对话框要求用户输入用户名和密码。与基本认证不同在于,摘要认证不会发送原始密码,注意请求中的response字段,是通过其他字段及密码经过一系列摘要运算(md5)得到的:

这里写图片描述

服务端收到请求后,由于其知道用户的原始密码及其他字段信息,使用同样的算法进行摘要计算后,与response字段比较即可验证用户的合法性。服务器端通过更新每次交互过程中的nonoce字段的值,可以保证一定的安全性。

之所以说是一定的安全性,是因为基本认证和摘要认证都是通过用户名+密码的形式对客户端身份进行认证,认证消息都放在HTTP报文头中。因为HTTP报文本身是不加密的,所以只要中间人能够截获交互过程中的报文头,仍然可以仿冒客户端与服务端进行通信。如果要加密交互过程中的报文交互,要采用HTTPS协议。

如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!

如下几篇文章是我在学习HTTP协议时总结的博文,欢迎参考:

  1. HTTP缓存
  2. HTTP代理与重定向
  3. HTTP、HTTPS基本原理
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

48.HTTP基本认证与摘要认证 的相关文章

随机推荐

  • Vrpn源码浅析(三)-添加optitrack追踪设备

    好记性不如烂笔头 xff0c 之前进行了源码的简单分析并尝试添加了joystick这类包含analog以及button类型数据的设备 这次我们更近一步 xff0c 尝试添加最为复杂的追踪设备 本次添加的设备为optitrack xff0c
  • [Index]博文索引

    为了方便查看需要的博文 xff0c 在此给出所有博文的索引链接地址 UAV Software Version xff1a ArduCopter xff08 Ver 3 3 xff09 Hardware Version xff1a pixha
  • NVIDIA JETSON XAVIER NX (四)安装Pytorch和torchvision

    可选择在NX上创建新python环境进行安装 xff0c 避免和其他工程环境发生冲突 xff0c 具体虚拟环境操作步骤可见Python创建虚拟环境 下面就开始安装pytorch的愉快之旅吧 xff01 1 安装相关依赖环境 span cla
  • 使用nuttx写自启任务

    首先从px4学习怎么进行系统任务 px4是通过nsh main里面调用nsh consolemain然后调用rcS文件 xff0c 运用rcS脚本命令启动相应模块 然而经过了一个礼拜的实践 xff08 浪费时间 xff09 xff0c 我发
  • QT常用库、类、函数等

    文章目录 常用基类QObject类内存管理机制 xff1a 父子对象的内存管理机制 QApplication类 xff1a 应用程序类 xff08 一般不直接操纵 xff09 QWidget类 xff1a 窗体类容器控件QStackedWi
  • 单片机中堆栈那些事儿

    堆栈是内存中一段连续的存储区域 xff0c 用来保存一些临时的数据 xff0c 比如 xff0c 可以保存中断指令INT中的标志寄存器值 代码段寄存器CS值 指令指针寄存器IP值 xff1b 还可以用以RET指令从中可以得到返回的地址 xf
  • udp 通信

    1 char strtok char str const char delim 功能 xff1a 对字符串进行切割 参数 xff1a str 要切割的字符串的首地址 delim 切割的规则 返回值 xff1a 切割后字符串的首地址 2 ud
  • Unix网络编程 Ubuntu20.04.2 Visual Studio Code

    Visual Studio Code 说明 1 本文中 表示下一步 下一级菜单和修改为 xff0c 需根据上下文理解 一 环境配置 1 安装gcc g 43 43 和gdb span class token function sudo sp
  • 基于Jetson NX的模型部署

    系统安装 系统安装过程分为3步 xff1a 下载必要的软件及镜像 Jetson Nano Developer Kit SD卡映像 https developer nvidia com jetson nano sd card image Wi
  • C51单片机学习笔记——秒表

    前言 不知不觉我又被自己的惰性拖住了小一个月 xff0c 今天在宿舍窗边吸烟时候 xff0c 看着楼下人来人往的道路不由自主的感到一丝惭愧 xff0c 手里的小视频也被我刷出来一条鸡汤 xff0c 在这儿我要写下来记录给将来又在颓废的我 x
  • arduino学习——UART串口通信

    Serial begin 初始化串口 用作串口的启动 xff0c 常放置在setup xff08 xff09 中 原型 xff1a Serial begin speed Serial begin speed config 参数 xff1a
  • arduino学习——servo类 控制舵机

    硬件 WeMos D1平台 43 SG90舵机 SG90舵机相关介绍 xff1a 角度 xff1a 90度 180度通用 红色为5V电源线 xff0c 棕色为地线 xff0c 橙色为信号线 无负载转速 xff1a 0 12秒 60度 xff
  • DSP28335笔记 ———— 中断系统 之 外部中断

    DSP28335笔记 中断系统 之 外部中断 我用的开发板是 硬汉DSP28335开发板 xff0c 文中对于硬件的描述可以说是没有 xff0c 而且我还没有附上电路图希望在看的朋友不要喷我 然后 xff0c 我个人感觉普中的DSP2833
  • DSP28335笔记 —— 定时器

    DSP28335笔记 定时器 相比于STM32 xff0c DSP28335的定时器好像真的简单了好多 xff0c 从定时器个数来讲只有3个 xff0c 时钟源只能是系统时钟 xff0c 而且计数方向也只有向下计数 单纯且善良的定时器 xf
  • C语言线程基本函数

    学习笔记 xff1a C语言线程基本函数 学习内容 xff1a 线程常用基本函数 xff1a pthread create 创建线程pthread exit 退出当前线程pthread join 等待其他线程结束pthread self 自
  • 《大话设计模式》笔记——简单工厂模式

    前言 我 xff08 长胖的阿诏 xff09 是新入行的嵌入式程序员 xff0c 所以用C语言做示例演示 xff0c 我看到书上都是 C 语言的代码 xff0c 所以我只能先领会精神 xff0c 再通过C语言复刻 在我的资源里好像没有见过用
  • 《大话设计模式》笔记——策略模式

    策略模式 34 我 34 的理解 策略模式 是指同一个对象在不同情况下的策略行为有所差异 xff0c 继续以之前的四则运算为例 加 减 乘 除 就是两个参数在不同情况下计算过程的差异性行为 所以在某种程度上 xff0c 策略模式可能比简单工
  • md文件目录生成器

    md文件目录生成器 目录 md文件目录生成器 md文件目录生成器 step1 下载脚本文件 step1 下载脚本文件 step2 生成脚本文件 step2 生成脚本文件 step3 设置环境变量 step3 设置环境变量 step4 可以用
  • Python __file__ 详解

    这个功能纠结了一下午 xff0c 做了测试以后总算是明白了 file 表示显示文件当前的位置 但是 xff1a 如果当前文件包含在sys path里面 xff0c 那么 xff0c file 返回一个相对路径 xff01 如果当前文件不包含
  • 48.HTTP基本认证与摘要认证

    文章目录 基本认证摘要认证 转载请注明原始出处 xff1a http blog csdn net a464057216 article details 52705855 后续此博客不再更新 xff0c 欢迎大家搜索关注微信公众号 测开之美