视频数据传输方法及装置与流程

文档序号:14253499阅读:432来源:国知局
视频数据传输方法及装置与流程

本发明涉及视频会议技术领域,具体涉及一种视频数据传输方法及装置。



背景技术:

rtsp(realtimestreamingprotocol),实时流传输协议,是tcp/ip协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过ip网络实时传送流媒体数据。

而现有技术中对于实时传送的流媒体数据往往直接进行传输,其安全性不够。



技术实现要素:

为此,本发明所要解决的技术问题是:现有技术中流媒体数据传输的安全性低。

为解决上述技术问题,本发明采用的技术方案如下:

本发明提供了一种视频数据传输方法,包括:

使用sdp协议与客户端协商出密钥参数和加密套件;

向多媒体源获取视频数据;

使用srtp协议利用所述密钥参数和所述加密套件对所述视频数据进行编码加密,得到加密后的视频数据码流;

将所述视频数据码流发送至所述客户端。

可选地,在使用sdp协议与客户端协商出加密密钥和加密套件之前,还包括:

接收所述客户端的连接请求;

响应所述连接请求,使用tls协议与所述客户端进行握手,建立安全传输通道。

可选地,使用srtp协议利用所述密钥参数和所述加密套件对所述视频数据进行编码加密包括:

根据所述视频数据的上下文,计算srtp包索引值;

根据密钥管理协议和所述srtp包索引值计算主密钥和主salt;

通过所述密钥管理协议中的各参数,计算出会话密钥;

使用所述会话密钥和传输设定,加密视频数据包;

如果mki字段为1,在所述视频数据包加入mki字段;

计算认证标签,加入到所述视频数据包;

更新srtp包索引值。

可选地,使用sdp协议与客户端协商出密钥参数和加密套件包括:

接收所述客户端发送的所有支持的加密算法套件;

从双方均支持的加密算法套件列表中,选择用于对视频数据进行加密的加密算法套件;

生成密钥参数;

发送所述密钥参数和选择的所述加密算法套件至所述客户端。

可选地,在使用sdp协议与客户端协商出密钥参数和加密套件之后,还包括:

使用rtsp协议与所述客户端协商出视频数据码流传输端口。

本发明还提供一种视频数据传输方法,包括

使用sdp协议与服务器协商出密钥参数和加密套件;

向所述服务器发送视频播放请求;

接收所述服务器发送的视频数据码流;

使用srtp协议利用所述密钥参数和所述加密套件对所述视频数据码流进行解密,得到视频数据;

将所述视频数据发送给多媒体播放器。

本发明还提供了一种视频数据传输装置,包括:

第一协商单元,用于使用sdp协议与客户端协商出密钥参数和加密套件;

获取单元,用于向多媒体源获取视频数据;

加密单元,用于使用srtp协议利用所述密钥参数和所述加密套件对所述视频数据进行编码加密,得到加密后的视频数据码流;

第一发送单元,用于所述视频数据码流发送至所述客户端。

可选地,还包括:

第一接收单元,用于接收所述客户端的连接请求;

建立单元,用于响应所述连接请求,并使用tls协议与所述客户端进行握手,建立安全传输通道。

可选地,所述第一协商单元包括:

第二接收单元,用于接收所述客户端发送的所有支持的加密算法套件;

选择单元,用于从双方均支持的加密算法套件列表中,选择用于对视频数据进行加密的加密算法套件;

参数生成单元,用于生成密钥参数;

第二发送单元,用于发送所述密钥参数和选择的所述加密算法套件至所述客户端。

本发明还提供了一种视频数据传输装置,包括:

第二协商单元,用于使用sdp协议与服务器协商出密钥参数和加密套件;

第三发送单元,用于向所述服务器发送视频播放请求;

第三接收单元,用于接收所述服务器发送的视频数据码流;

解密单元,用于使用srtp协议利用所述密钥参数和所述加密套件对所述视频数据码流进行解密,得到视频数据;

第四发送单元,用于将所述视频数据发送给多媒体播放器。

