一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

密钥管理方法、装置、系统及存储介质与流程

2021-12-17 19:14:00 来源:中国专利 TAG:


1.本发明涉及信息安全领域,尤其涉及一种密钥管理方法、装置、系统及存储介质。


背景技术:

2.相关技术中,如果用户隐私数据以明文状态存储于数据库中,一旦被拖库,将直接威胁用户隐私数据。数据加密存储技术是一种能够有效保护隐私数据的技术,其原理是将用户数据中的敏感信息加密后存储在数据库或文件系统,当需要读取时进行解密。即使被攻击者实现拖库攻击,只要密钥不泄露,攻击者亦无法获取用户隐私数据。
3.密钥管理是加密存储技术的核心,如果密钥被泄露,被加密的数据也就不再安全。传统解决方案是通过软件或硬件的方式实现。软件方式是将密钥保存在配置文件或数据库中,需要解密时直接读取密钥进行解密操作,这种方式存在安全隐患。硬件方式是将密钥保存在硬件介质中,例如,u盘(usb flash disk),需要解密数据时插入u盘读取密钥进行解密操作,解密完成后拔走u盘,这种方式的安全性可以得到保证,但易用性较差。


技术实现要素:

4.有鉴于此,本发明实施例提供了一种密钥管理方法、装置、系统及存储介质,旨在满足密钥的易用性的同时,提高密钥的安全性。
5.本发明实施例的技术方案是这样实现的:
6.本发明实施例提供了一种密钥管理方法,应用于数据存储服务器,所述方法包括:
7.基于数据服务终端发送的数据服务请求,对第一密钥生成算法进行混淆,得到混淆后的第二密钥生成算法;
8.发送所述第二密钥生成算法给密钥服务器;
9.与所述密钥服务器基于所述第二密钥生成算法、所述数据存储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算,对协同计算的计算结果进行反混淆,得到所述数据服务请求对应的密钥。
10.本发明实施例还提供了一种密钥管理方法,应用于密钥服务器,所述方法包括:
11.接收数据存储服务器发送的第二密钥生成算法;
12.与所述数据存储服务器基于所述第二密钥生成算法、所述数据存储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算;
13.其中,所述第二密钥生成算法是所述数据存储服务器对第一密钥生成算法进行混淆后生成的。
14.本发明实施例又提供一种密钥管理装置,应用于数据存储服务器,所述装置包括:
15.算法混淆装置,用于基于数据服务终端发送的数据服务请求,对第一密钥生成算法进行混淆,得到混淆后的第二密钥生成算法;
16.发送装置,用于发送所述第二密钥生成算法给密钥服务器;
17.密钥生成装置,用于与所述密钥服务器基于所述第二密钥生成算法、所述数据存
储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算,对协同计算的计算结果进行反混淆,得到所述数据服务请求对应的密钥。
18.本发明实施例还提供了一种密钥管理装置,应用于密钥服务器,所述装置包括:
19.接收模块,用于接收数据存储服务器发送的第二密钥生成算法;
20.协同模块,用于与所述数据存储服务器基于所述第二密钥生成算法、所述数据存储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算;
21.其中,所述第二密钥生成算法是所述数据存储服务器对第一密钥生成算法进行混淆后生成的。
22.本发明实施例又提供了一种数据存储服务器,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器,用于运行计算机程序时,执行本发明实施例数据存储服务器侧所述方法的步骤。
23.本发明实施例还提供了一种密钥服务器,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器,用于运行计算机程序时,执行本发明实施例密钥服务器侧所述方法的步骤。
24.本发明实施例还提供了一种密钥管理系统,其特征在于,包括本发明实施例所述的数据存储服务器和本发明实施例所述的密钥服务器。
25.本发明实施例又提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本发明任一实施例所述方法的步骤。
26.本发明实施例提供的技术方案,将生成密钥对应的密钥分片分别存储在数据存储服务器和密钥服务器,数据存储服务器基于数据服务终端发送的数据服务请求,对第一密钥生成算法进行混淆,得到混淆后的第二密钥生成算法;数据存储服务器发送所述第二密钥生成算法给密钥服务器;数据存储服务器与所述密钥服务器基于所述第二密钥生成算法、所述数据存储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算,对协同计算的计算结果进行反混淆,得到所述数据服务请求对应的密钥,使得只有所述数据存储服务器才能得到所述数据服务请求对应的密钥,且通过对第一密钥生成算法进行混淆,使得协同计算对应的第二密钥生成算法可以动态变化,增大了攻击者窃取密钥的难度,从而在满足密钥的易用性的同时,提高了密钥的安全性。
附图说明
27.图1为本发明实施例密钥管理系统的结构示意图;
28.图2为本发明实施例应用于数据存储服务器的密钥管理方法的流程示意图;
29.图3为本发明实施例应用于密钥服务器的密钥管理方法的流程示意图;
30.图4为本发明应用实施例密钥管理方法的流程示意图;
31.图5为本发明实施例应用于数据存储服务器的密钥管理装置的结构示意图;
32.图6为本发明实施例应用于密钥服务器的密钥管理装置的结构示意图;
33.图7为本发明实施例数据存储服务器的结构示意图;
34.图8为本发明实施例密钥服务器的结构示意;
35.图9为本发明实施例密钥管理系统的另一结构示意图。
具体实施方式
36.下面结合附图及实施例对本发明再作进一步详细的描述。
37.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
38.相关技术中,为了解决密钥管理在易用性和安全性方面不能兼顾的问题,可以基于安全多方计算(secure multi-party computation,mpc)来生成密钥。如cn 110752924a公开了一种基于安全多方计算的密钥安全管理方法,其中,主密钥由多方计算系统得到,主密钥控制加密算法需要用到的密钥明文、密文状态转换。用户无加密业务时,主密钥处于不可知状态,业务密钥处于密文状态;有加密业务时,通过多方计算系统得到主密钥计算因子(即密钥因子),将密钥因子带入密钥生成算法得到主密钥。该方案在计算过程中,多方计算系统的节点是可以拿到“密钥因子”的,如果攻击者掌控了某一台计算节点,并通过反编译技术拿到了密钥生成算法,该攻击者就可以算出主密钥,造成密钥泄露。
39.基于此,在本发明的各种实施例中,将生成密钥对应的密钥分片分别存储在数据存储服务器和密钥服务器,数据存储服务器基于数据服务终端发送的数据服务请求,对第一密钥生成算法进行混淆,得到混淆后的第二密钥生成算法;数据存储服务器发送所述第二密钥生成算法给密钥服务器;数据存储服务器与所述密钥服务器基于所述第二密钥生成算法、所述数据存储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算,对协同计算的计算结果进行反混淆,得到所述数据服务请求对应的密钥,使得只有所述数据存储服务器才能得到所述数据服务请求对应的密钥,且通过对第一密钥生成算法进行混淆,使得协同计算对应的第二密钥生成算法可以动态变化,增大了攻击者窃取密钥的难度,从而在满足密钥的易用性的同时,提高了密钥的安全性。
40.本发明实施例中,如图1所示,密钥管理系统包括:数据服务终端101、数据存储服务器102及密钥服务器103。其中,密钥服务器103用于生成第一共享密钥、第二共享密钥及第三共享密钥,第一共享密钥为数据服务终端101与密钥服务器103之间的共享密钥,第二共享密钥为数据服务终端101与数据存储服务器102之间的共享密钥,第三共享密钥为数据存储服务器102与密钥服务器103之间的共享密钥。数据服务终端101作为数据服务请求者,可以基于用户操作生成数据服务请求,比如,数据访问请求或者数据存储请求,该数据服务终端101可以为智能手机、平板电脑、台式电脑或者智能可穿戴设备等通信终端。数据存储服务器102用于基于密钥对数据进行加密或者解密操作。数据存储服务器102与密钥服务器103基于协同计算生成密钥,具体地,数据存储服务器102生成第一密钥分片,密钥服务器103生成第二密钥分片,数据存储服务器102与密钥服务器103基于第一密钥分片、第二密钥分片进行协同计算,生成用于数据加密或者解密的密钥。
41.如图2所示,本发明实施例提供了一种密钥管理方法,应用于数据存储服务器,该方法包括:
42.步骤201,基于数据服务终端发送的数据服务请求,对第一密钥生成算法进行混淆,得到混淆后的第二密钥生成算法;
43.这里,数据存储服务器接收数据服务终端发送的数据服务请求,基于该数据服务请求启动与密钥服务器之间的用于生成所述数据服务请求对应的密钥的协同计算。具体
地,数据存储服务器对第一密钥生成算法进行混淆,得到混淆后的第二密钥生成算法。假定第一密钥生成算法是f(x,y),其中,x、y分别表示数据存储服务器本地的密钥分片、密钥服务器本地的密钥分片。f(x,y)只有数据存储服务器知晓,对密钥服务器是保密的。
44.在一些实施例中,所述对第一密钥生成算法进行混淆,包括:
45.对所述第一密钥生成算法基于随机数进行编码,生成所述第二密钥生成算法。
46.这里,数据存储服务器可以选取两个随机数a、b作为噪音,对第一密钥生成算法做混淆,得到第二密钥生成算法f

