网络视频访问的权限鉴别方法、加密方法、装置及系统与流程

文档序号:13949933阅读:381来源:国知局
网络视频访问的权限鉴别方法、加密方法、装置及系统与流程

本发明涉及互联网视频信息技术领域,尤其是涉及一种网络视频访问的权限鉴别方法、加密方法、装置及系统。



背景技术:

根据公开资料显示,2016年在线视频所产生的流量在互联网总流量中的占比为73%,而在2021年这一数字将会达到82%。网络视频内容作为办公、娱乐、资讯、教育等活动的主要载体,成为大多数人生活不可或缺的一部分。视频内容提供商在提供视频的同时,通过视频服务端向视频客户端投放广告等宣传信息以实现商业价值。但现有的视频服务中,传输的信息很容易被抓包破解,安全性差。



技术实现要素:

有鉴于此,本发明的目的在于提供一种网络视频访问的权限鉴别方法、加密方法、装置及系统,以解决现有技术存在的安全风险的问题。

本发明提供的技术方案如下:

一种网络视频访问的权限鉴别方法,应用于视频服务端,该方法包括:

接收视频客户端发送的经过加密的权限信息;

根据预设规则确定所述经过加密的权限信息对应的至少一个解密算法和至少一个解密密钥;

利用所述至少一个解密算法和至少一个解密密钥对所述经过加密的权限信息进行至少一次解密,得到解密后的权限信息;

判断解密后的权限信息是否符合预设条件,若符合预设条件,在视频服务端通过所述视频客户端的权限验证,以根据视频客户端的操作为视频客户端提供视频服务。

第二方面,本发明还提供了一种权限加密方法,应用于视频客户端,该方法包括:

根据预设规则确定权限信息对应的至少一个加密算法和至少一个加密密钥;

利用所述至少一个加密算法和至少一个加密密钥对所述权限信息进行至少一次加密,得到加密后的权限信息;

将所述加密后的权限信息发送至视频服务端。

第三方面,本发明还提供了一种权限鉴别装置,应用于视频服务端,该权限鉴别装置包括:

信息获取模块,用于接收视频客户端发送的经过加密的权限信息;

解密算法及密钥确定模块,用于根据预设规则确定所述经过加密的权限信息对应的至少一个解密算法和至少一个解密密钥;

解密模块,用于利用所述至少一个解密算法和至少一个解密密钥对所述经过加密的权限信息进行至少一次解密,得到解密后的权限信息;

鉴别模块,判断解密后的权限信息是否符合预设条件,若符合预设条件,在视频服务端通过所述视频客户端的权限验证,以根据视频客户端的操作为视频客户端提供视频服务。

第四方面,本发明还提供了一种权限加密装置,应用于视频客户端,该权限加密装置包括:

加密算法及密钥确定模块,用于根据预设规则确定权限信息对应的至少一个加密算法和至少一个加密密钥;

加密模块,用于利用所述至少一个加密算法和至少一个加密密钥对所述权限信息进行至少一次加密,得到加密后的权限信息;

传输模块,用于将所述加密后的权限信息发送至视频服务端。

第五方面,本发明还提供了一种权限鉴别系统,包括视频服务端和视频客户端,其中,所述视频客户端包括:

加密算法及密钥确定模块,用于根据预设规则确定权限信息对应的至少一个加密算法和至少一个加密密钥;

加密模块,用于利用所述至少一个加密算法和至少一个加密密钥对所述权限信息进行至少一次加密,得到加密后的权限信息;及

传输模块,用于将所述加密后的权限信息发送至视频服务端;

所述视频服务端包括:

信息获取模块,用于接收视频客户端发送的经过加密的权限信息;

解密算法及密钥确定模块,用于根据预设规则确定所述经过加密的权限信息对应的至少一个解密算法和至少一个解密密钥;

解密模块,用于利用所述至少一个解密算法和至少一个解密密钥对所述经过加密的权限信息进行至少一次解密,得到解密后的权限信息;及

鉴别模块,判断解密后的权限信息是否符合预设条件,若符合预设条件,在视频服务端通过所述视频客户端的权限验证,以根据视频客户端的操作为视频客户端提供视频服务。

本发明实施例提供的网络视频访问的权限鉴别方法,可以通过对视频客户端发送的权限信息进行鉴别,通过预先的规则确定对应的解密算法和解密密钥,实现对权限信息的解密,并在解密后的权限信息符合预设条件时,确定权限鉴别成功。权限鉴别过程中,不需要用户预先使用视频客户端进行账号注册,提升了用户体验。同时,权限信息的解密需要同时使用正确的解密算法和解密密钥才能得到正确的权限信息,避免了通信过程中被抓包分析破解的风险。并且,解密算法和解密密钥相互独立,即使在两者之一被破解的情况下,仍能通过另一个的保护策略保证系统的安全性。

附图说明

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

图1是本发明实施例的一种视频服务端与视频客户端交互的示意图。

图2是本发明实施例的一种网络视频访问的权限鉴别方法的流程示意图。

图3是本发明实施例的一种网络视频访问的权限鉴别方法中步骤s102的子步骤的流程示意图。

图4是本发明实施例的一种权限加密方法的流程示意图。

图5是本发明实施例的一种权限加密方法中步骤s201的子步骤的流程示意图。

图6是本发明实施例的一种权限鉴别装置的流程示意图。

图7是本发明实施例的一种权限加密装置的流程示意图。

图标:100-视频服务端;200-视频客户端;10-权限鉴别装置;20-权限加密装置;101-信息获取模块;102-解密算法及密钥确定模块;103-解密模块;104-鉴别模块;201-加密算法及密钥确定模块;202-加密模块;203-传输模块。

具体实施方式

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

