一种点对点zrtp密码校验方法及系统的制作方法

文档序号:10597007阅读:451来源:国知局
一种点对点zrtp密码校验方法及系统的制作方法
【专利摘要】本发明涉及一种点对点ZRTP密码校验方法及系统,所述方法包括:通过ZRTP协议获取ZRTP密码哈希码;将所述ZRTP密码哈希码转换为数字密码;将所述数字密码进行文本转语音处理,获取所述数字密码的音频文本;通过播放所述音频文本对所述ZRTP密码哈希码进行校验;本发明提供的方法及系统,能够使得点对点ZRTP密码校对简单,对开车的人,老年人,视力不好的人或英语发音不标准的人,均能够方便的校对点对点ZRTP密码。
【专利说明】
一种点对点ZRTP密码校验方法及系统
技术领域
[0001]本发明涉及信息安全领域,具体涉及一种点对点ZRTP密码校验方法及系统。
【背景技术】
[0002]随着互联网日益普及使得其安全问题变得尤其重要。每一天都会发生无数次个人隐私泄露事件,人们的个人隐私受到了严重的挑战,个人隐私的保护于是迫在眉睫。基于互联网的互联网通迅业同样面临着信息安全和保护的挑战。
[0003]互联网通讯安全的终极目标是:只有通讯双方交流信息,任何第三方即使截取或偷窃交流的数据流,也不能解密。
[0004]目前互联网通迅双方的通讯安全机制主要通过服务器加密和点对点加密来实现。服务器加密是通过服务器来对通信双方进行加密通信,但是服务器会被攻破,通信加密算法和秘钥会被泄漏。点对点加密是不通过服务器,通过通信双方协商来实现点对点安全通讯。基于点对点加密通讯是一个解决安全通信安全问题的主要发展方向,现有的OTR协议(I)和ZRTP协议(2)都分别针对非实时的通讯和时事通讯提出了方案。
[0005]点对点加密解决方案需要解决一个关键问题是防止通讯被窃听、通信过程中被中间人冒充。OTR协议极大地限制了中间人冒充的可能,但是如果通讯双方不在一个地方,OTR协议并不能有效的达到防止中间人的目的。ZRTP协议采用了密码比对机制,密码只会在交换的双方产生,通过DH(Diffie-Hellman)交换产生随机的点对点加密的密码。如果通话双方有不一样的密码,但是能通话,说明有通讯被窃听,通信过程中出现了中间人。因此,真正加密防窃听的通话需要通话双方验证密码。由于密码很长,ZRTP协议中产生4个字母的密码哈希码,只需要校对是否双方都有同样的4个字母就可以了。
[0006]但在实际上,校对ZRTP协议的密码哈希吗方法很不好用,或者几乎不可用,主要情况有:
[0007](I)需要手机屏幕显示字母,有些时候,手机屏幕小,字母看不清楚。
[0008](2)有些情况下,比如开车时,不能看手机,看手机影响驾驶安全。
[0009 ] (3)中国人对英文字母常常发音不太对,语音校验很成问题。
[0010]为避免频繁的每次通讯角度密码哈希码,ZRTP协议同时也提供了一种方法,利用前一次的验证过的密码的衍生密码校验。但是,在上一次通话和这一次之间,手机有可能被盗窃,衍生密码有可能被窃取。这个时候,即使不是中间人,而是通过网络抓包,都能推算出加密密码。所以,避免校对的也是不安全,不适应于互联网通讯。

【发明内容】

