本发明涉及数据传输技术,特别涉及数据的授权传输及接收端(或称为终端)合法性判断技术,具体而言,涉及流媒体数据授权播放及终端确认方法。
背景技术
随着通信技术的日益发展,特别是光纤通信技术的发展,数字电视得到迅速推广,使用数字电视的用户也逐渐增多。其中,机顶盒(数字视频变换盒)是使用数字电视所需的设备之一。然而,机顶盒的接入身份盗用现象屡见不鲜,为维护消费者及服务提供方的权益,现有技术提供了一些确认机顶盒是否合法的方案。现在主要使用的确认机顶盒合法性的方案为摘要确认方案。
摘要确认(digestauthentication)用来提供比基础确认更高级别的安全。在rfc2617中有关于它的描述,摘要确认是一种基于挑战-应答模式的确认模型。
摘要确认与基础确认的工作原理很相似,用户先发出一个没有确认证书的请求,web服务器回复一个带有www-authenticate头的响应,指明访问所请求的资源需要证书。但是和基础确认发送以base64编码的用户名和密码不同,在摘要确认中服务器让客户选一个随机数(称作“nonce”),然后浏览器使用一个单向的加密函数生成一个消息摘要(messagedigest),该摘要是关于用户名、密码、给定的nonce值、http方法,以及所请求的url。消息摘要函数也被称为散列算法,是一种在一个方向上很容易计算,反方向却不可行的加密算法。与基础确认对比,解码基础确认中的base64是很容易办到的。在服务器口令中,可以指定任意的散列算法。在rfc2617中,描述了以md5散列函数作为默认算法。
在实现上述确认过程中,存在如下问题:
该方案对身份进行确认的过程中使用摘要算法生成摘要,所述摘要算法的输入在摘要信息发送前的网络交换报文中都有与之对应的明文信息,摘要算法容易被窃取,从而降低了身份确认的准确性。并且摘要算法无法更新,一旦被破解,真正用户的接入身份就会被一直盗用,降低了接入身份确认的安全性。
在通信、数据传送、内容保护等领域,接收端身份确认和密钥协商也是信息安全的基础。身份确认的目的就是要确认参者的身份,从而为后续的数据传输、安全通信以及赋予相关权限做好准备。
身份确认从技术上可以分为:基于口令的确认、基于对称密钥的确认以及基于公钥体制的确认三类。从实现方式上可以分为:有第三方参与的确认和没有第三方参与的确认。基于口令的确认目前在互联网、金融等方面由于其简单性还在广泛使用,比如电子邮箱账户的密码登陆、银行卡的密码等。基于对称密钥的确认目前也在广泛使用,比如ic卡内部确认和外部确认方式。这两种方式的特点就是简单实用,但是安全性不高,很容易被破解,只能在安全性要求不高的场合,或者在安全性要求高的场合辅之以其它的方法进行安全保证才能实用。随着对安全性要求的增加,目前在安全性要求高的场合一般都采用了公钥体制的确认,典型的就是pki(publickeyinfrastructure)机制,目前在互联网、金融、电子商务等领域已经得到了大量的使用。基于公钥体制的确认,行业内通常采用的公钥算法包括以美国麻省理工学院三位学者名字命名的rsa(rivest-shamir-adleman)加密算法和椭圆加密算法(ellipsecurvecryptographyecc)。其特点是安全性高,缺点是运算复杂,耗用资源多,小系统难以实现,芯片实现更加困难。此外,公钥的确认一般采用数字证书的方式来确认对方身份,在确认的过程中需要交换证书,并且需要对对方的证书的合法性进行验证,这将耗费一定的数据带宽,也耗用较大的计算资源,在流媒体授权播放领域的应用受到极大的限制。
技术实现要素:
本发明的主要目的在于提供一种流媒体数据授权播放及终端确认方法,以解决现有技术数据传输的安全性问题以及终端确认过程中加密计算复杂、不利于小系统实现的问题。
为了实现上述目的,根据本发明具体实施方式的一个方面,提供了一种流媒体数据授权播放及终端确认方法,其特征在于,包括以下步骤:
s1、播放端将其公钥传送给终端,终端将其公钥传送给播放端;
s2、播放端计算va:
终端计算vb:
s3、终端将vb传送给播放端,播放端收到vb后,以va、vb作为判断依据,若va=vb则终端合法,继续后续步骤;否则认为终端非法,终止后续步骤;
s4、终端以vb为加密密钥对其身份信息进行加密,并将加密身份信息传送给播放端;
s5、播放端以va为解密密钥对接收的加密身份信息进行解密得到终端的身份信息;
s6、播放端向具有该身份信息的终端传送流媒体数据和/或开放相关服务;
其中,c为相关系数;r为还原系数;m为模量;c、r、m均为正整数;
进一步的,所述n≥20。
进一步的,步骤s2中,播放端收到终端公钥后,先判断其是否合法,是则继续后续步骤,否则终止后续步骤。
进一步的,
进一步的,所述播放端为流媒体服务器。
进一步的,还包括步骤s7:流媒体服务器更新终端的公钥和私钥。
进一步的,所述终端为机顶盒。
进一步的,所述身份信息至少包括机顶盒的软件版本信息、用户序列号和机顶盒的ip地址。
进一步的,步骤s1还包括,播放端产生一个随机数ra,并传送给终端;
步骤s2还包括,播放端对ra、va进行加密运算得到rva,终端对ravb进行相同的加密运算得到rvb;
步骤s3具体为:终端将rvb传送给播放端,播放端收到rvb后,以rva、rvb作为确认的根据,两者相同则确认成功,否则确认失败;
步骤s4具体为:终端以rvb为加密密钥对其身份信息进行加密,并将加密身份信息传送给播放端;
步骤s5具体为:播放端以rva为解密密钥对接收的加密身份信息进行解密得到终端的身份信息。
进一步的,所述加密运算包括hash运算或hmac运算。
本发明及其进一步改进的技术方案具有的有益效果是:
终端可以获取的公钥和私钥对不能够直接组成线性方程组,因此没有办法直接破解本发明的加密方法,安全性高;
公钥和私钥的选取,可以采取一定的措施,比如保持一定的线性相关性,则本发明的加密方法理论上很难破解;
选择合适的参数可以进一步简化计算,使实现更简单,可以进一步减小加密芯片规模小,非常有利于降低成本。比如,n维向量中的每个成员选为2bit,则va、vb通过加法运算即可得到。
下面结合附图及具体实施方式对本发明做进一步的说明。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是实施例的系统配置结构示意图;
图2是实施例的终端确认流程示意图。
其中:
10为播放端;
20为终端;
p1为第一步;
p2为第二步
p3为第三步;
p4为第四步
p5为第五步;
p6为第六步
p7为第七步;
p8为第八步
p9为第九步。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的具体实施方式、实施例以及其中的特征可以相互组合。现将参考附图并结合以下内容详细描述本发明。
为了使本领域技术人员更好的理解本发明方案,下面将结合本发明具体实施方式、实施例对本发明具体实施方式、实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的具体实施方式、实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施方式、实施例,都应当属于本发明保护的范围。
首先,向播放端和终端发放公钥以及私钥并设定相关系数c、还原系数r、模量m和偏转向量
作为流媒体服务器的播放端除了有一对配套的公钥
播放端也可以具有密钥库,保存或生成相关系数c、还原系数r、模量m以及其他终端的公钥
密钥体系中,通常私钥要求持有方秘密保存,不可向外泄露。
上述公钥和私钥以及偏转向量
本发明播放端对终端的确认过程如下:
步骤1、播放端将其公钥
步骤2、播放端收到终端公钥
在该步骤中,播放端收到终端公钥
步骤3、终端将vb传送给播放端。播放端收到vb后,以va、vb作为判断依据,若va=vb即同余式:
步骤4、终端通过确认后,以vb为加密密钥对其身份信息进行加密,并将加密身份信息传送给播放端。
步骤5、播放端以va为解密密钥对接收的加密身份信息进行解密得到终端的身份信息。
步骤6、由于终端的身份信息包括软件版本信息、用户序列号和ip地址,播放端向具有该ip地址的终端传送流媒体数据,或者向具有该用户序列号的终端开放相关服务。这里相关服务通常是终端用户要求提供的服务产品,如获取一定权限、查询账户信息等。
实施例1
本例以流媒体服务器作为播放端,终端就是常用的机顶盒。
本例系统配置结构如图1所示,播放端通过通讯网络与k(k≥1)个终端连接,可以向这些终端发起确认、传输密钥和数据等。
本例播放端对终端的确认过程是一种单向确认过程。单向确认是指播放端确认终端,而终端不需要确认播放端的情况。这种合法性确认过程可以极大降低终端的加密运算量,大大简化终端系统结构,非常适合流媒体服务器对终端机顶盒的确认场景。
本例播放端对终端的确认流程如图2所示,包括:
第一步p1
播放端在自己的密钥库中设定相关系数c、还原系数r、模量m和偏转向量
播放端从自己的密钥库中给每个终端分配一对公钥
播放端的密钥库必须保密,终端的私钥也必须保密。
每个终端的公钥/私钥对均不一样,这样可以实现对某个指定终端的注销。
每个终端将公钥/私钥对保存在设备中,其中私钥要求秘密保存,不允许其它终端访问。公钥可以让其它终端访问。
设播放端的公钥为
上述所有公钥和私钥以及偏转向量
第二步p2
播放端发起确认请求,产生一个随机数ra,并和其公钥
该步骤中,由于ra的随机性,可以使每次确认过程产生的随机数ra不同,进一步增加了破译的难度,加强了保密性。
第三步p3
终端获得确认请求,在接收到播放端的随机数ra和公钥
第四步p4
播放端收到终端发送的公钥
第五步p5
播放端
计算va:
式中,
对ra、va进行加密运算得到rva。这里加密运算可以采用hash运算、hmac运算等加密算法。
终端
计算vb:
式中,
对ravb进行相同的加密运算得到rvb。
这里多了一次加密运算,使得认证参数rvb保密性更强,传输过程中被截获破译的难度更大,而终端增加的运算量却非常有限。
第六步p6
终端将rvb传送给播放端,播放端收到rvb后,以rva、rvb作为确认的根据,两者相同则确认成功,否则确认失败。
第七步p7
终端以rvb为加密密钥对其身份信息进行加密,并将加密身份信息传送给播放端。
第八步p8
播放端以rva为解密密钥对接收的加密身份信息进行解密得到终端的身份信息。
第九步p9
播放端根据解密得到的终端身份信息,向该合法终端传送流媒体数据,或者向该合法终端开放相关服务。
本例中,
本例中,为了加强保密性,作为播放端的流媒体服务器,可以定期或不定期对机顶盒的公钥
作为播放端的流媒体服务器也可以设定
明显的,流媒体服务器也可以定期或不定期变换加密参数,如相关系数c、还原系数r、模量m以及偏转向量
明显的,流媒体服务器也可以定期或不定期变换对ra、va进行加密运算的加密算法,并把新的加密算法通知终端机顶盒。
由于密钥更新、参数变换、加密算法等主要在流媒体服务器中实现,而作为播放端的流媒体服务器通常由有关权威机构拥有,并且具有强大的系统功能和数据处理能力,本发明这种配置方式,既具有强大的保密性,又可以减少机顶盒的运算量,简化机顶盒系统结构,非常适合一台流媒体服务器+k个机顶盒的应用场景。