SIP 鉴权 & HTTP 认证

2023-05-16

sip 鉴权是基于摘要签名认证的,具体来说:

每一个用户都有一个用户名和密码,用户名和密码在客户端和SIP 服务器的数据库中都有保存。

在认证的过程中, 客户端将自己的信息(用户名 密码 url 等信息) 做一些复杂的MD5 或者SHA256/SHA512 签名,这个签名给SIP server, SIP server 也会用相同的信息计算签名, 结果一样就认为发送消息的用户是真正合法的用户。

但是为了增加破解的复杂性,引入了 nonce cnonce nc 等salt 参数。因为如果不引入,每次做MD5计算的值是固定的话,就降低了破解的难度了。

server 为了验证用户是真实的用户,server就会生成一个随机数,叫做nonce,并对这个nonce 赋有效期和使用次数上限,通过nc来标示,那么 在401 里面 server 会将这两个参数给client, client在计算MD5的时候就会多了两个参数(nonce 和 nc), 并且nc是递增的,这样client 每次计算的MD5 签名都是不一样的,server 用同样的参数计算签名值,比较就可以知道用户是不是真实的用户。一个伪用户既不能直接使用签名(因为nc递增,每次签名都不一样),也不容易破解(多了nonce 和 nc参数)。

client也要验证server是真实的server,如果中间人冒充server,他自己生成特殊的nonce值给client,client用这些参数计算签名给中间人, 那么这个过程重复多次,中间人就可以推算出密码(这个过程中nonce值可以是特殊的,而且可以不变的ÿ

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SIP 鉴权 & HTTP 认证 的相关文章

随机推荐

  • sql exists用法

    转自https www cnblogs com xuanhai p 5810918 html 转载于 https www cnblogs com yongan p 11362595 html
  • 深入了解QtCreator的实用功能

    重构代码 在源代码中搜索 重命名 重排代码格式是原生支持的功能 在代码中右键弹出的菜单中 xff0c 有一个Refactor菜单项 xff0c 根据当前光标位置不同的代码元素 xff0c 具有相应的重构子菜单 xff0c 可以很方便地完成很
  • ubuntu20.04server下安装hadoop2.8.5

    参考Ubuntu下Hadoop安装 xff08 全命令行版 xff09 安装环境 项目名称版本电脑硬件Huwei Matebook X Proi7 8550U 16G 512G操作系统Windows 10家庭中文版虚拟机VMware Wor
  • 几个VS/QT常见错误解决方法

    X86与X64冲突 问题 1 gt Qt5Widgetsd lib Qt5Widgetsd dll fatal error LNK1112 模块计算机类型 X86 与目标计算机类型 x64 冲突 解决方法 在Qt VS Tools里添加正确
  • NMAKE编译CTK

    NMAKE编译CTK 启动编译环境 从VC中启动命令行或通过VC提供的批处理启动命令行 xff0c 以能运行编译环境 如果装了多个VC版本 xff0c 注意使用想要的VC版本启动安装编译环境 外链图片转存失败 源站可能有防盗链机制 建议将图
  • VERILOG实现四位七段数码管显示

    filename dyp v author lyq Date 2016 3 2 9 36 Lattice XP2 17 DEMO BOARD 4位七段带小数点数码管显示控制模块 clk 50M d1 d4 d 7 dp d 6 0 ASCI
  • 网络编程一些重要的面试题

    为什么需要三次握手 xff1f 答 xff1a 三次握手的目的是 为了防止已经失效的连接请求报文段突然又传到服务端 xff0c 因而产生错误 xff0c 这种情况是 xff1a 一端 client A发出去的第一个连接请求报文并没有丢失 x
  • XILNIXSDK2018为FreeRTOS增加配置项的方法

    在安装目录下找到目录 xff1a SDK 2018 1 data embeddedsw ThirdParty bsp freertos10 xilinx v1 0 data 然后通过两个步骤来完成配置项的增加 1 编辑文件 freertos
  • STM32F系列USART的IDLE中断要注意了

    只是调用USART ClearITPendingBit之类的方法是清除不了中断标志的 xff0c 必须必须在调用USART GetITStatus之后调用 USART ReceiveData xff0c 因为IDLE被搞成了一个帧 xff0
  • STM32库USART_ITConfig的坑

    USART ITConfig只能使用一个中断标志 xff01 看看中断参数的定义 xff1a define USART IT PE uint16 t 0x0028 define USART IT TXE uint16 t 0x0727 de
  • 最强大易用的开源MODBUS库-YMODBUS,包含MASTER/SLAVE

    无论是MASTER或SLAVE xff0c 构建MODBUS应用都极其简单 xff0c 可通过设置Master为Slave的Player轻松实现MODBUS网关 项目使用C 43 43 11编写 xff0c 支持多线程 xff0c 可在WI
  • keil5 添加注释说明模板

    我们使用 Keil uvision5 编写代码时 xff0c 为了规范代码 xff0c 一般会在文件开头对本文件进行注释说明 xff0c 同时我们也会在函数的开头对函数进行说明 但 Keil5 集成开发环境中没有这些注释模板 xff0c 而
  • Putty 使用记录

    Putty 显示时间戳 需要三个软件 Putty xff0c ExtraPuTTY xff0c mtputty Putty用来提供基本功能 ExtraPuTTY用来提供时间戳功能 mtputty用于多链接多页面显示 ExtraPuTTY中的
  • 学习java方面的一点收获

    学习JAVA方面的收获 经过将近两年的时间学习java xff0c 觉得在java方面有比较大的收获 在学习和实践过程中逐渐对代码习惯 软件思维都有比较进一步的了解 java语言的纯面向对象 平台无关性是java能够得到比较多的程序开发者的
  • ROS使用catkin_make编译指定功能包

    指定要编译的功能包 xff08 多个用分号相隔 xff09 catkin make DCATKIN WHITELIST PACKAGES 61 34 需要单独编译的包名 34 但是如再次使用catkin make编译所有功能包时会出现仅仅只
  • python中_、__、__xx__(单下划线、双下划线等)的含义

    默认情况下 xff0c Python中的成员函数和成员变量都是公开的 相当于java中的public xff0c 或者OC中定义在 h文件中的公开成员变量 在python中没有public private等关键词来修饰成员函数和成员变量 为
  • 龙芯1B核心板使用alsa音频播放设置,aplay播放

    龙芯1B核心板是默认启用alsa音频工具的 只需要进行一些配置就能使用 1 先检查你的板子的alsa工具是否正常 aplay l 可以查看 xff0c 是否已正确安装音频驱动 如果正常 xff0c 能看到你的音频驱动的信息 可能会出现 xf
  • centos 64bit安装arm-none-linux-gnueabi交叉编译工具链

    xfeff xfeff yum install glibc i686在centos中安装arm none Linux gnueabi有两种方法 xff0c 一种是apt get 安装容易但是不易成功 xff0c 一种是下载压缩包或安装程序
  • 旋转矩阵和欧拉角

    欧拉角介绍 旋转可以参考两种坐标系 内部坐标系 XYZ 角度 外部坐标系 xyz 角度 不考虑参考坐标系情况下 按照旋转方式可以分为两种 Proper Euler angles z x z x y x y z y z y z x z x y
  • SIP 鉴权 & HTTP 认证

    sip 鉴权是基于摘要签名认证的 具体来说 每一个用户都有一个用户名和密码 用户名和密码在客户端和SIP 服务器的数据库中都有保存 在认证的过程中 客户端将自己的信息 用户名 密码 url 等信息 做一些复杂的MD5 或者SHA256 SH