基于SRTP实现网络对讲安全机制的方法、设备及系统与流程

文档序号:17481859发布日期:2019-04-20 06:30阅读:275来源:国知局
基于SRTP实现网络对讲安全机制的方法、设备及系统与流程

本发明涉及对讲数据流安全传输和存储领域,特别是涉及一种基于srtp实现网络对讲安全机制的方法、设备及系统。



背景技术:

互联网技术的高速发展,使得voip(voiceoverinternetprotocol,基于ip的语音传输,是一种语音通话技术,经由网际协议(ip)来达成语音通话与多媒体会议,也就是经由互联网来进行通信的应用)也越来越广泛,这种通过网络进行流媒体数据的传输,因着网络的不安全性带来了这些流媒体应用在数据传输过程中的安全问题,同时,由于大数据时代的到来,一切数据皆有价值成为了许多应用服务商的信条,但同时这些数据在存储方面的安全性问题也是这些应用服务商目前需要解决的问题。

安全实时传输协议(securereal-timetransportprotocol,srtp),是实时传输协议(real-timetransportprotocol,rtp)的安全扩展协议,它为rtp协议提供了一种安全机制,在rtp协议的基础上加入了加密和消息认证等机制。其默认采用aes(advancedencryptionstandard)加密算法对流媒体数据进行加密,在一定程度上保证了voip的安全性,但该算法需要通信双方都同时维护一个加密环境,因此,在流媒体传输的时候,srtp包加密环境的安全性也同样存在被攻击的可能性。

hadoop分布式文件系统(hadoopdistributedfilesystem,hdfs),是apache开源组织的一个分布式计算框架hadoop的核心组成部分,以google公司的gfs(googlefilesystem)为原型,采用java开源实现,为各大机构和公司架设云存储解决方案提供了参考。一经问世,就得到了广泛的应用,包括facebook,yahoo,阿里巴巴,腾讯和百度等互联网公司均利用hdfs存储海量数据。其设计之初就是为了能在廉价的商业服务器上稳定的运行,并且,它还具有容错性高,可扩展性好等优点。hdfs采用了主从式架构,由一个namenode节点和大量的datanode节点组成,其中,namenode是hdfs的核心,其工作是维护文件的元数据信息,并协调管理所有datanode节点,datanode则用于实际文件的存储。在hadoop集群启动之后,所有的元数据信息都会被加载到namenode内存中。客户端访问hdfs时,首先需要向namenode节点获取相关文件的元数据信息,然后根据这些元数据信息找到实际存储文件的datanode,最后通过datanode获取客户端所请求的文件。



技术实现要素:

本发明要解决的问题之一,在于提供一种基于srtp实现网络对讲安全机制的方法,能够根据该安全机制,一方面解决语音对讲发起者和语音对讲接收者在进行对讲语音数据传输时所带来的对讲语音数据的安全性问题,另一方面,该安全机制使得对讲语音服务器集群可以将对讲机终端传输的对讲语音数据安全的存储到hdfs上,保证了数据存储的安全;

本发明要解决的问题之一,是这样实现的:一种基于srtp实现网络对讲安全机制的方法,包括:对讲机终端和对讲语音服务器集群,所述对讲机终端包括复数个具有数据发送和接收功能的对讲机,用于发送对讲语音数据的对讲机作为语音对讲发起者,用于接收对讲语音数据的对讲机作为语音对讲接收者,所述对讲语音服务器集群包括复数个对讲语音服务器;所述方法包括如下步骤:

步骤1、语音对讲发起者获取语音对讲接收者的rsa公钥;

步骤2、语音对讲发起者进行对讲语音数据的采集,按照srtp语音数据包的分组大小设置对讲语音数据分组;

步骤3、语音对讲发起者将分组后得到的对讲语音数据封装成srtp语音数据包,并进行加密处理;

步骤4、语音对讲发起者将封装完成后的srtp语音数据包通过网络发送到对讲语音服务器集群中对应的对讲语音服务器;

步骤5、对讲语音服务器接收该srtp语音数据包,并转发到对应的语音对讲接收者或转发到由语音对讲接收者组成的群组中;