发明人发现,用户在通过通信设备获取视频服务时,由于提供视频服务的厂商会提供大量的视频内容,有些视频内容需要用户缴费或注册为会员后才能播放。这样的交互过程就需要用户事先在提供视频服务的厂商处先进过账号的注册过程、会员的购买、费用的缴纳等一系列过程后,才能在获取视频服务时,提供正确的权限。并且用户的账户名、密码等信息需要发送至视频服务端,视频服务端才能够根据用户的账户名、密码等信息确定该用户是否具有正确的权限。这些信息在传输过程中,很容易被截取而导致用户个人信息的泄露。并且,这样的过程需要用户注册,注册步骤繁琐,使用体验不佳。

同时,一些非视频内容提供商授权的客户端会通过截包分析等方法,获取视频服务端和客户端之间的通信细节,冒充已经获得授权的客户端从视频服务端获取视频内容,绕过或替换视频服务端提供的广告等宣传信息,是视频内容提供商的利益直接或间接的遭到损失。

基于这样的问题,可以通过采用session验证和基于token的鉴权机制。

session验证的流程为:客户端以用户名和密码登录服务端,服务端产生session对象,用于跟踪用户的状态,并返回sessionid给客户端;客户端再次请求服务器,会将sessionid以cookie请求头的方式发送给服务器,服务器收到sessionid后,索引得到session对象,从而跟踪客户端状态。

基于token鉴权机制的流程为:客户端以用户名和密码登录服务端,服务端通过验证发送给用户一个token;客户端存储token并在每次访问服务端时附送上这个token值,服务端验证token值并返回数据。

session验证和基于token鉴权机制流程相似,都需要用户输入用户名和密码,其隐含的前提是用户需要注册用户名和密码。对于大多数视频客户端用户而言,这一点将会使用户体验大为下降。更重要的是,session和token可以通过网络抓包分析的方式被破解出来,安全性能存在一定得缺陷。

第一实施例

本发明实施例提供了一种网络视频访问的权限鉴别方法,应用于视频服务端100,该视频服务端100可以为视频客户端200提供视频服务,视频客户端200可以是用户使用的可以与视频服务端100建立连接的通信设备,如个人计算机、手机、平板电脑等设备。用户在使用视频客户端200需要视频服务端100提供视频服务时,不同的视频客户端200用户可以具有个性化的服务,通过视频服务端100实现对视频客户端200的权限鉴别,来确定视频客户端200是否具有正确的访问权限。如图1所示,为视频客户端200和视频服务端100的交互示意图。

如图2所示,该网络视频访问的权限鉴别方法包括以下步骤。

步骤s101,接收视频客户端200发送的经过加密的权限信息。

视频客户端200可以先对权限信息进行加密,得到加密后的权限信息,并可以通过与视频服务端100预先建立的通信连接,将经过加密的权限信息发送至视频服务端100。在本发明实施例中,权限信息可以包括预先设置的客户端代码、客户端终端版本信息、加密使用的密钥文件的摘要信息以及视频客户端200获取的视频服务端100的当前时间信息等参数中的一个或多个。视频服务端100接收经过加密的权限信息。

视频服务端100可以运行在操作系统为rhel7.0(redhatenterpriselinux7.0)的环境中,视频服务端100在响应视频客户端200的连接或者播放请求时,会调用在服务端的解密模块103对加密后的权限信息进行解密。

步骤s102,根据预设规则确定所述经过加密的权限信息对应的至少一个解密算法和至少一个解密密钥。

视频服务端100可以根据预先确定的预设规则确定解密算法和解密密钥,以对接收到的经过加密的权限信息进行解密。视频服务端100预先配置有多个解密算法以及多个解密密钥。视频服务端100可以采用动态链接库的文件形式对解密算法进行存储,解密算法可以包括aes-128、aes-192和aes-256中至少一种,当然也可以采用其他形式的解密算法,本发明实施例并不限制解密算法的具体算法形式。

详细的,如图3所示,可以通过以下子步骤确定解密算法和解密密钥。

子步骤s121,根据时间信息和通信交互信息中的至少一种确定解密算法,其中,所述时间信息为所述视频服务端100根据当前时刻信息而确定的时间值。

例如,在使用时间信息确定解密算法的方法中,可以使用视频服务端100的当前时刻的秒数与3作取余运算,如果结果为0则选择aes-128作为解密算法,如果结果为1则选择aes-192作为解密算法,如果结果为2则选择aes-256作为解密算法。当然也可以对时间信息采用其他形式的运算确定选择哪一种算法作为解密算法。

在使用通信交互信息确定解密算法时,通信交互信息可以是视频服务端100与视频客户端200之间通信的相关信息。通信交互信息可以包括权限鉴别前,视频服务端100发送至视频客户端200的初始权限信息、视频客户端200启动后与视频服务端100的连接握手信息、视频客户端200与视频服务端100相互发送的检测或数据信息等等,并且通信交互信息中可以包括可执行程序等程序语言。视频服务端100可以预先建立通信交互信息与解密算法的对应关系,通过确定的通信交互信息即可确定对应的解密算法。例如可以根据通信交互信息中包含的预设的固定数据确定对应的解密算法。例如,如果某一固定数据的数值为0,则确定aes-128为解密算法。如果该固定数据的数值为1,则确定aes-192为解密算法。如果该固定数据的数值为2,则确定aes-256为解密算法。

此外,通信交互信息中还可以包括有包含所述解密算法的可执行程序。此时,在确定解密算法时,可以调用与所述可执行程序对应的解释器执行所述可执行程序中的至少一部分,可以将该可执行程序作为解密算法的部分或全部进行执行。可执行程序可以为python、lua、perl等脚本语言的语句,视频服务端100可以调用与脚本语言对应的解释器执行可执行程序中的语句,获得该可执行程序对应的语句信息,将该语句信息作为所述解密算法的至少一部分。

例如,执行后得到的语句信息为将权限信息与预先设置的初始权限信息拼接后与解密密钥作循环异或运算。就可以将这一条信息的动作作为解密算法的动作。或者,执行后得到的语句信息为将语句本身的数据信息作为解密算法,此时,就可以将该语句作为整体的解密方法使用。

