掌桥专利:专业的专利平台
掌桥专利
首页

一种密钥管理方法

文献发布时间:2023-06-19 12:02:28


一种密钥管理方法

技术领域

本申请涉及互联网技术领域,涉及但不限于一种密钥管理方法。

背景技术

应用的后台系统需要一些密钥用于加解密数据,相关技术存在如下两种方法用于管理密钥:方法一、直接把密钥写在应用系统后台的程序代码中,在应用系统后台的程序部署到不同环境而需要使用不同的密钥的情况下,需要修改程序代码,存在密钥管理不够灵活的问题;方法二、把密钥明文写在应用系统后台的配置文件里,因为配置文件可以直接查看,存在容易泄露密钥的问题。

发明内容

本申请实施例提供一种密钥管理方法,能够灵活管理密钥,并规避泄露密钥的风险问题。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种密钥管理方法,应用于数据库密钥管理系统,所述方法包括:获取目标应用的后台系统发送的系统密钥获取请求,所述系统密钥获取请求包括目标应用的后台系统的标识,所述系统密钥获取请求是在自动化运维平台发布所述目标应用的后台系统的情况下生成的,所述系统密钥用于加密所述目标应用的后台系统的数据;响应于所述系统密钥获取请求,根据所述目标应用的后台系统的标识确定所述目标应用的第二系统密钥;将所述目标应用的第二系统密钥发送至所述目标应用的后台系统。

本申请实施例提供一种密钥管理方法,应用于目标应用的后台系统,所述方法包括:响应于自动化运维平台发送的部署所述目标应用的通知消息,确定所述目标应用的后台系统的标识;发送系统密钥获取请求至数据库密钥管理系统,其中,所述系统密钥获取请求包括所述目标应用的后台系统的标识;接收所述数据库密钥管理系统发送的所述目标应用的第二系统密钥,其中,所述目标应用的第二系统密钥是根据所述目标应用的后台系统的标识确定的;利用所述目标应用的第二系统密钥完成所述目标应用的部署,以保护所述目标应用的后台系统的数据。

本申请实施例提供一种密钥管理方法,应用于自动化运维平台、目标应用的后台系统和数据库密钥管理系统,所述方法包括:所述目标应用的后台系统,响应于所述自动化运维平台发送的部署所述目标应用的消息,向所述数据库密钥管理系统发送系统密钥获取请求,其中,所述系统密钥获取请求包括目标后台系统的后台系统的标识和签名摘要,所述系统密钥用于加密所述目标应用的后台系统的数据;在所述数据库密钥管理系统基于所述签名摘要签证签名成功的情况下,根据所述目标后台系统的系统标识确定所述目标后台系统的第二系统密钥;所述数据库密钥管理系统利用对称密钥加密所述第二系统密钥,得到第三系统密钥;将所述第三系统密钥发送至所述目标应用的后台系统,其中,所述对称密钥是采用DH密钥交换算法得到的;所述目标应用的后台系统接收所述第三系统密钥,并利用所述对称密钥解密所述第三系统密钥,得到所述第二系统密钥,以利用所述第二系统密钥完成所述目标后台系统的部署。

本申请实施例提供一种密钥管理装置,应用于数据库密钥管理系统,所述装置包括:第一获取模块,用于获取目标应用的后台系统发送的系统密钥获取请求,所述系统密钥获取请求包括目标应用的后台系统的标识,所述系统密钥获取请求是在自动化运维平台发布所述目标应用的后台系统的情况下生成的,所述系统密钥用于加密所述目标应用的后台系统的数据;第一确定模块,用于响应于所述系统密钥获取请求,根据所述目标应用的后台系统的标识确定所述目标应用的第二系统密钥;第一发送模块,用于将所述目标应用的第二系统密钥发送至所述目标应用的后台系统。

本申请实施例提供一种密钥管理装置,应用于目标应用的后台系统,所述装置包括:第四确定模块,用于响应于自动化运维平台发送的部署所述目标应用的通知消息,确定所述目标应用的后台系统的标识;第二发送模块,用于发送系统密钥获取请求至数据库密钥管理系统,其中,所述系统密钥获取请求包括所述目标应用的后台系统的标识;第一接收模块,用于接收所述数据库密钥管理系统发送的所述目标应用的第二系统密钥,其中,所述目标应用的第二系统密钥是根据所述目标应用的后台系统的标识确定的;部署模块,用于利用所述目标应用的第二系统密钥完成所述目标应用的部署,以保护所述目标应用的后台系统的数据。

本申请实施例提供的一种密钥管理装置,应用于自动化运维平台、目标应用的后台系统和数据库密钥管理系统,所述装置包括:第四发送模块,用于所述目标应用的后台系统,响应于所述自动化运维平台发送的部署所述目标应用的消息,向所述数据库密钥管理系统发送系统密钥获取请求,其中,所述系统密钥获取请求包括目标后台系统的后台系统的标识和签名摘要,所述系统密钥用于加密所述目标应用的后台系统的数据;第五确定模块,用于在所述数据库密钥管理系统基于所述签名摘要签证签名成功的情况下,根据所述目标后台系统的系统标识确定所述目标后台系统的第二系统密钥;第二加密模块,用于所述数据库密钥管理系统利用对称密钥加密所述第二系统密钥,得到第三系统密钥,其中,所述对称密钥是采用DH密钥交换算法得到的;第四发送模块,用于所述数据库密钥管理系统将所述第三系统密钥发送至所述目标应用的后台系统;第二接收模块,用于所述目标应用的后台系统接收所述第三系统密钥,并利用所述对称密钥解密所述第三系统密钥,得到所述第二系统密钥,以利用所述第二系统密钥完成所述目标后台系统的部署。

本申请实施例提供一种计算机设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的方法。

本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的方法。

本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的方法。

在本申请实施例提供的密钥管理方法中,首先,在自动化运维平台发布所述目标应用的后台系统的情况下,目标应用的后台系统向数据库密钥管理系统发送系统密钥获取请求,然后目标应用的后台系统获取到数据库密钥管理系统发送的目标应用的第二系统密钥。这样,在应用的后台系统部署过程中才去获取所需的第二系统密钥,可以有效规避系统密钥的泄露风险,解决了应用的后台系统的系统密钥存在容易泄露的问题。

附图说明

图1为本申请实施例提供的一种密钥管理方法的系统架构示意图;

图2A为本申请实施例提供的一种密钥管理方法的实现流程示意图;

图2B为本申请实施例提供的第二系统密钥的标识与应用的后台系统的标识映射关系的示意图;

图2C为本申请实施例提供的本地的存储空间内的目标存储域的示意图;

图3A为本申请实施例提供的一种密钥管理方法的实现流程示意图;

图3B为本申请实施例提供的一种密钥管理方法的实现流程示意图;

图4A为本申请实施例提供的一种密钥管理方法的实现流程示意图;

图4B为本申请实施例提供的密钥标识与密钥信息的对应关系的示意图;

