数据处理方法、装置、系统及计算机可读存储介质与流程

文档序号:18471347发布日期:2019-08-20 20:20阅读:106来源:国知局
数据处理方法、装置、系统及计算机可读存储介质与流程

本发明涉及互联网技术领域,特别是涉及一种数据处理方法、装置、系统及计算机可读存储介质。



背景技术:

目前,为了确保数据的安全使用,需要对数据进行加密和解密处理。

服务器可以向移动终端分发设备密钥,以便于移动终端使用该设备密钥对数据进行加密或解密操作。

但是由于移动终端使用场景以及开源操作系统的特殊性,以明文形式存储于移动终端侧的密钥普遍存在着安全隐患,在密钥明存的场景下,容易造成密钥被窃取、篡改等数据安全问题。



技术实现要素:

本发明提供了一种数据处理方法、装置、系统及计算机可读存储介质,以解决相关技术中密钥以明文形式存储在客户端侧所导致的数据安全度低的问题。

为了解决上述问题,根据本发明的第一方面,本发明公开了一种数据处理方法,应用于包括服务器和客户端的系统,所述方法包括:

所述客户端发送数据请求至所述服务器,所述数据请求包括客户端id信息;

所述服务器根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法;

所述服务器响应于所述数据请求,发送所述客户端白盒算法至客户端;

所述客户端接收混淆有所述客户端id信息的客户端白盒算法;

所述客户端根据所述客户端id信息和所述客户端白盒算法,对待处理数据进行处理,得到处理后的数据。

根据本发明的第二方面,本发明公开了一种数据处理方法,应用于服务器,所述方法包括:

接收数据请求,所述数据请求包括客户端id信息;

根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法;

响应于所述数据请求,发送所述客户端白盒算法。

根据本发明的第三方面,本发明公开了一种数据处理方法,应用于客户端,所述方法包括:

发送数据请求,所述数据请求包括客户端id信息;

接收混淆有所述客户端id信息的客户端白盒算法,其中,所述客户端白盒算法为根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略而生成的算法;

根据所述客户端id信息和所述客户端白盒算法,对待处理数据进行处理,得到处理后的数据。

根据本发明的第四方面,本发明公开了一种数据处理系统,包括客户端和服务器;

所述客户端,用于发送数据请求至服务器,所述数据请求包括客户端id信息;

所述服务器,用于根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法;

所述服务器,用于响应于所述数据请求,发送所述客户端白盒算法至客户端;

所述客户端,用于接收混淆有所述客户端id信息的客户端白盒算法;

所述客户端,用于根据所述客户端id信息和所述客户端白盒算法,对待处理数据进行处理,得到处理后的数据。

根据本发明的第五方面,本发明公开了一种数据处理装置,应用于服务器,所述装置包括:

接收模块,用于接收数据请求,所述数据请求包括客户端id信息;

生成模块,用于根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法;

响应模块,用于响应于所述数据请求,发送所述客户端白盒算法。

根据本发明的第六方面,本发明公开了一种数据处理装置,应用于客户端,所述装置包括:

发送模块,用于发送数据请求,所述数据请求包括客户端id信息;

接收模块,用于接收混淆有所述客户端id信息的客户端白盒算法,其中,所述客户端白盒算法为根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略而生成的算法;

处理模块,用于根据所述客户端id信息和所述客户端白盒算法,对待处理数据进行处理,得到处理后的数据。

根据本发明的第七方面,本发明公开了一种服务器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据处理程序,所述数据处理程序被所述处理器执行时实现如上述应用于服务器的所述的数据处理方法的步骤。

根据本发明的第八方面,本发明公开了一种客户端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据处理程序,所述数据处理程序被所述处理器执行时实现如上述应用客户端的所述的数据处理方法的步骤。

根据本发明的第九方面,本发明公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如上述应用于客户端的所述的数据处理方法中的步骤,或,如上述应用于服务器的所述的数据处理方法的步骤。

与现有技术相比,本发明包括以下优点:

这样,本发明实施例为了避免数据密钥以明文存储在客户端,服务器可以根据客户端id以及预设混淆策略,来对预设密钥、预设处理算法进行混淆,生成混淆有客户端id的客户端白盒算法,并将该客户端白盒算法分发至客户端,避免了预设密钥在客户端的明文存储,提升了客户端侧存储的密钥的安全性。另外,由于客户端白盒算法采用客户端id信息进行混淆,而非客户端id密文,因此,客户端不需要向服务器请求与客户端id密文对应的密钥,减少了客户端向服务器的请求次数,提升了数据处理效率。

