一种数字内容加密与解密方法和设备的利记博彩app
【专利摘要】本发明实施方式提供了数字内容加密与解密方法和设备。该方法包括:向服务器发送请求,所述请求包含客户端的标识信息和数字内容的标识信息;接收服务器响应于所述请求而发送的使用第一密钥采用第一加密方法进行加密的、与数字内容的标识信息对应的数字内容以及利用客户端的标识信息、采用第二加密方法对第一密钥进行加密而获得的第二密钥;利用客户端的标识信息、采用第二解密方法对接收的第二密钥进行解密处理,获得第一密钥;利用获得的第一密钥、采用第一解密方法对使用第一密钥进行加密的数字内容进行解密,以获得解密后的数字内容。本发明的方法使得密钥不易被破解,从而显著地提高了数字内容传输的安全性,为用户带来了更好的体验。
【专利说明】一种数字内容加密与解密方法和设备
【技术领域】
[0001]本发明的实施方式涉及网络【技术领域】,更具体地,本发明的实施方式涉及一种数字内容加密与解密方法和设备。
【背景技术】
[0002]本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]随着计算机网络技术的发展,数字内容服务得到了广泛的发展。例如,用户可以使用客户端观看服务器提供的视频、音频等数字内容,有些数字内容是需要付费的,只有付费
的用户才能够观看。如何提高数字内容在网络传输的安全性,保护数字内容版权使之不被免费共享成为一个亟待解决的问题。
[0004]现有技术中,存在一种方法,由服务器端利用实时获取的密钥对付费视频进行加密,当客户端获取到加密后的付费视频后,再利用对应的密钥进行解密。
[0005]然而,这种方法由于需要服务器端实时获取密钥,并针对不同用户实时地对付费视频进行加密,因此对服务器的处理性能要求非常高,当用户较多时,则会产生服务器负载过重的问题。
[0006]现有技术还存在一种方法,服务器可以预先使用一个唯一的密钥对付费视频进行加密,当接收到客户端的请求时,再将加密后的付费视频发送给客户端,由客户端使用对应的密钥进行解密。
【发明内容】
[0007]但是,现有技术中,由于所有的用户即客户端均共用唯一的加密或解密密钥,因此一旦共用的加密或解密密钥被破解,则会严重危害数字内容的传输安全,无法实现有效的版权保护。因此,现有技术的加密方法存在安全性低,无法提供有效版权保护的问题。
[0008]因此在现有技术中,如何提高数字内容在网络传输的安全性,保护数字内容版权使之不被免费共享是非常令人烦恼的过程。
[0009]为此,非常需要一种改进的数字内容加密、解密方法和设备,以提高数字内容传输的安全性,实现有效的版权保护,提高用户体验。
[0010]在本上下文中,本发明的实施方式期望提供一种数字内容加密与解密方法和设备。
[0011]在本发明实施方式的第一方面中,提供了一种方法,应用于客户端,包括:向服务器发送请求,所述请求包含所述客户端的标识信息和数字内容的标识信息;接收服务器响应于所述请求而发送的使用第一密钥、利用第一加密方法进行加密的、与所述数字内容的标识信息对应的数字内容以及利用所述客户端的标识信息、采用第二加密方法对所述第一密钥进行加密而获得的第二密钥;利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥;利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密,以获得解密后的数字内容;其中,所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
[0012]在本发明实施方式的第二方面中,提供了一种方法,应用于服务器,包括:接收客户端发送的请求,所述请求包含所述客户端的标识信息和数字内容的标识信息;响应于所述请求,利用所述客户端的标识信息、采用第二加密方法对第一密钥进行加密以获得第二密钥;其中,所述第一密钥用于所述服务器对与所述数字内容的标识信息对应的数字内容采用第一加密方法进行加密以获得加密后的数字内容;向客户端发送使用第一密钥、采用第一加密方法进行加密的数字内容以及所述第二密钥,以使得所述客户端利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥,利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密以获得解密后的数字内容;其中,所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
[0013]在本发明实施方式的第三方面中,提供了一种客户端设备,包括:第一请求模块,配置用于向服务器发送请求,所述请求包含所述客户端的标识信息和数字内容的标识信息;第一接收模块,配置用于接收服务器响应于所述请求而发送的使用第一密钥、利用第一加密方法进行加密的、与所述数字内容的标识信息对应的数字内容以及利用所述客户端的标识信息、采用第二加密方法对所述第一密钥进行加密而获得的第二密钥;第二解密模块,配置用于利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥;第一解密模块,配制用于利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密,以获得解密后的数字内容;其中所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
[0014]在本发明实施方式的第四方面中,提供了一种服务器设备,包括:第一加密模块,配置用于利用第一密钥、使用第一加密方法对数字内容进行加密,保存加密后的数字内容以及所述第一密钥;第二接收模块,配置用于接收客户端发送的请求,所述请求包含所述客户端的标识信息和数字内容的标识信息;第二加密模块,配置用于响应于所述请求,利用所述客户端的标识信息、采用第二加密方法对与所述数字内容的标识信息对应的数字内容对应的第一密钥进行加密以获得第二密钥;第二发送模块,配置用于向客户端发送使用第一密钥、采用第一加密方法进行加密的数字内容以及所述第二密钥,以使得所述客户端利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥,利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密以获得解密后的数字内容;其中所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
[0015]根据本发明实施方式的数字内容加密与解密方法和设备,利用第一密钥、采用第一加密方法对数字内容进行第一次加密,并在接收到客户端请求后利用客户端的标识信息、采用第二加密方法对第一密钥进行加密生成第二密钥,由于对内容密钥即第一密钥进行了加密处理,因此在传输数字内容以及加密的第一加密密钥的过程中,大大提高了传输的安全性;又由于生成的第二密钥与客户端具有一一对应关系,因此,第二密钥不易被破解,从而显著提高了数字内容传输的安全性,有效保护数字版权,为用户带来了更好的体验。【专利附图】
【附图说明】
[0016]通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
[0017]图1示意性地示出了根据本发明实施方式可以在其中实现的应用场景;
[0018]图2示意性地示出了根据本发明一实施例的数字内容解密方法流程图;
[0019]图3示意性地示出了根据本发明一实施例的数字内容加密方法流程图;
[0020]图4示意性地示出了根据本发明又一实施例的数字内容加密与解密方法流程图;
[0021]图5示意性地示出了根据本发明再一实施例的数字内容加密与解密方法流程图;
[0022]图6示意性地示出了根据本发明另一实施例的数字内容加密与解密方法流程图;
[0023]图7示意性地示出了根据本发明一实施例的客户端设备框图;
[0024]图8示意性地示出了根据本发明另一实施例的服务器设备框图。
[0025]在附图中,相同或对应的标号表不相同或对应的部分。
【具体实施方式】
[0026]下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0027]本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
[0028]根据本发明的实施方式,提出了一种数字内容加密与解密的方法和设备。
[0029]在本文中,需要理解的是,所涉及的术语数字内容表示以数字形式存在的文本、图像、声音等内容,它可以存储在如光盘、硬盘等数字载体上,也可以通过网络等手段传播,但也不局限于此。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
[0030]下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
[0031]发明概沭
[0032]本发明人发现,现有技术中,如果由服务器端利用实时获取的针对特定用户的密钥对付费视频进行加密,当用户较多时,会产生服务器负载过重的问题。如果服务器预先使用一个唯一的密钥对付费视频进行加密,当接收到客户端请求时再将加密后的付费视频发送给客户端,由于所有的用户即客户端均共用唯一的加密或解密密钥,因此一旦共用的加密或解密密钥被破解,则会严重危害数字内容的传输安全,无法实现有效的版权保护。因此,现有技术的加密方法存在安全性低,无法提供有效版权保护的问题。
[0033]针对现有技术中存在的加密付费安全性低、无法有效提高版权包含的问题,本发明提供了一种数字内容加密以及解密方法和设备,利用(例如,预先)第一密钥对数字内容进行第一次加密,并在接收到客户端请求后利用客户端的标识信息对第一密钥进行加密生成第二密钥,由于对内容密钥即第一密钥进行了加密处理,因此在传输数字内容以及加密的第一加密密钥的过程中,大大提高了传输的安全性;又由于生成的第二密钥与客户端具有一一对应关系,因此,第二密钥不易被破解,从而显著提高了数字内容传输的安全性,有效保护数字版权,为用户带来了更好的体验。
[0034]在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
[0035]应用场景总览
[0036]首先参考图1,本发明实施方式可以应用的场景例如可以为如图1所示的场景。其中,客户端设备700 (下文简称客户端)和服务器端设备800 (下文简称服务器)可以交互数据(例如,视频)。
[0037]示例性方法
[0038]下面结合图1的应用场景,参考图2来描述根据本发明示例性实施方式的数字内容解密的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
[0039]如图2所示,为根据本发明一实施方式的数字内容加密方法的流程图,该方法应用于客户端侧,具体例如可以包括:
[0040]S201,向服务器发送请求,所述请求包含所述客户端的标识信息和数字内容的标识息。
[0041]在本发明这一实施例中,图2所示的方法应用于客户端侧,所述客户端可以与服务器交互数据。当客户端向服务器发送数据请求,用于请求将要播放的数字内容以及数字内容的密钥信息。其中,所述请求包含客户端的标识信息和数字内容的标识信息。具体地,客户端的标识信息用于唯一标识客户端,可以是与客户端(或者用户)身份关联的信息,例如客户端ID、与客户端对应的用户ID、用户的邮件地址、用户的手机号码、用户的身份信息、客户端的序列号、MAC地址等,但不局限于此。数字内容的标识信息与数字内容具有一一对应关系,用于唯一标识数字内容,其具体形式可以是多样的,在此不限定。
[0042]进一步地,所述客户端的标识信息和数字内容的标识信息包括在单次请求或两次请求中。也就是说,客户端可以向服务器发送包含数字内容的标识信息以及客户端的标识信息的一次请求,以请求服务器发送数字内容以及与数字内容对应的密钥信息。客户端也可以发送两次请求,分别用于请求数字内容以及与数字内容对应的密钥信息。在这两次请求中,包含的信息可以相同也可以不同,可以根据需要灵活的设置。
[0043]在一种可能的实现方式中,客户端可以先向服务器侧发送密钥请求,所述密钥请求包含客户端的标识信息和数字内容的标识信息,以使得所述服务器在接收到所述密钥请求后,利用数字内容的标识信息确定与所述数字内容的标识信息对应的数字内容,根据确定的数字内容确定与所述数字内容对应的第一密钥,并利用所述客户端标识信息、采用第二加密方法对第一密钥进行加密以生成第二密钥,并向客户端发送所述第二密钥。而后,在接收到服务器发送的第二密钥后,客户端向服务器发送包含数字内容标识信息的数字内容播放请求,以使得所述服务器在接收到所述数字内容播放请求后,向所述客户端发送使用第一密钥和第一加密方法进行加密的数字内容,所述数字内容与客户端发送的数字内容标识信息具有 对应关系。
[0044]在另外一种可能的实现方式中,客户端可以先向服务器发送包含数字内容标识信息的视频播放请求,以使得服务器在接收到所述视频请求后,根据所述数字内容标识信息确定与之对应的数字内容,并向所述客户端发送所述数字内容。服务器发送的所述数字内容是使用第一密钥和第一加密方法进行加密的数字内容。而后,在客户端接收到服务器发送的加密的数字内容后,可以向服务器发送包含客户端标识信息的密钥请求,以使得所述服务器在接收到所述密钥请求后,利用所述客户端标识信息、采用第二加密方法对第一密钥进行加密以生成第二密钥,并向客户端发送所述第二密钥。具体实现时,客户端在发送第二次请求时,可以包含数字内容的标识信息,也可以不包含数字内容的标识信息。
[0045]在另外一种可能的实现方式中,客户端可以向服务器侧仅发送一次请求。具体地,客户端向服务器发送包含客户端标识信息和数字内容标识信息的请求,所述请求用于请求加密后的数字内容以及第二密钥,以使得服务器在接收到所述请求后,利用所述请求中的数字内容标识信息确定对应的数字内容,并确定所述数字内容对应的第一密钥,并利用客户端标识信息、采用第二加密方法对第一密钥进行加密以生成第二密钥,并向客户端发送所述第二密钥以及使用第一密钥、采用第一加密方法进行加密的数字内容。
[0046]当然,本领域技术人员可以理解的是,具体实现时也不局限于上述实现方式,可以根据需要进行灵活地设置。
[0047]S202,接收服务器响应于所述请求而发送的使用第一密钥、利用第一加密方法进行加密的、与所述数字内容的标识信息对应的数字内容以及利用所述客户端的标识信息、采用第二加密方法对所述第一密钥进行加密而获得的第二密钥;所述第二密钥与所述客户端具有对应关系。
[0048]前面提到,服务器侧可以预先使用第一密钥和第一加密方法对数字内容进行加密处理。每部数字内容均有对应的第一密钥,不同的数字内容对应不同的第一密钥。具体实现时,服务器侧使用第一密钥对数字内容进行加密处理使用的第一加密方法可以根据需要选取,例如AES-128方法,在此不限定。
[0049]为了提高数字内容在传输过程中的安全性,避免对数字内容进行加密的第一密钥被明文暴露在传输过程中,因此将服务器传输给客户端的第一密钥(即对数字内容进行加密的内容密钥)也进行加密处理。进一步地,对第一密钥进行加密处理时所使用的加密参数包括客户端的标识信息,从而使得客户端收到的第二密钥与客户端具有对应关系,针对同一数字内容,每个客户端收到的第二密钥均不同,从而降低了第二密钥被破解的风险,提高了数字内容及其密钥在网络传输时的安全性。下面对具体的实现进行说明。
[0050]当接收到客户端的请求后,服务器会利用客户端发送的请求中的数字内容标识确定对应的数字内容,根据确定的数字内容确定与之对应的第一密钥。而后,服务器利用客户端发送的请求中的客户端的标识信息对所述第一密钥进行加密而获得第二密钥,其中,生成的第二密钥与客户端具有一一对应关系。具体实现时,服务器利用客户端的标识信息使用第二加密方法对第一密钥进行加密以获得第二密钥。服务器端使用的第二加密方法与客户端保存的第二解密方法相对应。进一步的,第二加密/解密方法为对称加密算法,例如可以包括DES算法(Data Encryption Algorithm,数据加密算法,一种对称加密算法)、3DES算法(三重DES算法)、TDEA算法(三重数据加密算法)、B1wf ish算法(一种用来加密64Bit长度的字符串的对称加密方法)、RC5算法(一种参数可变的分组密码算法)、IDEA算法(全称为IntelliJ IDEA, 一种基于JAVA的数据加密方法)等,只要是可逆的加密/解密方法均能实现本发明的目的,在此不限定。具体实现时,服务器端利用第二加密方法生成第二密钥时,需要使用的信息至少包括第一密钥和客户端的标识信息。也就是说,生成第二密钥时,月艮务器端输入的信息至少包括第一密钥、客户端的标识信息,然后利用预先约定的第二加密方法进行加密运算,输出为第二密钥。当然,本领域技术人员可以理解的是,为了提高加密方法的安全性和复杂度,服务器生成第二密钥时,输入的信息不限于第一密钥和客户端的标识信息,还可以包括其他信息,在此不限定。由于第二密钥与客户端的标识信息相关联,因此第二密钥与客户端具有一一对应关系。每个数字内容对应不同的第一密钥,由于客户端的标识信息不同,因此,每个客户端对应的第二密钥也各不相同。从而,使得在传输加密后的数字内容以及第二密钥(即加密了的第一密钥)时,每个客户端收到的第二密钥会有不同,因此不易被破获,提高了数字内容传输的安全性。
[0051]S203,利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处
理,获得第一密钥。
[0052]具体实现时,客户端预先从服务器获取并存储了与第二加密方法对应的第二解密方法。在另外一种可能的实现方式中,第二解密方法也可以是随同服务器响应于所述请求发送的数字内容以及第二密钥一起接收的。其中,第二解密方法与第二加密方法相对应。客户端在接收到第二密钥后,利用客户端的标识信息以及第二解密方法对接收的第二密钥进行解密处理,获得解密后的第一密钥。具体实现时,客户端的第二解密方法与服务器端的第一加密方法相对应,是服务器使用的加密方法的逆算法。对应地,客户端输入的信息至少包括第二密钥、客户端的标识信息,然后利用预先约定的第二解密方法进行解密运算,输出的信息为第一密钥。当然,本领域技术人员可以理解的是,为了提高加密方法的安全性和复杂度,服务器生成第二密钥时,输入的信息不限于第一密钥和客户端的标识信息,还可以包括其他信息,因此,客户端进行对应的解密处理时,输入的信息不限于第二密钥和客户端的标识信息,还可以包括与服务器预先约定好的其他信息。
[0053]S204,利用获得的第一密钥、使用第一解密方法对所述使用第一密钥进行加密的数字内容进行解密,以获得解密后的数字内容。
[0054]客户端在对第二密钥进行解密获得第一密钥后,然后利用第一密钥使用第一解密方法对加密的数字内容进行解密,以获得解密后的数字内容。第一解密方法与服务器端的第一加密方法相对应。当客户端获得解密后的数字内容后,即可以播放数字内容,供用户观看。
[0055]需要说明的是,第一解密方法和第二解密方法是预先从服务器获取并存储在所述客户端的,或者是随同服务器响应于所述请求发送的数字内容以及第二密钥一起接收的。在后一种实现方式中,为了提高传输数据的安全性,可以采用多种方法对第一解密方法和第二解密方法进行处理。例如可以包括,服务器和客户端预先约定解密方法对应的标识信息,在服务器向客户端发送第一解密方法和第二解密方法时,只需向客户端发送预先约定的解密方法标识信息即可,以便客户端再接收到解密方法的标识信息后确定对应的解密方法。举例予以说明,例如服务器与客户端预先约定标识I代表AES-128解密算法,2代表DES解密算法等。又如,服务器还可以对发送给客户端的第一解密方法和第二件解密方法进行加密处理。例如,服务器使用公钥对第一解密方法和第二解密方法进行加密处理,客户端使用对应的私钥进行解密。具体的实现方式可以是非常灵活的,在此不进行限定。进一步的,在本发明具体实现时,数字内容只能够在客户端上安装的、已经得到数字内容授权的应用上观看,且针对传输密钥即第二密钥的解密方法可以预先储存在客户端中,为了提高安全性,防止解密方法被破解,因此,本发明的方法进一步包括:对存储在所述客户端的第一解密方法和/或第二解密方法进行防反编译处理,将获得的处理后的第二解密方法和/或第一解密方法保存在客户端中。具体实现时,客户端所采用的防反编译处理的方法可以是多样和灵活的,只要使得攻击者无法通过反编译客户端的程序而获得第二解密方法和/或第一解密方法即可,在此不限定。为了防止攻击者通过反编译的方式获取程序源代码,以获得第一解密方法和/或第二解密方法,客户端所采用的防反编译处理方法例如可以包括,在程序编写时对函数、变量的命名进行特殊处理,例如使用非常规的命名方式,使得反编译软件无法解析非法函数名从而中断对程序的反编译处理,客户端以此达到防反编译、提高安全性的目的。又如,在客户端存储的解密方法中加入特殊的代码,使得攻击者使用反编译软件解码时出错,从而得到防反编译、提高安全性的目的。又如,将SWf (flash格式的文件)文件中的action代码反汇编成元指令代码,并经过一定修改后重编译成swf文件。经过这样处理的swf文件一般不会被反编译软件解析出来,从而达到防反编译的目的。再如,可以在swf的二进制文件的文件头中写入无意义的数据,这样就可以导致破解软件无法正常解析swf,从而达到防反编译的目的。总之,具体的实现方式可以是灵活多样的,也可以多种实现方式结合适用,在此不限定。较佳地,本发明实施例中,还可以进一步包括:将存储在所述客户端的第一解密方法和/或第二解密方法进行混淆处理,将获得的处理后的第二解密方法和/或第一解密方法保存在客户端中。例如可以包括,对客户端保存的第一解密方法和/或第二解密方法在源代码中加入混淆代码,进一步增大攻击者获得解密算法的难度。
[0056]进一步的,服务器和客户端之间可以进行数据通信。当服务器更新第二加密方法和/或第一加密方法时,客户端可以接收服务器发送的更新的第二解密方法(与第二加密方法相对应)和/或第一解密方法(与第一加密方法向对应),并保存更新的第二解密方法和/或第一加密方法。然后,可以利用更新的第二解密方法对服务器发送的第二密钥进行解密处理;并利用更新的第一解密方法对使用第一密钥进行加密的数字内容进行解密处理。这样,由于服务器定期更新加密/解密方法,使得加密/解密方法更加不易破解,提高安全性。
[0057]如图3所示,为根据本发明一实施方式的数字内容解密方法的流程图,该方法应用于服务器侧,具体例如可以包括:
[0058]S301,接收客户端发送的请求,所述请求包含所述客户端的标识信息和数字内容的标识信息。
[0059]在本发明这一实施例中,图3所示的方法应用于服务器侧,所述服务器可以与客户端交互数据。当客户端向服务器发送数据请求,用于请求将要播放的数字内容以及数字内容的密钥信息,服务器接收客户端发送的请求。其中,客户端向服务器发送的所述请求包含客户端的标识信息和数字内容的标识信息。具体地,客户端的标识信息用于唯一标识客户端,可以是与客户端(或者用户)身份关联的信息,例如客户端ID、与客户端对应的用户ID、用户的邮件地址、用户的手机号码、用户的身份信息、客户端的序列号、MAC地址等,但不局限于此。其中,数字内容的标识信息与数字内容具有一一对应关系,用于唯一标识数字内容,其具体形式可以是多样的,在此不限定。
[0060]进一步地,所述客户端的标识信息和数字内容的标识信息包括在单次请求或两次请求中。也就是说,客户端可以向服务器发送包含数字内容的标识信息以及客户端的标识信息的一次请求,以请求服务器发送数字内容以及与数字内容对应的密钥信息。客户端也可以发送两次请求,分别用于请求数字内容以及与数字内容对应的密钥信息。在这两次请求中,包含的信息可以相同也可以不同,可以根据需要灵活的设置。具体实现请参照图2所示实施例的相关实现,在此不赘述。
[0061]S302,响应于所述请求,利用所述客户端的标识信息、采用第二加密方法对第一密钥进行加密以获得第二密钥,所述第二密钥与所述客户端具有对应关系;其中,所述第一密钥用于所述服务器(例如,预先)对与所述数字内容的标识信息对应的数字内容采用第一加密方法进行加密以获得加密后的数字内容,所述第一密钥与所述请求中的数字内容的标识具有对应关系。
[0062]具体实现时,本发明提供的方法进一步包括:服务器使用第一密钥和第一加密方法对数字内容进行加密,保存加密后的数字内容以及所述第一密钥。具体实现时,服务器侧使用第一密钥对数字内容进行加密处理使用的第一加密方法可以根据需要选取,例如AES-128方法,在此不限定。每部数字内容均有对应的第一密钥,不同的数字内容对应不同的第一密钥。
[0063]当服务器接收到客户端发送的请求后,为了提高数字内容在传输过程中的安全性,避免对数字内容进行加密的第一密钥被明文暴露在传输过程中。因此将服务器传输给客户端的第一密钥(即对数字内容进行加密的内容密钥)也进行加密处理。进一步地,对第一密钥进行加密处理 时所使用的加密参数包括客户端的标识信息,从而使得客户端收到的第二密钥与客户端具有对应关系,针对同一数字内容,每个客户端收到的第二密钥均不同,从而降低了第二密钥被破解的风险,提高了数字内容及其密钥在网络传输时的安全性。
[0064]具体实现时,服务器利用客户端发送的请求中的数字内容标识确定对应的数字内容,根据确定的数字内容确定与之对应的第一密钥。然后,利用所述客户端的标识信息使用第二加密方法对第一密钥进行加密以获得第二密钥,服务器生成的第二密钥与客户端具
有--对应关系。其中,所述第二加密方法与客户端保存的第二解密方法相对应。具体
实现时,第二加密/解密方法为对称加密算法,例如可以包括DES算法(Data EncryptionAlgorithm,数据加密算法,一种对称加密算法)、3DES算法(三重DES算法)、TDEA算法(三重数据加密算法)、Blowfish算法(一种用来加密64Bit长度的字符串的对称加密方法)、RC5算法(一种参数可变的分组密码算法)、IDEA算法(全称为IntelliJ IDEA,一种基于JAVA的数据加密方法)等,只要是可逆的加密/解密方法均能实现本发明的目的,在此不限定。具体实现时,服务器端利用第二加密方法生成第二密钥时,需要使用的信息至少包括第一密钥和客户端的标识信息。也就是说,生成第二密钥时,服务器端输入的信息至少包括第一密钥、客户端的标识信息,然后利用预先约定的第二加密方法进行加密运算,输出为第二密钥。当然,本领域技术人员可以理解的是,为了提高加密方法的安全性和复杂度,服务器生成第二密钥时,输入的信息不限于第一密钥和客户端的标识信息,还可以包括其他信息,在此不限定。由于第二密钥与客户端的标识信息相关联,因此第二密钥与客户端具有一一对应关系。每个数字内容对应不同的第一密钥,由于客户端的标识信息不同,因此,每个客户端对应的第二密钥也各不相同。从而,使得在传输加密后的数字内容以及第二密钥(即加密了的第一密钥)时,每个客户端收到的第二密钥会有不同,因此不易被破获,提高了数字内容传输的安全性。
[0065]S303,向客户端发送使用第一密钥、采用第一加密方法进行加密的数字内容以及所述第二密钥,以使得所述客户端利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥,利用获得的第一密钥、使用第一解密方法对所述使用第一密钥进行加密的数字内容进行解密以获得解密后的数字内容,其中所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
[0066]具体实现时,服务器向客户端发送使用第一密钥、采用第一加密方法进行加密的数字内容以及所述第二密钥。其中,使用第一密钥、采用第一加密方法进行加密的数字内容以及第二密钥可以包含在一次或两次发送请求中。也就是说,服务器可以一次性向客户端发送加密的数字内容和第二密钥,也可以分两次分别发送第二密钥。进一步的,服务器可以先向客户端发送第二密钥,再向客户端发送加密的数字内容。这是因为,第二密钥的数据量较小,客户端可以先利用接收的第二密钥进行解密处理获得第一密钥,以用于后续解密数字内容。而数字内容可以分片或者分段发送给客户端,以提高客户端播放速度和流畅性,提高用户体验。具体实现时,所述向客户端发送使用第一密钥进行加密的数字内容包括:向客户端发送至少一个内容分片,所述内容分片是通过将所述数字内容划分成至少一个内容分片而得到。在这种实现方式下,数字内容预先被划分为一个或多个内容分片,服务器可以分多次向客户端发送内容分片。
[0067]进一步地,为了提高数据安全性,防止密钥被破解,服务器还可以实时或定期地更新第一加密方法或者第二加密方法,则本发明提供的方法还可以进一步包括:服务器实时或者定期更新所述第一加密方法;和/或服务器实时或者定期更新第二加密方法,向客户端发送与更新后的第一加密方法和第二加密方法分别对应的第一解密方法和第二解密方法。
[0068]在本发明这一实施例中,服务器利用第一密钥对数字内容进行第一次加密,并在接收到客户端请求后利用客户端的标识信息对第一密钥进行加密生成第二密钥,由于对内容密钥即第一密钥进行了加密处理,因此在传输数字内容以及加密的第一加密密钥的过程中,大大提高了传输的安全性;又由于生成的第二密钥与客户端具有一一对应关系,因此,密钥不易被破解,从而显著提高了数字内容传输的安全性,有效保护数字版权,为用户带来了更好的体验。
[0069]下面参照图4 一图6对本发明的几种具体实现方式进行介绍。需要说明的是,所示实施例以数字内容为视频示例进行说明。第一密钥key*为用于加密视频文件的真实密钥,又可以称为内容密钥,每个视频对应一个key*。第二密钥key#为对第一密钥key*进行加密处理得到的传输密钥,其为每个用户(客户端)在观看视频时从服务器获得的针对其个人的、与用户(或客户端)具有一一对应关系的临时密钥。对于相同的视频,每个用户获得的第二密钥key#均不同。
[0070]参见图4,示意性地示出了根据本发明又一实施例的数字内容加密与解密方法流程图。图4所示的方法例如可以包括:
[0071]S401,服务器使用第一密钥、采用第一加密方法对数字内容进行加密处理。需要注意的是,服务器可以预先进行加密,或者在客户端请求数字内容时、实时进行加密。本发明对此不做限制。例如,为了降低服务器的负载,服务器可以预先使用第一密钥、采用第一加密方法对数字内容进行加密处理,从而提高服务器的处理速度,降低实时加密带来的服务器负载。当然,服务器也可以在客户端请求数字内容时,对数字内容使用第一密钥、采用第一加密方法进行加密处理。服务器使用AES - 128算法、利用第一密钥key*对视频进行加密处理,获得加密后的视频。
[0072]S402,客户端向服务器发送密钥请求,所述密钥请求包含客户端的标识信息和数字内容的标识信息。
[0073]具体地,客户端向服务器发送正式请求前,还进一步包括:验证用户是否具有访问数字内容的权限。例如可以包括:通过验证用户名的购买记录信息,判断用户是否具有访问收费数字内容的权限。
[0074]S403,服务器接收客户端发送的密钥请求,生成第二密钥。
[0075]具体实现时,服务器利用请求中的数字内容的标识信息确定与所述数字内容的标识信息对应的数字内容,根据确定的数字内容确定与所述数字内容对应的第一密钥,并利用所述客户端标识信息、采用第二加密方法对第一密钥进行加密以生成第二密钥。
[0076]S404,服务器向客户端发送第二密钥。
[0077]S405,客户端利用客户端的标识信息和第二解密方法对第二密钥进行解密处理,获得第一密钥。
[0078]S406,客户端向服务器发送数字内容播放请求。其中,所述数字内容播放请求中包含数字内容标识信息。
[0079]需要说明的是,步骤S405和步骤S406的顺序可以颠倒地执行,也可以并行地执行。当然,步骤S405即客户端进行解密处理的步骤也可以在步骤S406之后,或者在S407后执行。具体实现方式可以是灵活的。
[0080]S407,服务器确定对应的数字内容,向客户端发送加密后的数字内容。
[0081]服务器根据请求中的数字内容标识信息,确定对应的数字内容,向客户端发送使用第一密钥加密后的数字内容。需要说明的是,服务器可以分段或分片发送数字内容,即预先将数字内容划分成一个或多个分片,当接收到数字内容播放请求后,向客户端发送一个或多个内容分片。
[0082]S408,客户端利用获得的第一密钥、采用第一解密方法对加密后的数字内容进行解密并播放。
[0083]参见图5,示意性地示出了根据本发明再一实施例的数字内容加密与解密方法流程图。图5所示的方法例如可以包括:
[0084]S501,服务器使用第一密钥、采用第一加密方法对数字内容进行加密处理。例如,服务器使用AES - 128算法、利用第一密钥key*对视频进行加密处理,获得加密后的视频。
[0085]S502,客户端向服务器发送数字内容播放请求。其中,所述数字内容播放请求中包含数字内容标识信息。
[0086]S503,服务器确定对应的数字内容,向客户端发送加密后的数字内容。
[0087]服务器根据请求中的数字内容标识信息,确定对应的数字内容,向客户端发送使用第一密钥加密后的数字内容。需要说明的是,服务器可以分段或分片发送数字内容,即预先将数字内容划分成一个或多个分片,当接收到数字内容播放请求后,向客户端发送一个或多个内容分片。
[0088]S504,客户端向服务器发送密钥请求,所述密钥请求包含客户端的标识信息和/或数字内容的标识信息。
[0089]在客户端接收到服务器发送的加密的数字内容后,可以向服务器发送包含客户端标识信息的密钥请求。其中,客户端的密钥请求中可以包括数字内容的标识信息,以使得服务器可以利用数字内容的标识信息确定对应的数字内容以及与数字内容对应的第一密钥。
[0090]S505,服务器接收客户端发送的密钥请求,生成第二密钥。
[0091]具体实现时,服务器利用请求中的数字内容的标识信息确定与所述数字内容的标识信息对应的数字内容,根据确定的数字内容确定与所述数字内容对应的第一密钥,并利用所述客户端标识信息、采用第二加密方法对第一密钥进行加密以生成第二密钥。
[0092]S506,服务器向客户端发送第二密钥。
[0093]S507,客户端利用客户端的标识信息和第二解密方法对第二密钥进行解密处理,获得第一密钥。
[0094]S508,客户端利用获得的第一密钥、采用第一解密方法对加密后的数字内容进行解密并播放。
[0095]图6示意性地示出了根据本发明另一实施例的数字内容加密与解密方法流程图,所述方法例如可以包括:
[0096]S601,服务器使用第一密钥、利用第一加密方法对数字内容进行加密处理。
[0097]S602,客户端向服务器发送包含客户端标识信息和数字内容标识信息的请求,用于请求加密后的数字内容以及第二密钥。
[0098]S603,服务器生成第二密钥。
[0099]具体地,服务器在接收到所述请求后,利用所述请求中的数字内容标识信息确定对应的数字内容,并确定所述数字内容对应的第一密钥,并利用客户端标识信息、利用第二加密方法对第一密钥进行加密以生成第二密钥。
[0100]S604,服务器向客户端发送第二密钥以及加密后的数字内容。
[0101]S605,客户端利用客户端的标识信息和第二解密方法对第二密钥进行解密处理获得第一密钥。
[0102]S606,利用第一密钥、采用第一解密方法对加密的数字内容进行解密处理获得解密后的数字内容。
[0103]以上对本发明的实现原理及方法进行了详细地介绍。以上实施例介绍的方法可以应用到多种场景中。例如,可以应用到客户端和服务器进行交互的场景中,例如可以包括“网易云课堂”等提供数字内容服务的应用场景中。通过本发明提供的方法,当应用到这一应用场景时,可以提高对付费视频的保护,增强了内容合作方的信心,会把更多更有价值的教学内容投放到网易云课堂,加强跟平台的绑定,提高平台竞争力。此外,由于视频加密是在服务器端预处理的,减轻了服务器实时加密的计算压力,同时完成加密的视频可以通过CDN加速,减轻服务器带宽压力,为用户提供更好的视频观看体验。
_4] 示例性设备
[0105]在介绍了本发明示例性实施方式的方法之后,接下来,参考图7对本发明示例性实施方式的客户端设备进行介绍。
[0106]参见图7,示意性地示出了根据本发明一实施例的客户端设备框图,所述客户端设备700例如可以包括:
[0107]第一请求模块701,配置用于向服务器发送请求,所述请求包含所述客户端的标识信息和数字内容的标识信息;第一接收模块702,配置用于接收服务器响应于所述请求而发送的使用第一密钥、利用第一加密方法进行加密的、与所述数字内容的标识信息对应的数字内容以及利用所述客户端的标识信息、采用第二加密方法对所述第一密钥进行加密而获得的第二密钥;第二解密模块703,配置用于利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥;第一解密模块704,配制用于利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密,以获得解密后的数字内容,其中所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
[0108]进一步地,所述客户端的标识信息和数字内容的标识信息包括在单次请求或两次请求中。
[0109]进一步地,所述第一解密方法和第二解密方法是预先从服务器获取并存储在所述客户端的,或者是随同服务器响应于所述请求发送的数字内容以及第二密钥一起接收的。进一步地,所述客户端设备还包括:防反编译处理模块705,配置用于对存储在所述客户端的第一解密方法和/或第二解密方法进行防反编译处理。
[0110]进一步地,所述客户端设备还包括:第三接收模块706,配置用于接收服务器发送的更新的第二解密方法和/或第一解密方法。
[0111]所述第二解密模块704还配置用于利用更新的第二解密方法对接收的第二密钥进行解密处理;所述第一解密模块还配置用于利用更新的第一解密方法对使用第一密钥进行加密的数字内容进行解密处理。
[0112]参见图8,示意性地示出了根据本发明另一实施例的服务器设备框图,所述服务器设备800例如可以包括:第一加密模块801,配置用于利用第一密钥、使用第一加密方法对数字内容进行加密,保存加密后的数字内容以及所述第一密钥;第二接收模块802,配置用于接收客户端发送的请求,所述请求包含所述客户端的标识信息和数字内容的标识信息;第二加密模块803,配置用于响应于所述请求,利用所述客户端的标识信息、采用第二加密方法对与所述数字内容的标识信息对应的数字内容对应的第一密钥进行加密以获得第二密钥;第二发送模块804,配置用于向客户端发送使用第一密钥、采用第一加密方法进行加密的数字内容以及所述第二密钥,以使得所述客户端利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥,利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密以获得解密后的数字内容;其中所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
[0113]进一步地,所述服务器设备还包括:第一更新模块805,配置用于实时或者定期更新所述第一加密方法;和/或第二更新模块806,配置用于实时或者定期更新第二加密方法;二者分别向客户端发送与更新后的第二加密方法和第一加密方法对应的第二解密方法和第一解密方法。
[0114]进一步地,所述第二发送模块配置用于向客户端发送至少一个内容分片,所述内容分片是通过将所述数字内容划分成至少一个内容分片而得到。
[0115]应当注意,尽管在上文详细描述中提及了客户端设备和服务器设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
[0116]此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0117]虽然已经参考若干【具体实施方式】描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的【具体实施方式】,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
【权利要求】
1.一种方法,应用于客户端,包括: 向服务器发送请求,所述请求包含所述客户端的标识信息和数字内容的标识信息; 接收服务器响应于所述请求而发送的使用第一密钥、利用第一加密方法进行加密的、与所述数字内容的标识信息对应的数字内容以及利用所述客户端的标识信息、采用第二加密方法对所述第一密钥进行加密而获得的第二密钥; 利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥; 利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密,以获得解密后的数字内容; 其中所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
2.根据权利要求1所述的方法,其中,所述客户端的标识信息和数字内容的标识信息包括在单次请求或两次请求中。
3.根据权利要求1所述的方法,其中,所述第一解密方法和第二解密方法是预先从服务器获取并存储在所述客户端的,或者是随同服务器响应于所述请求发送的数字内容以及第二密钥一起接收的。
4.根据权利要求3所述的方法,还包括: 对存储在所述客户端的第一解密方法和/或第二解密方法进行防反编译处理。
5.根据权利要求1所述的方法,还包括: 接收服务器发送的更新的第二解密方法和/或第一解密方法,利用更新的第二解密方法对接收的第二密钥进行解密处理和/或利用更新的第一解密方法对使用第一密钥进行加密的数字内容进行解密处理。
6.一种方法,应用于服务器,包括: 接收客户端发送的请求,所述请求包含所述客户端的标识信息和数字内容的标识信息; 响应于所述请求,利用所述客户端的标识信息、采用第二加密方法对第一密钥进行加密以获得第二密钥;其中,所述第一密钥用于所述服务器对与所述数字内容的标识信息对应的数字内容采用第一加密方法进行加密以获得加密后的数字内容; 向客户端发送使用第一密钥、采用第一加密方法进行加密的数字内容以及所述第二密钥,以使得所述客户端利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥,利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密以获得解密后的数字内容; 其中所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
7.根据权利要求6所述的方法,还包括: 实时或者定期更新所述第一加密方法;和/或 实时或者定期更新第二加密方法,向客户端发送与更新后的第一加密方法和第二加密方法分别对应的第一解密方法和第二解密方法。
8.根据权利要求6所述的方法,其中,所述向客户端发送使用第一密钥进行加密的数字内容包括: 向客户端发送至少一个内容分片,所述内容分片是通过将所述数字内容划分成至少一个内容分片而得到。
9.一种客户端设备,包括: 第一请求模块,配置用于向服务器发送请求,所述请求包含所述客户端的标识信息和数字内容的标识信息; 第一接收模块,配置用于接收服务器响应于所述请求而发送的使用第一密钥、利用第一加密方法进行加密的、与所述数字内容的标识信息对应的数字内容以及利用所述客户端的标识信息、采用第二加密方法对所述第一密钥进行加密而获得的第二密钥;第二解密模块,配置用于利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥; 第一解密模块,配制用于利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密,以获得解密后的数字内容;其中所述第一解密方法和所述第二解密方法分别与所述第一加密方法和所述第二加密方法对应。
10.一种服务器设备,包括: 第一加密模块,配置用于利用第一密钥、使用第一加密方法对数字内容进行加密,保存加密后的数字内容以及所述第一密钥; 第二接收模块,配置用于接收客户端发送的请求,所述请求包含所述客户端的标识信息和数字内容的标识信息; 第二加密模块,配置用·于响应于所述请求,利用所述客户端的标识信息、利用第二加密方法对与所述数字内容的标识信息对应的数字内容对应的第一密钥进行加密以获得第二密钥; 第二发送模块,配置用于向客户端发送使用第一密钥、采用第一加密方法进行加密的数字内容以及所述第二密钥,以使得所述客户端利用客户端的标识信息和第二解密方法对接收的所述第二密钥进行解密处理,获得第一密钥,利用获得的第一密钥、使用第一解密方法对使用第一密钥进行加密的数字内容进行解密以获得解密后的数字内容。
【文档编号】H04L29/06GK103716330SQ201410005925
【公开日】2014年4月9日 申请日期:2014年1月3日 优先权日:2014年1月3日
【发明者】陈珊, 潘瑞, 刘家强, 吴家朕, 汤天亮, 方金德 申请人:网易(杭州)网络有限公司