密钥获得方法、装置及系统与流程

文档序号:16310621发布日期:2018-12-19 05:16阅读:221来源:国知局
密钥获得方法、装置及系统与流程

本发明涉及数据传输技术领域,特别是涉及密钥获得方法、装置及系统。

背景技术

随着大数据时代的到来,用户越来越多的喜欢将本地的数据上传至网络端,也就是人们常说的云服务端,简称服务端,在上传数据到服务端的过程中,为了保证用户上传数据的安全性,通常需要对上传的数据进行加密处理,也就是采用加密传输的方式将数据上传至服务端。

可想而知的是,加密处理需要采用加密密钥。由于服务端中存储的数据一部分是共享的,为保证各个客户端均能够从服务端获取共享数据,一般将加密密钥直接存储在客户端,且同一服务端环境中的客户端所存储的加密密钥相同,那么,现有技术中,客户端采用加密传输的方式上传数据时,一般是直接从本地获得加密密钥。

可见应用上述方式能够方便的获得加密密钥,进而实现对待上传数据进行加密,但是由于密钥直接存储在了客户端本地,且各客户端中存储的加密密钥相同,因此,只要有一个客户端将加密密钥泄露的话,将导致其他客户端中存储的密钥存在安全隐患,因此,应用现有技术中的方式获得加密密钥的安全性较差。



技术实现要素:

本发明实施例的目的在于提供密钥获得方法、装置及系统,以提高获得加密密钥的安全性。

为了达到上述目的,本发明实施例公开了一种密钥获得方法,应用于客户端,该方法包括:

向服务端发送密钥索取请求,以使得:所述服务端根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;生成数据加密密钥;将所述握手密钥作为第一加密密钥,按照第一加密规则对所述数据加密密钥进行加密,得到针对所述数据加密密钥的加密文件;

接收所述服务端发送的所述加密文件;

基于所述密钥索取请求,按照所述第一预设密钥生成规则,生成所述握手密钥;

将所述握手密钥作为解密密钥,按照与所述第一加密规则匹配的解密规则对所述加密文件进行解密,获得所述数据加密密钥。

优选的,所述基于所述密钥索取请求,按照所述第一预设密钥生成规则,生成所述握手密钥的步骤,包括:

按照所述第一预设密钥生成规则,用所述密钥索取请求携带的目标信息生成所述握手密钥;其中,所述目标信息包括所述客户端生成的随机字符串和/或所述密钥索取请求的发送时间信息。

优选的,所述目标信息还包括以下信息中的至少一种:

所述密钥索取请求对应的待上传数据的标识信息;

所述客户端对应的用户信息;

所述客户端所属企业的企业信息。

优选的,所述方法还包括:

将所述数据加密密钥作为第二加密密钥,按照第二加密规则对待上传数据进行加密,获得目标加密数据;

上传所述目标加密数据至所述客户端对应的数据库中。

为了达到上述目的,本发明实施例还公开了一种密钥获得方法,应用于服务端,该方法包括:

接收客户端发送的密钥索取请求;

根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;

生成数据加密密钥;

将所述握手密钥作为第一加密密钥,按照第一加密规则对所述数据加密密钥进行加密,获得所述数据加密密钥的加密文件;

将所述加密文件发送至所述客户端,以使得所述客户端根据所述加密文件获得所述数据加密密钥。

优选的,所述根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥的步骤,包括:

按照第一预设密钥生成规则,用所述密钥索取请求携带的目标信息生成握手密钥;其中,所述目标信息包括所述客户端生成的随机字符串和/或所述密钥索取请求的发送时间信息。

优选的,所述目标信息还包括以下信息中的至少一种:

所述密钥索取请求对应的待上传数据的标识信息;

所述客户端对应的用户信息;

所述客户端所属企业的企业信息。

优选的,所述按照第一预设密钥生成规则,用所述密钥索取请求携带的目标信息生成握手密钥的步骤,包括:

按照第一预设密钥生成规则,用预先获得的以下信息中的至少一种以及所述密钥索取请求携带的目标信息生成握手密钥:

所述客户端对应的用户信息;

所述客户端所属企业的企业信息。

优选的,所述生成数据加密密钥的步骤,包括:

从所述客户端对应企业的数据库中提取特征表信息,所述特征表信息为包含所述数据库的属性的信息;

根据所述特征表信息,采用第二预设密钥生成规则,生成数据加密密钥。

为了达到上述目的,本发明实施例公开了第一种密钥获得装置,应用于客户端,该装置包括:

第一发送模块,用于向服务端发送密钥索取请求,以使得:所述服务端根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;生成数据加密密钥;将所述握手密钥作为第一加密密钥,按照第一加密规则对所述数据加密密钥进行加密,得到针对所述数据加密密钥的加密文件;

第一接收模块,用于接收所述服务端发送的所述加密文件;