附图说明

图1是本发明的一种数据处理方法实施例的步骤流程图之一;

图2是本发明实施例的一种数据处理过程的示意图;

图3是本发明的一种数据处理方法实施例的步骤流程图二;

图4是本发明的一种数据处理方法实施例的步骤流程图三;

图5是本发明的一种数据处理方法实施例的步骤流程图四;

图6是本发明的一种数据处理系统实施例的结构框图;

图7是本发明的一种数据处理装置实施例的结构框图;

图8是本发明的另一种数据处理装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

为了避免密钥以明文形式存储在客户端侧所导致的数据安全度低的问题,本发明提供了一种数据处理方法,该数据处理方法可以应用于包括客户端和服务器的系统,服务器可以根据客户端id,利用预设密钥、预设处理算法(例如预设加密算法或预设解密算法)和预设混淆策略来生成客户端白盒算法,使得该客户端白盒算法经过客户端id的外部混淆处理。客户端接收到该客户端白盒算法来对数据进行处理,由于客户端侧没有明存任何密钥,而只是存储了经过客户端id混淆后的客户端白盒算法,从而确保了客户端白盒算法对应的预设密钥的安全。并且,该客户端白盒算法是经过客户端id混淆的,从而实现了客户端id与该客户端白盒算法的绑定,使得只有持有准确客户端id的客户端才可以使用该客户端白盒算法进行数据的加密或解密。下面对上述提到的数据处理方法进行具体描述。

参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,应用于包括服务器和客户端的系统,该方法具体可以包括如下步骤:

步骤101,所述客户端发送数据请求至所述服务器,所述数据请求包括客户端id信息;

其中,该数据请求可以为白盒请求。

客户端可以向服务器请求数据的加密或解密的密钥,从而对数据进行加密或解密处理操作,而为了避免密钥在客户端侧的明存所导致的数据安全问题,服务器在分发密钥时,以白盒的方式来分发密钥、以及处理算法(即步骤102所述的预设密钥和预设处理算法),从而使得处理算法和完整的密钥不以明文的方式出现,而是混淆在多个表中,客户端可以通过查表的方式来进行数据的加密或解密操作。而为了确保白盒与客户端的绑定,即只有具有该客户端id的客户端才可以使用该白盒,客户端向服务器发送的数据请求可以包括客户端id信息。

步骤102,所述服务器根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法;

其中,为了分发预设密钥、预设处理算法至客户端,为了确保预设密钥在客户端侧不以明文存储,服务器侧需要将预设密钥、预设处理算法生成客户端白盒算法;并且,为了确保生成的客户端白盒算法能够与客户端id相绑定,在生成该客户端白盒算法时,还会利用客户端id以及预设混淆策略,来对预设密钥、预设处理算法进行外部混淆,以确保只有具有该客户端id的客户端,才可以有权限使用该客户端白盒算法。

其中,本文所述的预设处理算法可以是预设加密算法,也可以是预设解密算法,当该预设处理算法为预设加密算法时,则生成的客户端白盒算法用于对数据进行加密处理,且加密的实现过程为采用预设加密算法和预设密钥来对待处理数据进行加密;类似的,当该预设处理算法为预设解密算法时,则生成的客户端白盒算法用于对数据进行解密处理,且解密的实现过程为采用预设解密算法和预设密钥来对待处理数据进行解密。

此外,本发明对于预设处理算法的算法类型不做限制,可以是任意一种对称算法。

可选地,在执行步骤102时,服务器可以根据所述客户端id信息,利用预设混淆策略,生成至少一个混淆算法;然后,服务器根据预设密钥、预设处理算法以及所述至少一个混淆算法,生成混淆有所述客户端id信息的客户端白盒算法。

其中,混淆算法的结构可以是矩阵队列。

该预设混淆策略可以是获取哈希值,那么服务器在根据客户端id,利用预设混淆策略来生成至少一个混淆算法时,则可以对客户端id进行哈希运算,得到客户端id的哈希值,然后,将该客户端id的哈希值作为该混淆算法,例如混淆矩阵c1;

或者,该预设混淆策略可以是利用随机函数的种子来生成随机数,那么服务器在根据客户端id,利用预设混淆策略来生成至少一个混淆算法时,则可以对将客户端id信息作为随机函数的种子,以该种子来生成随机数a,然后,将生成的该随机数a作为该混淆算法,例如混淆矩阵c2。

其中,服务器为了使生成的客户端白盒算法能够与客户端id相绑定,在生成客户端白盒算法时,不仅仅会利用预设密钥以及预设处理算法,还会利用所述基于客户端id所生成的至少一个混淆算法,来对预设密钥以及预设处理算法进行外部混淆。