图4C为本申请实施例提供的一种密钥管理方法的实现流程示意图;

图5A为本申请实施例提供的一种密钥管理装置的组成结构示意图;

图5B为本申请实施例提供的一种密钥管理装置的组成结构示意图;

图5C为本申请实施例提供的一种密钥管理装置的组成结构示意图;

图6为本申请实施例提供的一种硬件实体示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一\第二\第三”仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)数据库密钥管理系统,提供可视化的密钥托管等功能模块。

2)数据库密钥管理平台:数据库密钥管理平台、控制台。

3)密钥查询服务:提供托管密钥查询功能,这里,托管密钥即下文提到的第二系统密钥。

4)签名服务:提供签名功能,用于权限校验。

5)密钥管理软件开发包:提供应用调用进行密钥查询,本身具备密钥缓存功能。

6)自动化运维平台:用于将项目部署到目标服务器。

7)工作密钥:加密托管密钥的密钥,为对称密钥,长度128比特。工作密钥由主密钥加密后存储在数据库中。

8)签名密钥:用于做签名的密钥,为非对称密钥,其私钥长度为1024比特,和工作密钥一样存储在数据库中。

9)主密钥:加密工作密钥和签名密钥的最终密钥,为对称密钥,长度128比特。主密钥由三个分量计算得到,每个分量由一名负责人随机选取32个16进制字符(128比特)得到,负责人将自己负责的分量字符串写在纸条上,不泄露给其他人,将3张纸条保存在公司的不同保险箱里。在实际使用主密钥时,不需要每次都拿三个分量去计算,而是将主密钥计算后存在系统的共享内存中。第一次存储,需在数据库密钥管理平台上,由3个负责人分别输入分量,计算出主密钥。

10)应用的后台系统标识:唯一标识应用的标识。

11)签名标识:由签名服务生成的唯一标识某次签名的标识,格式为“${应用系统ID}_${32位随机数}”。

12)签名:本申请使用的签名算法。

13)混淆密码:用于和签名做异或操作的密码。

14)混淆签名:签名和混淆密码进行异或计算后,得到的混淆签名。

15)RSA:一种非对称加密算法,服务端使用调用方的公钥进行加密,然后调用方获取数据后用自己的私钥进行解密得到明文。

16)DES:全称为Data Encryption Standard,数据加密标准,是一种常见的对称加密算法。

17)T-DES:(Triple DES)是三重数据加密算法块密码的通称;相当于是对每个数据块应用三次DES加密算法;本申请中可以使用该算法对托管密钥和工作密钥做加密。

18)MD5:HASH算法的一种,相比SHA256碰撞率高。

19)SHA256:HASH算法的一种,相比MD5碰撞率低,但耗时更高。

20)XOR:异或运算。

21)NEGATE:取反运算。

22)DH密钥交换算法:全称为Diffie–Hellman key exchange,该算法可以在需要安全传输的前提下,确定双方的对称密钥,该算法的核心在于双方的私钥没有进入网络传输流程,根据对方的公钥和己方的私钥,可以计算出同样的Key。攻击方即便获取到公钥,也无法计算出Key值。

图1为本申请实施例提供的一种密钥管理方法的系统架构示意图,如图1所示,在该系统架构中至少包括:自动化运维平台101、应用的后台系统102、数据库密钥管理平台103、密钥查询服务104、签名服务105和密钥管理软件开发包106、数据库107。其中,

自动化运维平台101,用于将项目部署到目标服务器,基于超文本传输协议(HyperText Transfer Protocol,HTTP)与签名服务105交互数据;

应用的后台系统102,用于服务前端应用的后台系统;

数据库密钥管理平台103,用于提供可视化的密钥托管等功能模块,包括主密钥录入、工作密钥录入、签名密钥录入和应用系统密钥(第二系统密钥)的托管;

密钥查询服务104,用于提供被托管的应用系统密钥查询功能;

签名服务105,用于提供签名功能和权限校验。其中,自动化运维平台101需要调用签名服务105获取应用的后台系统102的签名结果,签名服务105基于HTTP协议与数据库密钥管理平台103交互数据;

密钥管理软件开发包106,安装在应用的后台系统本地,用于提供程序调用进行第二系统密钥查询,具备密钥缓存功能,需要应用的后台系统102接入,提供本地验证签名功能,对密钥查询服务104的服务请求过程进行封装;

数据库107,利用MYSQL提供数据给数据库密钥管理平台103、密钥查询服务104、签名服务105。

数据库密钥管理平台103、密钥查询服务104和签名服务105三者连接同一个数据库107,共享所有数据。在本申请实施例中,由于主密钥并不存在于数据库库107中,因此密钥查询服务104和签名服务105还需要通过HTTP接口向数据库密钥管理平台103同步主密钥。

图2A为本申请实施例提供的一种密钥管理方法的实现流程示意图,应用于数据库密钥管理系统,如图2A所示,该方法包括:

步骤S201、获取用于目标应用的后台系统发送的系统密钥获取请求,所述系统密钥获取请求包括目标应用的后台系统的标识,所述系统密钥获取请求是在自动化运维平台发布所述目标应用的后台系统的情况下生成的,所述系统密钥用于加密所述目标应用的后台系统的数据;

在一些实施例中,如图1所示,数据库密钥管理系统包括:数据库密钥管理平台103、密钥查询服务104、签名服务105和密钥管理软件开发包106。

自动化运维平台101,是用于部署应用的后台系统的运维平台。应用的后台系统102,是用于服务前端应用的后台系统。

在实施过程中,在自动化运维平台发布所述目标应用的后台系统的情况下,数据库密钥管理平台103获取目标应用的后台系统102发送的系统密钥获取请求,系统密钥获取请求包括目标应用的后台系统的标识。

在一些实施例中,目标应用的后台系统的标识可以是用户根据实际需求确定的目标应用的系统后台对应的系统标识(Identity Document,ID)。

步骤S202、响应于所述系统密钥获取请求,根据所述目标应用的后台系统的标识确定所述目标应用的第二系统密钥;

在一些实施例中,如图1所示,数据库密钥管理平台103根据目标应用的系统标识确定目标应用的第二系统密钥。这里,目标应用的第二系统密钥存储于数据库密钥管理平台103中。

步骤S203、将所述目标应用的第二系统密钥发送至所述目标应用的后台系统。

在一些实施例中,如图1所示,数据库密钥管理平台103将目标应用的第二系统密钥发送至目标应用的后台系统102。

本申请实施例中,首先,在自动化运维平台发布所述目标应用的后台系统的情况下,目标应用的后台系统向数据库密钥管理系统发送系统密钥获取请求,然后目标应用的后台系统获取到数据库密钥管理系统发送的目标应用的第二系统密钥。这样,在应用的后台系统部署过程中才去获取所需的第二系统密钥,可以有效规避系统密钥的泄露风险,解决了应用的后台系统的系统密钥存在容易泄露的问题。