通过上述方法可以确定对应的解密算法。可以理解的是,视频服务端100在预先对解密算法和解密密钥进行配置时,可以为解密密钥配置更换周期d,并可以c1、c2为预设的解密系数,解密系数可以作为进行相关解密运算的预设参数。

子步骤s122,根据所述时间信息或通信交互信息中的至少一种确定所述解密密钥对应的密钥索引号,根据所述密钥索引号从所述多个解密密钥中确定与该密钥索引号对应的解密密钥。

在对权限信息进行解密的过程中,不仅需要解密算法还需要解密密钥,解密密钥作为解密时的参数。不同的解密算法对应的解密密钥的长度不同。例如,在密钥文件长度固定为65536字节时,使用不同的解密算法,该文件包含的密钥数量也不相同。例如使用aes-128作为解密算法时,其解密密钥数量为4096。在使用aes-192作为解密算法时,解密密钥数量为2730。在使用aes-256作为解密算法时,密钥数量可以为2048。可以根据所述时间信息和所述通信交互信息中的至少一种结合解密密钥特征数据运算生成与所述解密密钥对应的所述密钥索引号,其中,所述解密密钥特征数据包括解密密钥个数、解密系数和解密密钥模块版本信息中的至少一个参数。

在使用时间信息确定解密密钥时,可以使用时间信息结合解密密钥特征数据运算得到解密密钥的密钥索引号。例如,可以采用当前时间相对于1970年1月1日的秒数,通过预设公式计算得到解密密钥的密钥索引号。预设公式可以是:(((t/d)^c1)+c2)%s,其中,t为相对于1970.1.1的秒数,d为当前版本的解密密钥模块版本信息,可以为解密密钥预设的更换周期,c1、c2为预设的解密系数,s为解密密钥的个数。当然也可以采用其他运算形式对时间信息运算以确定密钥索引号。利用密钥索引号即找到对应的解密密钥。

在使用通信交互信息确定解密密钥时,通信交互信息的数据字段中可以直接包括解密密钥的密钥索引号,通过数据字段中的密钥索引号,确定对应的解密密钥。

此外,还可以通过通信交互信息中的数据结合解密密钥特征数据运算得到密钥索引号。例如通信交互信息中的数据为x,则可使用公式(((x/d)^c1+c2)%s)计算得到解密密钥的密钥索引号。

在另一种具体实施方式中,不同的解密密钥使用不同的本原多项式和初值生成伪随机序列,根据所述时间信息选择所述伪随机序列中的数据作为所述解密密钥的密钥索引号;或者根据所述通信交互信息中的数据字段选择所述伪随机序列中的数据作为所述解密密钥的密钥索引号。例如,可使用gold序列算法的本原多项式和初值生成伪随机序列,再根据时间信息从伪随机序列中选择一个元素作为解密密钥的密钥索引号。

在另一种具体实施方式中,还可以根据预先确定的密钥文件给出的标志进行解密方法和解密密钥的确定,例如在密钥文件的头部设定解密方法运算标志。

采用上述方法即可确定解密算法以及对应的解密密钥。视频服务端100可以预先配置多种解密算法和多个解密密钥,可以实现丰富的解密组合,提高权限信息解密时的安全性。确定得到的解密算法和解密密钥可以是一个或多个。

例如在使用时间信息确定解密算法时,如果采用当前时间的秒数与3作取余运算,结果为0时选择aes-128作为解密算法。结果为1时选择aes-192作为解密算法。结果为2时选择aes-256作为解密算法。如果仅确定唯一的一个算法作为解密算法,那么可能出现由于系统误差导致确定的解密算法不是正确的解密算法。因此,为了防止舍入误差,可以向前和向后各取一种方法,例如本实施例中计算结果为0,不仅将aes-128作为解密算法,还将前一为2的结果对应的aes-256作为解密算法,同时将后一种为1的结果对应的aes-192也作为解密算法。

上述可以通过相关规则确定密钥索引号后得到对应的解密密钥,在另一种具体实施方式中。所述解密密钥还可以为至少一个数据文件、伪装的数字载体文件或数字媒体文件,此时就需要调用常规密钥接口、伪装读取接口、数字水印提取接口或者数字隐写内容提取接口读取所述至少一个数据文件、伪装的数字载体文件或数字媒体文件得到所述解密密钥的内容。

数据文件可以直接存储解密密钥内容。伪装的数字载体文件,是指本身内容为密钥但文件的外观形式是动态链接库、图像、音频、视频的一个或多个文件。承载密钥的数字媒体文件,是指文件的外观是数字媒体文件,且该数字媒体也可正常展现媒体的内容,解密密钥是用数字水印或者数字隐写的方法存储在数字媒体文件中,直观检测或者用程序检测均难以检测到该媒体文件与常规媒体文件的不同。所述数字媒体文件可以包括以下内容一种或多种的组合:图像,视频,音频。

详细的,本实施例中提及的数字水印或者数字隐写算法,主要包括空域的lsb(leastsignificantbit,最低有效位)和频域的dct(discretecosinetransform,离散余弦变换)算法。对于上述数字媒体的三种类型,lsb和dct算法对于图像均适用,而视频和音频仅适用于dct算法。下面以图像的处理方法为例进行介绍:

1)lsb方法是利用彩色图像rgb空间中,将水印或隐写信息写入rgb字节中最低的比特位中,由于最低比特位为0还是1对于图像的显示效果影响极低,人眼也不可能分辨其差别。由于人眼对rgb空间中的蓝色(b)最不敏感,因此本实施例可以选取b字节进行隐写。具体方法是将嵌入的信息按照比特为单位依次写入图像像素的b字节中。