(x,y)=a
·
f(x,y) b。
47.步骤202,发送所述第二密钥生成算法给密钥服务器;
48.这里,数据存储服务器发送第二密钥生成算法给密钥服务器,便于数据存储服务器与密钥服务器基于第二密钥生成算法进行协同计算,且实现了第一密钥生成算法对密钥服务器是保密的。
49.步骤203,与所述密钥服务器基于所述第二密钥生成算法、所述数据存储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算,对协同计算的计算结果进行反混淆,得到所述数据服务请求对应的密钥。
50.这里,协同计算用于解决一组互不信任的参与方之间保护隐私的计算问题,其可以抽象理解为:参与方在不泄露自身隐私信息的前提下,共同执行一个函数,并获得计算结果,但过程中,参与方的每一方均不会泄漏自身的数据。即密钥服务器和数据存储服务器均不会泄漏各自的密钥分片。
51.在一实施例中,数据存储服务器与密钥服务器基于第二密钥生成算法f

(x,y)=a
·
f(x,y) b、数据存储服务器存储的第一密钥分片k
s
、密钥服务器存储的第二密钥分片k
a
进行协同计算,得到f

(k
s
,k
a
)。
52.数据存储服务器再对f

(k
s
,k
a
)进行反混淆,得到所述数据服务请求对应的密钥。
53.在一些实施例中,所述对协同计算的计算结果进行反混淆,包括:
54.对所述协同计算的计算结果基于所述随机数进行解码,生成所述数据服务请求对应的密钥。
55.这里,数据存储服务器基于前述的随机数a、b,计算k=(f

(k
a
,k
s
)-b)/a,其中,k即为所述数据服务请求对应的密钥,此过程中,数据存储服务器和密钥服务器均无法知晓对方的密钥分片,且密钥服务器无法知晓最后的密钥k。
56.本发明实施例中,数据存储服务器在与密钥服务器协同计算密钥时,数据存储服务器首先会对其知晓的第一密钥生成算法进行混淆,然后与密钥服务器通过混淆后的第二密钥生成算法来协同计算密钥,数据存储服务器可以基于协同计算的计算结果恢复正确的密钥。通过这种方式,只有数据存储服务器可以拿到正确的密钥,参与计算的密钥服务器无法获知密钥,从而增强了密钥的安全性。
57.此外,每次协同计算的随机数都可以不同,即使攻击者获取了协同计算的计算结果,并且反编译了程序代码,也无法计算出正确的密钥。本发明实施例中,由于对第一密钥生成算法的混淆是通过添加随机数噪音来实现的,每次计算过程都可以不一样,即使攻击者拿到了某次计算过程的中间结果,并且通过反编译知道了密钥生成算法的细节,同样也无法计算出正确的密钥,从而极大增强了密钥的安全性。
58.在一些实施例中,步骤201包括:
59.对数据服务终端发送的数据服务请求进行验证;
60.确定验证通过,对第一密钥生成算法进行混淆。
61.这里,数据存储服务器基于接收的数据服务请求启动与密钥服务器之间的用于生成所述数据服务请求对应的密钥的协同计算之前,还可以对所述数据服务请求进行验证,确定验证通过,则启动密钥的协同计算,从而可以对无效的数据服务请求进行过滤。
62.在一些实施例中,所述对数据服务终端发送的数据服务请求进行验证,包括以下至少之一:
63.基于所述数据服务请求中携带的身份标识进行身份有效性验证;
64.基于所述数据服务请求中携带的时间戳进行时间有效性验证。
65.这里,数据服务终端发送的数据服务请求可以携带身份标识和/或时间戳,数据存储服务器可以基于数据服务请求携带的身份标识和/或时间戳进行有效性验证。
66.比如,数据服务请求携带报文其中,中id
c
为数据服务终端的身份标识,t为时间戳,表示用第二共享密钥加密。数据存储服务器接收数据服务请求后,用第二共享密钥解密,对数据服务请求进行身份有效性验证和/或时间有效性验证。这里,身份有效性验证是指判断解密后的身份标识是否与数据服务请求中携带的身份标识一致,若一致,则确定身份有效;若不一致,则确定该数据服务请求失效。时间有效性验证是指判断时间戳与当前时间的差值是否在预设阈值内,若是,则确定时间有效;若否,则确定该数据服务请求失效。
67.为了避免黑客攻陷数据存储服务器后,破解密钥。本发明实施例还设计了一种“许可认证机制”,该“许可认证机制”用于在密钥服务器侧对数据存储服务器接收的数据服务请求是否被相应的数据服务终端许可进行验证,使得数据存储服务器启动与密钥服务器之间的用于生成所述数据服务请求对应的密钥的协同计算之前,需要获得相应用户的许可,否则无法执行密钥协同计算。实现了即使数据存储服务器被黑客攻陷,仍能保证密文状态的数据不被解密。
68.基于此,在一些实施例中,所述数据服务请求携带基于第一共享密钥加密的验证信息,所述第一共享密钥为所述数据服务终端与所述密钥服务器之间的共享密钥,所述方法还包括:
69.发送密钥协同计算请求给所述密钥服务器,所述密钥协同计算请求携带所述验证信息;
70.接收所述密钥服务器基于所述密钥协同计算请求进行验证的验证结果;
71.所述对第一密钥生成算法进行混淆,包括:
72.确定来自所述密钥服务器的验证结果为验证通过,对所述第一密钥生成算法进行混淆。
73.具体地,数据服务请求携带报文其中,表示用第一共享密钥加密。数据存储服务器接收数据服务请求后,先用第二共享密钥解密,对数据服务请求进行身份有效性验证和/或时间有效性验证。确定验证通过后,数据存储服务器还基于发送密钥协同计算请求给所述密钥服务器。比如,数据
存储服务器向密钥服务器发送报文其中,id
s
为数据存储服务器的身份标识,t