基于前述的实施例,本申请实施例提供一种密钥管理方法,应用于数据库密钥管理系统,该方法包括:

步骤S211、获取目标应用的后台系统发送的系统密钥获取请求,所述系统密钥获取请求包括目标应用的后台系统的标识,所述系统密钥获取请求是在自动化运维平台发布所述目标应用的后台系统的情况下生成的,所述系统密钥用于加密所述目标应用的后台系统的数据;

步骤S212、响应于所述系统密钥获取请求,根据所述目标应用的后台系统的标识确定所述目标应用的第一系统密钥;

在实施过程中,由于存放在密钥管理系统中的第二系统密钥需要加密保存,所以需要利用工作密钥加密第二系统密钥得到第一系统密钥,并将第一系统密钥存放于密钥管理系统中。这里,第一系统密钥的标识和第二系统密钥的标识可以是相同的,也可以是有关联关系的。

在一些实施例中,根据目标应用的后台系统的标识可以确定第二系统密钥,由于第一系统密钥的标识和第二系统密钥的标识可以是相同的,也可以是有关联关系的,所以也可以根据目标应用的后台系统的标识确定第一系统密钥。

步骤S213、利用获取的工作密钥解密所述第一系统密钥,得到所述目标应用的第二系统密钥;

在实施过程中,由于第一系统密钥是加密第二系统密钥得到的,所以需要利用工作密钥解密第一系统密钥,得到第二系统密钥。

步骤S214、将所述目标应用的第二系统密钥发送至所述目标应用的后台系统。

本申请实施例中,利用工作密钥加密第二系统密钥,得到第一系统密钥并保存。在需要获取第二系统密钥的情况下,解析第一系统密钥可以得到第二系统密钥。这样,可以有效保障存储在数据库密钥管理系统中的第二系统密钥的安全性。

基于前述的实施例,本申请实施例提供一种密钥管理方法,应用于数据库密钥管理系统,该方法包括:

步骤S221、响应于对应用的第二系统密钥的托管请求,获取工作密钥;

在实施过程中,所有在部署过程中需要密钥加密的应用,都需要将第二系统密钥提前托管在数据库密钥管理系统中。数据库密钥管理系统响应于对应用的第二系统密钥的托管请求,获取用于加密第二系统密钥的工作密钥。

步骤S222、利用所述工作密钥加密目标应用的第二系统密钥,得到第一系统密钥;

在实施过程中,数据库密钥管理系统利用工作密钥加密第二系统密钥,得到第一系统密钥,这样,托管于数据库密钥管理系统中的第一系统密钥相较于未加密的第二系统密钥,保密性更高。

步骤S223、基于目标应用的后台系统的标识,确定位于本地的存储空间内的目标存储域,其中所述本地的存储空间内包括数据相互隔离的多个存储域,每一所述存储域内包括数据相互隔离的多个数据保险箱;

对于每个第二系统密钥,托管第二系统密钥完成后,数据库密钥管理系统103都会生成一个唯一的密钥标识与第二系统密钥对应,第二系统密钥的标识如图2B所示的系统密钥1、系统密钥2和系统密钥3。在实施过程中,一个第二系统密钥可以对应多个应用,一个应用也可以对应多个系统密钥。例如,系统密钥1可以对应应用1和应用2,系统密钥3可以对应应用3。

在一些实施例中,由于要托管整个公司所有应用的后台系统的系统密钥,公司内部划分多个部门,每个部门又划分多个科室,因此数据库密钥管理系统103将每个部门划分为一个域(Domain),如图2C所示:域1、域2至域n;每个域下又划分若干个保险箱(Safe),如图2C所示:保险箱1、保险箱2;保险箱用来存放密钥,如图2C所示保险箱1存放系统密钥1、系统密钥2至系统密钥n;域与域之间数据相互隔离,同时每个域下的保险箱与保险箱之间数据也相互隔离。

在一些实施例中,目标应用的后台系统的标识,与位于本地的存储空间内的目标存储域可以存在关联关系,如图2C所示,本地的存储空间内包括数据相互隔离的多个存储域(域1、域2至域n),每一存储域内包括数据相互隔离的多个数据保险箱(保险箱1、保险箱2)。

步骤S224、在所述目标存储域内的多个数据保险箱中确定用于存储所述第一系统密钥的目标数据保险箱;

在一些实施例中,在目标存储域内的多个数据保险箱中存放经过加密第二系统密钥得到的第一系统密钥。如图2C所示,保险箱1中存放系统密钥1和系统密钥2。

在一些实施例中,数据库密钥管理系统需要在目标存储域内的多个数据保险箱中确定用于存储第一系统密钥的目标数据保险箱。如图2C所示,可以确定保险箱1为存储第一系统密钥的目标保险箱。

步骤S225、将所述第一系统密钥存储在所述目标数据保险箱;

在实施过程中,在确定目标数据保险箱的情况下,可以将第一系统密钥存储在目标数据保险箱内。

步骤S226、获取目标应用的后台系统发送的系统密钥获取请求,所述系统密钥获取请求包括目标应用的后台系统的标识,所述系统密钥获取请求是在自动化运维平台发布所述目标应用的后台系统的情况下生成的,所述系统密钥用于加密所述目标应用的后台系统的数据;

步骤S227、响应于所述系统密钥获取请求,获取所述目标应用的签名摘要;

在一些实施例中,可以利用以下A1至A4步骤获取目标应用的签名摘要:

A1、数据库密钥管理系统中的签名服务响应所述自动化运维平台发送的签名请求,获取所述目标应用的请求签名参数,其中,所述请求签名参数包括目标应用的系统标识;

在一些实施例中,在获取到目标应用的系统密钥之前,如图1所示,自动化运维平台101需要请求签名服务105获取目标应用的请求签名参数。

在一些实施例中,数据库密钥管理系统响应自动化运维平台101发送的签名请求,数据库密钥管理系统中的签名服务获取目标应用的请求签名参数,如下:

自动化运维平台101将应用系统发布包中不需要参与签名的文件及文件夹(绝对路径),即,排除签名文件放到一个json数组(excludeFile)中;将包括差异化变量配置的文件,即,差异化文件,放到另外一个json数组(needReconfigFile)中,如果没有需排除签名文件和差异化文件,则excludeFile和needReconfigFile为空数组;

自动化运维平台101对应用系统发布包中需要参与签名的全部文件计算md5值,放到json数组(signFile)当中,数组中每个元素为一个json,即{absolutePath:hashValue};

自动化运维平台101将发布应用系统ID(systemId)及服务器IP列表及上述参数组成json发送给签名服务系统,目标应用的请求签名参数,示例如下所示:

这样,数据库密钥管理系统中的签名服务可以获取自动化运维平台发送的请求签名参数,例如请求签名参数可以为:

(systemId|excludeFile|needReconfigFile|signFile|iplist)。

A2、签名服务根据所述目标应用的系统标识生成所述目标应用的签名标识;