2)dct方法的原理是数字水印在频域中加入水印或隐写信息时,经过dct变换的图像数据高频部分能量很小,原始图像的大部分能量处于低中频部分,所以通常将水印嵌入到图像的低频系数中,可以满足水印的不可见性和鲁棒性之间的平衡点。在本实施例中,针对彩色图像将图像由rgb空间变换到yiq空间,取出其中的亮度信息y分量,对提取出的y分量进行一级小波分解,取其低频部分并将其分块:对每个字块图像进行dct变换,得到变换后的dc分量,再将水印或者隐写信息写入dc分量,然后进行dct反变换以及小波反变换,得到新的y分量,新的y分量结合原来的iq分量还原到rgb空间。

对于音频和视频,也是利用dct的原理,将信息写入视频和音频的低频分量中,从而达到信息隐藏的目的。

通过确定了解密密钥的文件形式,再利用对应的提取端口得到解密密钥的内容。

上述的解密密钥的确定过程,解密密钥可以是存储在一个独立的文件中,通过上述确定方法就可以从给独立的文件中得到解密密钥。在另一种具体实施方式中,解密密钥还可以存储在多个文件中,只有将所有相关的文件同时读取,才能得到解密密钥的完整内容。

另外,确定得到的解密密钥本身也可以是经过加密的,视频服务端100可以从解密密钥的配置文件中确定密钥存储明密状态的标志,如果密钥为密文形式,则需要使用配置文件中的密钥对读取的解密密钥文件再次进行解密,得到没有经过加密的解密密钥。

步骤s103,利用所述至少一个解密算法和至少一个解密密钥对所述经过加密的权限信息进行至少一次解密,得到解密后的权限信息。

通过前述步骤得到解密算法和解密密钥后,即可使用解密算法和解密密钥进行解密运算,对经过加密的权限信息进行解密,得到解密后的权限信息。

需要说明的是,所述视频客户端200可以将请求的视频数据同所述经过加密的权限信息一并发送至所述视频服务端100。在对权限信息进行解密时,还可以先判断所述视频客户端200请求的视频数据是否为预设的重点视频,若为预设的重点视频,则调用备用解密密钥对所述经过加密的权限信息进行备用解密,得到经过备用解密的权限信息。对经过备用解密的权限信息再进行二次解密。

对视频客户端200请求的视频数据为预设的重点视频对应的权限信息进行解密的情况,可以在进行正常解密的步骤之前。通过对重点视频对应的权限信息的备用解密,得到正常的经过加密的权限信息。在利用上述确定得到的解密算法和解密密钥进行正常的解密,得到解密后的权限信息。

重点视频是指被认为商业或者社会价值较高的视频内容,视频服务端100可以根据预设规则设置视频内容的种类,将某些视频内容归类为重点视频,在视频客户端200请求的视频内容为重点视频时,进行上述的备用解密的过程,得到正常的解密后的权限信息。

步骤s104,判断解密后的权限信息是否符合预设条件,若符合预设条件,所述视频服务端100通过所述视频客户端200的权限验证,以根据视频客户端200的操作为视频客户端200提供视频服务。

权限信息中可以包括加入了明文的密钥文件版本信息。解密后的权限信息中就可以包含该密钥文件版本信息,如果解密出的密钥文件版本信息不是系统规定的格式和内容,则判定解密失败,权限信息鉴别失败。如果密钥文件版本信息是旧版本的内容,视频服务端100可以通知客户端进行加密密钥更新,如果更新成功,则视频客户端200使用新的加密密钥对权限信息再进行加密后组成新的权限信息,视频服务端100再对新的权限信息进行解密后再进行权限鉴别。如果加密密钥更新失败,则认为视频客户端200的权限信息鉴别失败。

此外,所述解密后的权限信息还可以包括所述视频客户端200的客户端代码、客户端版本信息、加密密钥的摘要信息及所述视频客户端200发送的视频服务端100的时间信息中的至少一种,解密后的权限信息符合预设条件可以根据以下几种方式确定:

确定所述客户端代码符合预设的系统规定;

确定所述视频客户端200的客户端版本信息与所使用的加密密钥文件对应的终端版本一致;

确定所述加密密钥的摘要信息与所述视频服务端100的解密密钥文件的摘要信息一致;以及

确定所述视频客户端200发送的视频服务端100的时间信息与所述视频服务端100的当前时间相差在预设时长以内。例如可以预先设定,如果所述视频客户端200发送的视频服务端100的时间信息与所述视频服务端100的当前时间相差在3秒以内,则认为权限信息鉴别成功。

如前所述,为了防止舍入误差,可以得到多个解密算法和对应的多个解密密钥,使用多个解密算法和多个解密密钥可以得到多个解密后的权限信息。如果多个解密后的权限信息中有一个通过了上述的判定,则认为该权限信息是正确的权限信息。

如果视频客户端200发送的权限信息通过了视频服务端100的权限鉴别,则视频服务端100可以为视频客户端200提供正常的视频服务。如果权限鉴别失败,视频服务端100可以拒绝提供视频服务或者可以提供降低码率的视频服务或者提供限制时长的视频服务。

在另一种具体实施方式中,所述视频服务端100还可以根据预设更新规则更新所述解密算法和解密密钥。可以理解的是,视频服务端100可以预先设定一更新时间点,在该更新时间点对解密算法和解密密钥进行更新。例如,可以在每月1日的零点从解密密钥文件库中随机选取几种解密密钥更新到当前使用的密钥文件中。同时可以更新密钥版本信息和密钥文件摘要信息。同时,可以当前时间为随机数种子,随机选取几个新的解密密钥,并补充至解密密钥文件库中。通过对解密算法和解密密钥的更新,可以进一步提升系统的安全性,提高被破解的难度。

本发明实施例提供的网络视频访问的权限鉴别方法,可以通过对视频客户端200发送的权限信息进行鉴别,通过预先的规则确定对应的解密算法和解密密钥,实现对权限信息的解密,并在解密后的权限信息符合预设条件时,确定权限鉴别成功。权限鉴别过程中,不需要用户预先使用视频客户端200进行账号注册,提升了用户体验。同时,权限信息的解密需要同时使用正确的解密算法和解密密钥才能得到正确的权限信息,避免了通信过程中被抓包分析破解的风险。并且,解密算法和解密密钥相互独立,即使在两者之一被破解的情况下,仍能通过另一个的保护策略保证系统的安全性。

