MGCP /H.248 鉴权认证
MGCP /H.248 鉴权认证
MGCP /H.248 鉴权认证
鉴权概述和基本算法
MGCP/H.248鉴权概述
MGCP协议没有涉及安全认证的标准。对于网络应用终端客户或运营商来说都不安全的盗号隐患。
解决这问题,国标和各厂家有各自标准。目前看到的资料比较少,总体上是通过扩展协议,完成MG与MGC交互。简单引入MD5算法加密密码,避免密码明文暴露在网络中。更复杂的就引入DH协商共享KEY。通过研究总结如下:
H.248/MGCP鉴权基本原理算法一:
H.248和MGCP鉴权基本原理相似,都是利用Diffie-Hellman协商一个公共的秘密,并以此作为相互之间信任的依据。
Diffie-Hellman密钥交换是利用离散对数的特征:一个大质数p,以及一个底数g。已知一个特定的值y,求指数x,如下所示:
y =gx mod p
其中,mod是"求余"的意思。模指数很容易便可计算出来,但假若想通过一次离散对数运算恢复原来的指数,却是异常艰难的。
H.248/MGCP鉴权基本原理算法二:
软交换MGC发给MG鉴权请求Authreq ,Authreq = MD5(内容未知)
MG 回复MGC Authoc,MD5(内容未知)
在软交换端比较Authoc是否正确。
问题分析
1)Diffie-Hellman算法的本身很简单,实现比较复杂,因为大数运算溢出处理。所以要引入大数运算库。
我参考了开源的算法库,用来移植。
参考资源:
http://math.libtomcrypt.org
2)MD5算法资源较多我就不列。有需要的话,请留留言。
3)MGCP协议栈
需要扩展的信号有三个
Auth/Authreq 请求信号
Auth/Authoc 事件
Auth/dh
参数也有三个
X-EA
X-RANDOM
X-DH
X-AUTH
下面是我利用的资料希望对你有帮助。
参考资料《中国电信MGCP 协议测试规范》
RSIP 65577*@mg.whaterver.netMGCP 1.0 NCS 1.0
RM: restart
X-EA:1
X-RANDOM:b1bdd81eb1bdd81eb1bdd81eb1bdd81e
X-DH: dc91ee 616ea 7ab4e82dc0e 42325baf3469d146270bd185b7e4bb0d 607fea
b 24de8975e0b1bcdd21e29b321802115b30ca 14effe768593b6fec6fff6fd7d788bf
X-AUTH: 38d972fedc 6594b
RQNT 268435562*@mg.whaterver.netMGCP 1.0
X: 15
R: auth/authoc
S: auth/dh(EBC 599282516167DE 0BDFDEB421BACA2470FF9FC 846BC4E 14E 3EC1
E86B 6DEFD1E449BE9017D 6B5BFF76EFCDD 758AA 8B29ACD 841746ED18CFD), auth/authreq
(D567D 15485E5E07020DED6BB, 1,0B95627084321AFCA422B 7718FE218)
解决方法(华为模式)
现在资料:
---------------------------------------------------------------------------------------------------
Tx:
RSIP 925595073aaln/*@iad108.01.kdwl.nanchang.comMGCP 1.0
RM:restart
---------------------------------------------------------------------------------------------------
Rx:
200 925595073 OK
---------------------------------------------------------------------------------------------------
Rx:
RQNT 879300970aaln/1@iad108.01.kdwl.nanchang.comMGCP 1.0
X:1600000d
R:AUTH/authoc
S:AUTH/authreq( 4cc 8540762e36222b08ca4305)
---------------------------------------------------------------------------------------------------
Tx:
200 879300970 OK
---------------------------------------------------------------------------------------------------
Tx:
NTFY 2aaln/1@iad108.01.kdwl.nanchang.comMGCP 1.0
O:auth/authoc(2e7e4dfee0b66af 8ffd57ce7eaf63d)
X:1600000d
---------------------------------------------------------------------------------------------------
Rx:
200 2 OK
以下内容是我的猜想:
软交换MGC发给MG鉴权请求Authreq ,Authreq = MD5(MGCKey+Rand())
MG 回复MGC Authoc, Authoc =MD5(Autheq+MgId+Ki)
在软交换端比较Authoc是否正确。
处理流程:
解决方法2(参考《中国电信MGCP 协议测试规范》)
现有资料:
注册请求(带认证字段)
MGC 响应MG 的注册请求(带认证字段)流程解释:
1) MG 向MGC 发RSIP 命令(带通配符),启动方式为restart;命令中还带有四个用于
认证的"X-"字段:用于数字签名的数字串MGAUTH、算法ID、随机数Rand 和用于
DH 交换的A。
MG 事先产生一个随机数Rand,同时MG 再产生一个用于DH 交换的私人数字a,计算
得到A=gamod(P)。通过计算得到MG 的数字签名:
MGAUTH=MD5(Ki + MGID + A + Rand);
2) MGC 收到RSIP 命令后,首先计算MGRES= MD5(Ki + MGID + A + Rand)。
如果MGAUTH = MGRES,则对MG 的认证通过,否则拒绝。认证通过后,MGC 再产生
一个用于DH 交换的私人数字b,计算
B=gbmod(P) 得到共享的鉴权密钥KEY-MGC= Abmod(P)=gabmod(P),并再产生
一个随机数Rand,进而计算得到:
MGCAUTH=MD5(KEY-MGC + Ki + B + Rand)
3) MGC 下发检测摘机RQNT 命令;同时MGC 把B 下传给MG,同时下传的还有
MGCAUTH、算法ID 和随机数Rand。 MG 得到B,MGCAUTH 后,首先计算得到共享的
鉴权密钥 KEY-MG= Bamod(P)=gabmod(P), 进而计算得出 : MGCRES=MD5
(KEY-MG + Ki + B + Rand)
如果MGCAUTH = MGCRES,则说明是一个合法的MGC 发过来的信息。
4) 发送对MGC 的回应消息。
MGC 发起认证鉴权
1. MGC 向MG 发起定期鉴权;
2. MG 回响应。
流程解释:
1) MGC 定期向MG 发送RQNT 命令进行鉴权,命令中带有MGC 产生的随机数Rand
以及共享密钥KEY-MGC 对其加密生成的结果,同时还带有算法ID。如采用MD5 加密,
则加密结果为MD5(KEY-MG + Rand);
2) MG 回响应;
3) MG 用NTFY 中的[ObservedEvents]向MGC 回送鉴权应答,应答中带有用共享密钥
KEY-MG 加密的两项:MGID 及随机数Rand(为MGC 所带的),同时命令中还带有算
法ID。如采用MD5 加密,则加密结果为MD5(KEY-MG + MGID + Rand);
4) MGC 回响应。
消息示例如下:
1.MGC 向MG 发起鉴权
RQNT 268435462*@DomainNameMGCP 1.0
X: 14
R: auth/authoc
S: auth/authreq(C45565B 3BCB419FA194232EF ,1,010B 29333D47515B 79838D97)
2.MG 回送命令响应
200 268435462 Ok
3.MG 向MGC 回送鉴权应答
NTFY 65578*@DomainNameMGCP 1.0
X: 14
O: auth/authoc(122daa 8b9155bb 0726aec15ba,1)
4.MGC 回送命令响应
200 65578 OK
MGCP /H.248 鉴权认证相关推荐
- Onvif协议学习:7、鉴权认证
Onvif协议学习:7.鉴权认证 文章目录 Onvif协议学习:7.鉴权认证 1.前言 2.ONVIF哪些接口需要认证 3.如何认证 4.安装OpenSSL 5.实现认证 6.特别注意 原文链接:ht ...
- Python 技术篇-百度语音API鉴权认证获取Access Token实例演示
百度语音官方鉴权认证文档 下面来为大家进行鉴权认证获取Access Token的演示: 首先需要创建自己的个人语音应用,在应用列表里进行创建. 百度语音个人应用列表 然后用这个应用里的 API Key ...
- aka鉴权 ims_ims 注册鉴权认证过程
移动通信的安全问题正越来越多地受到关注.2G网络主要传输语音业务,采用的是单向的用户认证方案,即网络能够验证用户身份是否合法,而用户无法确认其所连接的网络服务是否可靠.然而,3G网络将会演变成一个覆盖 ...
- .Net Core使用Ocelot网关(二) -鉴权认证
前言 上一章.Net Core使用Ocelot网关(一) -负载,限流,熔断,Header转换 已经简单的介绍了ocelot的使用了,但是网关暴露的接口如果什么人都能访问的话安全性就太低啦.所以我们需 ...
- 核心网upf作用_高性能5G核心网,动力从何而来? 核心网,是整个通信网络的大脑,是不可或缺的重要组成部分。 网络的管理控制、鉴权认证等关键功能,主要由核心网负责。核心网的... - 雪球...
来源:雪球App,作者: 鲜枣课堂,(https://xueqiu.com/7282046183/152278945) 核心网,是整个通信网络的大脑,是不可或缺的重要组成部分. 网络的管理控制.鉴权认 ...
- 大数据Hadoop之——Zookeeper鉴权认证(Kerberos认证+账号密码认证)
文章目录 一.Zookeeper概述与安装 二.Zookeeper Kerberos 鉴权认证 1)Kerberos安装 2)创建用户并生成keytab鉴权文件(前期准备) 3)独立zookeeper ...
- ims 注册鉴权认证过程
摘要:IP多媒体子系统(IMS)作为3G网络的核心控制平台,其安全问题正面临着严峻的挑战.IMS的接入认证机制的实现作为整个IMS安全方案实施的第一步,是保证IMS系统安全的关键.基于认证和密钥协商( ...
- Docker Registry部署镜像私有仓库及鉴权认证
文章目录 一.Docker Registry是什么? 二.Docker Registry部署私有仓库 2.1.Docker Registry安装 2.2.Docker Registry配置 2.3.启 ...
- 发现一款java鉴权认证框架sa-token(目前好像坑还很多)
我们先看一下官网介绍,sa-token有什么功能 链接: 官网地址 主要是Shiro.Security配置繁琐,这个简单易上手 这是他的大致功能点,今天我们搞点基础的 springBoot 集成sa- ...
最新文章
- 一起学DNS系列(十)图、例详解DNS递归和迭代查询原理及过程 (1)
- 互联网架构为什么要做服务化
- 车道线检测--Towards End-to-End Lane Detection: an Instance Segmentation Approach
- java中集合的模型特点_Java 学习笔记(十四)集合
- opencv中vc14和vc15的区别?
- 几个常见的Python面试题分享,帮你顺利求职
- dietlibc中的strcpy算法浅析
- Redis集群~StackExchange.Redis(10月6号版1.1.608.0)连接Twemproxy支持Auth指令了
- 【高校宿舍管理系统】第十章 缺勤管理、报修管理、来访人员管理以及公告管理
- poj 1151 hdu 1542 Atlantis 线段树扫描线(详细讲解)
- FFmpeg 基本用法
- 【图频处理】基于matlab GUI界面环图像处理与音乐播放系统【含Matlab源码 185期】
- esp8266接入小度语音,小度音箱控制,附开源app控制
- 华为笔试题——去除重复的数字
- 那些年,我们一起做过的KNX智能化控制经典案例!
- Go语言程序开发之ARM开发环境搭建
- 十年后的我们会是什么样的呢,二十年后的我国 会是什么样呢
- 同一工作组计算机无法查看,win7系统在同一个工作组看不到其他电脑怎么回事?...
- Attention-guided Context Feature Pyramid Network for Object Detection
- Flink实战(八十五):flink-sql使用(十二)Flink 与 hive 结合使用(四)Hive Read Write
热门文章
- Gos ——BIOS与继承者MBR
- JAVA中用流进行文件分割
- ERR_SPDY_PROTOCOL_ERROR错误解决
- React 10分钟快速入门
- html block属性,css display block属性的意思、作用和效果
- 【学习进度】截至2022.9.6,已学习的C++知识
- MFC界面开发工具BCG v31.1 - 控件功能增强
- ShareSDK 常见问题
- 《MySQL 入门教程》第 06 篇 备份与恢复
- android 开机向导加载过程,开机向导启动流程分析