首页> 中国专利> 基于RTP、UDP及IP协议的音视频流数据加密方法和装置

基于RTP、UDP及IP协议的音视频流数据加密方法和装置

摘要

本发明提供的一种基于RTP、UDP及IP协议的音视频流数据加密方法及装置,通过将前一序列编号的RTP载荷密文中的部分数据作为消息密钥,并采用序列算法对当前序列编号的RTP载荷以及校验值进行加密,将加密后的RTP载荷密文填充至当前序列编号的RTP载荷字段中,将加密后的校验值密文填充到当前序列编号的UDP协议头的校验和字段中,完成对所述音视频流数据的加密;使得在不增加网络开销的前提下,能够提供数据流的机密性和完整性保护,提升数据传输的安全性,而无需对相关设备和数据协议做改进,实施成本较低且具有较好的实用性;且能够基于本地时间自动更换/识别工作密钥,简化密钥同步及密钥管理协议,具有较好的兼容性。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-29

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及信息安全设备技术领域,尤其涉及一种基于RTP、UDP及IP协议的音视频流数据加密方法和装置。

背景技术

RTP(Real-Time Transport Protocol)协议是专门为交互式语音、视频等实时数据传输而设计制定的协议,用于为这些具有实时特性的数据提供端到端传送服务。这些服务包括有效载荷类型识别、序列编号、时间戳等。

通常RTP协议建立在UDP协议之上,RTP/UDP/IP协议本身只保证实时数据的传输,并不能为按顺序传送的数据包提供可靠的传送机制,也不提供流量控制或拥塞控制的功能。现有的RTP协议对数据流没有提供机密性和完整性保护功能,数据传输的安全性得不到保证,而采用SRTP协议规范提出对RTP数据流加密和认证的方法,存在以下几个方面的问题:1)每个RTP包需增加10字节标签字段,会额外占用网络传输带宽,特别是通过带宽受限的无线网络传输时,会影响数据的传输效率;2)需监控会话密钥的实效性,会话密钥失效前需通过在RTP包增加主密钥标识字段传输主密钥,密钥同步及密钥管理协议设计复杂;即现有的加密和认证方法受限于网络带宽的传输速率,不具备足够的兼容性和适用性,且对现有的系统或设备进行改进的成本高昂。

发明内容

本发明提供一种基于RTP、UDP及IP协议的音视频流数据加密方法及装置,用以解决上述现有技术中的缺陷,在不增加网络开销的前提下,提供数据流的机密性和完整性保护,提升数据传输的安全性;,基于本地时间的工作密钥自动更换和自动识别方法,简化密钥同步及密钥管理协议。

本发明提供一种基于RTP、UDP及IP协议的音视频流数据加密方法,包括步骤:

从音视频流数据的IP数据报中获取当前序列编号的RTP协议头、RTP载荷;

对包括RTP协议头以及RTP载荷进行校验,生成16bit的校验值;

根据当前时间节点,从预设的工作密钥库中获取所述时间节点对应的密钥作为加密工作密钥;从前一序列编号的RTP载荷密文中截取部分数据作为消息密钥;

采用序列算法对当前序列编号的RTP载荷以及所述校验值进行加密,获取RTP载荷密文以及校验值密文;

将所述RTP载荷密文填充至当前序列编号的RTP载荷字段中,将所述校验值密文填充到当前序列编号的UDP协议头的校验和字段中,完成对所述音视频流数据的加密。

具体的,所述工作密钥库将全年分割为多个均等的预设时间段,每个所述时间段分别对应一条密钥。

优选的,从前一序列编号的RTP载荷密文中截取尾部的部分数据作为消息密钥。

根据本发明提供的一种基于RTP、UDP及IP协议的音视频流数据加密方法,对应的解密方法包括步骤:

从接收的音视频流数据的IP数据报中获取当前序列编号的RTP协议头、RTP载荷密文以及校验值密文,将所述RTP载荷密文和所述校验值密文组成待解密数据;

截取前一序列编号的RTP载荷密文的部分数据作为消息密钥;

根据当前时间节点在所述预设时间段中的位置,从预设的工作密钥库中获取两个解密工作密钥;