本发明的上述技术方案相对于现有技术具有以下优点:

本发明提供的视频数据传输方法,不同于传统的直接传输视频数据,而是首先通过sdp协议与客户端协商出密钥参数和加密套件,再使用srtp协议利用密钥参数和加密套件对视频数据进行加密,最后将加密后的视频数据码流传输至客户端。该视频数据传输方法中,所有视频数据码流均为密文,不易被破解,保证了视频数据的安全性。同时,使用sdp协议来协商密钥参数和加密套件,可以支持各种算法组合,提高了服务器和客户端之间的算法兼容性。使用srtp协议来加密视频数据,加密方式较为简单灵活。

本发明提供的视频数据传输方法,在使用sdp协议与客户端协商出密钥参数和加密套件之前,还接收客户端的连接请求,并响应连接请求,且使用tls协议与客户端进行握手,建立安全传输通道。这使得服务器与客户端之间传输的信令数据均为密文,有效防止信令数据的泄漏。

附图说明

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

图1为本发明实施例的应用场景图;

图2为实施例1提供的视频数据传输方法的流程图;

图3为实施例1中步骤s11的流程图;

图4为实施例1中在步骤s11之前的流程图;

图5为实施例1提供的视频数据传输装置的结构示意图;

图6为实施例1提供的视频数据传输装置的另一结构示意图;

图7为实施例2提供的视频数据传输方法的流程图;

图8为实施例2提供的视频数据传输装置的结构示意图;

图9为实施例3提供的视频数据传输装置的结构示意图.

具体实施方式

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

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

本发明实施例主要应用于基于rtsp协议的视频会议实时数据传输的过程中。如图1所示,视频会议的多媒体流传输过程中主要包括多媒体源、服务器、客户端以及多媒体播放器,其传统的基本工作过程为:

1、多媒体播放器向客户端发送请求播放的url链接;

2、客户端接收到请求播放的url链接之后,向服务器发起连接请求,客户端与服务器之间创建连接;

3、客户端向服务器发送请求播放请求;

4、服务器接收播放请求之后,从多媒体源获取相应的视频数据,并将视频数据发送至客户端;

5、客户端接收到视频数据之后,再传输至多媒体播放器。

上述多媒体流传输过程中,数据均采用直接传输的方式进行传输,安全性较低。

实施例1

本实施例提供了一种视频数据传输方法,主要应用于基于rtsp协议的实时数据传输,以服务器为执行主体。如图2所示,该视频数据传输方法包括以下步骤:

s11、使用sdp协议与客户端协商出密钥参数和加密套件。其中,协商出的密钥参数和加密套件用于后续对视频数据进行加密。

具体地,本实施例中,如图3所示,步骤s11包括以下步骤:

步骤s111、接收客户端发送的所有支持的加密算法套件。其中,加密算法套件可以为多种密码算法或加密模式组合而成,密码算法可包括对称加密算法、非对称加密算法、摘要算法、签名算法等各种算法,加密模式可包括ctr或cbc等多种加密模式。

步骤s112、从双方均支持的加密算法套件列表中,选择用于对视频数据进行加密的加密算法套件。具体地,服务器侧也具有其自身支持的加密算法套件,将其自身支持的加密算法套件和客户端支持的加密算法套件进行比对,挑选出双方均支持的加密算法套件,并从中选择一种加密算法套件用于对视频数据的加密。

作为一种优选实施方式,服务器端和客户端均支持国密加密算法,例如sm1或sm4等国密安全加密算法;且最终协商出的加密算法套件中包含上述国密安全加密算法,例如,最终协商出的加密算法套件为sm4_sm3_ctr,其中,sm4是加密算法,sm3是摘要算法,ctr是加密模式。

步骤s113、生成密钥参数。其中,密钥参数一般为30字节的密钥参数,用于后续对视频数据的加密和解密。

步骤s114、发送密钥参数和选择的加密算法套件至客户端。

