密钥管理系统容灾处理方法、装置、系统和存储介质与流程

文档序号:17817280发布日期:2019-06-05 21:53
密钥管理系统容灾处理方法、装置、系统和存储介质与流程

本发明涉及计算机应用技术领域,特别涉及一种用于密钥管理系统容灾处理的方法、装置、系统和计算机可读存储介质。



背景技术:

在大型分布式系统中,各个业务服务器在与内部和外部的通信、加密解密数据、以及进行消息签名等,通常需要用到各种密钥。为了对这些密钥进行安全高效的管理、分发和存储,往往会引入密钥管理系统来管理分布式系统中各个业务服务器所使用的密钥及其版本和生命周期,并进行安全的存储和分发。作为分布式系统的重要支撑部分,密钥管理系统的可用性直接关系到整个分布式系统的正常运作,因此有必要为密钥管理系统提供完备的容灾方案,以防止由于密钥管理系统故障导致整个分布式系统的不可用。

针对密钥管理系统的容灾处理,目前主要通过提供冗余备份的服务器来实现。具体而言,针对密钥管理系统同时部署多个服务器,采取多主模式或主备模式,一旦当前工作的主服务器不可用,便由其他主服务器或备用服务器接管其处理的请求;同时,在数据库层,采用同步或者异步数据复制,使主数据库与备用数据库基本实时地保持一致,一旦主数据库不可用,便切换到备用数据库提供支持。

然而,上述密钥管理系统的容灾处理方案在一些情况下仍然存在问题,例如,针对服务器可用性的显著降低,例如所有服务器都不可用的极端情况,目前密钥管理系统的容灾处理都不能提供适当的解决方案。



技术实现要素:

为了解决相关技术中密钥管理系统的容灾处理针对可用性显著降低没有提供适当解决方案的技术问题,本发明提供了一种用于密钥管理系统容灾处理的方法、装置、系统和计算机可读存储介质。

根据本发明的实施例,提供一种用于密钥管理系统容灾处理的方法,所述方法包括:如果确定密钥管理系统的可用性满足预设条件,从第一存储位置获取密钥缓存数据,所述密钥缓存数据是通过使用预设非对称加密密钥对中的公钥对业务密钥进行加密而生成;从第二存储位置获取所述预设非对称加密密钥对中的私钥;以及使用所述私钥解密所述密钥缓存数据以得到所述业务密钥用于业务。

在一个实施例中,在所述确定密钥管理系统的可用性满足预设条件之前,所述方法还包括:

基于从所述密钥管理系统获取的业务密钥,使用所述公钥对所述业务密钥进行加密,并存储加密的所述业务密钥以获得所述密钥缓存数据。

在一个实施例中,所述使用所述公钥对所述业务密钥进行加密包括:

根据用于访问所述密钥管理系统的应用程序接口API中内嵌的所述公钥或者与所述API对应的配置文件中保存的所述公钥对所述业务密钥进行加密。

在一个实施例中,所述存储加密的所述业务密钥以获得所述密钥缓存数据,包括:

为每个业务密钥分别创建一个密钥缓存文件,以保存加密的所述业务密钥,并将各业务密钥的索引信息与密钥缓存文件相关联地存储;或者

为业务密钥统一创建一个密钥缓存文件,所述密钥缓存文件包括至少一项记录,每项所述记录包括一个加密的业务密钥及索引信息。

在一个实施例中,所述索引信息包括对应业务密钥的标识和版本号以及所述预设非对称加密密钥对的版本号。

在一个实施例中,在所述从第二存储位置获取所述预设非对称加密密钥对中的私钥之前,还包括:

从与所述密钥管理系统隔离的第三存储位置将所述私钥分发至所述第二存储位置。

在一个实施例中,在所述从第二存储位置获取所述预设非对称加密密钥对中的私钥之前,还包括:

控制所述第二存储位置所在的存储设备由不可被访问的状态切换至可被访问的状态。

在一个实施例中,所述从第二存储位置获取所述预设非对称加密密钥对中的私钥,包括:

按预设时间间隔扫描所述第二存储位置;以及

在所述第二存储位置扫描到所述私钥时或者在所述密钥管理系统的可用性不再满足所述预设条件时停止所述扫描。

在一个实施例中,在所述使用所述私钥解密所述密钥缓存数据以得到所述业务密钥之后,还包括:

在确定所述密钥管理系统的可用性不再满足所述预设条件时获取更新的预设非对称加密密钥对中的公钥。