基于两个所述解密工作密钥,通过序列算法对所述待解密数据进行两次解密,分别获取两组不同的RTP载荷和校验值;

通过校验值分别对对应的RTP协议头以及RTP载荷进行校验;

将校验通过的一组RTP载荷和校验值作为正确数据;将所述正确数据中的RTP载荷填充到当前序列编号的RTP载荷密文字段中。

具体的,根据当前时间节点在所述预设时间段中的位置,从预设的工作密钥库中获取两个解密工作密钥,包括:

当所述时间节点位于所述预设时间段的前半段,则选择当前预设时间段和前一预设时间段对应的密钥作为解密工作密钥;

当所述时间节点位于所述预设时间段的后半段,则选择当前预设时间段和后一预设时间段对应的密钥作为解密工作密钥。

另一方面,本发明还提供一种基于RTP、UDP及IP协议的音视频流数据加密装置,所述装置成对布置在数据收发双方的RTP流编码或解码设备侧,所述装置包括:主控模块、实时时钟模块、密码运算模块、内网处理控制模块、外网处理控制模块、内网接口模块以及外网接口模块;

其中,所述主控模块与所述实时时钟模块通过I2C总线连接,获取当前的时间节点,根据当前时间节点选择对应的密钥发送至所述密码运算模块作为加密工作密钥;或根据当前时间节点选择两个密钥发送至所述密码运算模块作为解密工作密钥;

所述密码运算模块分别通过RGMII接口与所述主控模块、所述内网处理控制模块、所述外网处理控制模块连接;从所述内网处理控制模块获取RTP协议头、RTP载荷及校验值,进行RTP协议头及RTP载荷的校验运算,以及对RTP载荷及校验值进行加密运算;从所述自外网处理控制模块获取RTP载荷密文、校验值密文、RTP协议头及RTP载荷密文,进行RTP载荷密文及校验值密文的解密运算,以及对RTP协议头及RTP载荷密文解密后的明文进行校验运算;

所述内网处理控制模块与所述内网接口模块通过RGMII接口连接,所述外网处理控制模块与所述外网接口模块通过RGMII接口连接。

优选的,所述内网接口模块与所述RTP流编码或解码设备通过千兆以太网电口连接;

所述外网接口模块与外部网络设备通过千兆以太网电口连接。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种基于RTP、UDP及IP协议的音视频流数据加密方法的步骤。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种基于RTP、UDP及IP协议的音视频流数据加密方法的步骤。

本发明提供的一种基于RTP、UDP及IP协议的音视频流数据加密方法及装置,通过将前一序列编号的RTP载荷密文中的部分数据作为消息密钥,并采用序列算法对当前序列编号的RTP载荷以及校验值进行加密,将加密后的RTP载荷密文填充至当前序列编号的RTP载荷字段中,将加密后的校验值密文填充到当前序列编号的UDP协议头的校验和字段中,完成对所述音视频流数据的加密;使得在不增加网络开销的前提下,能够提供数据流的机密性和完整性保护,提升数据传输的安全性,而无需对相关设备和数据协议做改进,实施成本较低且具有较好的实用性;且能够基于本地时间自动更换/识别工作密钥,简化密钥同步及密钥管理协议,具有较好的兼容性。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的基于RTP、UDP及IP协议的音视频流数据加密方法的流程示意图;

图2是本发明提供的基于RTP、UDP及IP协议的音视频流数据加密方法的RTP/UDP数据包加密封装的示意图;

图3是本发明提供的基于RTP、UDP及IP协议的音视频流数据加密方法的RTP载荷和校验值的加密示意图;

图4是本发明提供的基于RTP、UDP及IP协议的音视频流数据加密装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

在一个实施例中,如图1-图3所示,本发明提供一种基于RTP、UDP及IP协议的音视频流数据加密方法,包括步骤:

从音视频流数据的IP数据报中获取当前序列编号的RTP协议头、RTP载荷;

对包括RTP协议头以及RTP载荷进行校验,生成16bit的校验值;

根据当前时间节点,从预设的工作密钥库中获取所述时间节点对应的密钥作为加密工作密钥;从前一序列编号的RTP载荷密文中截取部分数据作为消息密钥;