需要说明的是,白盒加密、白盒解密属于对称算法技术,是能够在白盒环境下抵御攻击的一种特殊的加密方法。因此,上述预设处理算法为对称算法,例如aes(advancedencryptionstandard,高级加密标准)、des(dataencryptionstandard,数据加密标准)。其中,预设加密算法和预设解密算法是互逆的过程。

白盒加密/解密的核心思想是混淆,即将明文混淆成无法直接识别的字符,可以说加密是隐藏信息,而混淆就是指扰乱信息。

为了进一步保证在客户端存储的密钥安全性,本发明实施例提出的技术方案采用白盒加密/解密方式来对混淆算法、加密/解密算法、预设密钥进行封装。从而可以将预设密钥隐藏在客户端白盒算法中。

其中,客户端白盒算法是基于客户端发送的客户端id对应生成的,客户端白盒算法可以包括至少一个混淆算法,和,经过混淆后的预设密钥以及预设处理算法所对应的白盒表。

该至少一个混淆算法是基于混淆策略而生成,例如可以是根据客户端id通过预设的特定方法生成混淆矩阵。例如可以使用客户端id的哈希值作为混淆矩阵;或者利用客户端id生成的随机数作为混淆矩阵;或者对客户端id进行扩充,生成混淆矩阵,以实现每个客户端白盒算法都只能够适用于其对应的客户端。

在本发明实施例中,在对预设密钥、预设处理算法以及至少一个混淆矩阵,来生成客户端白盒算法时,可以采用传统技术中利用矩阵来对预设密钥和预设处理算法进行混淆的方式,来生成客户端白盒算法。

其中,传统技术所生成的未经过外部混淆的客户端白盒算法,所使用的矩阵只是一个无任何规律的随机数所生成的矩阵,而在本发明实施例中,所使用的矩阵则是利用预设混淆策略来对客户端id进行混淆所生成的混淆矩阵,该混淆矩阵是与客户端id相关的,从而存在一定规律,并是无任何规律的随机数所生成的随机矩阵,因此,本发明实施例生成的客户端白盒算法能够与客户端id相绑定。

步骤103,所述服务器响应于所述数据请求,发送所述客户端白盒算法至客户端;

其中,服务器侧在生成客户端白盒算法后,可以响应于客户端的数据请求,来将经过客户端id混淆后的客户端白盒算法发送至客户端。以便客户端对从服务器下载的数据进行加密(包括签名)或解密等操作。

其中,对于客户端对该客户端白盒算法的使用方式,如果该客户端白盒算法生成时是基于预设加密算法,则该客户端白盒算法可以用于对数据加密(包括签名);如果该客户端白盒算法生成时是基于预设解密算法,而该客户端白盒算法用于对下载自服务器的数据密文进行数据解密。

当然,在其他实施例中,生成的该客户端白盒算法中的白盒表也可以基于预设加密算法以及预设解密算法,以及该两个算法分别对应的两组密钥。使得客户端可以使用该客户端白盒算法可以用于数据加密、数据签名、数据解密多种操作。

步骤104,所述客户端接收混淆有所述客户端id信息的客户端白盒算法;

步骤105,所述客户端根据所述客户端id信息和所述客户端白盒算法,对待处理数据进行处理,得到处理后的数据。

其中,由于该客户端白盒算法经过客户端id进行过混淆处理,而这里客户端具有准确的客户端id信息,因此可以使用该客户端id以及该客户端白盒算法,来对待处理数据进行加密或解密处理。

其中,如上文所述,在对待处理数据进行何种处理,取决于该客户端白盒算法生成时所依据的预设算法是预设加密算法还是预设解密算法。如果是预设加密算法,则该客户端白盒算法为白盒加密算法,可以对待处理数据进行加密处理(包括签名处理),其中,加密密钥不仅可以用于对数据进行加密,得到数据密文;加密密钥还可以用于对数据进行签名,具体而言,可以采用加密密钥对数据的摘要进行加密,得到客户端的签名,将该签名拼接到数据的后缀部分;如果是预设解密算法,则该客户端白盒算法为白盒解密算法,可以对待处理数据进行解密处理,其中,这里的待处理数据可以为下载自服务器的经过加密的数据密文。

可选地,如上所述,所述客户端白盒算法包括至少一个混淆算法。