在一个实施例中,所述预设非对称加密密钥对的生成和更新在与所述密钥管理系统隔离的环境中进行。

在一个实施例中,所述确定密钥管理系统的可用性满足预设条件,包括:确定所述密钥管理系统的服务零可用;或者确定所述密钥管理系统中正常工作的设备数量降低至预设数量。

根据本发明的实施例,提供一种用于密钥管理系统容灾处理的装置,所述装置包括:缓存获取模块,用于在确定密钥管理系统的可用性满足预设条件时,从第一存储位置获取密钥缓存数据,所述密钥缓存数据是通过使用预设非对称加密密钥对中的公钥对业务密钥进行加密而生成;私钥获取模块,用于从第二存储位置获取所述预设非对称加密密钥对中的私钥;以及非对称解密模块,用于使用所述私钥解密所述密钥缓存数据以得到所述业务密钥用于业务。

在一个实施例中,所述装置还包括:非对称加密模块,设置为基于从所述密钥管理系统获取的业务密钥,使用所述公钥对所述业务密钥进行加密,并存储加密的所述业务密钥以获得所述密钥缓存数据。

在一个实施例中,所述非对称加密模块设置为根据用于访问所述密钥管理系统的应用程序接口API中内嵌的所述公钥或者与所述API对应的配置文件中保存的所述公钥对所述业务密钥进行加密。

在一个实施例中,所述非对称加密模块用于:为每个业务密钥分别创建一个密钥缓存文件,以保存加密的所述业务密钥,并将各业务密钥的索引信息与密钥缓存文件相关联地存储;或者为业务密钥统一创建一个密钥缓存文件,所述密钥缓存文件包括至少一项记录,每项所述记录包括一个加密的业务密钥及索引信息。

在一个实施例中,所述索引信息包括对应业务密钥的标识和版本号以及所述预设非对称加密密钥对的版本号。

在一个实施例中,所述私钥是在所述密钥管理系统的可用性满足所述预设条件时从与所述密钥管理系统隔离的第三存储位置分发至所述第二存储位置。

在一个实施例中,所述私钥获取模块还用于:在从第二存储位置获取所述预设非对称加密密钥对中的私钥之前,控制所述第二存储位置所在的存储设备由不可被访问的状态切换至可被访问的状态。

在一个实施例中,所述私钥获取模块用于:按预设时间间隔扫描所述第二存储位置;以及在所述第二存储位置扫描到所述私钥时或者在所述密钥管理系统的可用性不再满足所述预设条件时停止所述扫描。

在一个实施例中,所述装置还包括:公钥获取模块,用于在确定所述密钥管理系统的可用性不再满足所述预设条件时获取更新的预设非对称加密密钥对中的公钥。

在一个实施例中,所述预设非对称加密密钥对的生成和更新在与所述密钥管理系统隔离的环境中进行。

在一个实施例中,所述确定密钥管理系统的可用性满足预设条件,包括:确定所述密钥管理系统的服务零可用;或者确定所述密钥管理系统中正常工作的设备数量降低至预设数量。

根据本发明的实施例,提供另一种用于密钥管理系统容灾处理的装置,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述的用于密钥管理系统容灾处理的方法。

根据本发明的实施例,提供一种分布式业务处理系统,包括密钥管理系统和业务设备,所述业务设备包括上述的用于密钥管理系统容灾处理的装置。

根据本发明的实施例,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述用于密钥管理系统容灾处理的方法。

本发明的实施例提供的技术方案可以包括以下有益效果:

基于本实施例提供的密钥管理系统容灾处理方案,即使密钥管理系统出现极端情况,仍然可以恢复业务密钥的获取,从而避免因无法获取业务密钥导致的业务失效;另外,由于密钥缓存数据是基于高强度的非对称密钥对生成,因此能够最大限度的保证密钥管理的安全性。

此外,在采取密钥缓存数据和私钥分开存储,甚至私钥隔离于密钥管理系统离线存储的情况下,能够维持密钥管理的安全性不被降低。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种装置的框图;

图2是根据一示例性实施例示出的一种用于密钥管理系统容灾处理的方法的流程图;

图3是根据另一示例性实施例示出的一种用于密钥管理系统容灾处理的方法的流程图;

图4是根据图2对应实施例示出的对步骤230的细节进行描述的流程图;

图5是根据一示例性实施例示出的一种用于密钥管理系统容灾处理的装置的框图。

