一种分组网络中语音通信的加密协商方法

文档序号:7612503阅读:172来源:国知局
专利名称:一种分组网络中语音通信的加密协商方法
技术领域
本发明属于网络安全技术领域,特别是一种分组网络中语音通信加密协商的方法。
背景技术
近十几年来,分组网上的话音通信技术(Voice over IP-VoIP)一直是电信行业和计算机行业的研究热点。文献[1]“Voice over IPFundamentals”,Cisco Press,www.cisco.com。伴随着VoIP技术的广泛使用,如何提高语音通信的安全性就成为一个关键的问题。对语音数据进行加密,可以保证话音传输的机密性。考虑到语音通信是一种实时性很强的业务,对语音数据的加密应当采用对称密钥算法,而对称密钥算法工作的前提就是必须在话音通信的双方之间通过协商共享加密算法和会话密钥。

发明内容
本发明的目的在于提供一种在分组网络中话音通信的加密协商方法。它通过引入公私钥、消息摘要等机制,能够在话音通信的双方之间共享加密算法、会话密钥等信息,从而提高语音通信的安全性和可靠性。
本发明建立在分组网络环境中,网络由话音通信终端(IP手机、个人数字助理、笔记本电脑、台式机等)、接入设备(基站、有线接入路由器等)、注册服务器等功能实体组成。其中,话音通信终端通过有线或者无线的方式接入网络,注册服务器位于核心网络中,用于维护所有通信终端的话音通信相关信息。见图1。
本发明是分组网络中语音通信加密协商的一种实现方法。每一个通信终端都有一个通信标志符和一对公私钥,其中各通信终端在设备入网的时候就把本终端的通信标志符和公钥注册到核心网上的注册服务器,同时在本终端中保存了注册服务器的合法公钥以及加密算法索引值列表;当通信终端开机或者是越区切换时,需要把本机当前的地址信息在注册服务器上进行登记;当语音呼叫发起时,主叫方首先从注册服务器获取被叫的当前地址和公钥,然后由主叫方指定本次通话的加密算法和密钥,并通知被叫方,被叫方收到通知消息后,检查自己是否支持主叫方指定的加密算法,如果支持,被叫向主叫发送确认消息,否则,被叫向主叫发送相应的出错消息,主叫根据被叫发来的出错消息,重新选择加密算法和密钥。
本发明是一种分组网络中语音通信的加密协商方法,其实现方法如下每一个通信终端都有一个通信标志符,通信标志符可以采用电话号码的形式也可以采用其它一切合法标志符,通信标志符用于唯一地标志一台通话设备,所有合法的通信标志符都具有唯一性相互不重复。与之对应的是每一台通信终端的IP地址是不固定的,因此IP地址不能用来识别通信终端设备。为了提高安全性,每一个通信终端还有一对公私钥,其中私钥被秘密地存放在设备内部不能公开,公钥连同通信标志符在通信设备最初入网的时候就注册到了核心网上的注册服务器,同时在注册过程中,通信终端设备也得到并保存了注册服务器的合法公钥以及加密算法的索引值列表。在成功完成通信标志符和公钥的注册之后,通信终端设备就能够开通分组网上的话音业务了。
因为每一个通信终端设备的IP地址是不固定的,所以在通信终端每一次启动话音业务或者终端设备发生移动切换而导致IP地址发生变化时,都需要把终端最新的地址信息通过ADDR_SET消息通知注册服务器,注册服务器更新数据库中该终端设备的相关记录。为了便于注册服务器对终端进行身份验证,ADDR_SET消息需要用终端的私钥进行签名,消息内容包括终端设备的通信标志符和地址等信息。
当主叫方通信终端需要发起语音呼叫时,它将时间戳连同主叫方和被叫方的通信标志符一起通过INFO_REQ消息发送给核心网上的注册服务器。注册服务器收到INFO_REQ消息后,查询自己的数据库找到被叫方当前的IP地址和公钥,然后连同INFO_REQ消息里的时间戳构成INFO_RES消息的明文,并对消息明文计算消息摘要,最后对INFO_RES消息用注册服务器本身的私钥进行签名并发送给主叫方。主叫方用注册服务器的公钥对INFO_RES消息进行解密,然后重新计算消息明文的摘要信息,并以此来判断INFO_RES消息的完整性是否遭到破坏,同时主叫方终端还会对比INFO_RES消息中的时间戳和自己原先记录的时间戳,如果两者相同并且消息完整性检验通过,则主叫方就使用INFO_RES消息中包含的被叫方当前地址和公钥来继续语音通信加密协商的过程,否则,主叫方必须重新发送INFO_REQ消息并等待注册服务器的正确回复。
一旦主叫方从注册服务器得到了被叫方的合法地址和公钥后,接下来它就会为本次通信选定一种加密算法并且指定相应的会话密钥(主叫方也可以设置加密算法索引值为0表示本次通话无需加密),加密算法由一个索引值来表示,不同的加密算法索引值不同,加密算法的索引值列表由注册服务器统一维护,终端设备在入网的时候已经从注册服务器处得到并保存了该列表,此外,终端设备也可以通过LIST_REQ消息动态地向注册服务器请求下载该列表。主叫方选择的加密算法索引和会话密钥构成了CIPH_SET消息的明文,在发送该消息之前,主叫方需要首先计算消息明文的摘要,然后对CIPH_SET消息用被叫方的公钥进行加密,并传递给被叫终端的当前地址。
被叫终端收到CIPH_SET消息后,用自己的私钥解密该消息,然后重新计算消息明文的摘要,并以此来判断CIPH_SET消息的完整性是否遭到破坏,如果消息完整性检查不通过,被叫方就会向主叫方发送CIPH_SET_ERROR消息,错误类型设为“完整性检查失败”,主叫方收到此类错误消息后,会重新传递CIPH_SET消息;如果消息完整性检查通过,被叫终端就会继续检测本机是否支持CIPH_SET消息中指定的加密算法,如果不支持,则被叫终端就会向主叫方发送CIPH_SET_ERROR消息,错误类型设为“加密算法不支持”,同时在该类CIPH_SET_ERROR消息中还会包含被叫终端支持的所有加密算法的索引值信息,当主叫方收到此类错误消息后,会根据被叫方支持的加密算法来重新指定本次语音通话的加密算法和会话密钥(主叫方也可以设置加密算法索引值为0表示本次通话无需加密),然后再次发送CIPH_SET消息;如果被叫方支持主叫方选定的加密算法,则被叫方会向主叫方发送CIPH_SET_CONF消息,当主叫方最终收到被叫方发来的CIPH_SET_CONF消息后,加密协商过程结束,通信双方就可以利用协商好的加密算法和会话密钥来加密语音通信数据包了。
本发明具有以下优点1)加密协商过程最多只需要4次握手,简单。
2)不同终端可以支持不同的加密算法,灵活性好。
3)引入时间戳、消息摘要等机制,可以解决重放攻击、内容篡改等安全性问题。


