一种视频流鉴权方法及装置与流程

文档序号:11254379阅读:523来源:国知局
一种视频流鉴权方法及装置与流程

本发明涉及安全验证领域,更具体地,涉及一种视频流鉴权方法及装置。



背景技术:

目前,视频直播是利用互联网及流媒体技术进行直播,视频内容的提供方存在视频流播放地址被第三方平台获取,从而第三方平台可以不通过直播网站直接观看视频的问题,即绕过了直播网站的视频播放器来观看视频,会造成视频网站流量的减少。

对于视频直播网站其视频播放大多采用flash来播放,因此其视频流地址的鉴权也大多采用flash的代码来编写,然而flash的代码是使用actionscript这种脚本语言来编写,这种脚本语言编写的代码容易被反编译,从而通过反编译来了解视频流地址鉴权算法的原理。现有技术中,直播间的所有视频流地址使用同一套鉴权算法,并且由于首页的视频流必须以最快的速度让用户能够看到,所以其视频流地址的鉴权算法不宜太复杂,同时其代码量不宜过多,因为代码量的增加会导致首页播放的flash文件变大,从而导致从服务器下载flash播放器的速度变慢,导致用户要过一段时间才能在首页上看到视频流。

为了使得首页视频流的播放速度足够快,现有技术简化了直播间的所有视频流地址的鉴权算法,从而导致视频流地址的鉴权算法易被第三方破解。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的一种视频流鉴权方法及装置。

根据本发明的第一方面,提供一种视频流鉴权方法,包括:

s1、基于预设的加密指令集,更新直播间首页视频流的加密指令;

s2、对于每一次所述加密指令更新,获取更新前的第一鉴权键值和更新后的第一鉴权键值,作为所述直播间首页视频流的一组第一鉴权键值;

s3、在预设的时间段内,判断接收到客户端发送的第二鉴权键值,是否等于所述时间段内获取一组第一鉴权键值中的其中一个;

s4、若所述第二鉴权键值等于所述时间段内获取一组第一鉴权键值中的其中一个,则向所述客户端发送视频流。

其中,步骤s1之前还包括:

基于预设的加密指令集,分配第一类加密指令给直播间首页视频流,分配第二类加密指令给直播房间内视频流;

其中,所述第一类加密指令的复杂度低于所述第二类加密指令的复杂度。

其中,步骤s1包括:

设置加密指令更新的时间间隔;

在所述直播间首页视频流使用的加密指令时长等于所述时间间隔时,从所述加密指令集中选取另一加密指令替换现在直播间首页视频流使用的加密指令。

其中,步骤s2包括:

使用更新前的加密指令,对连入客户端的信息进行加密,得到所述更新前的第一鉴权键值;

使用更新后的加密指令,对所述连入客户端的信息重新加密,得到所述更新后的第一鉴权键值;

将所述更新前的第一鉴权键值和所述更新后的第一鉴权键值,记录为一组所述直播间首页视频流的第一鉴权键值。

其中,当所述预设时间段内获取到多组第一鉴权键值时,步骤s3包括:

在所述预设时间段内,判断所述接收到客户端发送的第二鉴权键值,是否等于所述多组第一鉴权键值中包含的任意一个第一鉴权键值。

其中,所述当所述预设时间段内获取到多组第一鉴权键值时,步骤s3还包括:

在所述预设时间段内,每新获取一组第一鉴权键值,删除保存的前一组第一鉴权键值;

判断所述接收到客户端发送的第二鉴权键值,是否等于所述预设时间段内获取的最后一组第一鉴权键值中的其中一个。

其中,所述第二鉴权键值的计算方法和所述第一鉴权键值的计算方法一致。

根据本发明提供的第二方面,本发明提供一种视频流鉴权装置,包括:

更新模块,用于基于预设的加密指令集,更新直播间首页视频流的加密指令;

获取模块,用于对于每一次所述加密指令更新,获取更新前的第一鉴权键值和更新后的第一鉴权键值,作为所述直播间首页视频流的一组第一鉴权键值;

判断模块,用于在预设的时间段内,判断接收到客户端发送的第二鉴权键值,是否等于所述时间段内获取一组第一鉴权键值中的其中一个;

鉴权模块,用于若所述第二鉴权键值等于所述时间段内获取一组第一鉴权键值中的其中一个,则向所述客户端发送视频流。