图6是根据另一示例性实施例示出的一种用于密钥管理系统容灾处理的装置的框图。

图7是根据一示例性实施例示出的一种分布式业务处理系统的框图。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在一个示例性实施例中,本发明所涉及的实施环境,至少包括分布式系统中与密钥管理系统通信的业务设备。业务设备可以是服务器、台式电脑、笔记本电脑等终端设备。

在密钥管理系统出现可用性降低的情况时,包括完全不可用的极端情况下,业务设备无法正常从密钥管理系统获取运行业务所必须的业务密钥,开始采用本发明的容灾处理方案以基于本地缓存的加密数据得到上述业务密钥。

图1是根据一示例性实施例示出的一种装置的框图。例如,装置100可以是图1所示实施环境中的业务设备。

参照图1,装置100可以包括以下一个或多个组件:处理组件102,存储器104,电源组件106以及通信组件116。

处理组件102通常控制装置100的整体操作,诸如与程序运行、数据通信以及记录操作相关联的操作等。处理组件102可以包括一个或多个处理器118来执行指令,以完成下述的方法的全部或部分步骤。此外,处理组件102可以包括一个或多个模块,便于处理组件102和其他组件之间的交互。

存储器104被配置为存储各种类型的数据以支持在装置100的操作。这些数据的示例包括用于在装置100上操作的任何应用程序或方法的指令。存储器104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM)、可编程只读存储器(Programmable Red-Only Memory,简称PROM)、只读存储器(Read-Only Memory,简称ROM)、磁存储器、快闪存储器、磁盘或光盘。存储器104中还存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器118执行,以执行下述方法中的全部或者部分步骤。

电源组件106为装置100的各种组件提供电力。电源组件106可以包括电源管理系统,一个或多个电源,及其他与为装置100生成、管理和分配电力相关联的组件。

通信组件116被配置为便于装置100和其他设备之间有线或无线方式的通信。装置100可以接入基于通信标准的无线网络,如WiFi(WIreless-Fidelity,无线保真)。

在示例性实施例中,装置100可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器、数字信号处理设备、可编程逻辑器件、现场可编程门阵列、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述方法。

图2是根据一示例性实施例示出的一种用于密钥管理系统容灾处理的方法的流程图。该用于密钥管理系统容灾处理的方法适用于前述实施环境的业务设备,该业务设备在一个示例性实施例中可以是图1所示的装置。如图2所示,该用于密钥管理系统容灾处理的方法,可以由业务设备执行,可以包括以下步骤210-250。

在步骤210中,如果确定密钥管理系统的可用性满足预设条件,从第一存储位置获取密钥缓存数据。

在密钥管理系统正常的情况下,业务设备在业务运行过程中可从密钥管理系统获取业务密钥;在密钥管理系统出现一般异常的情况下,业务设备可基于一般容灾机制切换到备份系统获取业务密钥;而当密钥管理系统出现例如完全不可用的极端异常时,业务设备便需要基于本发明实施例的容灾机制从密钥缓存数据来恢复业务密钥,以保证业务的正常运行。然而,本发明的实施场景并不仅限于密钥管理系统不可用的情况,例如在密钥管理系统需要维护时,或者密钥管理系统出现一般异常的情况下,也可由管理人员手动切换到本发明实施例的容灾机制。

在一个实施例中,针对密钥管理系统的可用性可设置不同的级别条件,例如基于密钥管理系统正常工作服务器的数量来设置级别,当正常工作服务器的数量降低至预设数量时,即确定密钥管理系统的可用性满足预设条件,从而触发本发明实施例的容灾机制开始从第一存储位置获取密钥缓存数据。

其中,上述密钥缓存数据是事先通过使用预设非对称加密密钥对中的公钥对业务密钥进行加密而生成。

与对称加密不同,非对称加密需要公钥和私钥一对密钥,如果用公钥对数据进行加密,只有用对应的私钥才能解密。相应地,非对称加密与对称加密相比安全性更好。对称加密的通信双方使用相同的密钥,如果一方的密钥遭泄露,那么整个通信就会被破解;而非对称加密将密钥对中的公钥和私钥分别用于加密和解密,只要保证私钥的安全存储,公钥的公开使用不会导致通信被破解。常见的非对称加密算法包括但不限于RSA(Rivest-Shamir-Adleman,李维斯特-萨莫尔-阿德曼)算法、ECC(Elliptic Curve Cryptography,椭圆曲线密码学)算法,本发明的实施例对此并无限制。