第一生成模块,用于基于所述密钥索取请求,按照所述第一预设密钥生成规则,生成所述握手密钥;

第一获得模块,用于将所述握手密钥作为解密密钥,按照与所述第一加密规则匹配的解密规则对所述加密文件进行解密,获得所述数据加密密钥。

优选的,所述第一生成模块,具体用于:

按照所述第一预设密钥生成规则,用所述密钥索取请求携带的目标信息生成所述握手密钥;其中,所述目标信息包括所述客户端生成的随机字符串和/或所述密钥索取请求的发送时间信息。

优选的,所述目标信息还包括以下信息中的至少一种:

所述密钥索取请求对应的待上传数据的标识信息;

所述客户端对应的用户信息;

所述客户端所属企业的企业信息。

优选的,所述装置还包括:

第二获得模块,用于将所述数据加密密钥作为第二加密密钥,按照第二加密规则对待上传数据进行加密,获得目标加密数据;

上传模块,用于上传所述目标加密数据至所述客户端对应的数据库中。

为了达到上述目的,本发明实施例还公开了第二种密钥获得装置,应用于服务端,所述装置包括:

第二接收模块,用于接收客户端发送的密钥索取请求;

第二生成模块,用于根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;

第三生成模块,用于生成数据加密密钥;

第三获得模块,用于将所述握手密钥作为第一加密密钥,按照第一加密规则对所述数据加密密钥进行加密,获得所述数据加密密钥的加密文件;

第二发送模块,用于将所述加密文件发送至所述客户端,以使得所述客户端根据所述加密文件获得所述数据加密密钥。

优选的,所述第二生成模块,具体用于:

按照第一预设密钥生成规则,用所述密钥索取请求携带的目标信息生成握手密钥;其中,所述目标信息包括所述客户端生成的随机字符串和/或所述密钥索取请求的发送时间信息。

优选的,所述目标信息还包括以下信息中的至少一种:

所述密钥索取请求对应的待上传数据的标识信息;

所述客户端对应的用户信息;

所述客户端所属企业的企业信息。

优选的,所述第二生成模块,具体用于:

按照第一预设密钥生成规则,用预先获得的以下信息中的至少一种以及所述密钥索取请求携带的目标信息生成握手密钥:

所述客户端对应的用户信息;

所述客户端所属企业的企业信息。

优选的,所述第三生成模块,包括:

提取子模块,用于从所述客户端对应企业的数据库中提取特征表信息,所述特征表信息为包含所述数据库的属性的信息;

第三生成子模块,用于根据所述特征表信息,采用第二预设密钥生成规则,生成数据加密密钥。

为了达到上述目的,本发明实施例又公开了一种密钥获得系统,所述系统包括:

应用上述任一第一种密钥获得装置的客户端;

以及应用上述任一第二种密钥获得装置的服务端。

为了达到上述目的,本发明实施例又还公开了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现前述应用于客户端的任一密钥获得方法所述的方法步骤。

为了达到上述目的,本发明实施例又还公开了一种服务器,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现前述应用于服务端的任一密钥获得方法所述的方法步骤。

为了达到上述目的,本发明实施例又还公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述应用于客户端的任一密钥获得方法所述的方法步骤。

为了达到上述目的,本发明实施例又还公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述应用于服务端的任一密钥获得方法所述的方法步骤。

本发明实施例提供了密钥获得方法、装置及系统,该方法中,客户端通过向服务端发送密钥索取请求,以使得:服务端根据密钥索取请求,按照第一预设密钥生成规则,生成握手密钥,生成数据加密密钥,并将握手密钥作为第一加密密钥,按照第一加密规则对数据加密密钥进行加密,得到针对数据加密密钥的加密文件;接收服务端发送的加密文件;基于密钥索取请求,按照上述的第一预设密钥生成规则,生成握手密钥;将握手密钥作为解密密钥,按照与第一加密规则匹配的解密规则对加密文件进行解密,获得数据加密密钥。

可见,应用本发明实施例提供的方案获取数据加密密钥,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个客户端将数据加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得加密密钥的安全性。

附图说明

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

图1为本发明实施例提供的应用于客户端的密钥获得方法的第一种流程示意图;

图2为本发明实施例提供的应用于客户端的密钥获得方法的第二种流程示意图;

图3为本发明实施例提供的应用于服务端的密钥获得方法的流程示意图;

图4为本发明实施例提供的应用于客户端的密钥获得装置的第一种结构示意图;

图5为本发明实施例提供的应用于客户端的密钥获得装置的第二种结构示意图;

图6为本发明实施例提供的应用于服务端的密钥获得装置的结构示意图;

图7为本发明实施例提供的一种电子设备的示意图;

图8为本发明实施例提供的一种服务器的示意图。

具体实施方式

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