其中,客户端白盒算法中混淆算法的个数为一个或两个,该混淆算法的个数应与客户端生成的逆混淆算法的个数相同。也就是说,当在客户端白盒算法中包括一个混淆算法时,则客户端在使用该客户端白盒算法时,需要在客户端上对应生成一个逆混淆算法。

以客户端白盒算法为白盒加密算法为例来说明,该混淆算法在客户端白盒算法中可以位于加密算法之后(也即用于对加密后的数据进行混淆),也可以位于加密算法之前(也即用于对加密前的数据进行混淆)。本发明所给出的优选实施例是两个混淆算法分别设置在加密算法前、后,并在客户端需要使用客户端白盒算法时,在客户端生成两个逆混淆算法,以抵消两次混淆处理的效果。

在执行步骤105时,可以通过s21和s22来实现:

s21,客户端根根据所述客户端id信息,利用所述预设混淆策略,生成与所述至少一个混淆算法对应的至少一个逆混淆算法;

其中,客户端在生成逆混淆算法时,与服务器生成混淆算法的原理相同,该逆混淆算法的结构也是一个矩阵队列。客户端侧预先配置有与服务器相同的预设混淆策略,从而可以根据客户端id,利用预设混淆策略,来生成与所述至少一个混淆算法对应的至少一个逆混淆算法。

举例来说,如图2所示,客户端白盒算法包括位于加密算法部分之前的第一混淆算法,和,位于加密算法部分之后的第二混淆算法。例如该第一混淆算法为上述混淆矩阵c1,第二混淆算法为上述混淆矩阵c2,则本步骤可以计算客户端id密文的哈希值,并将该哈希值的矩阵作为混淆矩阵c1,再计算混淆矩阵c1的逆,得到逆混淆矩阵c3(即一个逆混淆算法);类似的,利用客户端id信息密文作为随机函数的种子所生成的随机数a,来生成混淆矩阵c2,再计算混淆矩阵c2的逆,得到逆混淆矩阵c4(即另一个逆混淆算法)。其中,混淆矩阵c1与逆混淆矩阵c3互为逆矩阵,混淆矩阵c2与逆混淆矩阵c4互为逆矩阵。

s22,客户端根利用所述至少一个逆混淆算法、所述客户端白盒算法对待处理数据进行处理,得到处理后的数据。

以客户端白盒算法为白盒加密算法为例进行说明,客户端在使用客户端白盒算法来对待处理数据进行加密处理时,如果不使用所述生成的至少一个逆混淆算法,则会使得输入至客户端白盒算法的待处理数据,在进行数据加密之前,进行混淆矩阵c1的混淆处理,在经过混淆处理后再进行数据加密,并将数据密文再经过混淆矩阵c2的混淆处理,最后输出混淆处理后的数据。那么处理后的数据并非是单独经过预设密钥和预设加密算法加密处理后的数据密文,而是在加密前和加密后均经过混淆处理的数据,则会造成数据加解密错误的问题,难以达到准确使用预设密钥和预设加密算法来对待处理数据进行准确加密的目的。

所以,在本步骤中,为了抵消客户端白盒算法中对待处理数据的混淆处理,而只是单独进行数据的加密处理,客户端可以利用所述至少一个逆混淆算法、所述客户端白盒算法对待处理数据进行加密处理,得到处理后的数据。

这样,本发明实施例在使用经过外部混淆的客户端白盒算法进行数据加密或解密处理时,根据客户端id并利用与服务器侧一致的预设混淆策略,来生成与客户端白盒算法中的至少一个混淆算法相对应的至少一个逆混淆算法,并利用该至少一个逆混淆算法和客户端白盒算法来对待处理数据进行加密或解密处理,从而能够抵消客户端白盒算法中至少一个混淆算法对待处理数据的混淆处理,客户端白盒算法输出的数据只经过预设密钥和预设处理算法的处理,在实现了客户端白盒算法与客户端的绑定的同时,又确保了客户端白盒算法对应的加密算法、或解密算法的准确使用。

可选地,当所述客户端白盒算法包括第一混淆算法和第二混淆算法时,所述至少一个逆混淆算法包括与所述第一混淆算法对应的第一逆混淆算法,和,与所述第二混淆算法对应的第二逆混淆算法。

如图2所示,客户端侧生成了与第一混淆算法对应的第一逆混淆算法,与第二混淆算法对应的第二逆混淆算法。

那么在执行s22时,则通过s31~s33来实现:

s31,客户端根据所述第一逆混淆算法对所述待处理数据进行混淆处理;

其中,如图2所示,在将待处理数据(例如7)输入至客户端白盒算法之前,首先通过第一逆混淆算法将7变为6。