基于上述非对称加密的特点,本发明实施例中预先通过非对称加密的方式,使用密钥对中的公钥来对密钥管理系统正常工作期间从密钥管理系统获取的业务密钥进行加密,从而得到相应的密钥缓存数据存储在业务设备的第一存储位置。这样一来,在确定密钥管理系统的可用性满足预设条件,例如在密钥管理系统完全不可用时,业务设备便可从第一存储位置获取密钥缓存数据进行业务密钥的解密恢复。

在一个实施例中,上述第一存储位置可以是业务设备自身存储器上的某个地址,也可以是与业务设备连接的外置存储器上的某个地址,本发明对此并无限制。优选地,上述第一存储位置是磁盘上的地址,以保证掉电后数据不丢失。

在步骤230中,从第二存储位置获取预设非对称加密密钥对中的私钥。

如前文所述,非对称加密因分别将公钥和私钥用于加密和解密而具有较高的安全性。相应的,本实施例中对于加密业务密钥时使用的公钥存储和使用并无特别限制,甚至可以在联网环境下明文存储、公开使用,而对于非对称加密密钥对中的私钥,在一个实施例中可单独存储。

在一个实施例中,上述第二存储位置可以是业务设备自身存储器上的某个地址,也可以是与业务设备连接的外置存储设备上的某个地址。另外,此处存储私钥的第二存储位置和上述存储密钥缓存数据的第一存储位置可以相同或不同。在一个实施例中,第一存储位置和第二存储位置彼此不同,从而降低私钥被泄漏的可能性,提高非对称加密的安全性。

在一个实施例中,第二存储位置是业务设备自身存储器上的某个地址,其中存储的私钥是来自与上述密钥管理系统隔离的第三存储位置。相应地,在从第二存储位置获取预设非对称加密密钥对中的私钥之前还包括从第三存储位置将私钥分发至第二存储位置的步骤。此处的隔离是指在密钥管理系统正常工作的情况下,无论是密钥管理系统自身还是与其通信的业务设备都无法访问到上述第三存储位置,从而最大限度保证私钥存储的安全性。在一个实施例中,当确定密钥管理系统的可用性满足上述预设条件,例如在密钥管理系统完全不可用时,才将私钥从第三存储位置分发至业务设备的第二存储位置,从而用于后续的业务密钥解密恢复。此处所述分发可以通过明文传输来进行,也可以利用分布式系统中现有的加密信道来完成。

例如,可将私钥隔离保存在保险箱中,确保只有具备相应权限的管理人员才能够接触到。这样,在密钥管理系统正常工作的情况下,私钥不会被使用;一旦业务设备确定密钥管理系统的可用性满足预设条件,例如在密钥管理系统完全不可用时,业务设备可向管理人员发出通知,从而由管理人员手动将私钥分发至业务设备上的第二存储位置。在一个实施例中,当存在多个业务设备时,管理人员可通过预置的脚本将私钥分发至每个业务设备的第二存储位置(例如某个指定目录)中。

在另一个实施例中,用于存储私钥的第二存储位置是与业务设备连接的外置存储设备上的某个地址,但为保证私钥存储的安全性,该存储设备在密钥管理系统正常工作时可处于不被访问的状态。相应地,在从第二存储位置获取预设非对称加密密钥对中的私钥之前,还可包括控制所述第二存储位置所在的存储设备由不可被访问的状态切换至可被访问的状态的步骤。

例如,可将私钥隔离保存在断电无法访问的存储设备中,并在业务设备与该存储设备的电源之间设置电源控制装置。在密钥管理系统正常工作的情况下,上述电源处于断电状态以使第二存储位置处于不可访问的状态;当确定密钥管理系统的可用性满足上述预设条件,例如在密钥管理系统完全不可用时,业务设备发出控制信号使电源控制装置恢复上述电源的供电,从而使业务设备能够访问到上述存储设备的第二存储位置,并顺利获取其中的私钥。

在步骤250中,使用私钥解密密钥缓存数据以得到业务密钥用于业务。

基于上述步骤210和230,分别获取了与业务密钥对应的密钥缓存数据和解密用的私钥,因此,基于从业务密钥加密得到密钥缓存数据的非对称加密算法(例如上文提及的RSA、ECC等算法),本步骤中使用上述私钥通过相应的解密算法便可从密钥缓存数据恢复出业务密钥。