图1为本发明实施例提供的应用于客户端的密钥获得方法的第一种流程示意图,该密钥获得方法,应用于客户端,该方法包括如下步骤:

s101:向服务端发送密钥索取请求,以使得:服务端根据密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;生成数据加密密钥;将握手密钥作为第一加密密钥,按照第一加密规则对数据加密密钥进行加密,得到针对数据加密密钥的加密文件;

本领域技术人员能够理解的是,在云存储系统中,通常包括云服务端,简称服务端,以及云服务端对应的安装有应用软件的客户端,例如,该应用软件为金山企业云盘。上述的客户端能够与服务端进行通信,在一个云存储系统中,可以包含多个客户端以及多个服务端,但为了节省成本以及提高资源利用效率,通常是多个客户端连接同一个服务端,由于每一客户端针对服务端来说,在形式上是等效的,因此,本发明实施例中仅以一个客户端与服务端进行通信为例进行说明。

随着大数据时代的到来,用户越来越多的喜欢将客户端本地的数据上传至服务端中进行保存,在上传数据到服务端的过程中,为了保证待上传数据的安全性,通常需要对待上传数据进行加密处理,也就是采用加密传输的方式将待上传数据上传至服务端;可想而知的是,加密处理需要采用加密密钥。

在上述的应用环境中,为了保证待上传数据的安全性,客户端在上传数据至服务端时,需要获得用于对待上传数据进行加密的数据加密密钥,因此,在本发明实施例提供的方案中,客户端向服务端发送针对待上传数据的密钥索取请求。

上述握手秘钥是根据密钥索取请求生成的,可以理解,服务端所接收到的任意两个密钥索取请求是不相同的,即使是同一个客户端针对同一待上传数据发送的密钥索取请求,也会因为密钥索取请求的发送时间不同,使得两个密钥索取请求不同。

显然的,握手密钥不是基于某一固定信息所生成的,其基于密钥索取请求而生成,基于不同的密钥索取请求所生成的握手密钥是不相同的,即服务端根据每一个密钥索取请求所生成的握手密钥都是不相同的;因此,即使数据加密密钥在传输的过程中被其它设备获取,由于其他设备不知道握手秘钥,也不知道生成握手秘钥的具体信息,所以无法轻易解密该握手密钥并得到数据加密密钥;显著提高数据加密密钥的安全性。

作为本发明实施例提供的第一种具体实现方式,服务端根据密钥索取请求,按照第一预设密钥生成规则,生成握手密钥,可以是:服务端按照第一预设密钥生成规则,用密钥索取请求所携带的目标信息生成握手密钥,该目标信息可以包括客户端生成的随机字符串和/或密钥索取请求的发送时间信息。

上述随机字符串可以是客户端在向服务端发送密钥索取请求前,随机生成一个字符串,如生成32字节的随机字符串,然后在将所生成的字符串添加到密钥索取请求中后,将添加有该字符串的密钥索取请求发送给服务端。

同理,该密钥索取请求的发送时间信息可以是客户端在向服务端发送密钥索取请求时的时间信息,该时间信息可以存储在密钥索取请求的元数据中,例如,密钥索取请求在2017年5月31日0时2分3秒时由客户端发送的,则所发送的密钥索取请求中可以携带有“2017年5月31日0时2分3秒”这一时刻信息,当然,该密钥索取请求的发送时间信息的具体表现形式可以是常见的时间戳,本发明实施例在此并不限定密钥索取请求的发送时间信息的具体表现形式。

可以理解,服务端无论是用密钥索取请求中携带的客户端生成的随机字符串,还是密钥索取请求的发送时间信息生成握手密钥,每次生成的握手密钥都是不同的,所以即使数据加密密钥在传输的过程中被其它设备获取,其他设备也无法轻易解密该握手密钥并得到数据加密密钥,因此,数据加密密钥的安全性高。

握手密钥是指标志着客户端与服务端匹配通信的密钥,该握手密钥是由服务端生成的,在本发明实施例中,服务端可以仅利用客户端生成的随机字符串生成握手密钥,或者仅利用密钥索取请求的发送时间信息生成握手密钥,还可以同时利用客户端生成的随机字符串以及密钥索取请求的发送时间信息生成握手密钥。

示例性的,上述密钥索取请求中包含预设字节的随机字符串和密钥索取请求的发送时间信息,可以将密钥索取请求中的随机字符串和密钥索取请求的发送时间信息作为两个输入变量,采用第一预设密钥生成规则,生成另一字符串或者是二进制数组,该生成的另一字符串或者二进制数组即为握手密钥。

作为本发明实施例的第二种具体实现方式,上述目标信息在包括客户端生成的随机字符串和/或密钥索取请求的发送时间信息的同时,目标信息还可以包括以下信息中的至少一种:

密钥索取请求对应的待上传数据的标识信息;

客户端对应的用户信息;

客户端所属企业的企业信息。

可以理解,客户端所发送的每一个密钥索取请求都对应着一个待上传数据,所以客户端在向服务端发送密钥索取请求时,可以将待上传数据的标识信息发送给服务端。

每一个客户端都对应有一个用户,上述客户端对应的用户信息可以是用户的标识信息,例如用户昵称、服务端为每个注册用户分配的用户id(身份标识),当然也可以是用户姓名、身份证号等信息。

上述客户端所属企业的企业信息,可以理解为对应上述服务端的客户端所属企业的企业信息;其中,该企业信息可以指在网络部署时,该客户端所属的企业对应的基本信息,企业信息可以包括:企业域名、企业名称、企业账号、组织机构代码等等信息。

示例性的,例1:假设上述目标信息包括下述5个信息:

客户端生成的随机字符串:15487981;

密钥索取请求的发送时间戳:1496727312;

密钥索取请求对应的待上传数据的标识信息:file2017133720;

客户端对应的用户信息:kingsoft20172017;

客户端中客户端所属企业的企业名称:北京金山云网络技术有限公司。

则服务端采用其内存储的第一预设密钥生成规则,将上述5个信息作为输入,例如,将然后将上述5个信息分别作为5个变量,按照预设的规则或公式将其转化为一组字符串或者是二进制数组,即生成握手密钥。

应该说明的是,上述客户端对应的用户信息以及客户端中客户端所属企业的企业信息并不一定要在上述密钥索取请求中携带着,在实际应用中,客户端在向服务端发送密钥索取请求时,客户端的用户实际上已经完成登录。

在登录的过程中,服务端需要对客户端进行认证,然后客户端会将上述客户端对应的用户信息以及客户端中客户端所属企业的企业信息发送给服务端,因此在实际的应用中,可以是上述目标信息并不包括上述客户端对应的用户信息以及客户端中客户端所属企业的企业信息,但服务端在生成握手密钥的过程中,则会收找到认证过程中服务端所接收到的客户端对应的用户信息以及客户端中客户端所属企业的企业信息,并利用所接收到的客户端对应的用户信息以及客户端中客户端所属企业的企业信息以及上述目标信息生成握手密钥。

可以理解的是,本发明实施例中,即使同一个客户端针对同一个待加密数据发送两次密钥索取请求,由于服务端生成的握手密钥不相同,客户端所接收到的加密文件即加密后的数据加密密钥也不相同,这样,即使其他设备获得了该加密文件,由于其没有与该加密文件匹配的握手密钥,无法直接打开该加密文件,获得数据加密密钥,因此数据加密密钥的安全性较高。

需要说明的是,在客户端和服务端中均存储有第一预设密钥生成规则,存储在客户端和服务端的第一预设密钥生成规则相同,该第一预设密钥生成规则可以通过软件开发人员编程得到,例如,可以采用c、c++、java、php、python等等编程语言实现对第一预设密钥生成规则的编程。

在本发明实施例提供的方案中,上述的第一加密规则存在多种具体方式,常见的加密规则有:aes(advancedencryptionstandard,即高级加密标准)、des(dataencryptionstandard,即数据加密标准)、3des(tripledes)、idea(internationaldataencryptionalgorithm,即国际数据加密算法)以及idea(internationaldataencryptionalgorithm,即国际数据加密算法)等等,因此,本发明实施例并不对第一加密规则的具体种类做更进一步的限定。

如图1所示,s102:接收所述服务端发送的加密文件。

此加密文件即上述被加密的数据加密密钥。

s103:基于密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;

由于客户端中存储有与服务端中相同的第一预设密钥生成规则,并且密钥索取请求由客户端发出的,因此,客户端能够基于上述的密钥索取请求,按照第一预设密钥生成规则,生成握手密钥,由于采用的密钥生成规则相同,并且密钥索取请求也相同,因此,客户端生成的握手密钥与服务端生成的握手密钥相同。

如上例1,服务端利用例1中的5个信息生成握手秘钥,而上述5个信息同样可以存储在客户端中,并且在接收到上述加密文件后,客户端利用上述5个信息,并采用上述第一预设密钥生成规则,生成握手秘钥,显然的,客户端所生成的密钥与服务端所生成的密钥相同。

s104:将握手密钥作为解密密钥,按照与第一加密规则匹配的解密规则对加密文件进行解密,获得数据加密密钥。

客户端接收到的加密文件是服务端采用第一加密规则对数据加密密钥进行加密后得到的文件,因此,该加密文件需要解密后才能获得数据加密密钥,不难理解的是,解密过程是加密过程的相反过程,因此,客户端在接收到加密文件后,将上述生成的握手密钥作为解密密钥,采用与上述第一加密规则匹配的解密规则对加密文件进行解密,由于加密采用的加密密钥是握手密钥,而解密密钥同样也是握手密钥,并且服务端和客户端生成的握手秘钥相同,因此,在对加密文件进行解密后能够得到数据加密密钥。

