一种适用于VOIP语音加密的密钥分发方法与流程

文档序号:12829126阅读:295来源:国知局
一种适用于VOIP语音加密的密钥分发方法与流程

本发明涉及一种密钥分发机制,特别涉及一种在分组交换网络中,实现主、被叫终端间端到端的媒体流加密密钥分发的方法,属于加密通信领域。



背景技术:

随着网络通信和计算机技术的发展,基于分组网络的语音、视频应用得到了广泛应用。分组网络通信中主要使用的voip信令标准有itu-t提出的h.323体系和ietf提出的sip体系,基于sip标准的应用比基于h.323体系的应用具有很多优点,逐步得到了大量的应用。

sip(sessioninitiationprotocol)是一个会话层的信令控制协议,用于创建、修改和释放一个或多个参与者的会话,sip终端与sip服务器经过信令交互之后建立连接,语音采用基于rtp实时传输协议,在ip网络上传输。

由于基于sip协议实现的通话连接,双方交互的数据包均为明文,因此,通话内容极易在网络上被窃听,存在较大的信息安全隐患。目前针对voip的安全性设计,主要通过对sip协议的传输保护解决语音加密密钥安全分发问题,如ip层的ipsec传输保护协议,tcp层的ssl传输保护协议;另外,也有通过扩展sip协议实现端到端会话密钥协商的方式,但协商方式会引出双方身份认证困难并且难以有效监管的问题。



技术实现要素:

鉴于上述原因,本发明的目的是提供一种适用于voip语音加密的密钥分发方法。

为实现上述目的,本发明采用以下技术方案:一种适用于voip语音加密的密钥分发方法:

a、由主叫终端向密钥分发服务器发起会话密钥申请,触发密钥分发,由密钥分发服务器为主、被叫终端双方产生会话密钥,返回给主叫终端;

b、主叫终端得到会话密钥后,通过voip服务器向被叫终端发起加密呼叫,并将密钥分发服务器产生的密钥特征数据发送给被叫终端,通过voip服务器主、被叫终端建立媒体流传输通道;

c、主、被叫终端双方使用会话密钥对媒体流加密后传输给对方,对方收到后使用会话密钥对接收到的数据解密得到媒体流。

所述步骤a包括如下步骤:

1)主叫终端向密钥分发服务器(简称kds)发送会话密钥请求,该请求包含主、被叫双方的身份标识;

2)kds向主叫终端返回会话标识、挑战数据以及时间数据;

21)kds随机产生会话标识、挑战数据;时间数据为kds当前本地时间;

22)会话标识用于标识主叫终端的本次会话请求;

23)挑战数据用于主叫终端证明其身份;

24)时间数据用于主叫终端验证当前时间;

3)主叫终端验证时间数据后产生应答数据并继续向kds发起会话密钥申请;

4)kds为主、被叫双方产生会话密钥特征数据并将密钥特征数据返回主叫终端;

5)主叫终端对密钥特征数据进行校验,然后使用自己的私有数据对接收到的密钥特征数据运算后得到明文会话密钥;该明文会话密钥可以直接用于加密媒体流数据,或者通过密钥派生方法产生用于媒体加密或媒体认证的密钥数据。

所述步骤b包括如下步骤:

1)主叫终端向voip服务器发起加密呼叫请求;

2)加密呼叫请求应答后,主叫终端通过voip服务器向被叫终端发送kds产生的密钥特征数据;

3)被叫终端使用自己的私有数据对接收到的密钥特征数据运算后得到明文的会话密钥。

所述步骤a中的第3)小步具体步骤如下:

31)主叫终端首先对时间数据与本地时间进行比对,判断应答是否为重放消息;

32)主叫终端使用私有数据对挑战数据计算产生应答数据;

33)应答数据可以为消息认证码(mac)或签名数据;

34)在应答数据产生的过程中,可以加入主被叫双方的身份标识参与运算。

所述步骤a中的第4)小步具体步骤如下:

41)kds使用主叫终端的公开数据和挑战数据对应答数据进行验证;获取公开数据的方式包括但不限于下列方式:

从自己的数据库检索获取

从ca的证书发布系统获取

申请获取会话密钥请求消息中携带的主被叫双方的公开数据;

42)kds随机产生或从其它密钥管理系统中获取会话密钥ks;