s32,客户端利用所述客户端白盒算法,对经所述第一逆混淆算法混淆处理后的所述待处理数据进行处理,生成经所述第二混淆算法混淆后的加密数据或解密数据;

以客户端白盒算法为白盒加密算法为例进行说明,在本步骤中,客户端将经过混淆处理后的6输入至客户端白盒算法,客户端白盒算法中的第一混淆算法来对6进行混淆处理,从而抵消第一逆混淆算法的混淆操作,也就是将6还原为7;之后,客户端白盒算法中的加密算法部分(由加密密钥和预设加密算法混淆后得到的白盒表)将7进行加密,生成12;随后利用第二混淆算法,将加密后的数据进行混淆,这里,将12混淆成15;最后,客户端白盒算法,输出经过第二混淆算法混淆后的加密数据15。

s33,客户端根据所述第二逆混淆算法,对所述经所述第二混淆算法混淆后的加密数据或解密数据进行解混淆处理,生成经所述预设处理算法和所述预设密钥处理得到的数据。

本步骤,客户端的对由客户端白盒算法输出的经过第二混淆算法混淆后的加密数据15,再利用第二逆混淆算法进行再次混淆处理,从而抵消在客户端白盒算法中第二混淆算法对加密数据12的混淆处理,也就是,将15还原为12,使得最终生成的加密数据12是仅利用客户端白盒算法对应的预设加密算法和预设密钥进行了加密操作的结果。

其中,这里以客户端白盒算法为白盒加密算法为例进行的说明,若客户端白盒算法为白盒解密算法,方法类似,这里不再赘述。

这样,本发明实施例的方法在客户端白盒算法包括第一混淆算法和第二混淆算法的情况下,为了对客户端白盒算法对应的加密算法或解密算法的准确使用,可以生成与第一混淆算法互逆的第一逆混淆算法,以及与第二混淆算法互逆的第二逆混淆算法,并利用第一逆混淆算法来对输入至客户端白盒算法之前的待处理数据进行混淆处理,从而能够利用第一逆混淆算法来将第一混淆算法的混淆处理进行抵消;待客户端白盒算法输出经过第二混淆算法混淆处理后的加密或解密数据后,本发明实施例的方法还可以利用第二逆混淆算法来对该第二混淆算法进行抵消,从而生成只利用客户端白盒算法中的预设处理算法,以及预设密钥进行处理后的数据密文或数据明文,确保客户端白盒算法中的预设处理算法以及预设密钥来对待处理数据的准确加密或解密处理。

另外,如果客户端没有正确的客户端id,就不可以生成准确的逆混淆算法,从而不可以使用准确的逆混淆算法抵消客户端白盒算法中的混淆算法(即基于客户端id的外部混淆编码),从而在使用客户端白盒算法进行数据的加密或解密时,就不可以完成正确的加密或解密处理。这样,可以确保客户端白盒算法与客户端id的绑定。

参照图3,基于图1所示的实施例本发明提供了另一可选实施例,该数据处理方法包括如下步骤:

步骤101,所述客户端发送数据请求至所述服务器,所述数据请求包括客户端id信息、数据id;

其中,该数据id为客户端请求处理的数据的id。该数据一般为服务器侧存储的数据。客户端这里的数据请求,用于请求与该数据id以及与客户端id绑定的客户端白盒算法。

可选地,在步骤101之前,客户端可以识别客户端id信息的获取方式,例如该客户端id信息由哪个函数传递过来,以及识别获取到的客户端id信息。那么在发送数据请求时,客户端不仅可以将客户端id信息和数据id加载到数据请求中,还将客户端id信息的获取方式(例如传递该客户端id信息的函数的函数名)加载到数据请求中。

这样,本发明实施例通过将客户端id信息的获取方式加载到数据请求中,可以使服务器来对该客户端id的合法性进行判断,避免客户端非法窃取已绑定客户端白盒算法的客户端id,并以窃取的该客户端id来发送数据请求,请求客户端白盒算法的情况,避免与客户端id绑定的客户端白盒算分被窃取客户端id的非法客户端使用。

可选地,为了避免非法客户端窃取有权限的客户端的id,来发送数据请求的情况,在本发明实施例中,该所述数据请求还可以包括客户端id信息的获取方式,那么在步骤102(或者步骤106)之前,根据本发明实施例的方法还可以包括:服务器判断所述客户端id信息的获取方式是否为预设获取方式;

若所述客户端id信息的获取方式为预设获取方式,则执行步骤102。