s12、向多媒体源获取视频数据。具体地,服务器向多媒体源发送视频数据的请求后,再接收多媒体源返回的视频数据。

s13、使用srtp协议利用密钥参数和加密套件对视频数据进行编码加密,得到加密后的视频数据码流。

具体地,本实施例中,步骤s13包括以下步骤:

步骤s131、根据视频数据的上下文,计算srtp包索引值。

步骤s132、根据密钥管理协议和srtp包索引值计算主密钥和主salt。

步骤s133、通过密钥管理协议中的各参数,计算出会话密钥。其中,密钥管理协议中的各参数包括密钥参数等各类参数,会话密钥一般为16字节的加密密钥。

步骤s134、使用会话密钥和传输设定,加密视频数据包。其中,传输设定为根据srtp协议规定的各参数(例如序列号等)计算出的iv,会话密钥与iv共同实现对视频数据的加密。其中,iv全称为initializationvector,指加密的初始化矢量。

在步骤s134中,优选采用上述带有国密算法的加密套件进行加密,如此,有利于保证视频数据的安全性。

步骤s135、如果mki字段为1,在视频数据包加入mki字段。

步骤s136、计算认证标签,加入到视频数据包。

步骤s137、更新srtp包索引值。

s14、将视频数据码流发送至客户端。在该传输过程中,视频数据码流为密文,保证了其安全性。

本发明实施例提供的视频数据传输方法,不同于传统的直接传输视频数据,而是首先通过sdp协议与客户端协商出密钥参数和加密套件,再使用srtp协议利用密钥参数和加密套件对视频数据进行加密,最后将加密后的视频数据码流传输至客户端。该视频数据传输方法中,所有视频数据码流均为密文,不易被破解,保证了视频数据的安全性。同时,使用sdp协议来协商密钥参数和加密套件,可以支持各种算法组合,提高了服务器和客户端之间的算法兼容性。使用srtp协议来加密视频数据,加密方式较为简单灵活。

另外,本实施例中采用安全性较高的国密算法进行视频数据码流的加密,进一步保证了视频数据码流的安全性。

本实施例中,如图4所示,在步骤s11之前,还包括以下步骤:

步骤s10a、接收客户端的连接请求。其中,客户端的连接请求为tls连接请求,即clienthello消息。

步骤s10b、响应连接请求,使用tls协议与客户端进行握手,建立安全传输通道。

具体地,步骤s10b包括以下步骤:

步骤s10c、生成随机数,响应回复serverhello消息,并返回服务器证书、会话密钥和加密算法等消息。

步骤s10d、接收客户端的clientkeyexchange消息和客户端证书并对客户端进行身份验证。

步骤s10e、接收客户端的certificateverify消息,具体包括会话密钥等信息。

步骤s10f、向客户端发出changecipherspec消息,并接收客户端的changecipherspec消息,完成握手。

如此,rtsp安全通道建立完成,服务器和客户端在后续的rtsp信令传输中,对rtsp信令消息采用上述协商好的算法和密钥进行加密传输,由于服务器与客户端之间传输的信令数据均为密文,有效防止了信令数据的泄漏。

本实施例中,在步骤s11之后,还包括以下步骤:

步骤s11a、使用rtsp协议与客户端协商出视频数据码流传输端口,即后续视频数据码流通过该协商出的端口进行传输。需要说明的是,除了协商出视频数据码流传输端口之外,还协商出视频规格参数、会话信息、组件版本、起止时间等参数信息。

步骤s11b、接收客户端的视频播放请求。

步骤s11a和步骤s11b执行完之后,按照上文中的顺序执行步骤s12。

另外,本实施例还提供了一种视频数据传输装置,应用于基于rtsp协议的实时数据传输。如图5所示,该视频数据传输装置包括第一协商单元11、获取单元12、加密单元13以及第一发送单元14。其中,

第一协商单元11用于使用sdp协议与客户端协商出密钥参数和加密套件。其实,协商出的密钥参数和加密套件用于后续对视频数据进行加密。

获取单元12用于向多媒体源获取视频数据。