采用序列算法对当前序列编号的RTP载荷以及所述校验值进行加密,获取RTP载荷密文以及校验值密文;

将所述RTP载荷密文填充至当前序列编号的RTP载荷字段中,将所述校验值密文填充到当前序列编号的UDP协议头的校验和字段中,完成对所述音视频流数据的加密。

其中,如图2所示为传输的音视频流数据的格式以及加密封装的流程,音视频流数据包括IP协议头、UDP协议头、RTP协议头和RTP载荷;其中UDP协议头包括源端口号、目标端口号、包长度以及校验和字段;加密过程中以RTP协议头、RTP载荷作为待校验的校验范围,以RTP载荷和校验值作为加密范围,加密后得到RTP载荷密文以及校验值密文;

具体的,所述工作密钥库将全年分割为多个均等的预设时间段,每个所述时间段分别对应一条密钥。

优选的,如图3所示,从前一序列编号的RTP载荷密文中截取尾部的部分数据作为消息密钥;采用序列算法对当前序列编号的RTP载荷以及所述校验值进行加密,获取RTP载荷密文以及校验值密文;并将加密后的RTP载荷密文填充至当前序列号的RTP载荷字段中,将校验值密文填充至当前序列号的UDP协议头的尾部数据中。

在一个实施例中,根据本发明提供的一种基于RTP、UDP及IP协议的音视频流数据加密方法,对应的解密方法包括步骤:

从接收的音视频流数据的IP数据报中获取当前序列编号的RTP协议头、RTP载荷密文以及校验值密文,将所述RTP载荷密文和所述校验值密文组成待解密数据;

截取前一序列编号的RTP载荷密文的部分数据作为消息密钥;

根据当前时间节点在所述预设时间段中的位置,从预设的工作密钥库中获取两个解密工作密钥;

基于两个所述解密工作密钥,通过序列算法对所述待解密数据进行两次解密,分别获取两组不同的RTP载荷和校验值;

通过校验值分别对对应的RTP协议头以及RTP载荷进行校验;

将校验通过的一组RTP载荷和校验值作为正确数据;将所述正确数据中的RTP载荷填充到当前序列编号的RTP载荷密文字段中。

具体的,根据当前时间节点在所述预设时间段中的位置,从预设的工作密钥库中获取两个解密工作密钥,包括:

当所述时间节点位于所述预设时间段的前半段,则选择当前预设时间段和前一预设时间段对应的密钥作为解密工作密钥;

当所述时间节点位于所述预设时间段的后半段,则选择当前预设时间段和后一预设时间段对应的密钥作为解密工作密钥。

在一个实施例中,作为示例的,工作密钥库将全年分割为以天为单位的多个时间段,每天分别对应一条密钥,本发明对此不作限定;

则对应的加密流程包括:

(1)从IP数据报中提取当前序列编号的RTP协议头、RTP载荷,将RTP协议头以及RTP载荷作为校验范围,对校验范围进行校验,生成16bit的校验值;

(2)数据收发双方本地预置同一工作密钥库;发送方依据当前时间从密钥库中选择当天对应密钥作为加密工作密钥,截取前一序列编号的RTP载荷密文尾部部分数据作为消息密钥;

(3)采用序列算法对RTP载荷以及校验值进行加密,得到RTP载荷密文以及校验值密文;

(4)将RTP载荷密文填充到原RTP载荷字段,将校验值密文填充到原UDP协议头校验和字段。

对应的解密流程包括:

(1)从接收的IP数据报中提取当前序列编号的RTP协议头、RTP载荷密文、校验值密文(UDP校验和字段),将RTP载荷密文、校验值密文组成待解密数据;

(2)截取前一序列编号的RTP载荷密文尾部部分数据作为消息密钥;根据当前时间选择两个解密工作密钥,如果当前时间在中午12点之前,选择当天和昨天对应的工作密钥;如果当前时间在中午12点之后,选择当天和明天对应的的工作密钥;从而确保收发双方的时间误差小于12小时;

(3)采用序列算法对待解密的数据(RTP载荷密文以及校验值密文)分别进行两次解密,得到RTP载荷A、校验值A,以及RTP载荷B、校验值B;