在一些实施例中,签名服务可以将所述目标系统标识与M位随机字符串拼接,生成所述目标应用的签名标识,其中,M为大于等于2的整数;

在一些实施例中,如图1所示的签名服务105接收自动化运维平台发送的签名请求,进行签名计算:需要生成签名标识,可以是由目标应用标识(systemId)和32位随机字符串拼接而成,记做目标应用的签名标识(signId)。

A3、签名服务根据获取所述请求签名参数的时间,生成时间戳;

在一些实施例中,时间戳(timeStamp)可以是签名服务根据获取请求参数的时间生成。

A4、签名服务基于所述请求签名参数、所述签名标识和所述时间戳,利用安全散列算法得到签名摘要。

在一些实施例中,签名服务对基于所述请求签名参数、所述签名标识和所述时间戳(signId|systemId|excludeFile|needReconfigFile|signFile|iplist|timeStamp)进行安全散列算法SHA256计算,得到签名摘要(hashValue1),如下公式(1):

hashValue1=

SHA256((signId|systemId|excludeFile|needReconfigFile|signFile|iplist|timeStamp)) (1)。

为了提升签名摘要的安全性,使用以下步骤B1至B4对签名摘要进行加密:

B1、数据库密钥管理系统中的签名服务获取RSA私钥;

在一些实施例中,可以从如图1所示的数据库107中获取签名密钥对中的RSA私钥,此时RSA私钥是加过密的,需要使用主密钥(masterKey)解密,得到签名私钥(privateKey),如下公式(2):

privateKey=T-DES(privateKey,masterKey) (2)。

B2、签名服务利用所述RSA私钥对所述签名摘要进行RSA加密,得到加密后的签名摘要;

在一些实施例中,签名服务可以使用签名私钥(privateKey)对签名摘要(hashValue1)进行RSA加密,得到签名(sign),如下公式(3):

sign=RSA(hashValue1,privateKey) (3)。

B3、签名服务将加密后的签名摘要与随机获取的混淆密码做异或计算,得到签名值,其中,所述混淆密钥是随机生成的;

在一些实施例中,签名服务可以将签名(sign)与随机获取的混淆密码做异或计算,得到签名值(signValue),如下公式(4):

signValue=XOR(sign,password) (4)。

B4、签名服务将所述签名值、所述签名标识和时间戳发送至所述自动化运维平台。

这样,数据库密钥管理系统中的签名服务获取目标应用的请求签名参数,经过签名后,签名服务将签名值和目标应用的签名标识以及签名戳返回给自动化运维平台,可以实现利用数据库密钥管理系统完成目标应用的签名。

在实施过程中,数据库密钥管理系统中的密钥管理软件开发包响应于系统密钥获取请求,获取签名摘要,其中,签名摘要是自动化运维平台发送给目标应用的后台系统的。

在一些实施例中,数据库密钥管理系统中的密钥管理软件开发包还可以获取签名值,其中,签名值是加密后的签名摘要。

步骤S228、基于所述签名摘要签证签名成功的情况下,根据所述目标应用的后台系统的标识确定所述目标应用的第一系统密钥;

在一些实施例中,验证摘要签名可以使用以下步骤实现:

C1、数据库密钥管理系统中的密钥管理软件开发包获取签名值;

在一些实施例中,密钥管理软件开发包可以读取如以上步骤B4中得到的签名值(signValue)。

C2、密钥管理软件开发包将所述签名值与混淆密码做异或计算,得到加密后的签名摘要;

在一些实施例中,密钥管理软件开发包将签名值(signValue)与混淆密码进行异或,得到加密后的签名摘要(sign),如下公式(5):

sign=XOR(signValue,password) (5)。

C3、密钥管理软件开发包利用RSA公钥解密所述加密后的签名摘要,得到签名摘要;

在一些实施例中,密钥管理软件开发包使用RSA公钥(publicKey),其中,签名公钥可以预先写在密钥管理软件开发包106中的,对sign进行RSA解密,得到签名摘要(hashValue1),如下公式(6):

hashValue1=RSA(sign,publicKey) (6)。

C4、密钥管理软件开发包在目标应用的目标发布包中读取目标应用的签名标识和时间戳;

C5、密钥管理软件开发包基于所述请求签名参数、所述签名标识和所述时间戳,利用安全散列算法得到验证摘要值;

在一些实施例中,密钥管理软件开发包基于所述请求签名参数、所述签名标识和所述时间戳,利用安全散列算法得到第二摘要值,可以是对(signId|systemId|excludeFile|needReconfigFile|signFile|iplist|timeStamp)进行SHA256计算,得到验证摘要值(hashValue2)。

C6、密钥管理软件开发包在确定所述验证摘要值与所述签名摘要相同的情况下,确定所述目标应用的目标发布包完成本地签名验证。

在实施过程中,密钥管理软件开发包对比验证摘要值与所述签名摘要,若一致则验签通过。

在一些实施例中,目标应用的后台系统每次重启,都会调用密钥管理软件开发包进行验签操作,而目标应用的请求签名参数是应用的后台系统在自动化运维平台发布的时候获取的,每次发布都会更新目标应用的请求签名参数,如果不发布只重启,则密钥管理软件开发包验证已有目标应用的请求签名参数。

这样,密钥管理软件开发包在应用的后台系统本地完成签名验证,可以有效保障获取密钥的目标应用的后台系统是安全有效的。

由于密钥管理软件开发包是安装在目标应用的后台系统的本地,在本地签名校验通过后,数据库密钥管理系统的密钥查询服务可以以相同的验签的方法完成数据库密钥管理系统的验签,这样,两次验签可以确保签名摘要是有效的。

步骤S229、利用获取的工作密钥解密所述第一系统密钥,得到所述目标应用的第二系统密钥;

步骤S230、将所述目标应用的第二系统密钥发送至所述目标应用的后台系统。

本申请实施例中,首先确定签名摘要签证签名成功,然后再根据目标应用的后台系统的标识确定目标应用的第二系统密钥。这样,可以实现在需要部署所述目标应用的情况下,完成目标应用的目标发布包签名验证,有效保障目标应用的后台系统的安全性。

本申请实施例中,利用工作密钥加密目标应用的第二系统密钥,得到第一系统密钥。这样,可以有效保障存储在数据库密钥管理系统中的第二系统密钥的安全性。

本申请实施例中,将本地的存储空间划分为数据相互隔离的多个存储域,每个存储域内包括数据相互隔离的多个数据保险箱,保险箱用来存放第一系统密钥。这样,存储域与存储域之间数据相互隔离,同时每个域下的保险箱域保险箱之间数据也相互隔离。可以保证第一系统密钥的存放安全。

本申请实施例提供一种获取工作密钥的方法,应用于数据库密钥管理系统,该方法包括:

步骤S241、录入主密钥,其中,所述主密钥是由N个主密钥分量计算获得的,N为大于等于3的整数;