基于上述示例性实施例提供的密钥管理系统容灾处理方法,即使出现密钥管理系统完全不可用的极端情况,仍然可以恢复业务密钥的获取,从而避免因无法获取业务密钥导致的业务失效。另一方面,在出现密钥管理系统需要重启或停机维护等情况时,也可采用本发明实施例提供的密钥管理系统容灾处理方法,从而保证业务设备上的业务运行不受影响。此外,由于密钥缓存数据是基于高强度的非对称密钥对生成,因此能够最大限度的保证密钥管理的安全性;在采取密钥缓存数据和私钥分开存储,甚至私钥隔离于密钥管理系统离线存储的情况下,能够维持密钥管理的安全性不被降低。

图3是根据另一示例性实施例示出的一种用于密钥管理系统容灾处理的方法的流程图。该用于密钥管理系统容灾处理的方法适用于前述实施环境的业务设备,该业务设备在一个示例性实施例中可以是图1所示的装置。如图3所示,该用于密钥管理系统容灾处理的方法,可以由业务设备执行,在图2实施例中步骤210-250的基础上,还包括步骤203、206和270。

在步骤203中,基于从密钥管理系统获取的业务密钥,确定第一存储位置是否存在与该业务密钥对应的密钥缓存数据,若有则转步骤210,否则转步骤206。

本步骤涉及生成密钥缓存数据前的准备。

如前一实施例所述,密钥缓存数据是通过对密钥管理系统正常工作期间从密钥管理系统获取的业务密钥进行加密生成。在一个实施例中,当业务服务启动时,业务设备通过密钥管理API(Application Programming Interface,应用程序接口)向密钥管理系统请求获取相应的业务密钥。此处所述的密钥管理API是用于从密钥管理系统获取业务密钥的API。在从密钥管理系统成功获取业务密钥后,业务设备在第一存储位置查询(例如仍可使用上述密钥管理API实施查询)是否存在与当前所获取业务密钥对应的密钥缓存数据,若有则可转步骤210确定密钥管理系统的可用性,否则需要继续步骤206生成相应的密钥缓存数据。

在一个实施例中,业务设备可基于索引信息来判断第一存储位置中是否存在与当前所获取业务密钥对应的密钥缓存数据。例如,对于新获取的、未经加密缓存的业务密钥,业务设备在生成相应的密钥缓存数据时可关联存储该业务设备的标识,从而后续在密钥管理系统正常工作期间,业务设备再次从密钥管理系统获取该业务密钥时,通过其标识可确定第一存储位置中已存在相应的密钥缓存数据;相反,如果第一存储位置中不存在与某个业务密钥标识关联存储的密钥缓存数据,则判断第一存储位置中不存在与该业务密钥对应的密钥缓存数据。

在一个实施例中,考虑到业务密钥在使用过程中存在更新的情况,对于业务设备在生成密钥缓存数据时关联存储的索引信息,除了包括该业务密钥的标识外,还可包括该业务密钥的版本号,从而使业务设备能够准确判断第一存储位置中是否存在与当前版本的业务密钥对应的密钥缓存数据。

在步骤206中,使用预设非对称加密密钥对中的公钥对业务密钥进行加密,并存储加密密文作为与该业务密钥对应的密钥缓存数据。

本步骤涉及密钥缓存数据的生成。

当经过步骤203确定第一存储位置中没有与当前业务密钥对应的密钥缓存数据时,为确保后续密钥管理系统不可用时能够从业务设备本地恢复出业务密钥,本步骤对业务密钥进行加密缓存。

如前文实施例中所述,本发明的实施例使用非对称加密的方式对业务密钥进行本地加密存储,从而通过公钥和私钥分开使用、分离存储的方式提高密钥管理系统容灾处理的安全性。

在一个实施例中,由于在密钥管理系统正常工作的情况下,业务设备是使用密钥管理API从密钥管理系统获取业务密钥,相应的,预设非对称加密密钥对中的公钥可以与该密钥管理API相关联地存储,从而便于后续仍由该密钥管理API对业务密钥进行加密处理。例如,上述公钥可内嵌在密钥管理API的代码中,也可存储在与该密钥管理API对应的本地配置文件中;这里的本地配置文件例如可以是用于保存该密钥管理API运行所需变量和参数的配置文件。另外,上述公钥可直接明文存储,也可密文存储,本发明实施例对此并无限制。

