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 认证 的相关文章

  • HttpClient.DefaultRequestHeaders.ExpectContinue。 ExpectContinue 的用途是什么以及在什么条件下将其设置为 true 或 false。

    我已经浏览了一些代码并且遇到了 private readonly HttpClient client client new HttpClient clientHandler client DefaultRequestHeaders Expe
  • 什么时候适合响应 HTTP 412 错误?

    我不清楚什么时候应该或不应该返回 HTTP 412 先决条件失败 Web 服务错误 我正在考虑在验证数据时使用它 例如 如果客户端 POST 的 XML 数据并且该数据缺少必需的数据元素 则以 412 和错误描述进行响应 这是否符合 HTT
  • 启用浏览器缓存静态资源

    为了提高站点性能 我在 IIS 7 5 中添加了以下 http 标头 Expires Sun 29 Mar 2020 00 00 00 GMT and Cache Control Public 我添加这些标题是为了images站点虚拟目录中
  • Angular2 - 多个依赖的顺序 http api 调用

    我正在构建一个 Angular2 应用程序 其中一个组件需要进行多个 API 调用 这些调用依赖于之前的调用 我目前有一项服务可以调用 API 来获取电视节目列表 对于每个节目 我需要多次调用不同的 API 来逐步检查该结构 以确定该节目是
  • 如何防止 Safari 在遵循同源重定向时删除授权标头?

    Safari 似乎放弃了Authorization遵循同源 301 重定向时的标头 例如这段JS代码 fetch api endpoint that redirects headers new Headers Authorization s
  • MultipartEntityBuilder 和 setCharset for UTF-8 发送空内容

    我需要将 unicode 字符提交到表单 以将我的应用程序本地化到使用非拉丁字母的国家 地区 关于新的 MultiPartEntityBuiler 的文档很少 我只找到了另一篇建议使用 setCharset 的帖子 如果我不使用 Entit
  • 使用 Postman 通过 HTTP POST 上传图像

    一段时间以来 我一直在尝试通过 Postman 将图像发送到一个简单的 PHP 脚本 该脚本应该显示发送的图像 我遵循的步骤是 邮递员 客户端 端 Select POST request 选择标题内容类型有价值多部分 表单数据 在正文选项卡
  • REST API 与 Web API

    我是构建 HTTP API 的初学者 我似乎对 REST API 和 Web API 之间的区别感到困惑 我在网上读到更多相关内容 困惑似乎越来越多 我猜菲尔丁有与此链接相同的问题http roy gbiv com untangled 20
  • Solidity有HTTP请求功能吗?

    我正在使用以太坊制作一个项目 在这个项目中 我正在签订一份名为 A 的合同 当我向 A 发送消息时 我希望 A 发出网络请求 Solidity 是否可以使用 http 请求 方法 GET POST 以太坊区块链无法与外界交互 否则它将不再是
  • 在 AngularJS 中发送 FormData 和其他字段

    我有一个表格有两个input text和一个upload 我必须将其发送到服务器 但在将文件与文本连接时遇到一些问题 服务器期望这个答案 title first input text second input file my file pd
  • 如何在AngularJS中正确使用HTTP.GET?具体来说,对于外部 API 调用?

    我在controller js中有以下代码 var myApp angular module myApp myApp service dataService function http delete http defaults header
  • 如何让 Symfony 2 采用协议方案(http vs https)

    我有一个 Symfony 2 网站 在开发中运行在 HTTP 上 在生产中运行在 HTTPS 上 我注意到在生产中 Symfony 生成的 URL 仍然全部呈现为 HTTP 我怎么也可以 让框架采用当前提供网站的协议 可能是首选 或者 仅在
  • 将照片上传到 Google Photos API 不返回上传令牌

    我正在使用 2018 版 Google Photos API 来上传图像和媒体 如下所述 上传字节 https developers google com photos library guides upload media uploadi
  • 使用凭证进行跨源资源共享

    我有一个跨多个子域 example com blog example com 和 app example com 的通用身份验证表单 登录表单必须将此数据提交到 example com 无论它显示在哪里 所以我想到使用 CORS 但是这样
  • 使用 netcat 提供包含图像的 HTTP 响应

    我正在尝试使用 netcat 编写一个小型 HTTP 服务器 对于纯文本文件 这工作正常 但当我尝试发送图片时 浏览器仅显示损坏图像的图标 我所做的就是提取所请求文件的 mime 类型和大小 并将其发送给客户端 我的示例图片的请求标头如下所
  • 为什么 Python 3 http.client 比 python-requests 快这么多?

    我今天测试了不同的 Python HTTP 库 我意识到http client https docs python org 3 library http client html库的执行速度似乎比requests http docs pyth
  • 使用 RCurl 登录 WordPress

    我想使用 R 的 RCurl 包登录 WordPress 网站 以便安装 WordPress 插件 可能在 WordPress 的某些选项页面上使用 postForm 由于该网站受密码保护 我请求您帮助如何验证我的 R 会话 我发现以下三个
  • Http PUT 请求到 jpeg

    我收到了如下 HTTP PUT PUT photo HTTP 1 1 X Apple AssetKey F92F9B91 954E 4D63 BB9A EEC771ADE6E8 X Apple Transition Dissolve Con
  • 无法获取POST参数

    我正在使用 WebApp2 作为框架在 Python 中开发一个 Web 应用程序 我无法获取通过填写表单提交的http POST请求参数 这是我创建的表单的 HTML 代码
  • 文件下载时文件名损坏 (IE)

    我实现了一个简单的文件上传下载机制 当用户单击文件名时 将下载带有以下 HTTP 标头的文件 HTTP 1 1 200 OK Date Tue 30 Sep 2008 14 00 39 GMT Server Microsoft IIS 6