步骤6、对讲语音服务器将语音对讲发起者发送的srtp语音数据包缓存到服务器本地,直到缓存完所有的srtp语音数据包后,对讲语音服务器根据语音对讲接收者所提供的私钥从加密后的srtp语音数据包中解密出mki和认证标签,再根据该mki和认证标签获取对讲语音数据,最后将其保存到本地文件中;

步骤7、对讲语音服务器将解密后得到的对讲语音数据合并存储到hdfs中。

进一步地,所述步骤7具体为:

对讲语音服务器定期检查本地文件中的对讲语音数据,并根据对讲语音服务器所设定的阈值判定是否需要将该对讲语音数据存储到hdfs中,如果当前本地文件中的对讲语音数据的数据量达到了设定的阈值大小,则对讲语音服务器采用整合散分的方式将所有对讲语音数据存储到hdfs上;如果当前本地文件中的对讲语音数据的数据量小于所设定的阈值,则不进行文件合并操作,继续等待服务器下一次合并检查。

进一步地,所述步骤7对讲语音数据合并存储到hdfs中,其中在对讲语音数据合并之后且存储到hdfs之前还包括:为合并后的对讲语音数据建立一个索引文件,并采用rsa算法对每个索引文件进行加密,用户在获取对讲语音数据时需要进行权限验证,若为非授权方,则无法获取到索引记录,从而也无法获取到具体的对讲语音数据;若为授权方,则通过索引文件获取到对讲语音数据。

进一步地,所述步骤3中进行加密处理具体有:填充srtp固定头部,然后根据所获得的rsa公钥使用rsa加密算法对srtp语音数据包中的mki和认证标签进行加密处理,并将加密后的结果覆盖原mki和认证标签的位置。

本发明要解决的问题之二,在于提供一种计算机设备,能够根据该安全机制,一方面解决语音对讲发起者和语音对讲接收者在进行对讲语音数据传输时所带来的对讲语音数据的安全性问题,另一方面,该安全机制使得对讲语音服务器集群可以将对讲机终端传输的对讲语音数据安全的存储到hdfs上,保证了数据存储的安全;

本发明要解决的问题之二,是这样实现的:一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

步骤1、语音对讲发起者获取语音对讲接收者的rsa公钥;

步骤2、语音对讲发起者进行对讲语音数据的采集,按照srtp语音数据包的分组大小设置对讲语音数据分组;

步骤3、语音对讲发起者将分组后得到的对讲语音数据封装成srtp语音数据包,并进行加密处理;

步骤4、语音对讲发起者将封装完成后的srtp语音数据包通过网络发送到对讲语音服务器集群中对应的对讲语音服务器;

步骤5、对讲语音服务器接收该srtp语音数据包,并转发到对应的语音对讲接收者或转发到由语音对讲接收者组成的群组中;

步骤6、对讲语音服务器将语音对讲发起者发送的srtp语音数据包缓存到服务器本地,直到缓存完所有的srtp语音数据包后,对讲语音服务器根据语音对讲接收者所提供的私钥从加密后的srtp语音数据包中解密出mki和认证标签,再根据该mki和认证标签获取对讲语音数据,最后将其保存到本地文件中;

步骤7、对讲语音服务器将解密后得到的对讲语音数据合并存储到hdfs中。

进一步地,所述步骤7具体为:

对讲语音服务器定期检查本地文件中的对讲语音数据,并根据对讲语音服务器所设定的阈值判定是否需要将该对讲语音数据存储到hdfs中,如果当前本地文件中的对讲语音数据的数据量达到了设定的阈值大小,则对讲语音服务器采用整合散分的方式将所有对讲语音数据存储到hdfs上;如果当前本地文件中的对讲语音数据的数据量小于所设定的阈值,则不进行文件合并操作,继续等待服务器下一次合并检查。

进一步地,所述步骤7对讲语音数据合并存储到hdfs中,其中在对讲语音数据合并之后且存储到hdfs之前还包括:为合并后的对讲语音数据建立一个索引文件,并采用rsa算法对每个索引文件进行加密,用户在获取对讲语音数据时需要进行权限验证,若为非授权方,则无法获取到索引记录,从而也无法获取到具体的对讲语音数据;若为授权方,则通过索引文件获取到对讲语音数据。

进一步地,所述步骤3中进行加密处理具体有:填充srtp固定头部,然后根据所获得的rsa公钥使用rsa加密算法对srtp语音数据包中的mki和认证标签进行加密处理,并将加密后的结果覆盖原mki和认证标签的位置。