与上述公钥存储相应的,本发明的实施例在实施步骤206之前,还可包括根据上述密钥管理API获取所述公钥的步骤,此处不再赘述。

另外,在获取预设非对称加密密钥对中的公钥之前,实际上还可包括生成预设非对称加密密钥对的步骤。在一个实施例中,可由业务设备自身根据预定的非对称加密算法生成一组非对称加密密钥对,除了将公钥存储在本地(例如内嵌在密钥管理API中)外,还需要将私钥分发至与业务设备和密钥管理系统隔离的存储位置。然而,为保证私钥存储的安全性,由于预设非对称加密密钥对的生成环境直接关系到私钥在系统中暴露的时间,因此另一个实施例中也可在与业务设备和密钥管理系统隔离的环境中生成上述的预设非对称加密密钥对,在生成密钥对后再分别将公钥和私钥分发至业务设备和与其隔离的存储位置。这里,上述隔离的环境例如可以是断网的计算机,但本发明的实施例并不仅限于此,只要保证生成密钥对时无法被业务设备和密钥管理系统访问到即可。

接续,在获取到预设非对称加密密钥对中的公钥后,业务设备继续使用该公钥,基于预设的非对称加密算法对步骤203中所述从密钥管理系统获取的业务密钥进行加密,并将加密后产生的密文存储作为与该业务密钥对应的密钥缓存数据,供后续恢复业务密钥时使用。如步骤203中已经提及的,业务设备在存储密钥缓存数据时可将其与业务密钥的索引信息相关联的存储,从而确保业务设备能够准确判断出第一存储位置中是否存在与当前业务密钥对应的密钥缓存数据。这样,对于已经加密缓存过的业务密钥,业务设备在后续再从密钥管理系统获取到业务密钥时,不会再进行重复加密操作。在一个实施例中,上述的索引信息可包括业务密钥的标识和版本号。

在一个示例性实施例中,步骤206中所述存储加密密文作为与该业务密钥对应的密钥缓存数据包括以下实现过程:

为每个业务密钥分别创建一个密钥缓存文件,各密钥缓存文件用于保存对应业务密钥的加密密文,并将各业务密钥的索引信息与对应的密钥缓存文件相关联地存储;或者

为至少一个业务密钥统一创建一个密钥缓存文件,该密钥缓存文件包括至少一项记录,每项所述记录包括与所述至少一个业务密钥其中之一对应的加密密文及索引信息。

以上示例性实施例描述了使用文件(例如txt文件)来保存密钥缓存数据的方式,但本发明的实施例不限于此。例如,业务设备还可以使用关系数据库或NoSql数据库(非关系型数据库)来存储业务密钥的加密密文和索引信息,此处不再赘述。

在步骤210中,如果确定密钥管理系统的可用性满足预设条件,从第一存储位置获取密钥缓存数据。

在步骤230中,从第二存储位置获取预设非对称加密密钥对中的私钥。

在步骤250中,使用私钥解密密钥缓存数据以得到业务密钥用于业务。

上述步骤210-250与图2对应实施例中相同,此处不再赘述。

图4是根据图2对应实施例示出的对步骤230的细节进行描述的流程图。该步骤230,如图3所示,可以包括以下步骤231-233。

在步骤231中,按预设时间间隔检测密钥管理系统的可用性并扫描第二存储位置。

在步骤233中,判断密钥管理系统的可用性是否仍满足预设条件,若是则继续步骤235,否则停止扫描并结束流程。

在步骤235,判断第二存储位置是否存在私钥,若是则停止扫描并转步骤250,否则回到步骤231继续扫描。

在图2对应实施例对步骤230的描述中,针对私钥的存储和获取提出了第二存储位置位于业务设备自身和位于外置存储设备的两个示例,图4对应实施例可适用于上述两个示例。例如,在第二存储位置位于业务设备自身,而私钥保存于保险箱中时,可由管理人员手动从保险箱分发至业务设备上的第二存储位置,步骤231可按预设时间间隔对第二存储位置进行扫描,从而在管理员分发完成后能够及时获取到第二存储位置的私钥。又例如,在私钥存储于第二存储位置,而该第二存储位置位于断电不能访问的存储设备中时,业务设备在通知电源控制装置恢复该存储设备的供电后,同样可按预设时间间隔对该第二存储位置进行扫描,从而在存储设备恢复供电后能够及时获取到第二存储位置的私钥。