第二实施例

上述网络视频访问的权限鉴别方法是应用于视频服务端100的鉴别方法,相应的视频客户端200还需要对权限信息进行加密。本发明实施例还提供了一种权限加密方法,应用于视频客户端200,如图4所示,该方法包括以下步骤。

步骤s201,根据预设规则确定权限信息对应的至少一个加密算法和至少一个加密密钥。

如前所述,视频客户端200在向视频服务端100发送视频服务请求时,可以将该视频客户端200对应的权限信息发送至视频服务端100。并且发送的权限信息是经过加密的。

详细的,所述视频客户端200配置有多个加密算法和多个加密密钥,所述预设规则包括时间信息和通信交互信息中的至少一种,如图5进行加密的步骤具体包括以下子步骤。

子步骤s211,根据所述时间信息和通信交互信息中的至少一种确定加密算法,其中,所述时间信息为所述视频服务端100根据当前时刻信息而确定的时间值。

视频服务端100可以根据时间信息和通信交互信息进行解密算法的确定,相应的,视频客户端200也可以根据时间信息和通信交互信息进行加密算法的确定。

视频客户端200在根据时间信息确定加密方法时,可以使用当前时间的秒数与3作取余运算,如果结果为0则选择aes-128作为加密算法,如果结果为1则选择aes-192作为加密算法,如果结果为2则选择aes-256作为加密算法。当然也可以对时间信息采用其他形式的运算确定选择哪一种算法作为加密算法。

在使用通信交互信息确定加密算法时,通信交互信息可以是视频服务端100与视频客户端200之间通信的相关信息。通信交互信息可以包括权限鉴别前,视频服务端100发送至视频客户端200的初始权限信息、视频客户端200启动后与视频服务端100的连接握手信息、视频客户端200与视频服务端100相互发送的检测或数据信息等等,并且通信交互信息中可以包括可执行程序等程序语言。

在使用初始权限信息中包含的信息进行加密算法的确定时,所述视频服务端100可以预先发送初始权限信息(a_auth)至视频客户端200,该初始权限信中a_auth中可以包含以下内容:

i.视频服务端100获取的时间信息;

ii.权限信息逻辑循环移位标志,即将权限信息进行循环左移或者循环右移运算后再加密处理;

iii.权限信息数学加减标志,即将权限信息与某数字进行数学加减运算后再加密处理;

iv.版本及其它数据信息。

视频客户端200可以通过上述初始权限信息中展示的指令进行加密算法的确定。

此外,视频客户端200还可以预先建立通信交互信息与加密算法的对应关系,通过确定的通信交互信息即可确定对应的加密算法。例如可以根据通信交互信息中包含的预设的固定数据确定对应的加密算法。例如,如果某一固定数据的数值为0,则确定aes-128为加密算法。如果该固定数据的数值为1,则确定aes-192为加密算法。如果该固定数据的数值为2,则确定aes-256为加密算法。

此外,通信交互信息中还可以包括有包含所述加密算法的可执行程序。此时,在确定加密算法时,可以调用与所述可执行程序对应的解释器执行所述可执行程序中的至少一部分,可以将该可执行程序作为加密算法的部分或全部进行执行。可执行程序可以为python、lua、perl等脚本语言的语句,视频服务端100可以调用与脚本语言对应的解释器执行可执行程序中的语句,获得该可执行程序对应的语句信息,将该语句信息作为所述加密算法的至少一部分。

例如,执行后得到的语句信息为将权限信息与预先设置的初始权限信息拼接后与加密密钥作循环异或运算。就可以将这一条信息的动作作为加密算法的动作。或者,执行后得到的语句信息为将语句本身的数据信息作为加密算法,此时,就可以将该语句作为整体的加密方法使用。

通过上述方法可以确定对应的加密算法。可以理解的是,视频服务端100在预先对加密算法和加密密钥进行配置时,可以为加密密钥配置更换周期d,并可以c1、c2为预设的加密系数,加密系数可以作为进行相关加密运算的预设参数。

子步骤s212,根据所述时间信息和通信交互信息中的至少一种确定所述加密密钥对应的密钥索引号,根据所述密钥索引号从所述多个加密密钥中确定与该密钥索引号对应的加密密钥。

权限信息的加密不仅需要加密算法,还需要加密密钥。由于加密密钥的数量较多,每个加密密钥可以预先配置一个对应的密钥索引号,根据加密密钥的密钥索引号,就可以找到对应的加密密钥。不同的加密算法对应的加密密钥的长度不同。例如,在密钥文件长度固定为65536字节时,使用不同的解密算法,该文件包含的密钥数量也不相同。例如使用aes-128作为加密算法时,其解密密钥数量为4096。在使用aes-192作为加密算法时,解密密钥数量为2730。在使用aes-256作为加密算法时,密钥数量可以为2048。加密密钥可以配置有加密密钥特征数据,该加密密钥特征数据包括加密密钥个数、加密算法系数和加密密钥模块版本信息中的至少一个参数。

在使用时间信息确定加密密钥的密钥索引号时,可以使用时间信息结合解密密钥特征数据运算得到解密密钥的密钥索引号。例如,可以采用当前时间相对于1970年1月1日的秒数,通过预设公式计算得到解密密钥的密钥索引号。预设公式可以是:(((t/d)^c1)+c2)%s,其中,t为相对于1970.1.1的秒数,d为当前版本的解密密钥模块版本信息,可以为解密密钥预设的更换周期,c1、c2为预设的解密系数,s为解密密钥的个数。时间信息一旦确定,就可以实现加密算法和加密密钥的唯一确定。

在使用通信交互信息确定加密密钥时,通信交互信息的数据字段中可以直接包括加密密钥的密钥索引号,通过数据字段中的密钥索引号,确定对应的加密密钥。