具体而言,服务器侧预先可以设置哪些是合法的客户端id的获取方式,例如函数1、函数2为合法,其他函数未非法。那么服务器侧在接收到客户端的数据请求后,可以对其进行解析,获取到客户端id信息的获取方式,并判断该获取方式是否为预设获取方式,这里为判断函数名是否为预设函数名,若是,则说明该客户端是具有该客户端id信息的客户端,执行步骤301(或者步骤102),来生成绑定于该客户端的客户端白盒算法;相反,若否,则说明该客户端所发送的客户端id信息可能并非是该客户端的实际客户端id信息,有可能是窃取自其它有权限的客户端的客户端id信息,那么为了提升分发的密钥的安全性,可以不执行步骤301(或者步骤102),或者,使用一个假的密钥来生成客户端白盒算法,那么客户端即便收到该客户端白盒算法,也无法对数据进行准确的加密/解密/签名等操作。

步骤106,所述服务器根据预先设置的数据id与密钥、处理算法的对应关系,获取与所述数据id匹配的预设密钥和预设处理算法;

服务器侧,在接收到所述数据请求之后,可以执行步骤106。

具体而言,本发明实施例的方法可以为存储在服务器侧的每个数据分别配置用于加密或解密的密钥以及用于加密或解密的处理算法。

其中,本发明对于服务器侧所存储的数据的类型不做限制,例如视频数据、音频数据、文档数据等。该数据是服务器可以分发至客户端的数据,客户端侧可以对接收自服务器的该数据进行加密或解密处理。当然多数场景下,服务器下发至客户端的数据为数据密文,客户端侧则需要使用本发明实施例的方法的服务器所下发的客户端白盒算法,来对数据密文进行解密。

以视频数据为例进行说明,服务器侧可以为每个视频分配固定的密钥、处理算法(加密算法或解密算法),使得某个视频只可以使用对应于该视频的密钥以及处理算法生成的客户端白盒算法来进行加密或解密处理。

在服务器侧的视频数据存储完成之后,本发明实施例的方法就可以为每个视频id设置与之对应的密钥以及处理算法,从而生成预先设置的视频id与密钥、处理算法的对应关系。例如视频1对应于密钥1和aes加密算法;视频2对应于密钥2和des解密算法。

那么在生成客户端白盒算法时,本发明实施例的方法可以根据该对应关系,来获取与数据请求中的视频id对应的预设密钥以及预设处理算法。

在步骤106之后,服务器执行步骤102,所述服务器根据所述客户端id信息,利用所述预设密钥、所述预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法;

其中,所述客户端白盒算法对应的所述预设密钥、所述预设处理算法为与所述数据id匹配的密钥和算法。

其中,由于该预设密钥、预设处理算法都是与上述数据id绑定的,因此,这里生成的客户端白盒算法专门用于对具有该数据id的数据进行加密、签名或解密处理。

步骤103,所述服务器响应于所述数据请求,发送所述客户端白盒算法至客户端;

步骤104,所述客户端接收混淆有所述客户端id信息的客户端白盒算法;

步骤105,所述客户端根据所述客户端id信息和所述客户端白盒算法,对待处理数据进行处理,得到处理后的数据。

这样,本发明实施例的服务器预先对每个数据id分配密钥以及处理算法,从而生成数据id与密钥、处理算法的对应关系,那么在客户端向服务器发送的数据请求包括数据id时,则服务器可以根据该对应关系来获取与该数据请求中的数据id相绑定的预设密钥,以及预设处理算法,并根据客户端id,利用所述预设密钥、所述预设处理算法以及预设混淆策略,来生成混淆有所述客户端id的客户端白盒算法。使得生成的客户端白盒算法不仅能够与客户端id相绑定,还与数据id绑定,那么只有具有准确的该客户端id的客户端,才可以使用该客户端白盒算法来对具有该数据id的待处理数据进行加密、签名或解密处理。实现了客户端白盒算法与客户端、待处理数据的同时绑定,确保了数据的独立加解密。

参照图4,示出了本发明的一种数据处理方法实施例的步骤流程图,应用于服务器,该方法具体可以包括如下步骤:

步骤401,接收数据请求,所述数据请求包括客户端id信息;

步骤402,根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法;

步骤403,响应于所述数据请求,发送所述客户端白盒算法。

这样,本发明实施例为了避免数据密钥以明文存储在客户端,服务器可以根据客户端id以及预设混淆策略,来对预设密钥、预设处理算法进行混淆,生成混淆有客户端id的客户端白盒算法,并将该客户端白盒算法分发至客户端,避免了预设密钥在客户端的明文存储,提升了客户端侧存储的密钥的安全性。另外,由于客户端白盒算法采用客户端id信息进行混淆,而非客户端id密文,因此,客户端不需要向服务器请求与客户端id密文对应的密钥,减少了客户端向服务器的请求次数,提升了数据处理效率。