在从第二存储位置中扫描私钥的同时,业务设备还可定期检测密钥管理系统的可用性。这样,如果在从第二存储位置获取到私钥之前,密钥管理系统的可用性不再满足预设条件,例如之前不可用的密钥管理系统已恢复可用时,业务设备就无需再从本地的密钥缓存数据中解密恢复出业务密钥,因此可停止对第二存储位置的扫描并结束流程,转而进行正常从密钥管理系统获取业务密钥的操作。这里,对密钥管理系统的可用性进行检测的时间间隔与对第二存储位置进行扫描的时间间隔可以相同也可以不同,本发明的实施例对此并无限制,此处为了描述的简便没有对二者进行区分。

另外,步骤233对密钥管理系统可用性的判断和步骤235对第二存储位置是否存在私钥的判断可互换顺序。最终,如果在密钥管理系统的可用性不再满足预设条件之前,例如在密钥管理系统恢复可用之前,从第二存储位置中能够获取到分发的私钥,则转步骤250使用私钥对步骤210中获取的密钥缓存数据进行解密操作,从而得到当前业务运行所需的业务密钥。

在步骤270中,在确定密钥管理系统的可用性不再满足预设条件时,获取更新的预设非对称加密密钥对中的公钥。

本步骤涉及非对称加密密钥对的更新。

在密钥管理系统的可用性满足预设条件时,例如在密钥管理系统不可用期间,解密密钥缓存数据得到业务密钥的过程中可能导致私钥的泄漏。因此,当密钥管理系统的可用性不再满足预设条件时,例如在密钥管理系统恢复可用时,可在尽量短的时间内更新上述的预设非对称加密密钥对。预设非对称加密密钥对的更新过程可参见上述步骤206中描述的生成预设非对称加密密钥对的步骤,此处不再赘述。

在预设非对称加密密钥对的更新后,步骤270开始获取更新后的公钥,进而保存在业务设备本地,例如内嵌在密钥管理API中。

在一个实施例中,上述公钥中可携带预设非对称加密密钥对的版本信息,从而每次更新非对称加密密钥对后,步骤270中获取的公钥会携带更新后的版本信息。相应的,在步骤206使用公钥生成密钥缓存数据时,业务密钥的索引信息中还可包括预设非对称加密密钥对的版本信息。这样,在步骤203判断第一存储位置中是否存在对应的密钥缓存数据时,还须判断当前公钥中携带的版本信息与关联索引信息中预设非对称加密密钥对的版本信息是否一致,如果一致则确定存在,否则表示该密钥缓存数据无法使用当前版本的非对称加密密钥对中的私钥进行解密,因此步骤203的判断结果也应表现为不存在,从而在步骤206中使用当前版本的公钥重新加密生成新的密钥缓存数据。

基于上述示例性实施例提供的密钥管理系统容灾处理方法,即使出现密钥管理系统完全不可用的极端情况,仍然可以恢复业务密钥的获取,从而避免因无法获取业务密钥导致的业务失效。另一方面,在出现密钥管理系统需要重启或停机维护等情况时,也可采用本发明实施例提供的密钥管理系统容灾处理方法,从而保证业务设备上的业务运行不受影响。此外,由于密钥缓存数据是基于高强度的非对称密钥对生成,因此能够最大限度的保证密钥管理的安全性;在采取密钥缓存数据和私钥分开存储,甚至私钥隔离于密钥管理系统离线存储的情况下,能够维持密钥管理的安全性不被降低。最后,在密钥管理系统恢复正常工作后,通过更新预设预设非对称加密密钥对,可避免之前解密密钥缓存数据过程中泄漏私钥的风险,进一步提高了容灾处理方案的安全性。

下述为本发明装置实施例,可以用于执行本发明上述用于密钥管理系统容灾处理的方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明用于密钥管理系统容灾处理的方法实施例。

图5是根据一示例性实施例示出的一种用于密钥管理系统容灾处理的装置的框图。该用于密钥管理系统容灾处理的装置,如图5所示,包括但不限于:缓存获取模块510、私钥获取模块530和非对称解密模块550。

缓存获取模块510,用于在确定密钥管理系统的可用性满足预设条件时,从第一存储位置获取密钥缓存数据;其中,密钥缓存数据是通过使用预设非对称加密密钥对中的公钥对业务密钥进行加密而生成。

私钥获取模块530,用于从第二存储位置获取预设非对称加密密钥对中的私钥。