综上可见,在图1所示实施例提供的方案中,通过向服务端发送密钥索取请求,以使得:服务端根据密钥索取请求,按照第一预设密钥生成规则,生成握手密钥,生成数据加密密钥,并将握手密钥作为第一加密密钥,按照第一加密规则对数据加密密钥进行加密,得到针对数据加密密钥的加密文件;然后再接收服务端发送的加密文件;基于密钥索取请求,按照上述的第一预设密钥生成规则,生成握手密钥;将握手密钥作为解密密钥,按照与第一加密规则匹配的解密规则对加密文件进行解密,获得数据加密密钥。

可见,应用本实施例提供的方案获取数据加密密钥,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个客户端将数据加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得加密密钥的安全性。

图2为本发明实施例提供的应用于客户端的密钥获得方法的第二种流程示意图,该方法除包含图1实施例中提供的s101-s104外,还包括步骤:

s105:将数据加密密钥作为第二加密密钥,按照第二加密规则对待上传数据进行加密,获得目标加密数据;

由上述实施例可知的是,客户端采用握手密钥对加密文件进行解密之后,获得了数据加密密钥,该数据加密密钥是针对服务端与客户端之间通用的数据加密密钥,该数据加密密钥作为对待上传数据进行加密的加密密钥,称该加密密钥为第二加密密钥。

采用第二加密密钥,按照第二加密规则对待上传数据进行加密,得到目标加密数据。

需要说明的是,本发明实施例中提及的第二加密规则与前述实施例中提及的第一加密规则,并无实质性不同,“第一”和“第二”仅为区分两次不同的加密过程,并不是对加密规则顺序的限定;第二加密规则也可以采用多种具体方式,例如,aes、des、3des、idea以及idea等等,因此,本发明实施例并不对第二加密规则的具体形式做进一步限定。

s106:上传目标加密数据至客户端对应的数据库中。

本领域技术人员能够理解的是,通常情况下,在服务端中,客户端所在的企业会部署有数据库,该数据库用于存储该企业中各客户端上传的数据,因此,上述客户端对应的数据库可以理解为:客户端对应企业的数据库。

以“北京金山云网络技术有限公司”为例,在服务端中部署有该公司对应的数据库。那么,处于“北京金山云网络技术有限公司”中的客户端,可以将加密后得到的目标加密数据上传至“北京金山云网络技术有限公司”对应的数据库中。

应用图2实施例提供的方案,能够进一步地采用获得的数据加密密钥对待上传的数据进行加密,并将加密后得到的目标加密数据上传至客户端对应的数据库中,相较于将待上传数据直接上传至客户端对应的数据库中,极大地提高了数据的安全性。

图3为本发明实施例提供的应用于服务端的密钥获得方法的流程示意图,该方法适用于服务端,所述方法包括步骤:

s201:接收客户端发送的密钥索取请求;

可以理解的是,客户端需要针对待上传数据采用加密上传的方式上传数据时,向服务端发送密钥索取请求,服务端便能够接收到客户端发送的密钥索取请求。

具体的,此处所述的密钥索取请求中所携带目标信息的具体内容可以参见图1所示方法实施例,本发明实施例在此不做详细介绍。

s202:根据密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;

作为本发明实施例的第一种具体实现方式,上述根据密钥索取请求,按照第一预设密钥生成规则,生成握手密钥(s202)的步骤,可以包括:

按照第一预设密钥生成规则,用密钥索取请求携带的目标信息生成握手密钥;其中,目标信息包括客户端生成的随机字符串和/或密钥索取请求的发送时间信息。

作为本发明实施例的第二种具体实现方式,在上述第一种实现方式的基础上,上述目标信息还可以包括以下信息中的至少一种:

密钥索取请求对应的待上传数据的标识信息;

客户端对应的用户信息;

客户端所属企业的企业信息。

作为本发明实施例的第三种具体实现方式,在上述第一种实现方式的基础上,上述按照第一预设密钥生成规则,用密钥索取请求携带的目标信息生成握手密钥的步骤,可以包括:

按照第一预设密钥生成规则,用预先获得的以下信息中的至少一种以及所述密钥索取请求携带的目标信息生成握手密钥:

客户端对应的用户信息;

客户端所属企业的企业信息。

可以理解,在上述第三种实现方式中,针对客户端对应的用户信息以及客户端所属企业的企业信息,服务端可以在认证客户端的过程中获得。

当然,结合第二种实现方式与第三种实现方式时,上述目标信息还可以包括密钥索取请求对应的待上传数据的标识信息,但是目标信息不需要包括客户端对应的用户信息以及客户端所属企业的企业信息。