在实施过程中,主密钥是用于加密工作密钥对应的密钥值,以获取工作密钥。

在一些实施例中,要保证目标应用的系统密钥不被泄露,目标应用的第二系统密钥托管后需要加密存储,可以设计“主密钥+工作密钥”机制来保证目标应用的系统密钥托管后的安全性,在托管目标应用的第二系统密钥前,响应于对目标应用的第二系统密钥的托管请求,如图1所示的数据库密钥管理平台103需要初始化主密钥、工作密钥和签名密钥。首先是录入主密钥(masterKey),可以将主密钥的长度设置为128比特,由三个分量计算而成。

步骤S242、利用所述主密钥加密随机生成的工作密钥值,得到所述工作密钥。

在一些实施例中,主密钥录入完成后,可以随机生成例如128比特的工作密钥值(value),并采用T-DES算法利用主密钥加密工作密钥值后存储到数据库中,得到工作密钥(workKey),即,如下公式(7):

workKey=T-DES(value,masterKey) (7);

然后数据库密钥管理平台将工作密钥存入如图1所示的数据库107中。

本申请实施例中,先录入主密钥,再用主密钥加密工作密钥值可以得到用于加密第二系统密钥的工作密钥。

基于前述的实施例,本申请实施例提供一种录入主密钥的方法,应用于数据库密钥管理系统,该方法包括:

步骤S251、将存储的所述N个主密钥分量对应的N个取反后分量进行取反运算,得到包括N个所述主密钥分量的待处理集合;

在一些实施例中,首先数据库密钥管理平台需要将存储的N个主密钥分量对应的N个取反后分量,以获取3个主密钥分量(v1、v2、v3)为例,说明存储N个主密钥分量对应的N个取反后分量:

每个分量为一串32个16进制字符的字符串,分别由三个负责人持有,写在纸条上并分别放在三个不同保险箱中。录入主密钥时,由三个负责人分别录入各自的分量,然后数据库密钥管理平台进行处理。

在一些实施例中,数据库密钥管理平台分别将三个分量v1、v2、v3各自取反,得到v11、v22、v33,取反公式如下(8)、(9)、(10):

v11=NEGATE(v1) (8);

v22=NEGATE(v2) (9);

v33=NEGATE(v3) (10);

数据库密钥管理平台将包括v11、v22、v33的主密钥取反分量的待处理集合存放到一块例如64K大小的共享内存中,在存放时可以不连续存放,每两个分量之间是随机字符串。这样,数据库密钥管理平台可以完成N个主密钥分量对应的N个取反后分量的存储。

然后,当需要使用主密钥时,数据库密钥管理平台需要进行反向计算如下公式(11)、(12)、(13):

v1=NEGATE(v11) (11);

v2=NEGATE(v22) (12);

v3=NEGATE(v33) (13);

这样,数据库密钥管理平台可以从共享内存获取v11、v22、v33,并取反得到包括v1、v2、v3的主密钥分量的待处理集合。

步骤S252、将所述待处理集合中的任意两个所述主密钥分量做异或运算,得到第一异或运算结果;

步骤S253、在所述待处理集合中删除完成异或运算的两个所述主密钥分量,得到中间集合;

步骤S254、将所述中间集合中的任一所述主密钥分量与所述第一异或运算结果做异或运算,得到第二异或运算结果;

步骤S255、响应于所述中间集合为空,确定得到的最终异或运算结果为所述主密钥。

在一些实施例中,数据库密钥管理平台对v1、v2做异或操作,然后将结果与v3做异或操作,得到主密钥,即,如下公式(14):

masterKey=XOR(XOR(v1,v2),v3) (14);

在另一些实施例中,数据库密钥管理平台响应于所述中间集合为空,将得到的最终异或运算结果作为所述主密钥,得到所述主密钥。

本申请实施例中,数据库密钥管理平台取反保存主密钥分量可以有效保证主密钥分量存储的安全性;利用多个主密钥分量做异或运算得到主密钥,可以有效保证主密钥的安全性。

图3A为本申请实施例提供的一种密钥管理方法的实现流程示意图,应用于目标应用的后台系统,如图3A所示,该方法包括:

步骤S301、响应于自动化运维平台发送的部署所述目标应用的通知消息,确定所述目标应用的后台系统的标识;

实施过程中,在需要自动化运维平台部署目标应用的情况下,目标应用的后台系统响应于自动化运维平台发送的部署所述目标应用的通知消息,并确定该目标应用的后台系统的标识。

步骤S302、发送系统密钥获取请求至数据库密钥管理系统,其中,所述系统密钥获取请求包括所述目标应用的后台系统的标识;

实施过程中,目标应用的后台系统发送系统密钥获取请求至数据库密钥管理系统,其中,系统密钥获取请求包括目标应用的后台系统的标识。

步骤S303、接收所述数据库密钥管理系统发送的所述目标应用的第二系统密钥,其中,所述目标应用的第二系统密钥是根据所述目标应用的后台系统的标识确定的;

在实施过程中,目标应用的后台系统接收数据库密钥管理系统发送的目标应用的第二系统密钥。

步骤S304、利用所述目标应用的第二系统密钥完成所述目标应用的部署,以保护所述目标应用的后台系统的数据。

在实施过程中,目标应用的后台系统利用第二系统密钥完成目标应用的部署,以保护目标应用的后台系统的数据。

本申请实施例中,首先,目标应用的后台系统响应于自动化运维平台发送的部署所述目标应用的通知消息,并确定该目标应用的后台系统的标识,然后,目标应用的后台系统发送系统密钥获取请求至数据库密钥管理系统,其中,系统密钥获取请求包括目标应用的后台系统的标识,最后,目标应用的后台系统接收数据库密钥管理系统发送的目标应用的第二系统密钥,完成目标应用的部署。这样,在目标应用的后台系统部署过程中才去获取所需的第二系统密钥,可以有效规避系统密钥的泄露风险,解决了应用的后台系统的系统密钥存在容易泄露的问题。

基于前述的实施例,本申请实施例提供一种密钥管理方法,应用于目标应用的后台系统,系统密钥获取请求还包括目标应用的签名摘要和请求签名的参数,该方法包括:

步骤S310、响应于自动化运维平台发送的部署所述目标应用的通知消息,确定所述目标应用的后台系统的标识;

步骤S311、获取所述目标应用的签名摘要和所述请求签名的参数;

在一些实施例中,自动化运维平台可以利用上述实施例的步骤A1至A4获取目标应用的签名摘要,然后自动化运维平台将目标应用的签名摘要和请求签名的参数发送给目标应用的后台系统。

步骤S312、基于所述签名摘要和所述请求签名的参数完成签证签名,得到验证结果;

在一些实施例中,数据库密钥管理系统中的密钥管理软件开发包可以利用上述实施例中的步骤C1至C4完成签证签名,其中,密钥管理软件开发包是部署于目标应用的后台系统的。