图1为分组网络拓扑结构图。
图2为一次语音通话所经历的加密协商过程的流程图。
具体实施例方式
图2中,一次语音通话所经历的加密协商的具体步骤如下步骤S2.1主叫方发出呼叫请求;步骤S2.2主叫方向核心网上的注册服务器发送INFO_REQ消息,该消息包含了主叫、被叫方信息以及时间戳,注册服务器向主叫方回复INFO_RES,该消息用注册服务器的私钥进行签名,内容包括主叫方指定的时间戳、被叫方当前的IP地址、被叫方的公钥以及消息摘要等;步骤S2.3主叫方用注册服务器的公钥解密INFO_RES消息,通过时间戳检查INFO_RES消息的有效性,通过摘要检查INFO_RES消息的完整性,如果以上检查都通过,则进入S2.4,否则,返回S2.2;步骤S2.4主叫方为本次语音通信选择加密算法和会话密钥,并向被叫方发送CIPH_SET消息,该消息使用被叫方的公钥进行加密,内容包括主叫方选定的加密算法索引值、会话密钥以及消息摘要等;
步骤S2.5被叫方收到CIPH_SET消息,用私钥解密该消息;步骤S2.6被叫方通过计算消息摘要判断CIPH_SET消息的完整性,如果完整性检查通过,进入S2.8,如果消息完整性遭到破坏,进入S2.7;步骤S2.7被叫方向主叫方发送CIPH_SET_ERROR消息,错误类型是完整性检查失败,返回S2.4;步骤S2.8被叫判断是否支持主叫选定的加密算法,如果支持,进入S2.10;否则,进入S2.9;步骤S2.9被叫方向主叫方发送CIPH_SET_ERROR消息,错误类型是加密算法不支持,该消息中同时包含了被叫方支持的所有加密算法索引值,返回S2.4;步骤S2.10被叫方向主叫方发送CIPH_SET_CONF消息,通知主叫方加密信息设置完毕;步骤S2.11主叫方收到CIPH_SET_CONF消息,加密协商过程结束。
权利要求
1.一种分组网络中语音通信的加密协商方法,其特征在于,每一个通信终端都有一个通信标志符和一对公私钥,其中各通信终端在设备入网的时候就把本终端的通信标志符和公钥注册到核心网上的注册服务器,同时在本终端中保存了注册服务器的合法公钥以及加密算法索引值列表;当通信终端开机或者是越区切换时,需要把本机当前的地址信息在注册服务器上进行登记;当语音呼叫发起时,主叫方首先从注册服务器获取被叫的当前地址和公钥,然后由主叫方指定本次通话的加密算法和密钥,并通知被叫方,被叫方收到通知消息后,检查自己是否支持主叫方指定的加密算法,如果支持,被叫向主叫发送确认消息,否则,被叫向主叫发送相应的出错消息,主叫根据被叫发来的出错消息,重新选择加密算法和密钥。
2.根据权利要求1所述的分组网络中语音通信的加密协商方法,其特征是每一个通信终端都有一个通信标志符(如电话号码,可以唯一地标志话音通信设备)和一对公私钥,其中各通信终端在设备入网的时候就把本终端的通信标志符和公钥注册到核心网上的注册服务器,同时在本终端中保存了注册服务器的合法公钥以及加密算法索引值列表;当通信终端开机或者是越区切换时,需要把本机私钥签名的当前地址在注册服务器登记;当语音呼叫发起时,主叫方将当前时间戳连同通信双方的信息发送给核心网上的注册服务器,注册服务器收到主叫方发来的查询请求后,向主叫方回复相应消息,回复消息用注册服务器的私钥签名,内容包括主叫方指明的时间戳、被叫方当前的IP地址、被叫方的公钥以及消息摘要等,主叫方收到注册服务器发来的回复消息后,用注册服务器的公钥解密该消息,并通过“时间戳”和“摘要”字段检测消息的有效性和完整性,如果检测没有通过,主叫方需要重新向注册服务器发出请求,如果检测通过,主叫方就为本次语音通信选择加密算法和会话密钥,并向被叫方发送加密设置消息,该消息用被叫方的公钥进行加密,内容包括主叫方选定的加密算法、会话密钥以及消息摘要等,被叫方收到加密设置消息后,用私钥解密该消息,然后通过“摘要”字段检测消息的完整性,如果检测不通过,被叫方会向主叫方发送相应的出错消息,通知主叫方重传该消息,如果检测通过,被叫方检查本机是否支持主叫方选定的加密算法,如果不支持,则被叫方会向主叫方发送相应的出错消息,把被叫方支持的各种加密算法信息通知主叫方,以便让主叫方重新进行加密信息的选择,如果被叫支持主叫选定的加密算法,则被叫会向主叫发送相应的确认消息,主叫方收到确认消息后,加密协商过程结束。
3.根据权利要求1所述的一种分组网络中语音通信的加密协商方法,其一次语音通信加密协商的具体步骤如下步骤S2.1主叫方发出呼叫请求;步骤S2.2主叫方向核心网上的注册服务器发送INFO_REQ消息,该消息包含了主叫、被叫方信息以及时间戳,注册服务器向主叫方回复INFO_RES,该消息用注册服务器的私钥进行签名,内容包括主叫方指定的时间戳、被叫方当前的IP地址、被叫方的公钥以及消息摘要;步骤S2.3主叫方用注册服务器的公钥解密INFO_RES消息,通过时间戳检查INFO_RES消息的有效性,通过摘要检查INFO_RES消息的完整性,如果以上检查都通过,则进入S2.4,否则,返回S2.2;步骤S2.4主叫方为本次语音通信选择加密算法和会话密钥,并向被叫方发送CIPH_SET消息,该消息使用被叫方的公钥进行加密,内容包括主叫方选定的加密算法索引值、会话密钥以及消息摘要;步骤S2.5被叫方收到CIPH_SET消息,用私钥解密该消息;步骤S2.6被叫方通过计算消息摘要判断CIPH_SET消息的完整性,如果完整性检查通过,进入S2.8,如果消息完整性遭到破坏,进入S2.7;步骤S2.7被叫方向主叫方发送CIPH_SET_ERROR消息,错误类型是完整性检查失败,返回S2.4;步骤S2.8被叫判断是否支持主叫选定的加密算法,如果支持,进入S2.10;否则,进入S2.9;步骤S2.9被叫方向主叫方发送CIPH_SET_ERROR消息,错误类型是加密算法不支持,该消息中同时包含了被叫方支持的所有加密算法索引值,返回S2.4;步骤S2.10被叫方向主叫方发送CIPH_SET_CONF消息,通知主叫方加密信息设置完毕;步骤S2.11主叫方收到CIPH_SET_CONF消息,加密协商过程结束。
全文摘要
本发明属于网络安全技术领域,是分组网络中语音通信的一种加密协商方法。其步骤包括每一个通信终端都有一个通信标志符和一对公私钥,其中各通信终端在设备入网的时候就把本终端的通信标志符和公钥注册到核心网上的注册服务器;当通信终端开机或者是越区切换时,需要把本机当前的地址信息在注册服务器登记;当呼叫发起时,主叫方首先从注册服务器获取被叫的当前地址和公钥,然后由主叫方指定本次通话的加密算法和密钥,并通知被叫方,被叫方收到通知消息后,检查自己是否支持主叫方指定的加密算法,如果支持,被叫向主叫发送确认消息,否则,被叫向主叫发送相应的出错消息,主叫根据被叫发来的出错消息,重新选择加密算法和密钥。
文档编号H04W12/04GK1710985SQ200510012048
公开日2005年12月21日 申请日期2005年6月30日 优先权日2005年6月30日
发明者孙毅, 金鑫, 田霖, 石晶林 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1