非对称解密模块550,用于使用私钥获取模块530获取的私钥解密缓存获取模块510获取的密钥缓存数据,以得到业务密钥用于业务。

在一个示例性实施例中,上述私钥是在密钥管理系统的可用性满足上述预设条件时从与该密钥管理系统隔离的第三存储位置分发至第二存储位置。

在一个示例性实施例中,私钥获取模块530还用于:在从第二存储位置获取所述预设非对称加密密钥对中的私钥之前,控制所述第二存储位置所在的存储设备由不可被访问的状态切换至可被访问的状态。

在一个示例性实施例中,私钥获取模块530从第二存储位置获取预设非对称加密密钥对中的私钥包括以下实现过程:

私钥获取模块530按预设时间间隔扫描所述第二存储位置,并在所述第二存储位置扫描到所述私钥时或者在所述密钥管理系统的可用性不再满足所述预设条件时停止所述扫描。

图6是根据另一示例性实施例示出的一种用于密钥管理系统容灾处理的装置的框图。如图6所示,在图5所示装置实施例的基础上,该用于密钥管理系统容灾处理的装置还包括但不限于:非对称加密模块570和公钥获取模块590。

非对称加密模块570,设置为基于从所述密钥管理系统获取的业务密钥,使用所述公钥对所述业务密钥进行加密,并存储加密的所述业务密钥以获得所述密钥缓存数据。

公钥获取模块590,用于在确定密钥管理系统的可用性不再满足上述预设条件时获取更新的预设非对称加密密钥对中的公钥。

在一个示例性实施例中,非对称加密模块570设置为根据用于访问密钥管理系统的API中内嵌的所述公钥或或者与该API对应的配置文件中保存的公钥对从上述密钥管理系统获取的业务密钥进行加密。

在一个示例性实施例中,非对称加密模块570存储加密的所述业务密钥以获得所述密钥缓存数据包括以下实现过程:

非对称加密模块570为每个业务密钥分别创建一个密钥缓存文件,以保存加密的所述业务密钥,并将各业务密钥的索引信息与密钥缓存文件相关联地存储;或者

非对称加密模块570为业务密钥统一创建一个密钥缓存文件,所述密钥缓存文件包括至少一项记录,每项所述记录包括一个加密的业务密钥及索引信息。

在一个示例性实施例中,上述索引信息包括对应业务密钥的标识和版本号以及预设非对称加密密钥对的版本号。

在一个示例性实施例中,上述预设非对称加密密钥对的生成和更新在与密钥管理系统隔离的环境中进行。

在一个实施例中,所述确定密钥管理系统的可用性满足预设条件是指确定所述密钥管理系统不可用;或者确定所述密钥管理系统中正常工作的设备数量降低至预设数量。

在示例性实施例中,本发明还提供一种用于密钥管理系统容灾处理的装置,执行图2、图3和图4任一所示的用于密钥管理系统容灾处理的方法的全部或者部分步骤。所述装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行:

如果确定密钥管理系统的可用性满足预设条件,从第一存储位置获取密钥缓存数据,所述密钥缓存数据是通过使用预设非对称加密密钥对中的公钥对业务密钥进行加密而生成;

从第二存储位置获取所述预设非对称加密密钥对中的私钥;以及

使用所述私钥解密所述密钥缓存数据以得到所述业务密钥用于业务。

图7是根据一示例性实施例示出的一种分布式业务处理系统的框图。该分布式业务处理系统,如图7所示,包括但不限于:密钥管理系统710、业务设备730,其中业务设备730包括如上任一实施例所述的用于密钥管理系统容灾处理的装置750。

在一个示例性实施例中,如图7所示,密钥管理系统710包括两个服务器711和712,业务设备730的数目也为两个,此处的数目仅为图示简便的需要,本发明的实施例显然并不仅限于此。

在密钥管理系统710正常工作的情况下,可由服务器711作为主服务器提供密钥管理服务,例如响应于业务设备730通过密钥管理API发起的请求而提供业务密钥。在服务器711异常时,将服务器712由备用服务器切换为主服务器继续提供密钥管理服务。如果密钥管理系统710出现极端异常,例如服务器711和712都不可用时,则业务设备730上用于密钥管理系统容灾处理的装置770开始工作,具体的工作流程可参照以上本发明用于密钥管理系统容灾处理的方法和装置实施例。

在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介指例如包括指令的存储器104,上述指令可由装置100的处理器118执行以完成上述用于密钥管理系统容灾处理的方法。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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