本发明要解决的问题之三,在于提供一种基于srtp实现网络对讲安全机制的系统,能够根据该安全机制,一方面解决语音对讲发起者和语音对讲接收者在进行对讲语音数据传输时所带来的对讲语音数据的安全性问题,另一方面,该安全机制使得对讲语音服务器集群可以将对讲机终端传输的对讲语音数据安全的存储到hdfs上,保证了数据存储的安全;

本发明要解决的问题之三,是这样实现的:一种基于srtp实现网络对讲安全机制的系统,包括对讲机终端上的公钥获取模块、数据准备模块、数据封装模块和数据传输模块以及对讲语音服务器集群上的数据转发模块、本地缓存模块和分布式存储模块;

所述公钥获取模块,用于语音对讲发起者获取语音对讲接收者的rsa公钥;

所述数据准备模块,用于语音对讲发起者进行对讲语音数据的采集,按照srtp语音数据包的分组大小设置对讲语音数据分组;

所述数据封装模块,用于语音对讲发起者将分组后得到的对讲语音数据封装成srtp语音数据包,并进行加密处理;

所述数据传输模块,用于语音对讲发起者将封装完成后的srtp语音数据包通过网络发送到对讲语音服务器集群中对应的对讲语音服务器;

所述数据转发模块,用于对讲语音服务器接收该srtp语音数据包,并转发到对应的语音对讲接收者或转发到由语音对讲接收者组成的群组中;

所述本地缓存模块,用于对讲语音服务器将语音对讲发起者发送的srtp语音数据包缓存到服务器本地,直到缓存完所有的srtp语音数据包后,对讲语音服务器根据语音对讲接收者所提供的私钥从加密后的srtp语音数据包中解密出mki和认证标签,再根据该mki和认证标签获取对讲语音数据,最后将其保存到本地文件中;

所述分布式存储模块,用于对讲语音服务器将解密后得到的对讲语音数据合并存储到hdfs中。

本发明具有如下优点:

1、对讲机终端和对讲语音服务器进行对讲语音数据交互时,保证对讲机双方进行语音对讲时对讲语音数据在传输过程中的安全性。通过采用srtp对对讲语音数据加密,保证了对讲语音数据的安全,同时,采用rsa加密算法对srtp语音数据包中的mki和认证标签进行加密,一方面进一步保证了srtp语音数据包中的加密环境的安全性,另一方面,也保证了使用aes进行对讲语音数据加密时,在aes秘钥传输的安全性和秘钥管理的便捷性上得到提高。

2、保证对讲语音数据存储的安全性。对讲语音服务器将文件合并存储到hdfs中,在存储之前,会为所有组成该合并文件的大文件建立一个索引文件,该索引文件的作用是定位具体的对讲语音数据,每个合并文件的索引文件均采用rsa算法进行加密,用户在查找具体的对讲语音数据时必须进行必要的验证,这样就可保证非授权方无法获取到检索记录,也就无法得到具体的对讲语音数据。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明实现的系统架构图。

图2为本发明中对讲机终端的功能模块图。

图3为本发明中对讲语音服务器的功能模块图。

图4为本发明中语音对讲发起者进行安全传输的具体流程图。

图5为本发明中对讲语音服务器端进行数据转发的具体流程图。

图6为本发明中对讲语音服务器进行数据存储的具体流程图。

图7为本发明中用户进行对讲语音数据访问的具体流程图。

具体实施方式

本发明的一种基于srtp实现网络对讲安全机制的方法,包括:对讲机终端和对讲语音服务器集群,所述对讲机终端包括复数个具有数据发送和接收功能的对讲机,用于发送对讲语音数据的对讲机作为语音对讲发起者,用于接收对讲语音数据的对讲机作为语音对讲接收者,所述对讲语音服务器集群包括复数个对讲语音服务器;所述方法包括如下步骤:

步骤1、语音对讲发起者获取语音对讲接收者的rsa公钥;

步骤2、语音对讲发起者进行对讲语音数据的采集,按照srtp语音数据包的分组大小设置对讲语音数据分组;