随机推荐

  • Visual Studio Code 如何编写运行 C、C++ 程序?

    作者 xff1a 知乎用户 链接 xff1a https www zhihu com question 30315894 answer 154979413 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非
  • c++回调函数/ROS回调函数

    以下均是个人在实际耕码的过程中遇到的问题和整理的结果 xff0c 可能会有不对的地方 xff0c 望各位指正与交流 我会有喵的 c 43 43 中的回调函数 xff1a A 34 callback 34 is any function th
  • r329开发板部署aipu模型

    上篇文章r329模拟仿真实现了在模拟器上仿真网络 xff0c 现在申请到了开发板 xff0c 就有机会在上面测试下了 本文需要的原材料 r329开发板sd 卡sd卡读卡器typec的usb线一台windows电脑一台linux电脑 开发板全
  • centos 网卡 bridge

    Interface configuration example yum install y libvirt virt install bridge utils ifcfg em2 xff1a TYPE 61 Ethernet DEVICE
  • KVM interface passthrough

    nbsp nbsp nbsp nbsp kvm passthrouth sr iov nbsp nbsp https blog csdn net yzy1103203312 article details 81092647 nbsp nbs
  • JNIEXPORT void JNICALL Java_testdll_set(JNIEnv *, jclass, jint j) //i = j;

    例如程序testdll java xff0c 内容为 xff1a public class testdll static System loadLibrary 34 goodluck 34 public native static intg
  • unicode 与UTF8

    utf 8 编码是在传输中或者保存时候是字节码 xff0c 没有大小端的问题 以存储为例 xff1a 不管是英文 xff08 1个字节 xff09 还是中文 xff08 3个字节 xff09 xff0c 不用考虑大小端问题 xff0c 直接
  • sip register超时和invite超时

    sip的register重传与超时 当发送第一个register时候 xff0c 开启定时器 xff0c 超过500ms没有响应 xff0c 重新发送 在发送的register 1s内没有响应 xff0c 在重发 xff0c 一致到32s的
  • 线性地址转物理地址

    二 线性地址转物理地址 前面说了Linux中逻辑地址等于线性地址 xff0c 那么线性地址怎么对应到物理地址呢 xff1f 这个大家都知道 xff0c 那就是通过分页机制 xff0c 具体的说 xff0c 就是通过页表查找来对应物理地址 准
  • H264/H265 PS 流分析

    对于第一帧的第一个包开始为PS头 43 系统头 43 节目映射流 1 Pack start code xff1a 包起始码字段 xff0c 值为0x000001BA的位串 xff0c 用来标志一个包的开始 2 System clock re
  • linux c/c++ 程序崩溃时打印调用栈

    本文章是在总结前人的帖子后实现的 xff0c 经过验证是可以使用的 但是在个别信号下 xff0c 还是不能详细的打印有效信息 void dump void char szLog MAX LOG LEN 61 0 int j nptrs co
  • sip stale

    ii Stale 一个标志 xff0c 用来指示客户端先前的请求因其nonce值过期而被拒绝 如果stale是TRUE xff08 大小写敏感 xff09 xff0c 客户端可能希望用新的加密回应重新进行请求 xff0c 而不用麻烦用户提供
  • C++中模板类的输入输出流重载函数实现

    转 C 43 43 模板类中操作符重载之 34 lt lt 34 和 34 gt gt 34 重载 2011 01 10 17 05 31 分类 xff1a IT与程序 标签 xff1a 字号 大 中 小 订阅 在模板类中输入流 和输出流
  • SIP注册过程

    SIP的注册过程很容易理解 首先我有一个号码 xff0c 但我的号码可以移动的话 xff0c 那服务器如何才能找到我呢 xff1f SIP的注册机制将sip终端的位置报告给注册服务器 这里的注册服务器仅仅是一个逻辑角色 并不一定是独立的物理
  • linux ls命令 目录下文件太多

    在查看一个文件目录下有哪些文件的时候 xff0c 有时候目录下文件太多 所以需要如下命令筛选 ls less 之后按下ctrl 43 F是下一页 xff0c 按下ctrl 43 B是上一页 xff0c 按下q是回去 有时候文件夹内文件数量太
  • protected 构造方法

    使用protected 构造方法 xff0c 是包保护措施 xff0c 出了这个包 xff0c 在别的包里面是不可以new这个对象的 假设class A 的构造函数是protected的 如果在别的包里还想用我这个类的功能 xff0c 只能
  • 简易小工具实现批量打开多个网页

    最近有个需求 xff0c 希望一次性可以打开多个网页 xff0c 网址自由指定 xff0c 这个需求的实现非常简单 xff0c 使用基本的c 43 43 代码调用system函数即可 xff0c 都不需要MFC相关的东西 但是我实测一些工具
  • STM32硬件复位后无法启动

    最近遇到一个很奇怪的问题 xff0c 把STM32的reset脚拉低后再拉高 xff0c 也就是所谓的硬件复位 xff0c 按道理来说 xff0c STM32应该重启才对 xff0c 可是并没有 xff0c 连main函数都没进去 xff0
  • c++ 除号 /

    在c 43 43 中 xff0c 经常会用到整数的除法 xff0c 但是值得注意的是整数的除法是有数据丢失的 整数除法的余数直接被丢弃 xff0c 只取了商的整数部分 不是四舍五入
  • SIP 鉴权 & HTTP 认证

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