可选地,在基于图4所示实施例提供的另一可选实施例中,在执行步骤402时,可以首先,根据所述客户端id信息,利用预设混淆策略,生成至少一个混淆算法;然后,根据预设密钥、预设处理算法以及所述至少一个混淆算法,生成混淆有所述客户端id信息的客户端白盒算法。

可选地,在基于图4所示实施例提供的另一可选实施例中,所述数据请求还包括数据id;在执行步骤402之前,根据本发明实施例的方法还可以包括:根据预先设置的数据id与密钥、处理算法的对应关系,获取与所述数据id匹配的预设密钥和预设处理算法。

可选地,在基于图4所示实施例提供的另一可选实施例中,所述数据请求还包括客户端id信息的获取方式,在执行步骤402之前,根据本发明实施例的方法还可以包括:判断所述客户端id信息的获取方式是否为预设获取方式;那么若所述客户端id信息的获取方式为预设获取方式,则执行步骤402。

参照图5,示出了本发明的一种数据处理方法实施例的步骤流程图,应用于客户端,该方法具体可以包括如下步骤:

步骤501,发送数据请求,所述数据请求包括客户端id信息;

步骤502,接收混淆有所述客户端id信息的客户端白盒算法,其中,所述客户端白盒算法为根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略而生成的算法;

步骤503,根据所述客户端id信息和所述客户端白盒算法,对待处理数据进行处理,得到处理后的数据。

这样,本发明实施例为了避免数据密钥以明文存储在客户端,客户端可以接收混淆有客户端id的客户端白盒算法,其中,该客户端白盒算法为根据客户端id以及预设混淆策略,来对预设密钥、预设处理算法进行混淆,生成的客户端白盒算法,避免了预设密钥在客户端的明文存储,提升了客户端侧存储的密钥的安全性;由于在使用客户端白盒算法时,需要客户端具有与该客户端白盒算法绑定的客户端id,因此,可以确保客户端白盒算法的安全使用。

可选地,在基于图5所示实施例提供的另一可选实施例中,所述客户端白盒算法包括至少一个混淆算法;那么在执行步骤503时,可以首先,根据所述客户端id信息,利用所述预设混淆策略,生成与所述至少一个混淆算法对应的至少一个逆混淆算法;然后,利用所述至少一个逆混淆算法、所述客户端白盒算法对待处理数据进行处理,得到处理后的数据。

可选地,在基于图5所示实施例提供的另一可选实施例中,当所述客户端白盒算法包括第一混淆算法和第二混淆算法时,所述至少一个逆混淆算法包括与所述第一混淆算法对应的第一逆混淆算法,和,与所述第二混淆算法对应的第二逆混淆算法;

那么在执行步骤503时,可以首先,根据所述第一逆混淆算法对所述待处理数据进行混淆处理;然后,利用所述客户端白盒算法,对经所述第一逆混淆算法混淆处理后的所述待处理数据进行处理,生成经所述第二混淆算法混淆后的数据;最后,根据所述第二逆混淆算法,对经所述第二混淆算法混淆后的数据进行解混淆处理,生成经所述预设处理算法和所述预设密钥处理得到的数据。

可选地,在基于图5所示实施例提供的另一可选实施例中,当所述数据请求还包括数据id时,所述客户端白盒算法对应的所述预设密钥、所述预设处理算法为与所述数据id匹配的密钥和处理算法。

可选地,在基于图5所示实施例提供的另一可选实施例中,在步骤501之前,根据本发明实施例的方法还可以包括:识别客户端id信息的获取方式,以及识别获取到的客户端id信息;那么在执行步骤501时,则可以将所述客户端id信息以及所述获取方式加载至数据请求中,并发送所述数据请求。

关于上述图4和图5所示实施例提供的单侧数据处理方法,具体参见上述图1~图3所示实施例中的相应介绍和说明,这里不再赘述。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

与上述本发明实施例所提供的应用于包括服务器和客户端的系统的数据处理方法相对应,参照图6,示出了本发明一种数据处理系统实施例的结构框图,具体可以包括客户端和服务器;

所述客户端,用于发送数据请求至服务器,所述数据请求包括客户端id信息;

所述服务器,用于根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法;

所述服务器,用于响应于所述数据请求,发送所述客户端白盒算法至客户端;