步骤3、语音对讲发起者将分组后得到的对讲语音数据封装成srtp语音数据包,并进行加密处理,具体加密过程是:填充srtp固定头部,然后根据所获得的rsa公钥并使用rsa加密算法对srtp语音数据包中的mki和认证标签进行加密处理,保证对讲机双方进行语音对讲时对讲语音数据在传输过程中的安全性,并将加密后的结果覆盖原mki和认证标签的位置,这样就可以保证非授权接收方无法获取正确的mki和认证标签,也就无法解密出对讲语音数据,从而保证了对讲语音数据的安全性;

步骤4、语音对讲发起者将封装完成后的srtp语音数据包通过网络发送到对讲语音服务器集群中对应的对讲语音服务器;

步骤5、对讲语音服务器接收该srtp语音数据包,并转发到对应的语音对讲接收者或转发到由语音对讲接收者组成的群组中;

步骤6、对讲语音服务器将语音对讲发起者发送的srtp语音数据包缓存到服务器本地,直到缓存完所有的srtp语音数据包后,对讲语音服务器根据语音对讲接收者所提供的私钥从加密后的srtp语音数据包中解密出mki和认证标签,再根据该mki和认证标签获取对讲语音数据,最后将其保存到本地文件中;

步骤7、对讲语音服务器将解密后得到的对讲语音数据合并存储到hdfs中;具体有:对讲语音服务器定期检查本地文件中的对讲语音数据,并根据对讲语音服务器所设定的阈值判定是否需要将该对讲语音数据存储到hdfs中,如果当前本地文件中的对讲语音数据的数据量达到了设定的阈值大小,则对讲语音服务器采用整合散分的方式将所有对讲语音数据存储到hdfs上;如果当前本地文件中的对讲语音数据的数据量小于所设定的阈值,则不进行文件合并操作,继续等待服务器下一次合并检查。为保证对讲语音数据存储的安全性,进行文件合并存储,对讲语音数据合并存储到hdfs中,其中在对讲语音数据合并之后且存储到hdfs之前,为合并后的对讲语音数据建立一个索引文件,采用rsa算法对每个索引文件进行加密,用户在进行对讲语音数据检索时必须进行权限验证,若为非授权方,则无法获取到索引记录,从而也无法获取到具体的对讲语音数据;若为授权方,则通过索引文件获取到对讲语音数据。为该合并文件建立一个索引文件,该索引文件的作用是为了能在合并文件中快速的检索到具体的对讲语音文件,同时,为保证存储到hdfs上的对讲语音数据的安全,会使用rsa对每个索引文件进行加密,用户在获取对讲语音数据时需要进行必要的安全验证,才能保证数据的安全性。

本发明的一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

步骤1、语音对讲发起者获取语音对讲接收者的rsa公钥;

步骤2、语音对讲发起者进行对讲语音数据的采集,按照srtp语音数据包的分组大小设置对讲语音数据分组;

步骤3、语音对讲发起者将分组后得到的对讲语音数据封装成srtp语音数据包,并进行加密处理;具体加密过程是:填充srtp固定头部,然后根据所获得的rsa公钥并使用rsa加密算法对srtp语音数据包中的mki和认证标签进行加密处理,保证对讲机双方进行语音对讲时对讲语音数据在传输过程中的安全性,并将加密后的结果覆盖原mki和认证标签的位置,这样就可以保证非授权接收方无法获取正确的mki和认证标签,也就无法解密出对讲语音数据,从而保证了对讲语音数据的安全性;

步骤4、语音对讲发起者将封装完成后的srtp语音数据包通过网络发送到对讲语音服务器集群中对应的对讲语音服务器;

步骤5、对讲语音服务器接收该srtp语音数据包,并转发到对应的语音对讲接收者或转发到由语音对讲接收者组成的群组中;

步骤6、对讲语音服务器将语音对讲发起者发送的srtp语音数据包缓存到服务器本地,直到缓存完所有的srtp语音数据包后,对讲语音服务器根据语音对讲接收者所提供的私钥从加密后的srtp语音数据包中解密出mki和认证标签,再根据该mki和认证标签获取对讲语音数据,最后将其保存到本地文件中;