[0011 ]本发明提供一种点对点ZRTP密码校验方法及系统,其目的是使得点对点ZRTP密码校对简单,对开车的人,老年人,视力不好的人或英语发音不标准的人,均能够方便的校对点对点ZRTP密码。
[0012]本发明的目的是采用下述技术方案实现的:
[0013]一种点对点ZRTP密码校验方法,其改进之处在于,包括:
[0014]通过ZRTP协议获取ZRTP密码哈希码;
[0015]将所述ZRTP密码哈希码转换为数字密码;
[0016]将所述数字密码进行文本转语音处理,获取所述数字密码的音频文本;
[0017]根据所述音频文本校验所述ZRTP密码哈希码。
[0018]优选的,所述ZRTP密码哈希码为36进制的4位字母哈希码。
[0019]优选的,所述数字密码为10进制6位数字密码。
[0020]优选的,若所述ZRTP密码哈希码转换为数字密码后,所述数字密码的10进制数字串为5位数字串,则在所述数字密码的1进制数字串的首位补O;若所述ZRTP密码哈希码转换为数字密码后,所述数字密码的10进制数字串超过6位数字串,则采用固定长度压缩算法,将所述数字密码串压缩为6位数字串。
[0021]优选的,所述将所述数字密码进行文本转语音处理,获取所述数字密码的音频文本,包括:
[0022]在通话接通前或接通时,利用终端的显示语言合成所述数字密码的音频文本;
[0023]或者,根据所述终端地理位置,利用所述地理位置对应的语言合成所述数字密码的音频文本。
[0024]优选的,所述根据所述音频文本校验所述ZRTP密码哈希码,包括:
[0025]用户通过终端在通话接通前或接通时播放的音频文本获取所述ZRTP密码哈希码对应的数字密码;
[0026]通话接通后,用户通过人工发音将所述数字密码传送至通话对端,若通话对端的数字密码与用户的数字密码相同,则无中间人窃听。
[0027]一种点对点ZRTP密码校验系统,其改进之处在于,所述系统包括:
[0028]密码生成模块,用于通过ZRTP协议获取ZRTP密码哈希码;
[0029]转换模块,用于将所述ZRTP密码哈希码转换为数字密码;
[0030]语音处理模块,用于将所述数字密码进行文本转语音处理,获取所述数字密码的音频文本;
[0031]校验模块,用于根据所述音频文本校验所述ZRTP密码哈希码。
[0032]优选的,所述语音处理模块,包括:
[0033]第一语音处理单元,用于在通话接通前或接通时,利用终端的显示语言合成所述数字密码的音频文本;
[0034]第二语音处理单元,用于根据所述终端地理位置,利用所述地理位置对应的语言合成所述数字密码的音频文本。
[0035]优选的,所述校验模块,包括:
[0036]第一获取单元,用户通过终端在通话接通前或接通时播放的音频文本获取所述ZRTP密码哈希码对应的数字密码;
[0037]校验单元,通话接通后,用户通过人工发音将所述数字密码传送至通话对端,若通话对端的数字密码与用户的数字密码相同,则无中间人窃听。
[0038]本发明的有益效果:
[0039]本发明提供的一种点对点ZRTP密码校验方法及系统,使得点对点ZRTP密码校对简单,对开车的人,老年人,视力不好的人或英语发音不标准的人,均能够方便的校对点对点ZRTP密码,同时,基于ZRTP生成的密码哈希码是目前点对点加密中最可靠的技术,也是今天移动互联网中社交类(人与人直接通讯,而不是人与服务器之间的通讯)中唯一的能够不依赖其他条件就能够实现防中间人的加密的安全通讯。
【附图说明】
[0040]图1是本发明一种点对点ZRTP密码校验方法的流程图;
[0041 ]图2是本发明实施例中基于ZRTP获取ZRTP密码哈希码过程示意图;
[0042]图3是本发明实施例中DH交换过程示意图;
[0043]图4是本发明一种点对点ZRTP密码校验系统结构示意图。
【具体实施方式】
[0044]下面结合附图对本发明的【具体实施方式】作详细说明。
[0045]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0046]本发明提供的一种点对点ZRTP密码校验方法,如图1所示,包括:
[0047]101.通过ZRTP协议获取ZRTP密码哈希码;
[0048]102.将所述ZRTP密码哈希码转换为数字密码;
[0049]103.将所述数字密码进行文本转语音处理,获取所述数字密码的音频文本;
[0050]104.根据所述音频文本校验所述ZRTP密码哈希码。
[0051 ] 其中,所述ZRTP密码哈希码为36进制的4位字母哈希码。
[0052]所述数字密码为10进制6位数字密码。
[0053]理论上最小4个字母的密码哈希码(I111)转换为10进制数字串为47989,最大4个字母的密码哈希码(zzzz)转换为10进制字串为1679615,因此,若所述ZRTP密码哈希码转换为数字密码后,所述数字密码的10进制数字串为5位数字串,则在所述数字密码的10进制数字串的首位补O;若所述ZRTP密码哈希码转换为数字密码后,所述数字密码的10进制数字串超过6位数字串,则使用固定长度压缩算法,将数字密码串压缩为6位数字串。
[0054]进一步的,所述步骤101为现有技术,如图2所示,ZRTP协议通过DH交换产生随机的点对点加密的密码,其中:
[0055]在发现阶段,当通信的双方建立起RTP会话时,ZRTP应用会向RTP数据包中注入ZRTP信息,首先向通信对端发送He 11 ο消息对连接进行初始化,He 11 ο消息中包含的内容有ZRTP所支持的协议版本号、加密算法Cipher、摘要算法hash、SAS算法、公钥类型pkt和ZID等,ZID为一个96bit的随机数,有两个作用:一方面用于在通信两端的本地识别上次会话后保留的共享密钥rsl、rs2和SRTP配置信息srtps , srtps的计算公式为:srtps = hash(SRTPmaster key SRTP master salt),如果公式中的两种共享密钥不存在,贝Ij以随机数代替,另一方面也用于对本次的ZRTP连接进行标记。当接收端用He 11 oAck对He Ilo消息进行应答,表示自已支持ZRTP协议,然后让发送端发送自已的Hello消息,在发送端通过HelloAck消息应答后,发现阶段结束。
[0056]在提交阶段,发送Commit消息的一方将作为ZRTP会话的发起者,B用户通过发送Commit消息来发起共享密钥的协商。B用户首先根据A用户的Hello消息选择要使用的哈希算法、加密算法、SAS算法和公钥类型等参数,由公钥类型选择质数g和p,然后计算出公私钥对,pvi = gsvl mod p,其中svi为私钥,pvi为公钥,然后B用户根据自已已经计算的DHPar2消息和A用户之前发来的He I 1消息作哈希运算,计算hvi的值:hvi = hash (Initiator ’ sDHPart2 | | Responder’s Hello),在完成上述计算后,B向A发送Commit消息,Commit消息中包含的内容有B选择的算法参数、pvi和hvi等。如果通信两端都发送了 Commit消息,ZRTP规定Commi t消息中包含的hv i值较小的一方作为DH协商的真正发起者。
[0057]在密钥协商阶段,使用到了DH算法,首先对DH密钥协商过程做一个简单的介绍,如图3所示,例如:
[0058]Al ice和Bob在不安全的网络上进行协商共同的密码:
[0059]1.Alice和Bob先说好一个大素数P和它的原始根g
[0060]2.Alice随机产生一个数Xa,计算Ya = gXa mod P,然后把Ya发给Bob;
[0061 ] 3.Bob秘密产生一个随机数Xb,计算Yb = gXb mod P,然后把Yb发给Alice;
[0062]4.厶1;^6计算1<: = ¥匕父& mod p;
[0063]5.Bob计算k*=XaYb mod p;
[0064]因为k= YbXa mod p=(gxb)xa mod p = (g xa)xb mod P = Yaxb mod p = k*所以k = k*。不安全线路上的窃听者只能得到a、p、X、Y,除非能计算离散对数X和y,否则将无法得到密钥k。因此,k为Al ice和Bob独立计算出的密钥。
[0065]当A收到B发来的Commit消息后,先根据双方的密钥协商类型确定质数P和底数g,根据公钥类型pkt选择一个随机数svr,利用公式计算出pvr(pvr = gsvl: mod p),然后A利用字符串” Responder”计算出各种基于散列的消息认证码,计算公式如下:
[0066]rslIDr = HMAC(rsl,,,Responder” )
[0067]rs2IDr = HMAC(rs2/'Responder')
[0068]sigsIDr = HMAC(sigs,,,Responder” )
[0069]srtpsIDr = HMAC(srtps,,,Responder” )
[0070]other_secretIDr = HMAC(other_secret/'Responder')
[0071]其中rsl和rs2为A和B用户在本地共享的两个秘密值,如果这二个值不存在,则生成一个随机值代替。Sigs为一些信令信息,srtps为SRTP配置信息,other_secret为增加密钥复杂度的一些其它信息。
[0072]在完成上述计算后,A用户将pvr和上述5个值作为DHPartl发送给B,当B接收到DHPartl后,首先对pvr的值进行检查,如果pvr为I或为p-Ι,则终止ZRTP会话。反之,则和A执行类似的操作,将DHPart2发送给A。
[0073]DHPart2中各个参数的计算公式如下:
[0074]pvr = gsvr mod p
[0075]rslIDi =HMAC(rsl,,,Initiator” )
[0076]rs2IDi =HMAC(rs2,,,Initiator” )
[0077]sigsIDi =HMAC(sigs,,,Initiator” )
[0078]srtpsIDi =HMAC(srtps,,,Initiator” )
[0079]other_secretIDi =HMAC(other_secret /' Initiator” )
[0080]至此,A和B已经进行了 DH交换,现在要进行共享密钥的计算,B的计算过程为:利用公式DHResult = Pvrsvr mod p计算得到DHResult,然后利用公式DHSS = hash(DH Result)计算得到本次DH交换的共享密钥DHSS,接下来计算HMAC序列,判断dhpartl中的各个值是否匹配,先把01^^1'1:1消息中的(^1101',182101',8丨88101',81^口8101',01:1161'_86(^61:101')作为集合E,再利用式rslIDr = HMAC(rsl /’Responder”)的计算方法计算出5个共享密钥值对应的HMAC,计算结果作为集合F。去集合E和集合F的交集作为通信双方的共享密钥。对于两个集合中不区配的值则丢弃并补充Null代替,这样就可以得到5个来源不同的共享密钥。最后将按数值大小升序排列的5个共享密钥值和DHSS连接到一起得到本次会话的共享密钥,计算公式为sO = hash(DHSS I si s2 s3 s4 s5).
[0081]A的共享密钥计算方法与B类似,首先计算出DH交换的共享密钥DHSS,计算公式为DHResult = pvrsvr mod p,DHSS = hash(DH Result),再将DHPart2消息中的(rsl IDi,rs2IDi ,sigsIDi ,srtpsIDi,other_secretIDi)作为集合E,再利用式rslIDi = HMAC(rsl,,,Initiator”)的计算方法计算出5个共享密钥值对应的HMAC,计算结果作为集合F。去集合E和集合F的交集作为通信双方的共享密钥。对于两个集合中不区配的值则丢弃并补充Null代替。同B用户的处理方式一样,最后将按数值大小升序排列的5个共享密钥值和DHSS连接到一起得到本次会话的共享密钥,计算公式为s0 = hash(DHSS I | si | | s2 | | s3 | | s4 | | s5),至此,共享密钥的协商阶段完成。
[0082]在共享密钥确定阶段,推导出用于SRTP连接的master key和master salt,并更新保存于本地的两个共享密钥,master key和master salt的计算公式如下:
[0083]Srtpkeyi =HMAC(s0,,,Initiator SRTP master key)
[0084]Srtpsalti =HMAC(s0,,,Initiator SRTP master salt”)
[0085]Srtpkeyr = HMAC(sO/'Responder SRTP master key”)
[0086]Srtpsaltr = HMAC(sO/'Responder SRTP master salt”)
[0087]其中srtpkeyi和srtpsalti是从B到A这条单向连接中13所使用的master key和master salt,81^口1^71'和81^口8&11:1'是从4到13这条单向连接中4所使用的1]1&8七61 key和master salt。有了master key和master salt,就可以利用前面介绍的密钥推导方法推导出SRTP会话密钥,进而完成通讯双方才有的临时共同密钥。
[0088]所述步骤103,包括:
[0089]在通话接通前或接通时,利用终端的显示语言合成所述数字密码的音频文本;
[0090]或者,根据所述终端地理位置,利用所述地理位置对应的语言合成所述数字密码的音频文本。
[0091]所述步骤104,包括:
[0092]用户通过终端在通话接通前或接通时播放的音频文本获取所述ZRTP密码哈希码对应的数字密码;
[0093]通话接通后,用户通过人工发音将所述数字密码传送至通话对端,若通话对端的数字密码与用户的数字密码相同,则无中间人窃听。
[0094]例如:电话接通后,用户会收听到系统播放6数字密码,通话双方用户在不用看屏幕的情况下能够进行互相语音核实校对,通话双方分别告知对方前或后3位数字,并核对对方告知的是否与播放的语音一致,为避免影响正常通话和避免用户不知情下已经透露机密消息,通常在接通后5秒之内播放密码哈希码。
[0095 ] 一种点对点ZRTP密码校验系统,如图4所示,所述系统包括:
[0096]密码生成模块,用于通过ZRTP协议获取ZRTP密码哈希码;
[0097]转换模块,用于将所述ZRTP密码哈希码转换为数字密码;
[0098]语音处理模块,用于将所述数字密码进行文本转语音处理,获取所述数字密码的音频文本;
[0099]校验模块,用于通过播放所述音频文本对所述ZRTP密码哈希码进行校验。
[0100]所述语音处理模块,包括:
[0101]第一语音处理单元,用于在通话接通前或接通时,利用终端的显示语言合成所述数字密码的音频文本;
[0102]第二语音处理单元,用于根据所述终端地理位置,利用所述地理位置对应的语言合成所述数字密码的音频文本。
[0103]所述校验模块,包括:
[0104]第一获取单元,用户通过终端在通话接通前或接通时播放的音频文本获取所述ZRTP密码哈希码对应的数字密码;
[0105]校验单元,通话接通后,用户通过人工发音将所述数字密码传送至通话对端,若通话对端的数字密码与用户的数字密码相同,则无中间人窃听。
[0106]最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的【具体实施方式】进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
【主权项】
1.一种点对点ZRTP密码校验方法,其特征在于,所述方法包括: 通过ZRTP协议获取ZRTP密码哈希码; 将所述ZRTP密码哈希码转换为数字密码; 将所述数字密码进行文本转语音处理,获取所述数字密码的音频文本; 根据所述音频文本校验所述ZRTP密码哈希码。2.如权利要求1所述的方法,其特征在于,所述ZRTP密码哈希码为36进制的4位字母哈希码。3.如权利要求1所述的方法,其特征在于,所述数字密码为10进制6位数字密码。4.如权利要求1所述的方法,其特征在于,若所述ZRTP密码哈希码转换为数字密码后,所述数字密码的10进制数字串为5位数字串,则在所述数字密码的10进制数字串的首位补O;若所述ZRTP密码哈希码转换为数字密码后,所述数字密码的10进制数字串超过6位数字串,则采用固定长度压缩算法,将所述数字密码串压缩为6位数字串。5.如权利要求1所述的方法,其特征在于,所述将所述数字密码进行文本转语音处理,获取所述数字密码的音频文本,包括: 在通话接通前或接通时,根据终端的显示语言合成所述数字密码的音频文本; 或者,根据所述终端地理位置,根据所述地理位置对应的语言合成所述数字密码的音频文本。6.如权利要求1所述的方法,其特征在于,所述根据所述音频文本校验所述ZRTP密码哈希码,包括: 用户通过终端在通话接通前或接通时播放的音频文本获取所述ZRTP密码哈希码对应的数字密码; 通话接通后,用户通过人工发音将所述数字密码传送至通话对端,若通话对端的数字密码与用户的数字密码相同,则无中间人窃听。7.一种点对点ZRTP密码校验系统,其特征在于,所述系统包括: 密码生成模块,用于通过ZRTP协议获取ZRTP密码哈希码; 转换模块,用于将所述ZRTP密码哈希码转换为数字密码; 语音处理模块,用于将所述数字密码进行文本转语音处理,获取所述数字密码的音频文本; 校验模块,用于根据所述音频文本校验所述ZRTP密码哈希码。8.如权利要求7所述的系统,其特征在于,所述语音处理模块,包括: 第一语音处理单元,用于在通话接通前或接通时,利用终端的显示语言合成所述数字密码的音频文本; 第二语音处理单元,用于根据所述终端地理位置,利用所述地理位置对应的语言合成所述数字密码的音频文本。9.如权利要求7所述的系统,其特征在于,所述校验模块,包括: 第一获取单元,用户通过终端在通话接通前或接通时播放的音频文本获取所述ZRTP密码哈希码对应的数字密码; 校验单元,通话接通后,用户通过人工发音将所述数字密码传送至通话对端,若通话对端的数字密码与用户的数字密码相同,则无中间人窃听。
【文档编号】H04L9/08GK105959120SQ201610440645
【公开日】2016年9月21日
【申请日】2016年6月17日
【发明人】王海拉, 余鹏, 刘诗坤
【申请人】南京皓都臻信网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1