为密钥协同计算请求携带的时间戳,表示用第三共享密钥加密。密钥服务器接收到该报文后,利用第三共享密钥解密,对密钥协同计算请求进行身份有效性验证和/或时间有效性验证,以验证数据存储服务器发送的密钥协同计算请求的有效性。在验证通过后,密钥服务器还可以对基于第一共享密钥进行解密,从而对数据服务请求是否由相应的数据服务终端发起进行验证。若验证通过,则发送验证通过的验证结果给数据存储服务器。数据存储服务器基于密钥服务器发送的验证结果对所述第一密钥生成算法进行混淆,以启动与密钥服务器之间的用于生成所述数据服务请求对应的密钥的协同计算。
74.为了进一步提高密钥的安全性,本发明实施例密钥管理方法还包括:
75.确定所述数据服务请求处理结束,销毁所述数据服务请求对应的密钥。
76.这里,数据存储服务器通过与密钥服务器之间的协同计算,得到数据服务器请求对应的密钥后,对该数据服务请求进行处理,比如,若该数据服务请求为数据访问,则对待访问的数据基于密钥进行解密并发送解密后的数据给数据服务终端;若该数据服务请求为数据存储,则对待存储的数据基于密钥进行加密并存储加密后的数据。数据存储服务器确定所述数据服务请求处理结束,则销毁所述数据服务请求对应的密钥,如此,使得数据服务请求对应的密钥基于协同计算生成的,且密钥只会存在于内存中,不会在磁盘文件系统“落地”,保证了密钥的安全性。
77.本发明实施例还提供了一种密钥管理方法,应用于密钥服务器,如图3所示,所述方法包括:
78.步骤301,接收数据存储服务器发送的第二密钥生成算法;
79.这里,所述第二密钥生成算法是所述数据存储服务器对第一密钥生成算法进行混淆后生成的。数据存储服务器生成对第一密钥生成算法进行混淆后生成第二密钥生成算法的过程,可以参照前述步骤201的描述,在此不再赘述。
80.步骤302,与所述数据存储服务器基于所述第二密钥生成算法、所述数据存储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算。
81.本发明实施例中,数据存储服务器在与密钥服务器协同计算密钥时,数据存储服务器首先对第一密钥生成算法进行混淆,然后与密钥服务器通过混淆后的第二密钥生成算法来协同计算密钥,数据存储服务器可以基于协同计算的计算结果恢复正确的密钥。通过这种方式,只有数据存储服务器可以拿到正确的密钥,参与计算的密钥服务器无法获知密钥,从而增强了密钥的安全性。
82.在一些实施例中,所述方法还包括:
83.接收所述数据存储服务器发送的密钥协同计算请求,所述密钥协同计算请求携带基于第一共享密钥加密的验证信息,所述第一共享密钥为所述数据服务终端与所述密钥服务器之间的共享密钥;
84.对所述密钥协同计算请求进行验证;
85.发送验证结果给所述数据存储服务器。
86.在一些实施例中,所述对所述密钥协同计算请求进行验证,包括:
87.基于所述验证信息验证所述密钥协同计算请求是否获得所述数据服务终端的许可;
88.若否,则确定验证不通过。
89.这里,验证信息可以包括:数据服务终端的身份标识,基于所述验证信息验证所述密钥协同计算请求是否获得所述数据服务终端的许可,包括:
90.基于数据服务终端的身份标识进行身份有效性验证。
91.比如,密钥服务器经第一共享密钥解密,得到验证信息中的数据服务终端的身份标识,将该身份标识与密钥协同计算请求中携带的数据服务终端的身份标识进行比较,若一致,则确定所述密钥协同计算请求获得所述数据服务终端的许可;若不一致,则确定所述密钥协同计算请求未获得所述数据服务终端的许可。
92.实际应用中,验证信息还可以包括时间戳,密钥服务器还可以基于验证信息中携带的时间戳进行时间有效性验证。密钥服务器在基于验证信息的身份有效性验证和时间有效性验证均通过的情况下,发送验证通过的结果给数据存储服务器;若身份有效性验证及时间有效性验证中有一个未通过,则发送验证未通过的结果给数据存储服务器或者不生成验证结果,数据存储服务器仅在收到验证通过的验证结果时,才对所述第一密钥生成算法进行混淆。
93.在一应用示例中,数据服务请求携带报文其中,表示用第一共享密钥加密。数据存储服务器接收数据服务请求后,先用第二共享密钥解密,对数据服务请求进行身份有效性验证和/或时间有效性验证。确定验证通过后,数据存储服务器还基于发送密钥协同计算请求给所述密钥服务器。比如,数据存储服务器向密钥服务器发送报文其中,id
s
为数据存储服务器的身份标识,t