步骤7、对讲语音服务器将解密后得到的对讲语音数据合并存储到hdfs中;具体有:对讲语音服务器定期检查本地文件中的对讲语音数据,并根据对讲语音服务器所设定的阈值判定是否需要将该对讲语音数据存储到hdfs中,如果当前本地文件中的对讲语音数据的数据量达到了设定的阈值大小,则对讲语音服务器采用整合散分的方式将所有对讲语音数据存储到hdfs上;如果当前本地文件中的对讲语音数据的数据量小于所设定的阈值,则不进行文件合并操作操作,继续等待服务器下一次合并检查。为保证对讲语音数据存储的安全性,进行文件合并存储,在对讲语音数据合并之后且存储到hdfs之前,为合并后的对讲语音数据建立一个索引文件,采用rsa算法对每个索引文件进行加密,用户在进行对讲语音数据检索时必须进行权限验证,若为非授权方,则无法获取到索引记录,从而也无法获取到具体的对讲语音数据;若为授权方,则通过索引文件获取到对讲语音数据。为该合并文件建立一个索引文件,该索引文件的作用是为了能在合并文件中快速的检索到具体的对讲语音文件,同时,为保证存储到hdfs上的对讲语音数据的安全,会使用rsa对每个索引文件进行加密,用户在获取对讲语音数据时需要进行必要的安全验证,才能保证数据的安全性。

本发明要解决的问题之三,在于提供一种基于srtp实现网络对讲安全机制的系统,能够根据该安全机制,一方面解决语音对讲发起者和语音对讲接收者在进行对讲语音数据传输时所带来的对讲语音数据的安全性问题,另一方面,该安全机制使得对讲语音服务器集群可以将对讲机终端传输的对讲语音数据安全的存储到hdfs上,保证了数据存储的安全;

本发明要解决的问题之三,是这样实现的:一种基于srtp实现网络对讲安全机制的系统,包括对讲机终端上的公钥获取模块、数据准备模块、数据封装模块和数据传输模块以及对讲语音服务器集群上的数据转发模块、本地缓存模块和分布式存储模块;

所述公钥获取模块,用于语音对讲发起者获取语音对讲接收者的rsa公钥;

所述数据准备模块,用于语音对讲发起者进行对讲语音数据的采集,按照srtp语音数据包的分组大小设置对讲语音数据分组;

所述数据封装模块,用于语音对讲发起者将分组后得到的对讲语音数据封装成srtp语音数据包,并进行加密处理;具体加密过程是:填充srtp固定头部,然后根据所获得的rsa公钥并使用rsa加密算法对srtp语音数据包中的mki和认证标签进行加密处理,保证对讲机双方进行语音对讲时对讲语音数据在传输过程中的安全性,并将加密后的结果覆盖原mki和认证标签的位置,这样就可以保证非授权接收方无法获取正确的mki和认证标签,也就无法解密出对讲语音数据,从而保证了对讲语音数据的安全性;

所述数据传输模块,用于语音对讲发起者将封装完成后的srtp语音数据包通过网络发送到对讲语音服务器集群中对应的对讲语音服务器;

所述数据转发模块,用于对讲语音服务器接收该srtp语音数据包,并转发到对应的语音对讲接收者或转发到由语音对讲接收者组成的群组中;

所述本地缓存模块,用于对讲语音服务器将语音对讲发起者发送的srtp语音数据包缓存到服务器本地,直到缓存完所有的srtp语音数据包后,对讲语音服务器根据语音对讲接收者所提供的私钥从加密后的srtp语音数据包中解密出mki和认证标签,再根据该mki和认证标签获取对讲语音数据,最后将其保存到本地文件中;

所述分布式存储模块,用于对讲语音服务器将解密后得到的对讲语音数据合并存储到hdfs中;具体有:对讲语音服务器定期检查本地文件中的对讲语音数据,并根据对讲语音服务器所设定的阈值判定是否需要将该对讲语音数据存储到hdfs中,如果当前本地文件中的对讲语音数据的数据量达到了设定的阈值大小,则对讲语音服务器采用整合散分的方式将所有对讲语音数据存储到hdfs上;如果当前本地文件中的对讲语音数据的数据量小于所设定的阈值,则不进行文件合并操作,继续等待服务器下一次合并检查。为保证对讲语音数据存储的安全性,进行文件合并存储,并为合并后的对讲语音数据建立一个索引文件,采用rsa算法对每个索引文件进行加密,用户在进行对讲语音数据检索时必须进行权限验证,若为非授权方,则无法获取到索引记录,从而也无法获取到具体的对讲语音数据;若为授权方,则通过索引文件获取到对讲语音数据。为该合并文件建立一个索引文件,该索引文件的作用是为了能在合并文件中快速的检索到具体的对讲语音文件,同时,为保证存储到hdfs上的对讲语音数据的安全,会使用rsa对每个索引文件进行加密,用户在获取对讲语音数据时需要进行必要的安全验证,才能保证数据的安全性。