ks可以包括携带密钥的完整性数据;完整性数据可以是密钥的摘要结果,也可以数据校验和,或者是其它的完整性计算方法的结果;

43)kds获取主被叫双方的公开数据,获取公开数据的方式包括但不限于下列方式:

从自己的数据库检索获取

从ca的证书发布系统获取

申请获取会话密钥请求消息中携带的主被叫双方的公开数据;

44)kds使用主叫终端的公开数据对会话密钥计算后得到结果cka;

kds使用主叫终端的公开数据pka对会话密钥ks进行公钥加密或公钥运算得到密文数据cka;

为防止数据篡改或伪造,cka中可以包含kds对计算结果的认证数据,该认证结果可以为消息认证码(mac)或签名数据;

认证数据在产生过程中可以将主被叫双方的身份标识加入运算;

45)kds使用被叫的公开数据对会话密钥计算后得到结果ckb;

密钥分发中心使用主叫终端的公开数据pkb对会话密钥ks进行公钥加密或公钥运算得到密文数据ckb;

为防止数据篡改或伪造,ckb中可以包含kds对计算结果的认证数据,该认证结果可以为消息认证码(mac)或签名数据;

认证数据在产生过程中可以将主被叫双方的身份标识加入运算。

所述步骤b中的第2)小步进一步包括如下步骤:

21):主叫终端向voip服务器发送info消息;

该请求包含kds为被叫终端产生的密钥特征数据ckb;

22):voip服务器向被叫发送info消息;

1)该请求包含kds为被叫终端产生的密钥特征数据ckb;

2)被叫终端首先对密钥特征数据ckb进行校验,然后使用自己的私有数据对进行ckb解密得到明文ks;

3)ks可以直接用于加密媒体流数据,或者通过固定密钥派生方法产生用于媒体加密或媒体认证的密钥数据;

4)ks的使用方式与主叫终端保持一致;

23):被叫终端向voip服务器发送info消息响应;

24):voip服务器向主叫终端发送info消息响应。

附图说明

图1为本发明密钥分发系统组成示意图;

图2为本发明密钥分发实施例流程示意图。

具体实施方式

如图1所示,本发明提供的适用于voip语音加密的密钥分发方法是:由主叫终端向密钥分发服务器(简称kds,keydistributiongserver)发起会话密钥申请,触发密钥分发,由密钥分发服务器为主、被叫终端双方产生会话密钥,返回给主叫终端;主叫终端得到会话密钥后,通过voip服务器向被叫终端发起加密呼叫,并将密钥分发服务器产生的密钥特征数据发送给被叫终端,通过voip服务器主、被叫终端建立媒体流传输通道;主、被叫终端双方使用会话密钥对媒体流加密后传输给对方,对方收到后使用会话密钥对接收到的数据解密得到媒体流。

如图1所示,本发明采用的技术方案为:

1、主叫终端向密钥分发服务器(简称kds,keydistributionserver)发起会话密钥请求;

2、kds向主叫终端返回会话标识、挑战数据以及时间数据;

3、主叫终端验证时间数据后产生应答数据并继续向kds发起会话密钥申请;

4、kds为主、被叫双方产生会话密钥特征数据并将密钥特征数据返回主叫终端;

5、主叫终端使用自己的私有数据对接收到的密钥特征数据运算后得到明文会话密钥;

6、主叫终端向voip服务器发起加密呼叫请求;

7、加密呼叫请求应答后,主叫终端通过voip服务器向被叫终端发送kds产生的密钥特征数据;

8、被叫终端使用自己的私有数据对接收到的密钥特征数据运算后得到明文的会话密钥;

9、主、被叫双方使用会话密钥对媒体流加密后传输给对方;

10、对方使用会话密钥对接收到的数据解密后得到媒体流;主、被叫双方进行加密通话。

本发明是提出的密钥分发方法的优点:

1、密钥直接由密钥分发服务器(简称kds)产生,易于密钥管理,降低对voip服务器的调整改造;

2、kds在密钥产生前对主叫终端进行身份验证,弥补sip协议自身身份认证的脆弱性;

3、一话一密,全程加密,传输过程不出现明文,安全性高。

图2为本发明密钥分发实施例流程示意图。如图所示:

101:主叫终端向kds发送会话密钥请求消息;

