博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GB28181计算注册登陆时的鉴权信息
阅读量:2170 次
发布时间:2019-05-01

本文共 1357 字,大约阅读时间需要 4 分钟。



GB28181中,下级需要向上级进行登录注册,才能开启上下级之间的连接。注册的流程,详见GB28181文档的9.1小节。

在注册过程中,上级有可能(为什么是“有可能”,后面会说)需要对下级进行鉴权校验。鉴权使用的是HTTP的数字摘要鉴权方法。

它的流程是这样的:

(1)首先上下级之间需要协商好下级所使用的国标id号,以及注册鉴权的密码。

id号和密码,一般是由上级填写,并告知给下级。

(2)接下来就是鉴权计算了。所使用的公式是这样的:

HA1=md5(username:realm:password)

HA2=md5(Method:Uri)

RESPONSE=md5(HA1:nonce:HA2)

(3)计算出RESPONSE后,由下级在第二次REGISTER中携带,并由上级依据同样的步骤和方法独立计算得到RESPONSE2。比较RESPONSE和RESPONSE2,两者相等则鉴权成功,否则失败。

其中会涉及到如下几个关键词:

username:即国标id号

realm:通常是id的前10位(参考文档6.1小节)。由上级的401消息携带告知下级。

password:提前配置商定。

Method:REGISTER

Uri:由下级在第二次REGISTER中携带。

nonce:由上级的401消息携带告知下级。

举个例子说明一下:

HA1=md5(username:realm:password)

HA1=md5(11000000003000000001:1100000000:123456)
       =81f021fe3f4876df315d89c82a24cdff    用小写的
        81F021FE3F4876DF315D89C82A24CDFF

HA2=md5(Method:Uri)

HA2=md5(REGISTER:sip:11000000002000000001@192.168.0.112:5060;transport=UDP)
       =160aad37c1bf7fe16ae9cb656ebbf4e4    用小写的
        160AAD37C1BF7FE16AE9CB656EBBF4E4

nonce=13150012922:c44236aa4b0085fd6c5161d73c8e29b3

RESPONSE=md5(HA1:nonce:HA2)
RESPONSE=md5(81f021fe3f4876df315d89c82a24cdff:13150012922:c44236aa4b0085fd6c5161d73c8e29b3:160aad37c1bf7fe16ae9cb656ebbf4e4)
                    =97d60ab7abb7c59d288223600b9eddfd

前面提到,上级有可能需要对下级进行鉴权校验。之所以是有可能,是因为也可以不必对下级进行鉴权校验。无鉴权的注册流程,有两种实现方法。

(方法一)相比于GB28181文档的9.1小节的带鉴权的注册流程,少了步骤2和步骤3。即:下级发送REGISTER方法给上级,上级直接返回200 OK。

(方法二)相比于GB28181文档的9.1小节的带鉴权的注册流程,步骤没有改变,只是在步骤3,不论下级发送上来的RESPONSE消息是什么,上级都会返回200 OK。

转载地址:http://cymzb.baihongyu.com/

你可能感兴趣的文章
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>
Git安装配置
查看>>
linux中fork()函数详解
查看>>
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
逆序对的数量(递归+归并思想)
查看>>
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>