为密钥协同计算请求携带的时间戳,表示用第三共享密钥加密。密钥服务器接收到该报文后,利用第三共享密钥解密,对密钥协同计算请求进行身份有效性验证和/或时间有效性验证,以验证数据存储服务器发送的密钥协同计算请求的有效性。在验证通过后,密钥服务器还可以对基于第一共享密钥进行加密,从而对数据服务请求是否由相应的数据服务终端发起进行验证。若验证通过,则发送验证通过的验证结果给数据存储服务器。数据存储服务器基于密钥服务器发送的验证结果对所述第一密钥生成算法进行混淆,以启动与密钥服务器之间的用于生成所述数据服务请求对应的密钥的协同计算。
94.下面结合应用实施例对本发明再作进一步详细的描述。
95.如图4所示,本应用实施例中,密钥管理系统包括:数据服务请求者c、数据存储服务器s和密钥服务器a,其中,密钥服务器a负责与数据存储服务器s协同计算密钥;数据存储服务器s负责数据存储以及响应数据服务请求者c的数据存储请求或者数据访问请求。其中,由于数据存储服务器s有对外提供的数据访问接口,很容易被攻击,本应用实施例的密钥管理方法,能够保证即使数据存储服务器s被黑客攻陷(拖库等),依然可以保证用户数据的安全。
96.下面以用户对数据的查询操作(对应数据解密操作),对本应用实施例的密钥管理方法进行说明,如图4所示,该密钥管理方法包括以下步骤:
97.步骤401,系统初始化。
98.密钥服务器a生成密钥k
ac
、k
as
、k
cs
,分别作为密钥服务器a与数据服务请求者c、密钥服务器a与数据存储服务器s、数据服务请求者c与数据存储服务器s共享的密钥。密钥服务器a生成密钥分片k
a
,数据存储服务器s生成密钥分片k
s
,k
a
和k
s
用于协同计算数据加密的密钥。
99.这里,密钥k
ac
相当于前述的第一共享密钥,密钥k
cs
相当于前述的第二共享密钥,密钥k
as
相当于前述的第三共享密钥,密钥分片k
s
相当于前述的第一密钥分片,密钥分片k
a
相当于前述的第二密钥分片。
100.步骤402,c向s发起数据访问请求,携带第一报文。
101.这里,数据服务请求者c向数据存储服务器s发起数据访问请求,该数据访问请求携带第一报文其中,id
c
为数据服务请求者c的身份标识,t为时间戳,和分别表示用密钥k
cs
和k
ac
加密,发给数据存储服务器s,用于向密钥服务器a进行“许可认证”。
102.步骤403,s验证报文有效性。
103.数据存储服务器s收到数据服务请求者c的数据访问请求后,首先用解密验证身份信息的有效性,同时判断时间戳与当前时间差值是否在预设阈值内,如果满足,则验证通过。
104.步骤404,s向a发起密钥协同计算请求,携带第二报文。
105.数据存储服务器s向密钥服务器a发起密钥协同计算请求,该密钥协同计算请求携带第二报文其中,id
s
为数据存储服务器s的身份标识,t