(4)分别用校验值A对包括RTP协议头以及RTP载荷A进行校验,用校验值B对包括RTP协议头以及RTP载荷B进行校验。选择校验通过的一组RTP载荷和校验值作为正确数据;

(5)将正确的RTP载荷填充到原RTP载荷密文,根据新生成的UDP载荷计算新UDP协议头校验和字段。

另一方面,本发明还提供一种基于RTP、UDP及IP协议的音视频流数据加密装置,可与上述提供的所述视频流数据加密方法相互对应;所述装置成对布置在数据收发双方的RTP流编码或解码设备侧,所述装置包括:主控模块、实时时钟模块、密码运算模块、内网处理控制模块、外网处理控制模块、内网接口模块以及外网接口模块;

其中,所述主控模块与所述实时时钟模块通过I2C总线连接,获取当前的时间节点,根据当前时间节点选择对应的密钥发送至所述密码运算模块作为加密工作密钥;或根据当前时间节点选择两个密钥发送至所述密码运算模块作为解密工作密钥;所述主控模块中的存储器中存储有全年的工作密钥库,每天对应一条密钥。

所述密码运算模块分别通过RGMII接口与所述主控模块、所述内网处理控制模块、所述外网处理控制模块连接;从所述内网处理控制模块获取RTP协议头、RTP载荷及校验值,进行RTP协议头及RTP载荷的校验运算,以及对RTP载荷及校验值进行加密运算;从所述自外网处理控制模块获取RTP载荷密文、校验值密文、RTP协议头及RTP载荷密文,进行RTP载荷密文及校验值密文的解密运算,以及对RTP协议头及RTP载荷密文解密后的明文进行校验运算;

所述内网处理控制模块与所述内网接口模块通过RGMII接口连接,用于完成来自内网RTP流的识别、按序列编号对RTP包排序;外部RTP流解密后的重新组包;

所述外网处理控制模块与所述外网接口模块通过RGMII接口连接,用于完成来自外网RTP流的识别、按序列编号对RTP包排序;内网RTP流加密后的重新组包

优选的,所述内网接口模块与所述RTP流编码或解码设备通过千兆以太网电口连接;内网接口模块和外网接口模块用于完成千兆以太网电口信号和RGMII数字信号的转换。

具体的,所述装置在工作时包括:

(1)预先设置收、发双方的实时时钟模块时间;将工作密钥库注入双方主控模块。

(2)该装置启动后,主控模块从实时时钟模块读取当前时间,将一个加密工作密钥和两个解密工作密钥配置到密码运算模块;

优选的,加密工作密钥每天凌晨12点更换,解密工作密钥每天中午12点更换。

(3)RTP流编码设备通过内网接口模块将IP数据包发送到内网处理控制模块,内网处理控制模块对上述IP数据包进行识别,内网处理控制模块将非RTP数据包通过密码运算模块传输至外网处理控制模块,在由外网接口模块发送到外部连接的网络设备;

针对RTP数据包,内网处理控制模块根据RTP协议头的序列编号对RTP包进行排序、按序列编号顺序将IP数据包发送到密码运算模块;

(4)密码运算模块对当前序列编号的RTP协议头及RTP载荷进行校验运算生成校验值;

截取前一序列编号的RTP载荷密文尾部部分数据作为消息密钥,用消息密钥和加密工作密钥对RTP载荷及校验值进行加密运算生成RTP载荷密文及校验值密文,将当前序列编号的IP数据包、RTP载荷密文及校验值密文发送到外网处理控制模块。

(5)外网处理控制模块用RTP载荷密文、校验值密文分别填充当前序列编号的IP数据包的RTP载荷字段和UDP协议头的校验和字段。将重新生成的IP数据包通过外网接口模块发送到外网设备。

另一方面,本发明还提供了一种电子设备该电子设备可以包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信。处理器可以调用存储器中的逻辑指令,以执行上述的基于RTP、UDP及IP协议的音视频流数据加密方法。

此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,以执行上述的基于RTP、UDP及IP协议的音视频流数据加密方法;

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述的基于RTP、UDP及IP协议的音视频流数据加密方法。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号