步骤S313、在所述签名结果表征验证签名成功的情况下,发送系统密钥获取请求至数据库密钥管理系统,其中,所述系统密钥获取请求包括所述目标应用的后台系统的标识;

实施过程中,在验证签名成功的情况下,目标应用的后台系统发送系统密钥获取请求至数据库密钥管理系统。

步骤S314、接收所述数据库密钥管理系统发送的所述目标应用的第二系统密钥,其中,所述目标应用的第二系统密钥是根据所述目标应用的后台系统的标识确定的;

步骤S315、利用所述目标应用的第二系统密钥完成所述目标应用的部署,以保护所述目标应用的后台系统的数据。

本申请实施例中,目标应用的后台系统利用部署在本地的密钥管理软件开发包完成签名验证,可以有效保障获取密钥的目标应用的后台系统是安全有效的。

图3B为本申请实施例提供的一种密钥管理方法的实现流程示意图,应用于自动化运维平台、目标应用的后台系统和数据库密钥管理系统,如图3B所示,该方法包括:

步骤S320、所述目标应用的后台系统,响应于所述自动化运维平台发送的部署所述目标应用的消息,向所述数据库密钥管理系统发送系统密钥获取请求,其中,所述系统密钥获取请求包括目标后台系统的后台系统的标识和签名摘要,所述系统密钥用于加密所述目标应用的后台系统的数据;

步骤S321、在所述数据库密钥管理系统基于所述签名摘要签证签名成功的情况下,根据所述目标后台系统的系统标识确定所述目标后台系统的第二系统密钥;

步骤S322、所述数据库密钥管理系统利用对称密钥加密所述第二系统密钥,得到第三系统密钥,其中,所述对称密钥是采用DH密钥交换算法得到的;

在一些实施例中,数据库密钥管理系统中的密钥查询服务与密钥管理软件开发包,可以采用DH密钥交换算法协商生成对称密钥,并利用对称密钥加密第二系统密钥,如下步骤:

D1、密钥管理软件开发包用DH密钥交换算法,产生公钥publicKeyA和私钥privateKeyA;

D2、密钥管理软件开发包请求密钥查询服务,请求数据可以为:

(publicKeyA|signValue|keyId|signId|systemId|excludeFile|needReconfigFile|signFile|iplist|timeStamp)。

D3、密钥查询服务接收到请求,先查看请求来源ip是否在ip列表中,如不在则直接返回“来源ip非法”;否则获取数据中的publicKeyA,根据DH密钥交换算法,产生publicKeyB和privateKeyB,然后使用publicKeyA和privateKeyB生成128比特长度的对称密钥k,如下公式(15)和(16):

k=DH(publicKeyA,privateKeyB) (15);

或,

k=DH(publicKeyB,privateKeyA) (16)。

D4、密钥查询服务利用对称密钥加密所述第二系统密钥,得到第三系统密钥。

步骤S323、所述数据库密钥管理系统将所述第三系统密钥发送至所述目标应用的后台系统;

步骤S324、所述目标应用的后台系统接收所述第三系统密钥,并利用所述对称密钥解密所述第三系统密钥,得到所述第二系统密钥,以利用所述第二系统密钥完成所述目标后台系统的部署。

在一些实施例中,部署在目标应用的后台系统的密钥管理软件开发包根据自身的privateKeyA和密钥查询服务的publicKeyB生成对称密钥,用所述对称密钥解密第三系统密钥。

本申请实施例中,首先,目标应用的后台系统接收利用对称密钥加密后的目标应用的系统密钥,然后,目标应用的后台系统利用对称密钥解密利用对称密钥加密后的目标应用的系统密钥,得到目标应用的系统密钥。这样,目标应用的后台系统接收到的第二系统密钥是加密的,解密后才能正常使用第二系统密钥,利用对称密钥解密第三系统密钥有效保障第二系统密钥在传输过程中的安全。

基于前述的实施例,本申请实施例提供一种密钥管理方法,应用于自动化运维平台、目标应用的后台系统和数据库密钥管理系统,所述方法包括:

步骤S330、在发布目标应用的情况下,所述自动化运维平台向所述数据库密钥管理系统发送签名请求,其中,所述签名请求包括请求签名的参数;

步骤S331、所述自动化运维平台接收所述数据库密钥管理系统响应所述签名请求而发送的签名摘要,其中,所述签名摘要是基于所述请求签名的参数获得的;

步骤S332、所述自动化运维平台发送所述部署所述目标应用的通知消息至所述目标应用的后台系统,其中,所述部署所述目标应用的消息包括所述签名摘要;

在一些实施例中,数据库密钥管理系统中的签名服务可以使用上述实施例中的步骤A1至A4获取目标应用的签名摘要;然后,数据库密钥管理系统中的签名服务将签名摘要发送至自动化运维平台;最后,自动化运维平台发送包括签名摘要的通知消息至目标应用的后台系统。

步骤S333、所述目标应用的后台系统,响应于所述自动化运维平台发送的部署所述目标应用的消息,向所述数据库密钥管理系统发送系统密钥获取请求,其中,所述系统密钥获取请求包括目标后台系统的后台系统的标识和签名摘要,所述系统密钥用于加密所述目标应用的后台系统的数据;

步骤S334、在所述数据库密钥管理系统基于所述签名摘要签证签名成功的情况下,根据所述目标后台系统的系统标识确定所述目标后台系统的第二系统密钥;

步骤S335、所述数据库密钥管理系统利用对称密钥加密所述第二系统密钥,得到第三系统密钥;

步骤S336、将所述第三系统密钥发送至所述目标应用的后台系统,其中,所述对称密钥是采用DH密钥交换算法得到的;

步骤S337、所述目标应用的后台系统接收所述第三系统密钥,并利用所述对称密钥解密所述第三系统密钥,得到所述第二系统密钥,以利用所述第二系统密钥完成所述目标后台系统的部署。

本申请实施例中,在发布目标应用的情况下,所述自动化运维平台向所述数据库密钥管理系统发送签名请求,可以获取数据库密钥管理系统响应所述签名请求而发送的签名摘要,以实现在获取第二密钥时的签名验证。

图4A为本申请实施例提供的一种密钥管理方法的实现流程示意图,应用于自动化运维平台和数据库密钥管理系统,其中,数据库密钥管理系统包括数据库密钥管理平台、密钥查询服务、签名服务、密钥管理软件开发包和数据库,如图4A所示,该方法包括:

步骤S401、运维人员操作生产/托管第二系统密钥;

在实施过程中,运维人员通过操作生产系统将应用的后台系统的第二系统密钥托管在如图1所示的数据库密钥管理平台103。

在一些实施例中托管,即运维人员将第二系统密钥录入到数据库密钥管理平台103,由数据库密钥管理平台103统一管理。

图2C为本申请实施例提供的存储第二系统密钥的示意图,如图2C所示,存储第二系统密钥的系统包括第二系统密钥录入到数据库密钥管理平台103、域1、域2至域n、保险箱1、保险箱2、系统密钥1、系统密钥2至系统密钥n。