此外,还可以通过通信交互信息中的数据结合加密密钥特征数据运算得到密钥索引号。例如通信交互信息中的数据为x,则可使用公式(((x/d)^c1+c2)%s)计算得到加密密钥的密钥索引号。

不同的加密密钥使用不同的本原多项式和初值生成伪随机序列,可以通过通信交互信息中的数据结合密钥模块的本原多项式和初值生成伪随机序列得到密钥索引号,例如,使用gold序列算法将本原多项式和初值伪随机序列,通信交互信息中的数据指明伪随机序列中的元素作为密钥索引号。

在另一个可选的实施例中,还可以根据加密密钥对应的密钥文件给出的标志进行加密方法和密钥的确定,例如在加密密钥的密钥文件头部设定加密算法运算标志。根据该加密算法运算标志确定对应的加密算法和加密密钥。

在另一种具体实施方式中,所述加密密钥还可以为至少一个数据文件、伪装的数字载体文件或数字媒体文件,此时就需要调用常规密钥接口、伪装读取接口、数字水印提取接口或者数字隐写内容提取接口读取所述至少一个数据文件、伪装的数字载体文件或数字媒体文件得到所述加密密钥的内容。

加密所使用的加密密钥可以是存储在客户端200的文件,也可以是从视频服务端100发送的更新信息或数据消息中获取,或者视频服务端100将加密密钥用数字水印或数字隐写算法加入在重点视频播放前的广告画面、广告视频或音频中,视频客户端200在播放相关广告内容的同时,可以从广告中用数字水印或数字隐写算法提取加密密钥。详细的,可以参见上述通过常规密钥接口、伪装读取接口、数字水印提取接口或者数字隐写内容提取接口确定解密密钥的过程,这里不再赘述。

上述的加密密钥的确定过程,加密密钥可以是存储在一个独立的文件中,通过上述确定方法就可以从给独立的文件中得到加密密钥。在另一种具体实施方式中,加密密钥还可以存储在多个文件中,只有将所有相关的文件同时读取,才能得到加密密钥的完整内容。

确定得到的加密密钥本身也可以是经过加密的,视频客户端200可以从加密密钥的配置文件中确定密钥存储明密状态的标志,如果密钥为密文形式,则需要使用配置文件中的密钥对读取的加密密钥文件进行解密,,得到解密后的加密密钥。

步骤s202,利用所述至少一个加密算法和至少一个加密密钥对所述权限信息进行至少一次加密,得到加密后的权限信息。

步骤s203,将所述加密后的权限信息发送至视频服务端100。

在通过上述方法确定了对应的加密算法和加密密钥后,即可按照加密算法的运算方式,结合加密密钥对权限信息进行加密。并将加密后的权限信息传输至视频服务端100,由视频服务端100对加密后的权限信息再进行解密,以继续进行权限鉴别。

视频客户端200可以生成密钥文件的摘要,将客户端代码、客户端终端版本信息、密钥文件摘要信息以及获取的当前视频服务端100时间信息组成权限信息,权限信息可以按照预先得到的初始权限信息a_auth中的加密方法进行运算后与a_auth进行拼接,对拼接后的信息使用确定的加密方法加密生成密文信息b_auth,b_auth中再加入明文的加密密钥文件版本信息生成加密后的权限信息c_auth,其后将c_auth加入到视频播放的http请求中发送到视频服务端100。加密密钥文件的摘要可以是密钥文件的第1024–1027、1666-1669、10000-10003、28128-28131位组成的16个字节。当然也可以是其他字节信息。

在另一种具体实施例方式中,所述权限加密方法还可以包括根据预设更新规则对所述加密算法和加密密钥进行更新。

在本实施例中,直接更新视频客户端200的应用程序可以实现视频客户端200加密算法和加密密钥的更新,视频服务端100发送加解密模块103更新信息或数据消息至视频客户端200,进行加密算法和加密的更新。

客户端密钥模块的更新,密钥文件可通过服务端发送的密钥模块更新信息或数据消息,进行密钥文件的更新,同时更新配置文件中的版本信息。在一个可选的实施例中,可将更新的密钥文件用数字隐写方法放入客户端启动画面中的图像、音频或者视频中。当客户端启动时,在与服务端的连接握手信息中加入当前客户端密钥版本信息;若有新的密钥版本,服务端将新密钥文件用数字隐写方法加入到客户端启动画面中并发送到客户端,客户端在展示启动画面的同时进行密钥的更新工作。

本发明实施例提供的权限加密方法,通过视频客户端200使用加密算法和加密密钥可以对权限信息进行加密,使得发送至视频服务端100的权限信息是经过加密的,即使在传输过程中被截取,被破解的难度也很大,提高视频服务的安全性。加密算法和加密密钥相互独立,即使在两者之一被破解的情况下,仍能通过另一个的加密策略保证系统的安全性。在加密过程中,无需用户输入账户名、密码或其他身份信息,避免造成信息泄露,进一步提高视频服务的安全性。同时,无需用户进行账户注册的步骤,提升用户体验。

第三实施例

本发明实施例还提供了一种权限鉴别装置10,应用于视频服务端100,如图6所示,该权限鉴别装置10包括信息获取模块101、解密算法及密钥确定模块102、解密模块103和鉴别模块104。

信息获取模块101,用于接收视频客户端200发送的经过加密的权限信息;

解密算法及密钥确定模块102,用于根据预设规则确定所述经过加密的权限信息对应的至少一个解密算法和至少一个解密密钥;

解密模块103,用于利用所述至少一个解密算法和至少一个解密密钥对所述经过加密的权限信息进行至少一次解密,得到解密后的权限信息;

鉴别模块104,判断解密后的权限信息是否符合预设条件,若符合预设条件,在视频服务端100通过所述视频客户端200的权限验证,以根据视频客户端200的操作为视频客户端200提供视频服务。