通过附图所示,对本发明一种基于srtp实现网络对讲安全机制的方法、设备及系统的一实施进行详细说明:

本发明提供了一种基于srtp实现网络对讲安全机制的方法,包括对讲机终端进行对讲语音数据传输时的安全和对讲语音服务器将对讲语音数据存储到hdfs上的安全。通过本发明所提供的安全机制,能够在一定程度上保证收发双方进行网络对讲时整个通信链路和最终保存在对讲语音服务器上的对讲语音的安全性。

本发明一种基于srtp实现网络对讲安全机制的方法是在srtp协议的基础上进行的,通过使用rsa加密算法,加密srtp语音数据包中aes加密环境,达到安全的目的。

srtp包头固定格式部分简单描述如下所示:

其中:

v:rtsp的版本号,2bits,该值目前规定是2;

p:负载填充标志位,1bit,当负载数据长度不够32bits的整数倍时,则需要对负载数据进行填充,此时该值为1,否则为0;

x:扩展标识位,1bit,1表示需要在固定包头的后面增加一个32bits的扩展头,0则表示不需要进行任何扩展;

cc:csrc的数目,4bits,通过该值可以计算rsrp包头中所包含的csrc数量;

m:标志,1bit,允许在比特流中标记重要的事件;

pt:负载数据的类型,7bits,用于说明该srtp包分组所传输的数据类型;

序列号:srtp包的序列号,16bits,srtp流每发送一个srtp数据包时,该序列号加1,通过该值接收方可以对srtp流包进行统计,检测分组丢失和分组次序恢复;

时间戳:rtsp包传输的时间戳,32bits,表示srtp分组第一个字节的取样时刻。初值时为一个随机数,每个采样周期加1;

ssrc:发送流的源标识,32bits,表示信号的同步源,其值应随机选择,以保证同一个srtp会话中任意两个同步源的ssrc标识不同;

csrc:数据流中间穿插者标识符,n个32bits,csrc标识由混合器插入,其值就是组成复合信号的各个分信号的ssrc标识,用以标识各个组成分信号的信源。rtp分组的头部最多可以包含15个csrc标识,其数目由cc字段指明。

payload:被加密的流数据;

mki:主密钥标识符,长度可配置,由秘钥管理协议来定义、描述和使用,mki用于标识加密和认证本srtp包所使用的主秘钥;

认证标签:authenticationtag,长度可配置,用于承载消息认证数据,认证标签提供rtp头和有效载荷的认证,同时通过对序列号进行认证,间接提供了重放攻击保护;

通过上面对srtp包头的简单介绍,主要是为了说明本发明一种基于srtp的网络对讲安全机制是在其基础之上,使用rsa加密mki和认证标签,以加密aes的加密环境达到安全的目的;

下面继续阐述本发明一种基于srtp的网络对讲安全机制。本发明的系统架构图如图1所示,系统包括对讲机终端(对讲机a1、对讲机a2,对讲机b1、对讲机b2和对讲机b3)和对讲语音服务器集群。其中对讲机a1、对讲机a2、对讲机b1、对讲机b2和对讲机b3同时包含有发送和接收功能,发送功能是指对讲机终端作为语音对讲发起者,此时,对讲机将对讲语音数据通过网络发送到对讲语音服务器,由对讲语音服务器进行对讲语音数据的转发,完成语音对讲;接收功能是指对讲机终端作为语音对讲接收者,此时,对讲机接收对讲语音服务器所转发的对讲语音数据,并在对讲机终端进行播放。对讲语音服务器集群的主要作用是转发对讲语音数据,另一方面,采用对讲语音服务器集群是为了解决三个问题,一、缓解系统面临的高并发问题,当系统面对大量的语音对讲发起者转发对讲语音数据的请求时,使系统能够增加及时性和高效性;二、扩大服务器的存储容量,由于服务器端会保存对讲语音数据,所以通过对讲语音服务器集群结构,扩大服务器整体的存储容量;三、提供一套安全的软件存储机制。