具体的,上述步骤s202的具体实现以及上述所提供的步骤s202的三种具体实现可以参照图1所示方法实施例,本发明实施例在此不做详细介绍。

s203:生成数据加密密钥;

本领域技术人员能够理解的是,在部署服务端时,每一企业可以相应的配置有数据库,该数据库用于存储每一企业中客户端上传的数据。为了保证同一企业的各客户端能够资源共享,服务端在针对同一企业的数据库生成的数据加密密钥是唯一的,该数据加密密钥可以是预先针对数据库存储在服务端的数据加密密钥,在接收到密钥索取请求后对应提取该数据加密密钥,还或者是按照一定的规则生成的,这都是合理的。

在本发明的所有实施例中,为了提高生成数据加密密钥的安全性,上述数据加密密钥并不固定存储在服务端中,而是服务端在接收到终端收到的密钥索取请求后实时生成的,显然的,如果服务端被外部设备恶意攻破,由于其中并不固定存储有上述数据加密密钥,因此外部设备也无法直接获得该数据加密密钥,因而数据加密密钥的安全性高。

例如,“北京金山云网络技术有限公司”对应有一数据库x,如果采用现有技术,服务端本地会记录有数据库x对应的数据加密密钥y,则当服务端被外部设备攻破时,由于该直接数据加密密钥y直接存储在服务端本地,因此外部设备可直接获得该数据加密密钥y。

而应用本发明实施例提供的方案时,服务端本地并不记录有数据库x对应的数据加密密钥y,而是在接收到密钥索取请求时,通过预定的密钥生成规则生成该数据加密密钥y。所以当服务端被外部设备攻破时,由于该直接数据加密密钥y未直接存储在服务端本地,因此外部设备无法直接获得该数据加密密钥y,即该数据加密密钥y的安全性高。

作为本发明实施例的一种具体实现方式,上述生成数据加密密钥的步骤,可以包括下述步骤a和步骤b:

步骤a:从客户端对应企业的数据库中提取特征表信息,该特征表信息为包含数据库的属性的信息;

在本发明实施例中,数据库的特征表信息,是指包含了该数据库的属性的信息,属性可以但不限于包含有:数据库的类型、数据库的地址、数据库的名称、数据库的存储空间大小,上述的这些属性作为数据库的特征表信息存储于数据库中,服务端能够根据密钥索取请求得到的企业信息,找到该企业信息对应的数据库,进而提取该数据库中的特征表信息。

步骤b:根据特征表信息,采用第二预设密钥生成规则,生成数据加密密钥。

将上述提取到的特征表信息作为输入,采用预先存储于服务端中的密钥生成规则,生成数据加密密钥,在本发明实施例中,称预先存储于服务端中用于生成数据加密密钥的密钥生成规则为第二预设密钥生成规则。给第二预设密钥生成规则可以通过软件开发人员通过编程语言编程实现,例如,可以采用c、c++、java、php、python等等编程语言实现对第二预设密钥生成规则的编程。

需要说明的是,本发明实施例中提及的第二预设密钥生成规则与第一预设密钥生成规则均可以通过软件编程实现,“第一”和“第二”仅为区分两次不同的密钥生成过程,并不是对密钥生成规则的顺序的限定。

通过采用上述的第二预设密钥生成规则,能够生成用于加密客户端中待上传数据的数据加密密钥。

s204:将握手密钥作为第一加密密钥,按照第一加密规则对数据加密密钥进行加密,获得数据加密密钥的加密文件;

在上述步骤s202获得握手密钥后,将该握手密钥作为第一加密密钥,按照预先存储与服务端中的第一加密规则,对步骤s203中生成的数据加密密钥进行加密,假设握手密钥为:1234,数据加密密钥为:20172017,那么,将“1234”作为加密密钥,采用aes.256算法(第一加密规则)对“20172017”进行加密,得到加密文件为:###**###。

s205:将加密文件发送至客户端,以使得客户端根据所加密文件获得数据加密密钥。