详细的,所述视频服务端100包括多个解密算法和多个解密密钥,所述预设规则包括时间信息和通信交互信息中的至少一种,其中,所述解密算法及密钥确定模块102根据预设规则确定该经过加密的权限信息对应的至少一个解密算法和至少一个解密密钥的方法包括:

根据所述时间信息和通信交互信息中的至少一种确定解密算法,其中,所述时间信息为所述视频服务端100根据当前时刻信息而确定的时间值;

根据所述时间信息或通信交互信息中的至少一种确定所述解密密钥对应的密钥索引号,根据所述密钥索引号从所述多个解密密钥中确定与该密钥索引号对应的解密密钥。详细的,可以参见上述步骤s121和步骤s122的描述。

进一步地,所述解密算法及密钥确定模块102根据所述时间信息或所述通信交互信息中的至少一种确定所述解密密钥对应的密钥索引号的方法包括:

根据所述时间信息和所述通信交互信息中的至少一种结合解密密钥特征数据运算生成所述密钥索引号,其中,所述解密密钥特征数据包括解密密钥个数、解密系数和解密密钥模块版本信息中的至少一个参数。

进一步地,不同的解密密钥使用不同的本原多项式和初值生成伪随机序列,所述解密算法及密钥确定模块102根据所述时间信息和所述通信交互信息中的至少一种确定所述解密密钥对应的密钥索引号的方法包括:

根据所述时间信息选择所述伪随机序列中的数据作为所述解密密钥的密钥索引号;或者

根据所述通信交互信息中的数据字段选择所述伪随机序列中的数据作为所述解密密钥的密钥索引号。详细的,可以参见上述方法实施例的描述。

进一步地,所述通信交互信息包括包含所述解密算法的可执行程序,所述解密算法及密钥确定模块102根据所述通信交互信息确定对应的解密算法的方法包括:

调用与所述可执行程序对应的解释器执行所述可执行程序中的至少一部分,获得该可执行程序对应的语句信息,将该语句信息作为所述解密算法的至少一部分。详细的,可以参见上述方法实施例的描述。

进一步地,所述解密后的权限信息包括所述视频客户端200的客户端代码、客户端版本信息、加密密钥的摘要信息及所述视频客户端200发送的视频服务端100的时间信息中的至少一种,所述预设条件包括:

客户端代码符合预设的系统规定;

所述视频客户端200的客户端版本信息与所使用的加密密钥文件对应的终端版本一致;

所述加密密钥的摘要信息与所述视频服务端100的解密密钥文件的摘要信息一致;及

所述视频客户端200发送的视频服务端100的时间信息与所述视频服务端100的当前时间相差在预设时长以内。详细的,可以参见上述方法实施例中步骤s104的描述。

进一步地,该权限鉴别装置还包括:解密密钥更新模块,用于根据预设更新规则更新所述解密算法和解密密钥。

进一步地,所述视频客户端200将请求的视频数据同所述经过加密的权限信息一并发送至所述视频服务端100;所述鉴别模块104还用于:

判断所述视频客户端200请求的视频数据是否为预设的重点视频,若为预设的重点视频,调用备用解密密钥对所述经过加密的权限信息进行备用解密,得到经过备用解密的权限信息;

对经过备用解密的权限信息进行二次解密。

进一步地,所述解密密钥为至少一个数据文件、伪装的数字载体文件或数字媒体文件,所述解密模块103在根据预设规则确定所述经过加密的权限信息对应的至少一个解密算法和至少一个解密密钥之后,还用于:

调用常规密钥接口、伪装读取接口、数字水印提取接口或者数字隐写内容提取接口读取所述至少一个数据文件、伪装的数字载体文件或数字媒体文件得到所述解密密钥的内容。

第四实施例

本发明实施例还提供了一种权限加密装置20,应用于视频客户端200,如图7所示,该权限加密装置20包括:加密算法及密钥确定模块201、加密模块202和传输模块203。

加密算法及密钥确定模块201,用于根据预设规则确定权限信息对应的至少一个加密算法和至少一个加密密钥。详细的,可以参见上述步骤s201的描述。

加密模块202,用于利用所述至少一个加密算法和至少一个加密密钥对所述权限信息进行至少一次加密,得到加密后的权限信息。详细的,可以参见上述步骤s202的描述。

传输模块203,用于将所述加密后的权限信息发送至视频服务端100。详细的,可以参见上述步骤s203的描述。

进一步地,所述视频客户端200配置有多个加密算法和多个加密密钥,所述预设规则包括时间信息和通信交互信息中的至少一种,其中,所述加密算法及密钥确定模块201根据预设规则确定权限信息对应的至少一个加密算法和至少一个加密密钥的方法包括:

根据所述时间信息和通信交互信息中的至少一种确定加密算法,其中,所述时间信息为所述视频服务端100根据当前时刻信息而确定的时间值;

根据所述时间信息和通信交互信息中的至少一种确定所述加密密钥对应的密钥索引号,根据所述密钥索引号从所述多个加密密钥中确定与该密钥索引号对应的加密密钥。

进一步地,所述加密算法及密钥确定模块201根据所述时间信息和所述通信交互信息中的至少一种确定所述加密密钥对应的密钥索引号的方法包括:

根据所述时间信息和所述通信交互信息中的至少一种结合加密密钥特征数据运算生成所述密钥索引号,其中,所述加密密钥特征数据包括加密密钥个数、加密算法系数和加密密钥模块版本信息中的至少一个参数。

进一步地,不同的加密密钥使用不同的本原多项式和初值生成伪随机序列,根据所述时间信息或所述通信交互信息中的至少一种确定所述加密密钥对应的密钥索引号的步骤包括:

根据所述时间信息选择所述伪随机序列中的数据作为所述加密密钥的密钥索引号;或者

根据或所述通信交互信息中的数据字段选择所述伪随机序列中的数据作为所述加密密钥的密钥索引号。