为了保证对讲机终端和对讲语音服务器进行对讲语音数据交互时对讲语音数据传输过程的安全,按照对讲机终端处理流程将功能模块化,对讲机a1、对讲机a2、对讲机b1、对讲机b2和对讲机b3的模块图如图2所示,包括有公钥获取模块、数据准备模块、数据封装模块和数据传输模块。当对讲机a1向对讲机a2或对讲机b1向对讲机b2和b3发起语音对讲时,各模块处理流程如下:

1).语音对讲发起者获取语音对讲接收者的公钥信息;

2).对讲机a1或对讲机b1(语音对讲发起者)先进行数据准备,即对讲机a1或对讲机b1采集对讲语音数据,然后按照srtp语音数据包的分组大小填充对讲语音数据分组;

3).对讲机a1或对讲机b1将步骤1采集到的对讲语音数据封装成srtp语音数据包,即对讲机终端a1或对讲机b1将对讲语音数据准备阶段所采集到并分组后的对讲语音数据封装到srtp语音数据包中,并填充srtp固定头部,然后按照对讲机a2或对讲机b2和对讲机b3(语音对讲接收者)所公布的rsa公钥对srtp语音数据包中的mki(masterkeyidentifier)和认证标签(authenticationtag)进行加密处理,并将加密后的结果覆盖原mki和认证标签的位置;

4).对讲机a1或对讲机b1将封装完成后的srtp语音数据包发送到网络中,供对讲语音服务器进行转发该srtp语音数据包到对讲机a2或对讲机b2和对讲机b3。

为了保证对讲语音服务器安全的存储数据,对讲语音服务器按照如图3所示进行功能划分,包括有数据转发模块、本地缓存模块和分布式存储模块。对讲语音服务器接收到对讲机a1或对讲机b1的对讲语音数据后,对讲语音服务器集群先将对讲语音数据缓存到本地,并根据对讲机a2或对讲机b2和b3的私钥从srtp语音数据包中解密出对讲语音数据,当缓存在对讲语音服务器的数据量大于某个设定的阈值时,对讲语音服务器先进行文件合并操作,然后将合并后的文件存储到hdfs上,并为合并后存储到hdfs上的文件建立一个索引文件,索引文件采用rsa算法进行加密,用户在进行对讲语音数据检索时必须进行权限验证,若为非授权方,则无法获取到索引记录,从而也无法获取到具体的对讲语音数据。,同时对讲语音服务器需要将对讲语音数据转发到对讲机a2或对讲机b2和对讲机b3,对讲语音服务器的各模块具体流程为:

1).对讲语音服务器先进行对讲语音数据转发,即对讲语音服务器将语音对讲发起者(对讲机a1或对讲机b1)所发送的srtp语音数据包转发到指定的语音对讲接收者(对讲机a2)或转发到由语音对讲接收者组成的群组(对讲机b2和对讲机b3)中;

2).对讲语音服务器同时做对讲语音数据的本地缓存,即对讲语音服务器同时将语音对讲发起者(对讲机a1或对讲机b1)的对讲语音数据缓存到服务器本地,等待所有的对讲语音数据接收完后,将语音对讲发起者(对讲机a1或对讲机b1)的对讲语音数据保存到服务器本地;

3).对讲语音服务器将对讲语音数据进行分布式存储,即对讲语音服务器将对讲语音数据存储到hdfs(hadoopdistributefilesystem)中,当对讲语音数据的数据量累计到对讲语音服务器设定的阈值大小时,对讲语音服务器采用整合散分的方式将对讲语音数据存储到hdfs上;

4).为每个合并存储的文件建立一个索引文件,然后使用rsa算法加密该索引文件。

具体地,所述语音对讲发起者(对讲机a1和对讲机b1)进行安全传输的具体流程图如图4所示:

步骤1、语音对讲发起者获取语音对讲接收者的公钥信息;

步骤2、语音对讲发起者采集对讲语音数据,当采集的对讲语音数据大小达到分组数据大小时,将对讲语音数据封装到srtp语音数据包中;