为密钥协同计算请求携带的时间戳。该密钥协同计算请求用于向密钥服务器a证明确实是数据服务请求者c在请求数据,而非数据存储服务器s自己想访问数据。其中,是在步骤402中由数据服务请求者c发给数据存储服务器s的,在步骤403中由数据存储服务器s解密得到。
106.步骤405,a验证报文有效性。
107.密钥服务器a接收密钥协同计算请求后,利用k
as
进行解密,验证id
s
和t

的有效性,并用k
ac
解密判断id
c
有效性以及时间戳与当前时间的差值是否设定阈值内,如果验证通过,则证明了数据存储服务器s的身份,同时可以确认数据查询请求是由数据服务请求者c发起的。密钥服务器a给数据存储服务器s返回验证成功的通知。
108.步骤406,s开始与a协同计算密钥。
109.这里,密钥生成算法是f(x,y),该密钥生成算法只有数据存储服务器s知晓,对密钥服务器a是保密的,x、y分别表示密钥服务器a和数据存储服务器s本地的密钥分片。数据存储服务器s选取两个随机数a、b作为噪音对密钥生成算法做混淆得到f

(x,y)=a
·
f(x,y) b。将混淆后的密钥生成算法f

(x,y)发给密钥服务器a,运行两方安全计算协议,与密钥
服务器a协同计算出f