在实施过程中,由于要托管整个公司所有应用的后台系统的第二系统密钥,公司内部划分多个部门,每个部门又划分多个科室,因此数据库密钥管理平台103将每个部门划分为一个域(Domain),如图2C所示:域1、域2至域n;每个域下又划分若干个保险箱(Safe),如图2C所示:保险箱1、保险箱2;保险箱用来存放密钥,如图2C所示保险箱1存放系统密钥1和系统密钥2;域与域之间数据相互隔离,同时每个域下的保险箱与保险箱之间数据也相互隔离。

如图4B所示,对于每个系统密钥,托管系统密钥完成后,数据库密钥管理平台103都会生成一个唯一密钥标识与密钥信息对应,这里,密钥信息可以包括密钥名称、密钥描述、所属应用、密钥值。

如图2B所示,系统密钥标识包括系统密钥1、系统密钥2、系统密钥3;应用包括应用1、应用2和应用3。在实施过程中,对于每个系统密钥,托管系统密钥完成后,数据库密钥管理平台103都会生成一个唯一密钥标识与之对应。在实施过程中,一个第二系统密钥可以对应多个应用,一个应用也可以对应多个系统密钥。例如,系统密钥1可以对应应用1和应用2,系统密钥3可以对应应用3。

步骤S402、数据库密钥管理平台加密第二系统密钥入库;

在一些实施例中,数据库密钥管理平台可以使用工作密钥加密第二系统密钥,得到第一系统密钥,将第一系统密钥存入数据库。

步骤S403、数据库密钥管理平台返回成功消息;

托管第二密钥完成后,数据库密钥管理平台返回成功消息给运维人员。

步骤S404、自动化运维平台发布目标应用,向签名服务请求签名摘要;

在一些实施例中,自动化运维平台在发布目标应用的情况下,向签名服务请求签名,发送目标应用的请求签名参数给签名服务,以获取签名摘要。

步骤S405、签名服务返回签名成功消息;

在实施过程中,签名服务在对目标应用的请求签名参数完成签名的情况下,返回签名成功的消息给自动化运维平台,其中,签名成功的消息包括签名摘要。

步骤S406、自动化运维平台启动目标应用的后台系统;

在实施过程中,自动化运维平台101在收到签名成功的消息后,启动目标应用的后台系统。

步骤S407、目标应用的后台系统调用密钥管理软件开发包请求第二系统密钥;

在实施过程中,应用的后台系统调用密钥管理软件开发包,向密钥查询服务请求系统密钥。

步骤S408、密钥管理软件开发包本地签名校验成功请求第二密钥;

在实施过程中,密钥管理软件开发包需要利用签名摘要进行本地校验签名,在校验签名成功的情况下向密钥查询服务请求系统密钥。

步骤S409、在密钥管理软件开发包签名校验成功的情况下,密钥查询服务从数据库获取第二系统密钥;

在实施过程中,密钥查询服务从数据库获取第一系统密钥,并使用工作密钥进行解密,得到第二系统密钥。

步骤S410、密钥查询服务返回第二系统密钥至密钥管理软件开发包;

在一些实施例中,第二系统密钥可以是明文系统密钥,也可以是使用对称密钥加密第二系统密钥后得到的第三系统密钥。

步骤S411、密钥管理软件开发包返回第二系统密钥至目标应用的后台系统。

本申请实施例提供避免目标应用的后台系统的系统密钥泄露的密钥管理系统和方案,目标应用的后台系统在部署过程中才去获取所需系统密钥,规避泄露风险。为保证目标应用的后台系统密钥不被人恶意获取,本申请实施例提供了完善且安全的验证机制。

图4C为本申请实施例提供的一种密钥管理方法的实现流程示意图,应用于自动化运维平台和数据库密钥管理系统,其中,数据库密钥管理系统包括数据库密钥管理平台、密钥查询服务、签名服务、密钥管理软件开发包和数据库,如图4C所示,该方法包括:

步骤S420、自动化运维平台在目标应用发布的情况下,向签名服务请求数字签名;

在一些实施例中,自动化运维平台101在目标应用发布的情况下,对目标应用的发布包关键文件做MD5信息摘要算法,再对MD5列表SHA256得到最终hash值,并和目标应用的后台系统的系统标识和IP列表一起传给签名服务请求数字签名。

步骤S421、签名服务将签名标识和签名摘要返回自动化运维平台;

在实施过程中,签名服务105利用签名私钥,使用hash值、目标应用的后台系统的系统标识、签名标识、IP列表得到签名摘要,将签名标识和签名摘要返回自动化运维平台。

步骤S422、自动化运维平台将签名摘要和签名标识放在目标应用的发布包中;

步骤S423、自动化运维平台启动目标应用;

步骤S424、目标应用的后台系统调用密钥管理软件开发包;

在实施过程中,目标应用的后台系统在启动后,可以调用密钥管理软件开发包106。

步骤S425、密钥管理软件开发包用签名公钥校验签名,失败则说明文件被篡改,结束退出,校验成功继续;

步骤S426、密钥管理软件开发包传输应用的签名,各文件hash值、应用的后台系统标识、签名标识,向密钥查询服务请求第二系统密钥;

步骤S427、密钥查询服务校验签名不通过,则返回错误;

在一些实施例中,密钥查询服务利用签名摘要完成签名验证,在校验签名不通过的情况下,返回错误。

步骤S428、密钥查询服务验证签名通过,密钥查询服务和密钥管理软件开发包通过传输密钥协商随机对称密钥,使用该密钥加密第二系统密钥,密钥查询服务传输第二系统密钥至密钥管理软件开发包;

步骤S429、密钥管理软件开发包将收到的第二密钥使用对称密钥解密,得到第一系统密钥,缓存在共享内存;

步骤S430、密钥管理软件开发包将收到的第二系统密钥传输至目标应用。

本申请实施例提供目标应用的后台系统在部署过程中才去获取所需系统密钥的方案,且提供应用的后台系统获取系统密钥过程中安全的签名校验、权限验证机制。为保证目标应用的系统密钥不被人恶意获取,本申请实施例提供了完善且安全的验证机制。

基于前述的实施例,本申请实施例提供一种密钥管理装置,该装置包括所包括的各模块、以及各模块所包括的各子模块,各子模块包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现。

图5A为本申请实施例提供的一种密钥管理装置的组成结构示意图,应用于数据库密钥管理系统,如图5A所示,密钥管理装置500包括:

第一获取模块501,用于获取目标应用的后台系统发送的系统密钥获取请求,所述系统密钥获取请求包括目标应用的后台系统的标识,所述系统密钥获取请求是在自动化运维平台发布所述目标应用的后台系统的情况下生成的,所述系统密钥用于加密所述目标应用的后台系统的数据;第一确定模块502,用于响应于所述系统密钥获取请求,根据所述目标应用的后台系统的标识确定所述目标应用的第二系统密钥;第一发送模块503,用于将所述目标应用的第二系统密钥发送至所述目标应用的后台系统。