加密单元13用于使用srtp协议利用密钥参数和加密套件对视频数据进行编码加密,得到加密后的视频数据码流。

第一发送单元14用于将视频数据码流发送至客户端。在该传输过程中,视频数据码流为密文,保证了其安全性。

优选地,如图6所示,该视频数据传输装置还包括第一接收单元10a和建立单元10b。其中,

第一接收单元10a用于接收客户端的连接请求。其中,客户端的连接请求为tls连接请求,即clienthello消息。

建立单元10b用于响应连接请求,使用tls协议与客户端进行握手,建立安全传输通道。

优选地,第一协商单元11包括第二接收单元、选择单元、参数生成单元以及第二发送单元。其中,

第二接收单元用于接收客户端发送的所有支持的加密算法套件。其中,加密算法套件可以为多种密码算法或加密模式组合而成,密码算法可包括对称加密算法、非对称加密算法、摘要算法、签名算法等各种算法,加密模式可包括ctr或cbc等多种加密模式。

选择单元用于从双方均支持的加密算法套件列表中,选择用于对视频数据进行加密的加密算法套件。

参数生成单元用于生成密钥参数。其中,密钥参数一般为30字节的密钥参数,用于后续对视频数据的加密和解密。

第二发送单元用于发送密钥参数和选择的加密算法套件至客户端。

实施例2

本实施例提供了一种视频数据传输方法,主要应用于基于rtsp协议的实时数据传输,以客户端为执行主体。如图7所示,该视频数据传输方法包括以下步骤:

步骤s21、使用sdp协议与服务器协商出密钥参数和加密套件。其中,协商出的密钥参数和加密套件用于后续服务器端对视频数据进行加密。

具体地,本实施例中,步骤s21包括以下步骤:

步骤s211、将所有支持的加密算法套件发送至服务器端。其中,加密算法套件可以为多种密码算法或加密模式组合而成,密码算法可包括对称加密算法、非对称加密算法、摘要算法、签名算法等各种算法,加密模式可包括ctr或cbc等多种加密模式。

步骤s212、接收服务器端发送的密钥参数和选择好的加密算法套件。其中,密钥参数由服务器端生成,一般为30字节的密钥参数,选择好的加密算法套件是由服务器端在从双方均支持的加密算法套件列表中选择出的。

作为一种优选实施方式,服务器端和客户端均支持国密加密算法,例如sm1或sm4等国密安全加密算法;且最终协商出的加密算法套件中包含上述国密安全加密算法,例如,最终协商出的加密算法套件为sm4_sm3_ctr,其中,sm4是加密算法,sm3是摘要算法,ctr是加密模式。

步骤s22、向服务器发送视频播放请求。

步骤s23、接收服务器发送的视频数据码流。其中,接收到的视频数据码流为服务器端加密后的视频数据码流,安全性较高。

步骤s24、使用srtp协议利用密钥参数和加密套件对视频数据码流进行解密,得到视频数据。

具体地,本实施例中,步骤s24包括以下步骤:

步骤s241、根据上下文,计算srtp包索引值。

步骤s242、当mki字段为1,根据mki确定主密钥和主salt,否则根据srtp包索引值确定主密钥和主salt。

步骤s243、通过密钥管理协议中的各参数,计算出会话密钥。其中,密钥管理协议中的各参数包括服务器的密钥参数等各类参数,会话密钥一般为16字节的加密密钥。

步骤s244、检查是否为重播。

步骤s245、解密视频数据包。优选地,采用上述带有国密算法的套件进行解密,如此,有利于保证视频数据的安全性。

步骤s246、更新srtp包索引值和上下文信息等。

步骤s247、从视频数据包中删除mki和认证标签。

步骤s25、将视频数据发送给多媒体播放器。