根据本发明的第三方面,提供一种计算机程序产品,包括程序代码,所述程序代码用于执行上述所述的视频流鉴权方法。

根据本发明的第四方面,提供一种非暂态计算机可读存储介质,用于存储如前所述的计算机程序。

本发明提供的视频流鉴权方法,通过更新直播间首页视频流的加密指令,并在预设时间段内对服务器和客户端的鉴权键值进行比对,判断连入客户端的合法性,提高了首页视频流的安全性。

附图说明

图1为本发明实施例提供的一种视频流鉴权方法流程图;

图2是本发明实施例提供的一种视频流鉴权装置结构图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1为本发明实施例提供的一种视频流鉴权方法流程图,如图1所示,包括:

s1、基于预设的加密指令集,更新直播间首页视频流的加密指令;

s2、对于每一次所述加密指令更新,获取更新前的第一鉴权键值和更新后的第一鉴权键值,作为所述直播间首页视频流的一组第一鉴权键值;

s3、在预设的时间段内,判断接收到客户端发送的第二鉴权键值,是否等于所述时间段内获取一组第一鉴权键值中的其中一个;

s4、若所述第二鉴权键值等于所述时间段内获取一组第一鉴权键值中的其中一个,则向所述客户端发送视频流。

在视频直播领域,从用户的角度出发,直播平台首页的视频流必须以最快的速度让用户能够看到,才能保证用户的体验度。所以直播平台首页的视频流鉴权算法不宜复杂,同时代码量不宜太大,现有技术一般采用简化视频流地址的鉴权算法,从而导致视频流鉴权算法容易被人破解,给视频播放带来安全隐患。

针对上述现有技术存在的问题,本发明实施例提供的视频流鉴权方法,在不改变视频流鉴权算法复杂度的前提下,通过更新视频流的加密指令,来保障首页视频流的安全性,并且由于算法本身的代码量小,其频繁更新的过程也不会给服务器造成带宽压力。

可以理解的是,本发明实施例所述的视频流鉴权方法为对视频流地址的鉴权方法,所述鉴权为验证连入的客户端是否具有访问服务器提供视频流地址的权利。

s1中,所述预设的加密指令集为服务器预设的多种加密算法,如tea算法、rsa算法、aes算法等,但不同加密算法算法复杂度存在差异,首页视频流的加密算法一般采用算法复杂度较低的加密算法,本发明实施例采用的加密算法为tea算法,但本发明实施例对此不做具体限定。

s1中,所述更新直播间首页视频流的加密指令即为更换加密算法,重新对直播间首页视频流信息进行加密。对于每一次更新,更新前使用的加密算法都和更新后使用的加密算法不相同,可以理解的是,本发明实施例提供的加密指令集中至少包括两种加密算法,本发明实施例不对加密指令集中包含的加密算法数量做具体限定。

s2中,所述第一鉴权键值为使用对应的加密算法生成的鉴权newkey值,具体的实现如下所示:

newkey=encryptdata(token+roomid+id+ip+time,key);

其中,所述encryptdata为使用的加密算法、token为连入客户端的登陆令牌、roomid为连入客户端请求的房间id、id为连入客户端设备的id标识、ip为连入客户端当前ip地址、time为用户请求的当前时间、key为客户端连入时,服务器分配的密钥值。

那么所述第一鉴权键值是由连入客户端提供的信息以及加密算法计算出的一个权限验证信息值,用于对客户端权限进行判定。

s2中,在对加密算法的更新过程中,会产生两个第一鉴权键值,分别为更新前的第一鉴权键值和更新后的第一鉴权键值,将这两个第一鉴权键值作为一组所述直播间首页视频流的第一鉴权键值,用于对s3中获取的客户端发送的第二鉴权键值做比对,以使得服务器判定连入的客户端是否具有权限。

s3中,所述预设的时间段为服务器根据客户端的缓存速度设置的一个反应时间区,可以理解的是,由于服务器对加密算法进行了更新,而客户端上使用的播放器缓存并没有及时更新到最新的播放器,使得有权限的客户端反而鉴权失败,导致无法观看首页的视频流。

针对上述问题,本发明实施例设置了一个缓冲时间段,使得在该时间段内服务器许可更新前的加密算法和更新后的加密算法均有效。