(k
a
,k
s
)。数据存储服务器s计算k=(f

(k
a
,k
s
)-b)/a,k即为加解密密钥,此过程中,数据存储服务器s和密钥服务器a无法知晓对方的密钥分片,且密钥服务器a无法知晓最后的密钥k。
110.步骤407,s解密数据,发送给c,本次数据服务结束后销毁内存中的密钥。
111.数据存储服务器s利用密钥k解密数据访问请求访问的数据,并将解密后的数据发送给数据服务请求者c,在本次数据服务结束后,销毁内存中的密钥k。
112.需要说明的是,上述是解密操作的整个流程,加密操作与之类似,只需要将步骤407中的解密操作替换为对数据的加密操作,并将加密后的数据做存储,本发明实施例对此不再赘述。
113.本应用实施例密钥管理方法,密钥k是通过每次的密钥计算协议算出来的,仅存在于内存中,用完即销毁,下次用的时候需要再计算,并且该密钥只有协同计算的发起方(即数据存储服务器s)可知,其他参与方无法知晓该密钥相关信息;此外,参与计算的双方无法获知对方的密钥分片;另外,除基础的身份认证协议外,本应用实施例方法还设计了“许可认证”机制,密钥计算的发起需要数据服务请求者c许可才行,保证了技术数据存储服务器被黑客完全控制,一样无法计算出密钥来解密用户的加密数据。
114.为了实现本发明实施例的方法,本发明实施例还提供一种密钥管理装置,应用于数据存储服务器,该密钥管理装置与上述数据存储服务器侧的密钥管理方法对应,上述密钥管理方法实施例中的各步骤也完全适用于本密钥管理装置实施例。
115.如图5所示,该密钥管理装置500包括:算法混淆模块501、发送模块502及密钥生成模块503。其中,算法混淆模块501用于基于数据服务终端发送的数据服务请求,对第一密钥生成算法进行混淆,得到混淆后的第二密钥生成算法;发送模块502用于发送所述第二密钥生成算法给密钥服务器;密钥生成模块503用于与所述密钥服务器基于所述第二密钥生成算法、所述数据存储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算,对协同计算的计算结果进行反混淆,得到所述数据服务请求对应的密钥。
116.在一些实施例中,算法混淆模块501具体用于:
117.对数据服务终端发送的数据服务请求进行验证;
118.确定验证通过,对第一密钥生成算法进行混淆。
119.在一些实施例中,算法混淆模块501对数据服务终端发送的数据服务请求进行验证,包括以下至少之一:
120.基于所述数据服务请求中携带的身份标识进行身份有效性验证;
121.基于所述数据服务请求中携带的时间戳进行时间有效性验证。
122.在一些实施例中,所述数据服务请求携带基于第一共享密钥加密的验证信息,所述第一共享密钥为所述数据服务终端与所述密钥服务器之间的共享密钥,发送模块502还用于发送密钥协同计算请求给所述密钥服务器,所述密钥协同计算请求携带所述验证信息;该密钥管理装置500还包括接收模块504,接收所述密钥服务器基于所述密钥协同计算请求进行验证的验证结果;算法混淆模块501具体用于:确定来自所述密钥服务器的验证结果为验证通过,对所述第一密钥生成算法进行混淆。
123.在一些实施例中,算法混淆模块501对第一密钥生成算法进行混淆,包括:
124.对所述第一密钥生成算法基于随机数进行编码,生成所述第二密钥生成算法;
125.密钥生成模块503对协同计算的计算结果进行反混淆,包括:
126.对所述协同计算的计算结果基于所述随机数进行解码,生成所述数据服务请求对应的密钥。
127.在一些实施例中,该密钥管理装置500还包括处理模块505,用于确定所述数据服务请求处理结束,销毁所述数据服务请求对应的密钥。
128.实际应用时,算法混淆模块501、发送模块502、密钥生成模块503、接收模块504及处理模块505,可以由密钥管理装置中的处理器来实现。当然,处理器需要运行存储器中的计算机程序来实现它的功能。
129.为了实现本发明实施例的方法,本发明实施例还提供一种密钥管理装置,应用于密钥服务器,该密钥管理装置与上述密钥服务器侧的密钥管理方法对应,上述密钥管理方法实施例中的各步骤也完全适用于本密钥管理装置实施例。
130.如图6所示,该密钥管理装置600包括:接收模块601、协同模块602;其中,接收模块601用于接收数据存储服务器发送的第二密钥生成算法;协同模块602用于与所述数据存储服务器基于所述第二密钥生成算法、所述数据存储服务器存储的第一密钥分片、所述密钥服务器存储的第二密钥分片进行协同计算。所述第二密钥生成算法是所述数据存储服务器对第一密钥生成算法进行混淆后生成的。
131.在一些实施例中,接收模块601还用于接收所述数据存储服务器发送的密钥协同计算请求,所述密钥协同计算请求携带基于第一共享密钥加密的验证信息,所述第一共享密钥为所述数据服务终端与所述密钥服务器之间的共享密钥;该密钥管理装置600还包括:验证模块603及发送模块604,验证模块603用于对所述密钥协同计算请求进行验证;发送模块604用于发送验证结果给所述数据存储服务器。
132.在一些实施例中,验证模块603具体用于:
133.基于所述验证信息验证所述密钥协同计算请求是否获得所述数据服务终端的许可;
134.若否,则确定验证不通过。
135.实际应用时,接收模块601、协同模块602、验证模块603及发送模块604,可以由密钥管理装置中的处理器来实现。当然,处理器需要运行存储器中的计算机程序来实现它的功能。
136.需要说明的是:上述实施例提供的密钥管理装置在进行密钥管理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的密钥管理装置与密钥管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
137.基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供一种数据存储服务器。图7仅仅示出了该数据存储服务器的示例性结构而非全部结构,根据需要可以实施图7示出的部分结构或全部结构。
138.如图7所示,本发明实施例提供的数据存储服务器700包括:至少一个处理器701、存储器702、用户接口703和至少一个网络接口704。数据存储服务器700中的各个组件通过总线系统705耦合在一起。可以理解,总线系统705用于实现这些组件之间的连接通信。总线
系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统705。
139.其中,用户接口703可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
140.本发明实施例中的存储器702用于存储各种类型的数据以支持数据存储服务器的操作。这些数据的示例包括:用于在数据存储服务器上操作的任何计算机程序。
141.本发明实施例揭示的密钥管理方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,密钥管理方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成本发明实施例提供的密钥管理方法的步骤。
142.在示例性实施例中,数据存储服务器可以被一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、fpga、通用处理器、控制器、微控制器(mcu,micro controller unit)、微处理器(microprocessor)、或者其他电子元件实现,用于执行前述方法。
143.基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供一种密钥服务器。图8仅仅示出了该密钥服务器的示例性结构而非全部结构,根据需要可以实施图8示出的部分结构或全部结构。
144.如图8所示,本发明实施例提供的密钥服务器800包括:至少一个处理器801、存储器802、用户接口803和至少一个网络接口804。密钥服务器800中的各个组件通过总线系统805耦合在一起。可以理解,总线系统805用于实现这些组件之间的连接通信。总线系统805除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统805。
145.其中,用户接口803可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
146.本发明实施例中的存储器802用于存储各种类型的数据以支持密钥服务器的操作。这些数据的示例包括:用于在密钥服务器上操作的任何计算机程序。
147.本发明实施例揭示的密钥管理方法可以应用于处理器801中,或者由处理器801实现。处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,密钥管理方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器801可以是通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器801可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器
或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器802,处理器801读取存储器802中的信息,结合其硬件完成本发明实施例提供的密钥管理方法的步骤。
148.在示例性实施例中,密钥服务器800可以被一个或多个asic、dsp、pld、cpld、fpga、通用处理器、控制器、mcu、microprocessor、或其他电子元件实现,用于执行前述方法。
149.可以理解,存储器702、802可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read-only memory)、可擦除可编程只读存储器(eprom,erasable programmable read-only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read-only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd-rom,compact disc read-only memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static random access memory)、同步静态随机存取存储器(ssram,synchronous static random access memory)、动态随机存取存储器(dram,dynamic random access memory)、同步动态随机存取存储器(sdram,synchronous dynamic random access memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic random access memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic random access memory)、同步连接动态随机存取存储器(sldram,synclink dynamic random access memory)、直接内存总线随机存取存储器(drram,direct rambus random access memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
150.本发明实施例还提供了一种密钥管理系统,如图9所示,该密钥管理系统包括前述实施例的数据存储服务器700和密钥服务器800。该密钥管理系统的密钥管理方法可以参照前述实施例,在此不再赘述。
151.在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体可以是计算机可读存储介质,例如包括存储计算机程序的存储器702,上述计算机程序可由数据存储服务器700的处理器701执行,以完成本发明实施例数据存储服务器700侧方法所述的步骤;又如,包括存储计算机程序的存储器802,上述计算机程序可由密钥服务器800的处理器801执行,以完成本发明实施例密钥服务器800侧方法所述的步骤。计算机可读存储介质可以是rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd-rom等存储器。
152.需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
153.另外,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
154.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献