由于上述是针对客户端发送的密钥索取请求,得到的加密文件,那么,在服务端对数据加密密钥进行加密得到加密文件(###**###)后,将###**###发送给发送密钥索取请求的客户端,这样,客户端接收到的是经过加密后的数据加密密钥,能够很好的保证该数据加密密钥的安全性,如果该加密文件被其他设备获取,其他设备并没有相匹配的握手密钥,因此,无法得到该数据加密密钥。可见,获得数据加密密钥的安全性大大提高,能够有效地减少因一个客户端将加密密钥泄露,而导致其他客户端存在的安全隐患。

综上可见,应用图3所示的实施例提供的方案获取数据加密密钥,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个客户端将加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得加密密钥的安全性。

另外,上述数据加密密钥并不固定存储在服务端中,而是服务端在接收到终端收到的密钥索取请求后实时生成的,即使服务端被外部设备恶意攻破,由于其中并不固定存储有上述数据加密密钥,外部设备无法直接获得该数据加密密钥,因而数据加密密钥的安全性高。

相应于上述图1提供的方法实施例,如图4所示,其为本发明实施例提供的应用于客户端的密钥获得装置的第一种结构示意图,该装置应用于客户端,该装置包括:第一发送模块301、第一接收模块302、第一生成模块303和第一获得模块304。

第一发送模块301,用于向服务端发送密钥索取请求,以使得:所述服务端根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;生成数据加密密钥;将所述握手密钥作为第一加密密钥,按照第一加密规则对所述数据加密密钥进行加密,得到针对所述数据加密密钥的加密文件;

第一接收模块302,用于接收所述服务端发送的所述加密文件;

第一生成模块303,用于基于所述密钥索取请求,按照所述第一预设密钥生成规则,生成所述握手密钥;

第一获得模块304,用于将所述握手密钥作为解密密钥,按照与所述第一加密规则匹配的解密规则对所述加密文件进行解密,获得所述数据加密密钥。

在本发明实施例提供的一种具体实现方式中,所述第一生成模块303,可以具体用于:

按照所述第一预设密钥生成规则,用所述密钥索取请求携带的目标信息生成所述握手密钥;其中,所述目标信息包括所述客户端生成的随机字符串和/或所述密钥索取请求的发送时间信息。

在实际应用中,在上述具体实现方式的基础上,所述目标信息还可以包括以下信息中的至少一种:

所述密钥索取请求对应的待上传数据的标识信息;

所述客户端对应的用户信息;

所述客户端所属企业的企业信息。

应用图4实施例提供的装置获取数据加密密钥,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个客户端将加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得数据加密密钥的安全性。

与图2提供方法实施例相对应的,图5位本发明实施例提供的应用于客户端的密钥获得装置的第二种结构示意图,除包括图4实施例中的第一发送模块301、第一接收模块302、第一生成模块303和第一获得模块304外,该装置还包括:第二获得模块305和上传模块306。

第二获得模块305,用于将所述数据加密密钥作为第二加密密钥,按照第二加密规则对待上传数据进行加密,获得目标加密数据;

上传模块306,用于上传所述目标加密数据至所述客户端对应的数据库中。

应用图5实施例提供的装置,能够进一步地采用获得的数据加密密钥对待上传的数据进行加密,并将加密后得到的目标加密数据上传至客户端对应的数据库中,相较于将待上传数据直接上传至客户端对应的数据库中,极大地提高了数据的安全性。

与图3提供方法实施例相对应的,如图6所示,其为本发明实施例提供的应用于服务端的密钥获得装置的结构示意图,该装置应用于服务端,该装置包括:第二接收模块401、第二生成模块402、第三生成模块403、第三获得模块404和第二发送模块405。

第二接收模块401,用于接收客户端发送的密钥索取请求;

第二生成模块402,用于根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;

第三生成模块403,用于生成数据加密密钥;

第三获得模块404,用于将所述握手密钥作为第一加密密钥,按照第一加密规则对所述数据加密密钥进行加密,获得所述数据加密密钥的加密文件;

第二发送模块405,用于将所述加密文件发送至所述客户端,以使得所述客户端根据所述加密文件获得所述数据加密密钥。

作为本发明实施例提供的第一种实现方式,所述第二生成模块402,可以具体用于:

按照第一预设密钥生成规则,用所述密钥索取请求携带的目标信息生成握手密钥;其中,所述目标信息包括所述客户端生成的随机字符串和/或所述密钥索取请求的发送时间信息。

作为本发明实施例提供的第二种实现方式,在上述第一种实施方式的基础上,所述目标信息还可以包括以下信息中的至少一种:

所述密钥索取请求对应的待上传数据的标识信息;

所述客户端对应的用户信息;

所述客户端所属企业的企业信息。

作为本发明实施例提供的第三种实现方式,在上述第一种实施方式的基础上,所述第二生成模块402,还可以具体用于:

按照第一预设密钥生成规则,用预先获得的以下信息中的至少一种以及所述密钥索取请求携带的目标信息生成握手密钥:

所述客户端对应的用户信息;

所述客户端所属企业的企业信息。

具体的,上述的第三生成模块403,可以包括:

提取子模块,用于从所述客户端对应企业的数据库中提取特征表信息,所述特征表信息为包含所述数据库的属性的信息;

第三生成子模块,用于根据所述特征表信息,采用第二预设密钥生成规则,生成数据加密密钥。

应用图6实施例提供的方案获取数据加密密钥,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个客户端将加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得加密密钥的安全性。

另外,上述数据加密密钥并不固定存储在服务端中,而是服务端在接收到终端收到的密钥索取请求后实时生成的,即使服务端被外部设备恶意攻破,由于其中并不固定存储有上述数据加密密钥,外部设备无法直接获得该数据加密密钥,因而数据加密密钥的安全性高。

除上述提供实施例外,本发明实施例还提供了一种密钥获得系统,所述系统包括:应用上述图4或图5所示密钥获得装置的客户端;以及应用上述图6所示密钥获得装置的服务端。

综上可见,应用本发明实施例提供的密钥获得系统,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个客户端将加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得加密密钥的安全性。

另外,上述数据加密密钥并不固定存储在服务端中,而是服务端在接收到终端收到的密钥索取请求后实时生成的,即使服务端被外部设备恶意攻破,由于其中并不固定存储有上述数据加密密钥,外部设备无法直接获得该数据加密密钥,因而数据加密密钥的安全性高。

本发明实施例提供的一种电子设备,如图7所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:

向服务端发送密钥索取请求,以使得:所述服务端根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;生成数据加密密钥;将所述握手密钥作为第一加密密钥,按照第一加密规则对所述数据加密密钥进行加密,得到针对所述数据加密密钥的加密文件;

接收所述服务端发送的所述加密文件;

基于所述密钥索取请求,按照所述第一预设密钥生成规则,生成所述握手密钥;

将所述握手密钥作为解密密钥,按照与所述第一加密规则匹配的解密规则对所述加密文件进行解密,获得所述数据加密密钥。

需要说明的是,在本发明实施例提供的电子设备除能够实现上述步骤外,还能够实现如下步骤:

将所述数据加密密钥作为第二加密密钥,按照第二加密规则对待上传数据进行加密,获得目标加密数据;

上传所述目标加密数据至所述客户端对应的数据库中。

本领域技术人员能够理解的是,上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

综上可见,应用图7实施例提供的电子设备,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个电子设备中的客户端将加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得数据加密密钥的安全性。

本发明实施例提供的一种服务器,如图8所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:

接收客户端发送的密钥索取请求;

根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;

生成数据加密密钥;

将握手密钥作为第一加密密钥,按照第一加密规则对数据加密密钥进行加密,获得数据加密密钥的加密文件;

将加密文件发送至所述客户端,以使得客户端根据加密文件获得数据加密密钥。

为了实现较佳的效果,在本发明实施例提供的服务器中,在执行生成数据加密密钥的步骤时,可以具体通过执行如下步骤实现:

从客户端对应企业的数据库中提取特征表信息,所述特征表信息为包含所述数据库的属性的信息;

根据所述特征表信息,采用第二预设密钥生成规则,生成数据加密密钥。

本领域技术人员能够理解的是,上述服务器提到的通信总线可以是外设部件互连标准(peripheralpomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述服务器与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

综上可见,应用图7实施例提供的服务器,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个客户端将加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得数据加密密钥的安全性。

本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的应用于客户端的密钥获得方法。

具体的,上述密钥获得方法包括:

向服务端发送密钥索取请求,以使得:所述服务端根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;生成数据加密密钥;将所述握手密钥作为第一加密密钥,按照第一加密规则对所述数据加密密钥进行加密,得到针对所述数据加密密钥的加密文件;

接收所述服务端发送的所述加密文件;

基于所述密钥索取请求,按照所述第一预设密钥生成规则,生成所述握手密钥;

将所述握手密钥作为解密密钥,按照与所述第一加密规则匹配的解密规则对所述加密文件进行解密,获得所述数据加密密钥。

上述密钥获得方法的其他实现方式与前述方法实施例部分提及的实现方式相同,这里不再赘述。

应用本发明实施例提供的计算机可读存储介质,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个客户端将加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得数据加密密钥的安全性。

本发明实施例提供了另一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的应用于服务端的密钥获得方法。

具体的,上述密钥获得方法,包括:

接收客户端发送的密钥索取请求;

根据所述密钥索取请求,按照第一预设密钥生成规则,生成握手密钥;

生成数据加密密钥;

将所述握手密钥作为第一加密密钥,按照第一加密规则对所述数据加密密钥进行加密,获得所述数据加密密钥的加密文件;

将所述加密文件发送至所述客户端,以使得所述客户端根据所述加密文件获得所述数据加密密钥。

上述密钥获得方法的其他实现方式与前述方法实施例部分提及的实现方式相同,这里不再赘述。

应用本发明实施例提供的计算机可读存储介质,能够针对不同的密钥索取请求生成不同的握手密钥,并将握手密钥作为解密密钥,对加密后的数据加密密钥进行解密,得到数据加密密钥,这样能够有效地减少因一个客户端将加密密钥泄露,而导致其他客户端存在的安全隐患,提高了获得数据加密密钥的安全性。

值得一提的是,本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、电子设备、服务器、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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