从而判断接收客户端发送的第二鉴权键值与第一鉴权键值是否相等来验证连入的客户端是否具有权限。

s4中,若所述第二鉴权键值等于所述时间段内获取一组第一鉴权键值中的其中一个,则判定该连入的客户端为合法客户端,并向其发送视频流地址,若所述第二鉴权键值不等于所述时间段内获取一组第一鉴权键值中的其中一个,则判定该连入的客户端为不合法,拒绝向其发送视频流地址。

本发明实施例通过更新直播间首页视频流的加密指令,并在预设时间段内对服务器和客户端的鉴权键值进行比对,判断连入客户端的合法性,提高了首页视频流的安全性。

在上述实施例的基础上,步骤s1之前还包括:

基于预设的加密指令集,分配第一类加密指令给直播间首页视频流,分配第二类加密指令给直播房间内视频流;

其中,所述第一类加密指令的复杂度低于所述第二类加密指令的复杂度。

现有技术中,所有视频流地址鉴权算法采用的是同一套方法,针对首页视频流需要快速打开的问题,采用了较为简便的加密算法对其加密,但对于直播房间内视频流的加载速度并不需要做到尽量快速,但现有的直播房间内视频流鉴权方法采用和首页视频流鉴权方法一样的方案,大大降低了对直播房间内视频流地址的保护。

针对上述现有技术中存在的问题,本发明实施例提供了两类加密指令供直播间首页视频流和直播房间内视频流使用。

即提供第一类加密算法供直播间首页的视频流使用,另提供第二类加密算法供直播房间内使用,且第一类加密算法的算法复杂度小于所述第二类加密算法,这样便可以采用两套不同的加密方法分别对直播间首页视频流和直播房间内视频流进行加密,并且互相兼容。

具体的,直播间首页一般采用tea加密这种较为简单的加密算法,而直播房间内一般采用rsa、aes这种算法复杂度较高的加密算法进行加密。

需要说明的是,在使用rsa、aes算法对直播房间内的视频流进行加密时,为了避免rsa、aes加密算法依旧易被破解,还可将其叠加使用,即使用rsa后再使用aes加密,使得算法复杂度进一步提高。

可以理解的是,本发明实施例提供的rsa、aes加密算法仅为本发明实施例提供的优选方案,本发明实施例对此不做具体限定。

本发明实施例通过使用两类加密算法分别对首页视频流和直播房间内视频流进行加密,在不影响兼容性的前提下,提高了直播房间内视频流的安全程度。

在上述实施例的基础上,步骤s1包括:

设置加密指令更新的时间间隔;

在所述直播间首页视频流使用的加密指令时长等于所述时间间隔时,从所述加密指令集中选取另一加密指令替换现在直播间首页视频流使用的加密指令。

可以理解的是,对于直播间首页使用的加密算法,需要对其更新的频率进行设置,优选的,采用10秒作为加密算法更新的时间间隔,但本发明对此更新时间间隔不做具体限定。

具体的,当直播间首页视频流使用的加密算法使用了设置的时长后,即更换另一套加密算法来代替原算法,一般的,两种加密算法的算法复杂度不会差别太大。

在上述实施例的基础上,步骤s2包括:

使用更新前的加密指令,对连入客户端的信息进行加密,得到所述更新前的第一鉴权键值;

使用更新后的加密指令,对所述连入客户端的信息重新加密,得到所述更新后的第一鉴权键值;

将所述更新前的第一鉴权键值和所述更新后的第一鉴权键值,记录为一组所述直播间首页视频流的第一鉴权键值。

当所述预设时间段内获取到多组第一鉴权键值时,步骤s3包括:

在所述预设时间段内,判断所述接收到客户端发送的第二鉴权键值,是否等于所述多组第一鉴权键值中包含的任意一个第一鉴权键值。

可以理解的是,当设置的预设时间段过长,而加密指令更新的时间间隔过短时,会在预设时间段内,发生多次加密算法的更新过程,而每一次加密算法更新中,均会获取一组第一鉴权键值,那么在预设时间段内获取到多组第一鉴权键值时,服务器需提供一种鉴权方法来判别连入的客户端是否合法。