在一些实施例中,所述第一确定模块包括第一确定子模块和解密子模块,其中,所述第一确定子模块,用于响应于所述系统密钥获取请求,根据所述目标应用的后台系统的标识确定所述目标应用的第一系统密钥;所述解密子模块,用于利用获取的工作密钥解密所述第一系统密钥,得到所述目标应用的第二系统密钥。

在一些实施例中,所述第一确定模块包括,获取子模块和第二确定子模块,其中,所述获取子模块,用于响应于所述系统密钥获取请求,获取所述目标应用的签名摘要;所述第二确定子模块,用于基于所述签名摘要签证签名成功的情况下,根据所述目标应用的后台系统的标识确定所述目标应用的第二系统密钥。

在一些实施例中,所述装置还包括第二获取模块和第一加密模块,其中,所述第二获取模块,用于响应于对所述应用的第二系统密钥的托管请求,获取工作密钥;所述第一加密模块,用于利用所述工作密钥加密所述目标应用的第二系统密钥,得到第一系统密钥。

在一些实施例中,所述装置还包括第二确定模块、第三确定模块和存储模块,其中,所述第二确定模块,用于基于所述目标应用的后台系统的标识,确定位于本地的存储空间内的目标存储域,其中所述本地的存储空间内包括数据相互隔离的多个存储域,每一所述存储域内包括数据相互隔离的多个数据保险箱;所述第三确定模块,用于在所述目标存储域内的多个数据保险箱中确定用于存储所述第一系统密钥的目标数据保险箱;所述存储模块,用于将所述第一系统密钥存储在所述目标数据保险箱。

在一些实施例中,所述第二获取模块包括录入子模块和加密子模块,其中,所述录入子模块,用于录入主密钥,其中,所述主密钥是由N个主密钥分量计算获得的,N为大于等于3的整数;所述加密子模块,用于利用所述主密钥加密随机生成的工作密钥值,得到所述工作密钥。

在一些实施例中,所述录入子模块包括第一异或单元、删除单元、第二异或单元和确定单元,其中,所述第一异或单元,用于将所述待处理集合中的任意两个所述主密钥分量做异或运算,得到第一异或运算结果;删除单元,用于在所述待处理集合中删除完成异或运算的两个所述主密钥分量,得到中间集合;第二异或单元,用于将所述中间集合中的任一所述主密钥分量与所述第一异或运算结果做异或运算,得到第二异或运算结果;确定单元,用于响应于所述中间集合为空,确定得到的最终异或运算结果为所述主密钥。

图5B为本申请实施例提供的一种密钥管理装置的组成结构示意图,应用于目标应用的后台系统,如图5B所示,密钥管理装置510包括:第四确定模块511,用于响应于自动化运维平台发送的部署所述目标应用的通知消息,确定所述目标应用的后台系统的标识;第二发送模块512,用于发送系统密钥获取请求至数据库密钥管理系统,其中,所述系统密钥获取请求包括所述目标应用的后台系统的标识;第一接收模块513,用于接收所述数据库密钥管理系统发送的所述目标应用的第二系统密钥,其中,所述目标应用的第二系统密钥是根据所述目标应用的后台系统的标识确定的;部署模块514,用于利用所述目标应用的第二系统密钥完成所述目标应用的部署,以保护所述目标应用的后台系统的数据。

在一些实施例中,所述系统密钥获取请求还包括所述目标应用的签名摘要和请求签名的参数,所述装置还包括第三获取模块、验证签名模块和第三发送模块,其中,所述第三获取模块,用于获取所述目标应用的签名摘要和所述请求签名的参数;所述验证签名模块,用于基于所述签名摘要和所述请求签名的参数完成签证签名,得到验证结果;第三发送模块,用于在所述签名结果表征验证签名成功的情况下,发送系统密钥获取请求至数据库密钥管理系统。

图5C为本申请实施例提供的一种密钥管理装置的组成结构示意图,应用于自动化运维平台、目标应用的后台系统和数据库密钥管理系统,如图5C所示,密钥管理装置520包括:第四发送模块521,用于所述目标应用的后台系统,响应于所述自动化运维平台发送的部署所述目标应用的消息,向所述数据库密钥管理系统发送系统密钥获取请求,其中,所述系统密钥获取请求包括目标后台系统的后台系统的标识和签名摘要,所述系统密钥用于加密所述目标应用的后台系统的数据;第五确定模块522,用于在所述数据库密钥管理系统基于所述签名摘要签证签名成功的情况下,根据所述目标后台系统的系统标识确定所述目标后台系统的第二系统密钥;第二加密模块523,用于所述数据库密钥管理系统利用对称密钥加密所述第二系统密钥,得到第三系统密钥,其中,所述对称密钥是采用DH密钥交换算法得到的;第四发送模块524,用于所述数据库密钥管理系统将所述第三系统密钥发送至所述目标应用的后台系统;第二接收模块525,用于所述目标应用的后台系统接收所述第三系统密钥,并利用所述对称密钥解密所述第三系统密钥,得到所述第二系统密钥,以利用所述第二系统密钥完成所述目标后台系统的部署。

在一些实施例中,所述装置还包括第五发送模块、第三接收模块和第六发送模块,其中,所述第五发送模块,用于在发布目标应用的情况下,所述自动化运维平台向所述数据库密钥管理系统发送签名请求,其中,所述签名请求包括请求签名的参数;所述第三接收模块,用于所述自动化运维平台接收所述数据库密钥管理系统响应所述签名请求而发送的签名摘要,其中,所述签名摘要是基于所述请求签名的参数获得的;所述第六发送模块,用于所述自动化运维平台发送所述部署所述目标应用的通知消息至所述目标应用的后台系统,其中,所述部署所述目标应用的消息包括所述签名摘要。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述密钥管理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机存储介质中,包括若干指令用以使得一台计算机设备执行本申请各个实施例所述方法的全部或部分。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述密钥管理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得计算机设备(可以是笔记本电脑、台式计算机、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的密钥管理方法中的步骤。

对应地,本申请实施例提供一种计算机设备,图6为本申请实施例提供的一种硬件实体示意图,如图6所示,该设备600的硬件实体包括:包括存储器601和处理器602,所述存储器601存储有可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现上述实施例中提供的方法中的步骤。

存储器601配置为存储由处理器602可执行的指令和应用,还可以缓存待处理器602以及设备600中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。

这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得计算机设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 加扰密钥管理装置、加扰密钥管理信息发送装置、加扰密钥输出管理方法、加扰密钥管理程序、许可信息管理装置、许可管理信息发送装置、许可信息输出管理方法以及许可信息管理程序
  • 管理装置、管理系统、密钥生成装置、密钥生成系统、密钥管理系统、车辆、管理方法、密钥生成方法以及计算机程序
技术分类

06120113145203