所述客户端,用于接收混淆有所述客户端id信息的客户端白盒算法;

所述客户端,用于根据所述客户端id信息和所述客户端白盒算法,对待处理数据进行处理,得到处理后的数据。

与上述本发明实施例所提供的应用于服务器的数据处理方法相对应,参照图7,示出了本发明一种数据处理装置实施例的结构框图,应用于服务器,具体可以包括如下模块:

第一接收模块701,用于接收数据请求,所述数据请求包括客户端id信息;

生成模块702,用于根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法;

响应模块703,用于响应于所述数据请求,发送所述客户端白盒算法。

可选地,所述生成模块702包括:

第一生成子模块,用于根据所述客户端id信息,利用预设混淆策略,生成至少一个混淆算法;

第二生成子模块,用于根据预设密钥、预设处理算法以及所述至少一个混淆算法,生成混淆有所述客户端id信息的客户端白盒算法。

可选地,所述装置还包括:

获取模块,用于若所述数据请求还包括数据id,则根据预先设置的数据id与密钥、处理算法的对应关系,获取与所述数据id匹配的预设密钥和预设处理算法。

可选地,所述装置还包括:

判断模块,用于若所述数据请求还包括客户端id信息的获取方式,则判断所述客户端id信息的获取方式是否为预设获取方式;

所述生成模块702,还用于若所述判断模块判断所述客户端id信息的获取方式为预设获取方式,则根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略,生成混淆有所述客户端id信息的客户端白盒算法的步骤。

与上述本发明实施例所提供的应用于客户端的数据处理方法相对应,参照图8,示出了本发明一种数据处理装置实施例的结构框图,应用于客户端,具体可以包括如下模块:

发送模块801,用于发送数据请求,所述数据请求包括客户端id信息;

第二接收模块802,用于接收混淆有所述客户端id信息的客户端白盒算法,其中,所述客户端白盒算法为根据所述客户端id信息,利用预设密钥、预设处理算法以及预设混淆策略而生成的算法;

处理模块803,用于根据所述客户端id信息和所述客户端白盒算法,对待处理数据进行处理,得到处理后的数据。

可选地,所述处理模块803包括:

第三生成子模块,用若所述客户端白盒算法包括至少一个混淆算法,则根据所述客户端id信息,利用所述预设混淆策略,生成与所述至少一个混淆算法对应的至少一个逆混淆算法;

处理子模块,用于利用所述至少一个逆混淆算法、所述客户端白盒算法对待处理数据进行处理,得到处理后的数据。

可选地,所述客户端白盒算法包括第一混淆算法和第二混淆算法,其中,所述至少一个逆混淆算法包括与所述第一混淆算法对应的第一逆混淆算法,和,与所述第二混淆算法对应的第二逆混淆算法;

所述处理子模块包括:

混淆单元,用于根据所述第一逆混淆算法对所述待处理数据进行混淆处理;

第一处理单元,用于利用所述客户端白盒算法,对经所述第一逆混淆算法混淆处理后的所述待处理数据进行处理,生成经所述第二混淆算法混淆后的数据;

第二处理单元,用于根据所述第二逆混淆算法,对经所述第二混淆算法混淆后的数据进行解混淆处理,生成经所述预设处理算法和所述预设密钥处理得到的数据。

可选地,当所述数据请求还包括数据id时,所述客户端白盒算法对应的所述预设密钥、所述预设处理算法为与所述数据id匹配的密钥和处理算法。

可选地,所述装置还包括:

识别模块,用于识别客户端id信息的获取方式,以及识别获取到的客户端id信息;

所述发送模块801,还用于将所述客户端id信息以及所述获取方式加载至数据请求中,并发送所述数据请求。

对于装置实施例而言,由于其与对应的方法实施例基本相似,所以描述的比较简单,相关之处参见相应方法实施例的部分说明即可。

根据本发明的又一个实施例,本发明还提供了一种服务器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据处理程序,所述数据处理程序被所述处理器执行时实现如上述任意一个实施例所述的应用于服务器的数据处理方法的步骤。

根据本发明的又一个实施例,本发明还提供了一种客户端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据处理程序,所述数据处理程序被所述处理器执行时实现如上述任意一个实施例所述的应用于客户端的数据处理方法的步骤。

根据本发明的再一个实施例,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现如上述任意一个实施例所述的应用于服务器的数据处理方法中的步骤,或实现如上述任意一个实施例所述的应用于客户端的数据处理方法中的步骤。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种数据处理方法、一种数据处理装置、一种数据处理系统、一种服务器、一种客户端、一种计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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