进一步地,所述通信交互信息包括包含所述加密算法的可执行程序,所述加密算法及密钥确定模块201根据所述通信交互信息确定对应的加密算法的方法包括:

调用与所述可执行程序对应的解释器执行所述可执行程序中的至少一部分,获得该可执行程序对应的语句信息,将该语句信息作为与加密算法的至少一部分。

进一步地,该权限加密装置20还包括:

加密密钥更新模块,用于根据预设更新规则对所述加密算法和加密密钥进行更新。

进一步地,所述加密密钥为至少一个数据文件、伪装的数字载体文件或数字媒体文件,所述加密算法及密钥确定模块201根据预设规则确定权限信息对应的至少一个加密算法和至少一个加密密钥之后,还用于:

调用常规密钥接口、伪装读取接口、数字水印提取接口或者数字隐写内容提取接口读取所述至少一个数据文件、伪装的数字载体文件或数字媒体文件得到所述加密密钥的内容。

第五实施例

本发明实施例还提供了一种权限鉴别系统,再如图1所示,包括视频服务端100和视频客户端200,其中,所述视频客户端200包括:

加密算法及密钥确定模块201,用于根据预设规则确定权限信息对应的至少一个加密算法和至少一个加密密钥;

加密模块202,用于利用所述至少一个加密算法和至少一个加密密钥对所述权限信息进行至少一次加密,得到加密后的权限信息;及

传输模块203,用于将所述加密后的权限信息发送至视频服务端100;

所述视频服务端100包括:

信息获取模块101,用于接收视频客户端200发送的经过加密的权限信息;

解密算法及密钥确定模块102,用于根据预设规则确定所述经过加密的权限信息对应的至少一个解密算法和至少一个解密密钥;

解密模块103,用于利用所述至少一个解密算法和至少一个解密密钥对所述经过加密的权限信息进行至少一次解密,得到解密后的权限信息;及

鉴别模块104,判断解密后的权限信息是否符合预设条件,若符合预设条件,在视频服务端100通过所述视频客户端200的权限验证,以根据视频客户端200的操作为视频客户端200提供视频服务。

视频服务端100的解密模块103在本实施例中可以包括动态链接库文件、配置文件及脚本文件。

其中,动态链接库文件可以包含了解密算法,还可以完成数字水印加入和提取算法的实现,数字隐写算法的实现,以及密钥生成方法的实现,可以在rhel7.0中的以so结尾的文件形式;

配置文件可以包含了对于不同平台各版本客户端加解密参数的存储,在本实施例中即加解密系数c1、c2和当前版本密钥更换周期d。包含了每个密钥文件的版本信息和摘要信息,以利于密钥文件的快速索引。包含了每个密钥文件的明密文状态的存储,如果是密文形式存储的密钥文件,还包含了解密算法对应的128位密钥;在本实施例中以xml文件形式存储。

脚本文件可以在本实施例中以python脚本文件形式存储。包含以下功能:

判别客户端类别、版本以及所采用加解密方法的功能;

具有对客户端发送的权限信息预处理功能,判别权限信息中的密文部分,在动态链接库文件解密完成后,进行客户端权限信息的验证;

密钥更新功能,按照一定的预定规则从备用密钥文件中读取密钥更新当前密钥文件中各个终端最新版本的密钥;

根据客户端的发送的信息,通知客户端更新密钥,并以明文、或者调用动态链接库将密钥转换为密文或者数字隐写形式,向客户端发送新密钥文件;

辅助密钥生成功能,完成一次密钥更新后,调用动态链接库生成一组新密钥,并在备用密钥文件中进行添加。

视频服务端100的解密算法及密钥确定模块102以rhel7.0下数据文件或者配置文件的形式存储,由于支持多种客户端终端,而每个版本或终端都使用不同的密钥文件,因此存在多个不同的密钥文件,在本实施例中密钥文件以xml文件形式存储,每种终端占用一个xml文件,每个xml文件中包含了这种客户端终端当前版本的加密密钥以及当前加密密钥使用的本原多项式和初值,不同的加密密钥的本原多项式和初值不同。此外,解密算法及密钥确定模块102还包含备用密钥文件,备用密钥文件包括用于更新目前密钥的备份密钥以及用于重点视频播放的密钥,备份密钥的数量可以是目前在用终端类型的10倍以上,对前面所述的重点视频播放请求中的权限信息除了进行常规加密外,还需要进行二次加密,二次加密的密钥在播放前传给客户端。重点视频在创建时,由系统随机分配一个二次加密密钥。

视频客户端200可以是android、ios、windows、linux操作系统上运行的应用程序,也可以是浏览器中运行的程序和组件,不同平台调用加密模块202和使用加密密钥文件的机制相同,所不同的是:运行平台不同,采用的加解密方法和参数不同、采用的密钥模块也不同。

加密模块202可以包括加密功能组件以及配置文件。

加密功能组件在本实施例中与网络视频客户端200在系统编译时结合在一起,包含了加密算法的实现,数字水印加入和提取算法的实现,数字隐写算法的实现,以及密钥文件的伪装读取接口。

配置文件可以包含加密密钥文件的存储形式,即数据文件伪装的数字载体文件或者承载密钥的数字媒体文件。本终端版本对应的加解密系数c1、c2和当前版本密钥更换周期d。还可以包含了密钥文件的版本信息。以及包含加密密钥文件的明密文状态的存储,如果是aes密文形式存储的密钥,还可以包含了aes算法对应的128位密钥。在本实施例中以xml文件形式存储。

本发明实施例提供了一种权限鉴别系统,通过视频客户端200对权限信息的加密,再通过视频服务端100对加密后的权限信息的解密,可以避免通过抓包分析破解的风险。并且加密算法、加密密钥、解密算法、解密密钥都是相互独立的,在其中之一被破解的情况下,仍能通过其他的保护策略保证系统的安全性。权限鉴别过程中,无需用户进行账户注册等步骤,提升用户使用体验。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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