1)该请求包含主被叫双方的身份标识;主被叫身份标识可以是主被叫的通信号 码或者其它可以唯一标识主被叫身份的数据,例如硬件密码设备标识、数字证书序列号等;

2)该申请消息可以包含主被叫双方的公开数据;

3)公开数据可以是公开密钥或者是数字证书等;

102:kds向主叫终端返回为会话标识、挑战数据以及时间数据;

1)kds随机产生会话标识、挑战数据;时间数据为kds当前本地时间;

2)会话标识用于标识主叫终端的本次会话请求;

3)挑战数据用于主叫终端证明其身份;

4)时间数据用于主叫终端验证当前时间;

103:主叫终端产生应答数据并继续向kds发送会话密钥请求;

1)主叫终端首先对时间数据与本地时间进行比对,判断应答是否为重放消息;

2)主叫终端使用私有数据对挑战数据计算产生应答数据;

3)应答数据可以为消息认证码(mac)或签名数据;

4)在应答数据产生的过程中,可以加入主被叫双方的身份标识参与运算;

104:kds验证应答数据并为主被叫双方产生的不同的密钥特征数据cka与ckb;并同时返回给主叫终端;

1)kds使用主叫终端的公开数据和挑战数据对应答数据进行验证;获取公开数据的方式包括但不限于下列方式:

从自己的数据库检索获取

从ca的证书发布系统获取

申请获取会话密钥请求消息中携带的主被叫双方的公开数据;

2)kds随机产生或从其它密钥管理系统中获取会话密钥ks;

ks可以包括携带密钥的完整性数据;完整性数据可以是密钥的摘要结果,也可以数据校验和,或者是其它的完整性计算方法的结果;

3)kds获取主被叫双方的公开数据,获取公开数据的方式包括但不限于下列方式:

从自己的数据库检索获取

从ca的证书发布系统获取

申请获取会话密钥请求消息中携带的主被叫双方的公开数据;

4)kds使用主叫终端的公开数据对会话密钥计算后得到结果cka;

kds使用主叫终端的公开数据pka对会话密钥ks进行公钥加密或公钥运算得到密文数据cka;

为防止数据篡改或伪造,cka中可以包含kds对计算结果的认证数据,该认证结果可以为消息认证码(mac)或签名数据;

认证数据在产生过程中可以将主被叫双方的身份标识加入运算;

5)kds使用被叫的公开数据对会话密钥计算后得到结果ckb;

密钥分发中心使用主叫终端的公开数据pkb对会话密钥ks进行公钥加密或公钥运算得到密文数据ckb;

为防止数据篡改或伪造,ckb中可以包含kds对计算结果的认证数据,该认证结果可以为消息认证码(mac)或签名数据;

认证数据在产生过程中可以将主被叫双方的身份标识加入运算;

6)主叫终端对密钥特征数据cka进行校验,然后使用自己的私有数据对cka进行解密得到明文ks;

ks可以直接用于加密媒体流数据,或者通过密钥派生方法产生用于媒体加密或媒体认证的密钥数据;

201:主叫终端向voip服务器发送invite消息;

202:voip服务器向被叫终端发送invite消息;

203:被叫终端向voip服务器发送振铃响应;

204:voip服务器向主叫终端发送振铃响应;

205:主叫终端向voip服务器发送inf0消息;

该请求包含kds为被叫终端产生的密钥特征数据ckb;

206:voip服务器向被叫终端发送info消息;

1)该请求包含kds为被叫终端产生的密钥特征数据ckb;

2)被叫终端首先对密钥特征数据ckb进行校验,然后使用自己的私有数据对进行ckb解密得到明文ks;

3)ks可以直接用于加密媒体流数据,或者通过固定密钥派生方法产生用于媒体加密或媒体认证的密钥数据;

4)ks的使用方式与主叫终端保持一致;

207:被叫终端向voip服务器发送info消息响应;

208:voip服务器向主叫终端发送info消息响应;

209:被叫终端向voip服务器发送invite消息响应;

210:voip服务器向主叫终端发送invite消息响应;

211:主叫终端向voip服务器发送响应确认;

212:voip服务器向被叫终端发送响应确认;

主、被叫双方进行加密通话。

以上所述是本发明的较佳实施例及其所运用的技术原理,对于本领域的技术人员来说,在不背离本发明的精神和范围的情况下,任何基于本发明技术方案基础上的等效变换、简单替换等显而易见的改变,均属于本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1