步骤3、根据步骤1中所获取的公钥信息,对srtp语音数据包中的mki和认证标签进行加密,并将结果覆盖原mki和认证标签的位置;

步骤4、语音对讲发起者将封装后的srtp语音数据包发送到对应的对讲语音服务器,由对讲语音服务器进行srtp语音数据包的转发。

具体地,所述对讲语音服务器进行数据转发的具体流程图如图5所示:

步骤1、对讲语音服务器接收语音对讲发起者发送的srtp语音数据包中的对讲语音数据;

步骤2、对讲语音服务器根据语音对讲接收者的对讲机信息将其接收到的srtp语音数据包转发到对应的语音对讲接收者或者由语音对讲接收者组成的群组中;

具体地,所述对讲语音服务器进行数据存储的具体流程图如图6所示:

步骤1、对讲语音服务器先在本地缓存语音对讲发起者发送的srtp语音数据包,直到缓存完所有的srtp语音数据包;

步骤2、对讲语音服务器根据语音对讲接收者所提供的私钥将srtp语音数据包中的mki和认证标签解密(使用rsa对加密的环境进行解密),覆盖原加密的mki和认证标签,最后对讲语音服务器将解密后得到的对讲语音数据保存到本地文件中;

步骤3、对讲语音服务器定期检查本地文件中的对讲语音数据,并根据所设定的阈值判定是否需要将对讲语音数据存储到hdfs中,如果当前本地文件中的对讲语音数据的数据量达到了所设定的阈值,则直接进行步骤4,如果当前本地文件中的对讲语音数据的数据量小于所设定的阈值,则执行步骤3;

步骤4、对讲语音服务器将所有对讲语音数据存储到hdfs上,并建立一个采用rsa加密的索引文件,用户访问对讲语音数据的时候,需要进行安全验证。

具体地,所述用户进行对讲语音数据访问的具体流程图如图7所示:

步骤1、对讲语音服务器先进行用户权限验证,若为授权方则进行下一步,否则直接拒绝访问;

步骤2、用户获取并解密索引文件,向对讲语音服务器上报具体的对讲语音数据信息;

步骤3、对讲语音服务器根据该信息查询索引文件,定位到该对讲语音数据存储在hdfs上的位置信息,返回到用户;

步骤4、用户根据返回的结果,向hdfsclient发起访问,获取对讲语音数据。

对于数据传输过程的安全,由于srtp默认采用aes对数据进行加密,为了保证通信能够进行,需要将秘钥分配给通信双方,因此导致了秘钥在传输过程中的安全性受到威胁,所以通过使用rsa对srtp语音数据包中的mki和认证标签进行加密,使得与aes解密相关的信息被rsa加密存储,增强了srtp语音数据包的安全性,同时,带来了aes进行秘钥管理的简便性;

对于数据存储过程的安全,通过将文件分布式存储到hdfs上,使得授权用户可根据加密后的索引文件快速的定位到具体的对讲语音数据,而非授权用户无法定位到具体的对讲语音数据,也就无法获取到具体的对讲语音数据,从而保证了对讲语音数据的安全,也就提高了对讲语音数据存储的安全性。

综上所述,本发明具有如下优点:

1、对讲机终端和对讲语音服务器进行对讲语音数据交互时,保证对讲机双方进行语音对讲时对讲语音数据在传输过程中的安全性。通过采用srtp对对讲语音数据加密,保证了对讲语音数据的安全,同时,采用rsa加密算法对srtp语音数据包中的mki和认证标签进行加密,一方面进一步保证了srtp语音数据包中的加密环境的安全性,另一方面,也保证了使用aes进行对讲语音数据加密时,在aes秘钥传输的安全性和秘钥管理的便捷性上得到提高。

2、保证对讲语音数据存储的安全性。对讲语音服务器在将对讲机终端传输的对讲语音数据上传到hdfs之前,会先进行文件合并操作,然后为合并后的文件建立一个索引文件,再然后使用rsa加密该合并文件,使得非授权方很难定位到具体的对讲语音数据,从而保证了对讲语音数据的存储安全,而授权方可根据索引文件快速的定位到具体文件。,

这个方法只需要用户部署相关软件即可完成系统所提供的功能,对于用户来说十分便捷、简单,便于推广使用。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

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