本发明实施例提供的视频数据传输方法,不同于传统的直接传输视频数据,而是首先通过sdp协议与服务器端协商出密钥参数和加密套件,用于服务器端对视频数据进行加密,然后接收加密后的视频数据码流,并解码发送至多媒体播放器。该视频数据传输方法中,所有视频数据码流均为密文,不易被破解,保证了视频数据的安全性。同时,使用sdp协议来协商密钥参数和加密套件,可以支持各种算法组合,提高了服务器和客户端之间的算法兼容性。使用srtp协议来解密视频数据,解密方式较为简单灵活。

另外,本实施例中采用安全性较高的国密加密算法进行视频数据码流的解密,进一步保证了视频数据码流的安全性。

本实施例中,在步骤s21之前,还包括以下步骤:

步骤s20a、接收多媒体播放器的请求播放的url链接,并从中获取服务器的地址。

步骤s20b、基于获取到的地址,向服务器端发送连接请求。其中,连接请求为tls连接请求,即clienthello消息。

步骤s20c、接收服务器端返回的serverhello消息以及服务器证书、会话密钥和加密算法等消息。

步骤s20d、向服务器端发送clientkeyexchange消息和客户端证书,以供服务器端进行身份验证。

步骤s20e、验证服务器证书,并发出certificateverify消息,具体包括会话密钥等信息。

步骤s20f、向服务器端发出changecipherspec消息,并接收服务器端的changecipherspec消息,完成握手。

如此,rtsp安全通道建立完成,服务器和客户端在后续的rtsp信令传输中,对rtsp信令消息采用上述协商好的算法和密钥进行加密传输,由于服务器与客户端之间传输的信令数据均为密文,有效防止了信令数据的泄漏。

本实施例中,在步骤s21和步骤s22之间,还包括以下步骤:

使用rtsp协议与服务器端协商出视频数据码流传输端口,即后续视频数据码流通过该协商出的端口进行传输。需要说明的是,除了协商出视频数据码流传输端口之外,还协商出视频规格参数、会话信息、组件版本、起止时间等参数信息。

另外,本实施例还提供了一种视频数据传输装置,应用于基于rtsp协议的实时数据传输。如图8所示,该视频数据传输装置包括第二协商单元21、第三发送单元22、第三接收单元23、解密单元24以及第四发送单元25。其中,

第二协商单元21用于使用sdp协议与服务器协商出密钥参数和加密套件。其中,协商出的密钥参数和加密套件用于后续服务器端对视频数据进行加密。

第三发送单元22用于向服务器发送视频播放请求。

第三接收单元23用于接收服务器发送的视频数据码流。其中,接收到的视频数据码流为服务器端加密后的视频数据码流,安全性较高。

解密单元24用于使用srtp协议利用密钥参数和加密套件对视频数据码流进行解密,得到视频数据。

第四发送单元25用于将视频数据发送给多媒体播放器。

优选地,第二协商单元21包括第五发送单元以及第四接收单元。其中,

第五发送单元用于将所有支持的加密算法套件发送至服务器端。其中,加密算法套件可以为多种密码算法或加密模式组合而成。

第四接收单元用于接收服务器端发送的密钥参数和选择好的加密算法套件。其中,密钥参数由服务器端生成,一般为30字节的密钥参数,选择好的加密算法套件是由服务器端在从双方均支持的加密算法套件列表中选择出的。

实施例3

本实施例提供了一种视频数据传输装置,包括一个或多个处理器31以及存储器32,图9中以一个处理器31为例。

处理器31可以为中央处理器(centralprocessingunit,cpu)。处理器31还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器31也可以是任何常规的处理器等。

存储器32作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的信令传输方法对应的程序指令/模块。处理器31通过运行存储在存储器32中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述实施例中的视频数据传输方法。

存储器32可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据多业务系统的运行装置的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至采用上述视频数据传输方法的视频数据传输装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个模块存储在所述存储器32中,当被所述一个或者多个处理器31执行时,执行实施例1或实施例2中所述的视频数据传输方法。

上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,具体可参见实施例1和实施例2中的相关描述。

实施例4

本实施例提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行实施例1和实施例2中所述的视频数据传输方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。

本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一种计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

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