本发明实施例提供的方法采用保留在该预设时间段内获取到的所有第一鉴权键值,并只要接收到的第二鉴权键值等于所有第一鉴权键值中的任意一个,则判定连入的客户端合法。

在上述实施例的基础上,步骤s3还包括:

在所述预设时间段内,每新获取一组第一鉴权键值,删除保存的前一组第一鉴权键值;

判断所述接收到客户端发送的第二鉴权键值,是否等于所述预设时间段内获取的最后一组第一鉴权键值中的其中一个。

可以理解的是,上述实施例提供的方法虽然能准确判别连入的客户端的合法性,但给服务器带来了较大的数据冗余量,故本发明实施例优选的可采用只记录一组第一鉴权键值,并在更新时删除前一组保留的第一鉴权键值。

再判断所述接收到客户端发送的第二鉴权键值,是否等于所述预设时间段内获取的最后一组第一鉴权键值中的其中一个,以此来判定连入的客户端是否合法。

在上述实施例的基础上,所述第二鉴权键值的计算方法和所述第一鉴权键值的计算方法一致。

可以理解的是,所述第二鉴权键值的计算方法指代为:

newkey=encryptdata(token+roomid+id+ip+time,key);

其中,所述encryptdata为使用的加密算法、token为连入客户端的登陆令牌、roomid为连入客户端请求的房间id、id为连入客户端设备的id标识、ip为连入客户端当前ip地址、time为用户请求的当前时间、key为客户端连入时,服务器分配的密钥值。

图2是本发明实施例提供的一种视频流鉴权装置结构图,如图2所示,该装置包括:更新模块1、获取模块2、判断模块3以及鉴权模块4,其中,

更新模块1用于基于预设的加密指令集,更新直播间首页视频流;

获取模块2用于对于每一次所述加密指令更新,获取更新前的第一鉴权键值和更新后的第一鉴权键值,作为所述直播间首页视频流的一组第一鉴权键值;

判断模块3用于在预设的时间段内,判断接收到客户端发送的第二鉴权键值,是否等于所述时间段内获取一组第一鉴权键值中的其中一个;

鉴权模块4用于若所述第二鉴权键值为所述时间段内获取一组第一鉴权键值中的其中一个,则向所述客户端发送视频流。

具体的视频流鉴权方法可参见上述实施例,本发明实施例在此不再赘述。

本发明实施例通过更新模块更新直播间首页视频流的加密指令,并通过获取模块获取鉴权键值,再通过判断模块在预设时间段内对服务器和客户端的鉴权键值进行比对,最后通过鉴权模块确认连入客户端的合法性,提高了首页视频流的安全性。

本实施例提供一种视频流鉴权装置,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令以执行上述各方法实施例所提供的方法,例如包括:s1、基于预设的加密指令集,更新直播间首页视频流的加密指令;s2、对于每一次所述加密指令更新,获取更新前的第一鉴权键值和更新后的第一鉴权键值,作为一组所述直播间首页视频流的第一鉴权键值;s3、在预设的时间段内,判断接收到客户端发送的第二鉴权键值,是否等于所述时间段内获取一组第一鉴权键值中的其中一个;s4、若所述第二鉴权键值等于所述时间段内获取一组第一鉴权键值中的其中一个,则向所述客户端发送视频流。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:s1、基于预设的加密指令集,更新直播间首页视频流的加密指令;s2、对于每一次所述加密指令更新,获取更新前的第一鉴权键值和更新后的第一鉴权键值,作为一组所述直播间首页视频流的第一鉴权键值;s3、在预设的时间段内,判断接收到客户端发送的第二鉴权键值,是否等于所述时间段内获取一组第一鉴权键值中的其中一个;s4、若所述第二鉴权键值等于所述时间段内获取一组第一鉴权键值中的其中一个,则向所述客户端发送视频流。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:s1、基于预设的加密指令集,更新直播间首页视频流的加密指令;s2、对于每一次所述加密指令更新,获取更新前的第一鉴权键值和更新后的第一鉴权键值,作为一组所述直播间首页视频流的第一鉴权键值;s3、在预设的时间段内,判断接收到客户端发送的第二鉴权键值,是否等于所述时间段内获取一组第一鉴权键值中的其中一个;s4、若所述第二鉴权键值等于所述时间段内获取一组第一鉴权键值中的其中一个,则向所述客户端发送视频流。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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