本发明涉及计算机安全技术领域,特别是一种密码资源池系统、加密方法、电子设备及存储介质。
背景技术:
随着云计算的飞速发展,越来越多的云上应用系统对密码的需求越来越显著,以云服务方式提供密码服务的需求也随之应运而生,如:云密码资源池服务、云密钥管理服务、云电子签名服务、电子合同服务和云加密存储服务等。
典型的做法是将密码设备集中成密码资源池,通过硬件虚拟化技术,将密码设备虚拟成各个相互独立的虚拟密码设备,通过密码资源调度系统进行密码资源的分配、管理和统一调度,并对外提供统一的密码服务。密码资源池是云密码服务的重要基础设施,是云计算环境中使用密码功能的根本支撑,是云密钥管理系统等云密码应用系统的安全基础。
通常,业务系统都需要使用硬件密码设备如服务器密码机、签名验签服务器等来提供密码功能。当前,随着业务的发展,大型客户通常有多套业务系统需要密码设备提供密码功能,因此,整合密码机提供统一密码服务,使密码计算设备能够最大限度复用,为更多业务提供服务的做法是一种趋势。
现有的密码系统主要存在如下缺陷:
传统密码设备的密钥一般是由设备产生不允许导出的,这也使特定业务的密码请求只能由包含特定密钥的密码机才能处理,在该业务高峰时段,即便其它密码机处于空闲状态也无法起到任何帮助作用。
现有技术中将所有业务需要的密钥同步在所有密码机上,使所有密码机能够同时为多个业务系统服务,则会带来密钥安全存储、安全管理和安全隔离的问题,影响系统安全性。
另外,对于大型客户的业务系统,密码服务需要大量的密码设备如密码机、签名验签服务器,这也很大程度上拉高了业务系统的成本。
技术实现要素:
本发明针对上述现有技术中的缺陷,提出了如下技术方案。
一种密码资源池系统,该系统包括:密码计算池ccp,所述密码计算池ccp是由一个内部网络域的多台通用服务器组成,所述通用服务器上部署软件密码单元s-ccu,在所述ccp中,以s-ccu分组为单位进行主密钥申请和使用,所述s-ccu利用所述通用服务器的cpu和操作系统的安全隔离特性形成一个隔绝的安全计算环境,完成密码运算;系统级密钥管理系统s-kms,所述s-kms包括系统级硬件密码设备、系统级密钥库和系统级密钥管理单元,所述系统级硬件密码设备用以安全产生所述ccp中的所述s-ccu的主密钥pmk,所述系统级密钥库用以安全存储所述pmk,所述系统级密钥管理单元用以向所述s-ccu提供密钥产生、密钥分发及密钥销毁服务。
更进一步地,所述系统还包括:应用级密钥管理系统a-kms,所述a-kms包括应用级硬件密码设备、应用级密钥库和应用级密钥管理单元,所述应用级硬件密码设备用以安全产生用户应用系统定义的密钥,所述应用级密钥库用以安全存储所述应用系统定义的密钥,所述应用级密钥管理单元用以向所述用户应用系统提供所需的密钥产生、密钥分发及密码销毁服务。
更进一步地,所述系统还包括:安全随机熵分发服务单元s-eds,所述s-eds包括熵分发服务系统和随机数计算设备,所述随机数计算设备用以产生随机噪声源作为熵数据,所述熵分发服务系统根据接收的熵请求,将所述随机数计算设备生成的熵数据分发给请求者。
更进一步地,所述系统还包括:安全随机熵守护单元s-egu,所述s-egu和s-ccu部署在同一目标通用服务器上,用以接收所述s-eds分发来的熵数据,进行熵混乱度的判断后,将接收到的熵数据合并到本地熵池中。
更进一步地,所述系统还包括:密码抽象接口网关caig,所述caig与所述ccp相连接用以提供密码功能接口,以及进行应用程序接入控制和负载均衡。
本发明还提供了一种基于密码资源池系统的加密方法,所述密码资源池系统包括具有多个软件密码单元s-ccu的密码计算池ccp、系统级密钥管理系统s-kms、应用级密钥管理系统a-kms、安全随机熵分发服务单元s-eds、安全随机熵守护单元s-egu和密码抽象接口网关caig,所述方法包括:
主密钥pmk生成步骤,基于所述s-ccu的请求所述s-kms生成所述pmk并发送至所述s-ccu,所述s-ccu将所述pmk保存在安全隔离环境;
加密的密钥euk生成步骤,所述密码资源池系统根据外部应用系统的请求基于所述pmk生成加密的密钥euk,并将密钥的访问标识kid或euk发送至所述caig;
加密步骤,外部应用系统通过所述kid或euk方式向所述caig发送密码请求,所述密码资源池系统根据外部应用系统的请求方式进行外部应用系统的待加密数据的加密。
更进一步地,主密钥pmk生成步骤包括:
在所述s-ccu启动时,基于通用服务器的cpu或者操作系统提供的安全特性,申请安全隔离环境用于对密码资源进行存储和计算;
所述s-ccu在所述操作系统内核中创建一对非对称密钥,将私钥dtemp和状态在所述内核中暂时保存,并将公钥ptemp输出;
在所述s-ccu上的统一服务器上插入usbkey或ic卡,所述usbkey或ic卡中存储有用以证明所述s-ccu身份的数字证书c和私钥d,所述s-ccu所述向s-kms发送申请主密钥的请求,所述申请主密钥的请求中包含申请主密钥指令、主密钥标识和用以过程加密的公钥ptemp;
所述s-kms接收到申请主密钥的请求后,使用ptemp对所述pmk进行加密封装得到emk,并将所述emk发送至所述s-ccu,其中所述主密钥是所述s-kms在安装部署完成之后产生的;
所述s-ccu在所述内核中使用dtemp解密得到pmk,并保存在所述安全隔离环境中。
更进一步地,所述加密的密钥euk生成步骤包括:
所述外部应用系统向所述caig发送创建密钥的申请;
所述caig接收到所述该申请时对所述所述外部应用系统进行身份认证和权限控制,如果所述外部应用系统通过所述身份认证且具有权限,所述caig将所述申请发送至所述a-kms;
所述a-kms请求所述s-ccu创建密钥;
所述s-ccu调用所述s-kms,所述s-kms在其系统级硬件密码设备中产生密钥uk,并使用s-ccu的主密钥pmk进行加密后得到euk发送至所述s-ccu,所述s-ccu返回euk给所述a-kms;
判断所述外部应用系统是否要求保存密钥,如果是,则将所述保存在a-kms中,并返回密钥的访问标识kid给所述caig,如果否,则返回所述euk给抽象接口服务所述caig,所述caig返回所述kid或euk给所述外部应用系统。
更进一步地,所述密码资源池系统根据外部应用系统的请求方式进行外部应用系统的待加密数据的加密包括:
判断外部应用系统的请求方式为euk方式时,所述caig将euk和待加密数据发送至所述s-ccu,然后,所述s-ccu建立隔离的安全密码运行环境,所述s-ccu隔离环境中使用所述pmk解密所述euk得到uk,所述s-ccu使用所述uk对所述待加密数据进行加密得到加密后的数据;
判断外部应用系统的请求方式为kid方式时,所述外部应用系统发送kid和待加密数据所述caig,所述caig对所述外部应用系统进行身份认证和策略判断,认证通过后选择相应的策略所述caig发送获取密钥的请求至所述a-kms,所述a-kms基于kid返回密钥euk至所述s-ccu,所述caig将所述euk和待加密数据发送至所述s-ccu,然后,所述s-ccu建立隔离的安全密码运行环境,所述s-ccu隔离环境中使用所述pmk解密所述euk得到uk,所述s-ccu使用所述uk对所述待加密数据进行加密得到加密后的数据;
所述s-ccu将所述加密后的数据发送至所述caig,由所述caig发送至所述外部应用系统。
更进一步地,安全随机熵分发服务单元s-eds向安全随机熵守护单元s-egu分发熵数据,所述安全随机熵守护单元s-egu对接收的熵数据进行熵混乱度判断,如果混乱度达到一定阈值,则将所接收的熵数据保存在本地熵池中,在使用所述uk对所述待加密数据进行加密时,如果加密过程中需要使用随机数,则s-ccu从所述本地熵池中获得熵数据,采用随机数产生算法基于所述熵数据计算得到随机数。。
本发明还提出了一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一所述的加密方法。
本发明还提出了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行上述任一所述的加密方法。
本发明的技术效果在于:本发明提出了一种密码资源池系统、加密方法等,该系统包括:密码计算池ccp,所述密码计算池ccp是由一个内部网络域的多台通用服务器组成,所述通用服务器上部署软件密码单元s-ccu,在所述ccp中,以s-ccu分组为单位进行主密钥申请和使用,所述s-ccu利用所述通用服务器的cpu和操作系统的安全隔离特性形成一个隔绝的安全计算环境,完成密码运算;系统级密钥管理系统s-kms,所述s-kms包括系统级硬件密码设备、系统级密钥库和系统级密钥管理单元,所述系统级硬件密码设备用以安全产生所述ccp中的所述s-ccu的主密钥pmk,所述系统级密钥库用以安全存储所述pmk,所述系统级密钥管理单元用以向所述s-ccu提供密钥产生、密钥分发及密钥销毁服务,并基于该系统实现了数据的加密方法,其将密钥的安全产生、安全存储和安全使用分离开来,优化密码计算资源,提高了密码运算的效率,提高了系统的安全性,且降低对专用密码设备如密码机、签名验签服务器的依赖,降低了密码服务的成本,进一步实现了使用s-ccu和s-kms相互配合搭建和初始化密码资源池,并使用s-ccu和a-kms相互配合完成用户密钥的产生和传递,使用s-ccu完成用户密钥的相关加密计算以及使用s-eds和s-egu产生密码计算所需的随机数。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。
图1是根据本发明的实施例的一种密码资源池系统的结构图。
图2是本发明的实施例的一种基于密码资源池系统的加密方法的流程图。
图3是根据本发明的实施例的主密钥pmk生成步骤的流程图。
图4是根据本发明的实施例的加密的密钥euk生成步骤的流程图。
图5为根据本公开一个实施例的电子设备的结构示意图。
图6为根据本公开一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明的一种密码资源池系统,该系统包括:
密码计算池ccp101,所述密码计算池ccp是由一个内部网络域的多台通用服务器组成,所述通用服务器上部署软件密码单元s-ccu,在所述ccp中,以s-ccu分组为单位进行主密钥申请和使用,所述s-ccu利用所述通用服务器的cpu和操作系统的安全隔离特性形成一个隔绝的安全计算环境,完成密码运算。
在一个实施例中,密码计算池的硬件组成是在一个内部网络域的多台通用服务器,服务器上安装软件密码单元(s-ccu),软件密码单元利用服务器cpu和操作系统的安全隔离特性,形成一个隔绝的安全计算环境,完成密码运算。在ccp中,以s-ccu分组为单位进行主密钥申请和使用,每个s-ccu分组可以包括一个或多个s-ccu计算单元。
s-ccu基于特定cpu(例如intel)、操作系统的安全隔离技术构建安全密码计算环境。例如intel的sgx、tsx,arm的trustzone。例如intelsgx,允许应用创建enclave,enclave可以理解为一个数据运行的安全环境,将合法软件对于敏感数据(如加密密钥、密码、用户数据等)的操作封装在一个这个安全环境中,使得恶意软件无法对这些数据进行访问。tsx将允许程序员指定事务型同步代码空间,使得目前使用粗粒度线程锁定的程序更自由地使用细粒度线程锁定,进而提高多线程效率和性能。
系统级密钥管理系统s-kms102,所述s-kms包括系统级硬件密码设备、系统级密钥库和系统级密钥管理单元,所述系统级硬件密码设备用以安全产生所述ccp中的所述s-ccu的主密钥pmk,所述系统级密钥库用以安全存储所述pmk,所述系统级密钥管理单元用以向所述s-ccu提供密钥产生、密钥分发及密钥销毁服务,所述主密钥pmk用以保证各类用户密钥的传输安全和存储安全。
包含安装软件密码计算单元s-ccu的通用计算机集群、系统级密钥管理系统s-kms,能够提供密码资源池的基本功能,为了进一步提高密码资源池安全性、功能和性能,可以通过向系统中添加各种辅助系统而增强其能力。包括通过安全随机熵分发服务单元s-eds和安全随机熵守护单元s-egu,提升系统的随机数产生的随机性;通过应用级密钥管理系统a-kms简化应用程序端的密钥管理复杂性,提升密钥管理能力;通过密码抽象接口网关caig等内容,提供各种抽象的密码接口,便于应用系统接入,这些辅助系统用以降低为大型客户提供密码能力支撑的建设成本,下面将进行详细介绍。
在一个实施例中,如图1所示,所述系统还包括:应用级密钥管理系统a-kms103,所述a-kms包括应用级硬件密码设备、应用级密钥库和应用级密钥管理单元,所述应用级硬件密码设备用以安全产生用户应用系统定义的密钥,所述应用级密钥库用以安全存储所述应用系统定义的密钥,所述应用级密钥管理单元用以向所述用户应用系统提供所需的密钥产生、密钥分发及密码销毁服务。用以提供应用程序所需的密钥管理功能。用户可以使用应用程序自身管理其所产生和使用的各种密钥,也可以使用a-kms来管理,使用a-kms可以降低应用程序的复杂性,且a-kms较应用程序的安全性高,提高了密码的破解难度。
在一个实施例中,如图1所示,所述系统还包括:安全随机熵分发服务单元s-eds104,所述s-eds包括熵分发服务系统和随机数计算设备,所述随机数计算设备用以产生随机噪声源作为熵数据,所述熵分发服务系统根据接收的熵请求,将所述随机数计算设备生成的熵数据分发给请求者。例如sm2数字签名过程和ecdsa数字签名过程中的随机数、例如pkcs#7和gb/t32575标准中数字信封所需的sessionkey,通常,s-ccu可以自行产生随机数,或使用kms为其产生随机数,也可以使用s-eds产生随机数。
在一个实施例中,如图1所示,所述系统还包括:安全随机熵守护单元s-egu105,所述s-egu和s-ccu部署在同一目标通用服务器上,用以接收所述s-eds分发来的熵数据,进行熵混乱度的判断后,将接收到的熵数据合并到本地熵池中。s-egu可以配置多个熵源,用以同时接收一个或多个熵源的熵数据,使用这些外来熵和本地熵混合,用以向上层应用提供更强的随机性。混乱度判断的目的是保证生成的随机数是唯一的。
在一个实施例中,如图1所示,所述系统还包括:密码抽象接口网关caig106,所述caig与所述ccp相连接用以提供密码功能接口,以及进行应用程序接入控制和负载均衡,应用程序是指外部业务系统,也称为外部程序、外部应用等等。应用程序可以使用s-ccu向外提供的接口服务,也可以通过caig的抽象接口来调用。所述caig提供基于报文或sdk的服务接口,业务应用调用这些接口时,所述caig进行身份认证、访问控制以及策略处理和负载均衡后,交给密码计算池中的计算单元s-ccu或a-kms进行处理。
本发明的系统实现了密钥的安全产生、安全存储和安全使用分离开来,优化密码计算资源,提高了密码运算的效率,提高了系统的安全性,且降低对专用密码设备如密码机、签名验签服务器的依赖,降低了密码服务的成本,且在基本密码资源池系统的基本功能上,为了进一步提高密码资源池安全性、功能和性能,向系统中添加各种辅助系统而增强其能力,包括通过安全随机熵分发服务单元s-eds和安全随机熵守护单元s-egu,提升系统的随机数产生的随机性;通过应用级密钥管理系统a-kms简化应用程序端的密钥管理复杂性,提升密钥管理能力;通过密码抽象接口网关caig等内容,提供各种抽象的密码接口,便于应用系统接入,这些辅助系统用以降低为大型客户提供密码能力支撑的建设成本,这是本发明的重要发明点。
图2示出了本发明的一种基于密码资源池系统的加密方法,该方法基于上述结合图1介绍的所述密码资源池系统实现,所述密码资源池系统一般包括具有多个软件密码单元s-ccu的密码计算池ccp、系统级密钥管理系统s-kms、应用级密钥管理系统a-kms、安全随机熵分发服务单元s-eds、安全随机熵守护单元s-egu和密码抽象接口网关caig。
图2示出了本发明的一种基于密码资源池系统的加密方法包括以下步骤:
主密钥pmk生成步骤s201,基于所述s-ccu的请求所述s-kms生成所述pmk并发送至所述s-ccu,所述s-ccu将所述pmk保存在安全隔离环境。该主密钥pmk生成步骤s201也是系统的初始化过程的步骤。
密码资源池初始化时,包括密钥管理安装部署和初始化、密码单元s-ccu安装部署和初始化、抽象接口网关caig的初始化。
s-kms和a-kms在安装部署完成之后,需要产生系统运行所需的各种密钥,包括主密钥、身份密钥和通信安全密钥,s-eds需要完成随机熵源密码设备的初始化、熵分发服务的初始化。通常熵分发服务应部署不少于两套,分别使用独立的硬件密码设备产生熵和分发熵。在每个s-ccu上部署s-egu,用于定期或不定期获得熵分发服务的熵源,并入本地操作系统的熵池中。
caig在安装部署完成后,需要产生系统运行所需的各种密钥,身份密钥和通信安全密钥,然后为接入密码资源池的应用建立身份、认证凭据和权限。
加密的密钥euk生成步骤s202,所述密码资源池系统根据外部应用系统的请求基于所述pmk生成加密的密钥euk,并将密钥的访问标识kid或euk发送至所述caig。这个过程也称为密钥服务过程,密钥的服务还可以包括密钥的分发、更新及销毁。
加密步骤s203,外部应用系统通过所述kid或euk方式向所述caig发送密码请求,所述密码资源池系统根据外部应用系统的请求方式进行外部应用系统的待加密数据的加密。本发明提供两种方式密码服务请求方式,下面将进行详细介绍。
在一个实施例中,如图3所示,所述主密钥pmk生成步骤s201包括:
步骤2011,在所述s-ccu启动时,基于通用服务器的cpu或者操作系统提供的安全特性,申请安全隔离环境用于对密码资源进行存储和计算;即,申请安全隔离环境(如专用存储寄存器、专用cpu核等)是用于对密码资源进行存储和计算,在该环境下能够防止密码资源被转存到通用存储部件中(如cache、主存、磁盘等),该存储环境用于保存主密钥。
步骤2012,所述s-ccu在所述操作系统内核中创建一对非对称密钥,将私钥dtemp和状态在所述内核中暂时保存,并将公钥ptemp输出。
步骤2013,在所述s-ccu上的统一服务器上插入usbkey或ic卡,所述usbkey或ic卡中存储有用以证明所述s-ccu身份的数字证书c和私钥d,所述s-ccu所述向s-kms发送申请主密钥的请求,所述申请主密钥的请求中包含申请主密钥指令、主密钥标识和用以过程加密的公钥ptemp。
步骤2014,所述s-kms接收到申请主密钥的请求后,使用ptemp对所述pmk进行加密封装得到emk,并将所述emk发送至所述s-ccu,其中所述主密钥是所述s-kms在安装部署完成之后产生的。
步骤2015,所述s-ccu在所述内核中使用dtemp解密得到pmk,并保存在所述安全隔离环境中。
通过上述步骤,实现了软件密码计算单元s-ccu在安装部署完成之后,应由系统密钥管理中心的密钥管理人员,通过系统密钥管理中心为其产生s-ccu的主密钥,在s-ccu启动时,通过特定的协议和保护机制,传递到s-ccu的模块内,实现了密码的产生、存储的安全分离,提高了密码的安全性,通过上述步骤,使用s-ccu和s-kms相互配合搭建和初始化密码资源池,在s-kms完成s-ccu主密钥的产生并安全导入s-ccu并在s-ccu中安全存储主密钥,这是本发明重要发明点之另一。
在一个实施例中,如图4所示,所述加密的密钥euk生成步骤s202包括:
步骤2021,所述外部应用系统向所述caig发送创建密钥的申请。
步骤2022,所述caig接收到所述该申请时对所述所述外部应用系统进行身份认证和权限控制,如果所述外部应用系统通过所述身份认证且具有权限,所述caig将所述申请发送至所述a-kms。
步骤2023,所述a-kms请求所述s-ccu创建密钥。
步骤2024,所述s-ccu调用所述s-kms,所述s-kms在其系统级硬件密码设备中产生密钥uk,并使用s-ccu的主密钥pmk进行加密后得到euk发送至所述s-ccu,所述s-ccu返回euk给所述a-kms。
步骤2025,判断所述外部应用系统是否要求保存密钥,如果是,则将所述保存在a-kms中,并返回密钥的访问标识kid给所述caig,如果否,则返回所述euk给抽象接口服务所述caig,所述caig返回所述kid或euk给所述外部应用系统。
通过上述步骤,使用s-ccu和a-kms相互配合完成了用户密钥的产生和传递,在a-kms中产生应用密钥并安全导入到s-ccu,且在s-ccu中安全存储和使用应用密钥,这是本发明重要发明点之另一。
在一个实施例中,所述密码资源池系统根据外部应用系统的请求方式进行外部应用系统的待加密数据的加密包括:
判断外部应用系统的请求方式为euk方式时,所述caig将euk和待加密数据发送至所述s-ccu,然后,所述s-ccu建立隔离的安全密码运行环境,所述s-ccu隔离环境中使用所述pmk解密所述euk得到uk,所述s-ccu使用所述uk对所述待加密数据进行加密得到加密后的数据。
判断外部应用系统的请求方式为kid方式时,所述外部应用系统发送kid和待加密数据所述caig,所述caig对所述外部应用系统进行身份认证和策略判断,认证通过后选择相应的策略所述caig发送获取密钥的请求至所述a-kms,所述a-kms基于kid返回密钥euk至所述s-ccu,所述caig将所述euk和待加密数据发送至所述s-ccu,然后,所述s-ccu建立隔离的安全密码运行环境,所述s-ccu隔离环境中使用所述pmk解密所述euk得到uk,所述s-ccu使用所述uk对所述待加密数据进行加密得到加密后的数据。
所述s-ccu将所述加密后的数据发送至所述caig,由所述caig发送至所述外部应用系统。
通过上述步骤,实现了数据的加密,且可以通过两种方式请求数据的加密,用户可以根据需要适应性的选择恰当的方式,即上述步骤使用s-ccu完成用户密钥的相关加密计算,这是本发明重要发明点之另一。
在一个实施例中,安全随机熵分发服务单元s-eds向安全随机熵守护单元s-egu分发熵数据,所述安全随机熵守护单元s-egu对接收的熵数据进行熵混乱度判断,如果混乱度达到一定阈值,则将所接收的熵数据保存在本地熵池中,在使用所述uk对所述待加密数据进行加密时,如果加密过程中需要使用随机数,则s-ccu从所述本地熵池中获得熵数据,采用随机数产生算法基于所述熵数据计算得到随机数。此外,本地熵池中的熵数据除可以来自多个安全随机熵分发服务单元s-eds,还可以来自本地cpu、内存及磁盘的混乱数据,且来自多个所述安全随机熵分发服务单元s-eds的熵数据是经过所述安全随机熵守护单元s-egu进行熵混乱度判断后混乱度达到一定阈值的熵数据。此外,如果产生的随机数有机密性要求例如作为会话密钥来使用,则应采用主密钥对随机数进行加密来保证只有s-ccu能够看到随机数内容,另外还使用和本地cpu、硬盘、内存、中断产生的熵数据充分混合以防止熵重放。即本发明还使用了s-eds和s-egu产生密码计算所需的随机数,提高了系统的安全性。
在一个实施例中,提供了为外部应用系统销毁密钥的过程如下:如果密钥未在a-kms中保存,则外部应用系统销毁其保存的euk即可;如果密钥在a-kms中保存,则业务系统向抽象接口服务请求销毁指定kid的密钥;抽象接口服务向a-kms请求销毁指定a-kms的密钥;a-kms标记该kid的密钥状态,同时按照系统销毁策略,使用密钥销毁掩码反复覆盖该kid的密钥数据;逐层返回密钥销毁是否成功。
在一个实施例中,为应用系统(也称为业务系统)更新密钥的过程如下:密钥不需要更新,需要新密钥时,在身份验证和权限控制后重新产生密钥即可,为业务系统提供密码计算服务时,需要图1中的各个部分都完成了部署和初始化,为业务系统创建了其所需的密钥,业务系统可以通过密钥kid或euk两种方式请求密码存在。
图5是图示根据本公开的实施例的电子设备的硬件框图。如图5所示,根据本公开实施例的电子设备50包括存储器51和处理器52。
该存储器51用于存储非暂时性计算机可读指令。具体地,存储器51可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。
该处理器52可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制电子设备50中的其它组件以执行期望的功能。在本公开的一个实施例中,该处理器52用于运行该存储器51中存储的该计算机可读指令,使得该电子设备50执行前述的本公开各实施例的加密方法的全部或部分步骤。
本领域技术人员应能理解,为了解决如何获得良好用户体验效果的技术问题,本实施例中也可以包括诸如通信总线、接口等公知的结构,这些公知的结构也应包含在本公开的保护范围之内。
有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。
图6是图示根据本公开的实施例的计算机可读存储介质的示意图。如图6所示,根据本公开实施例的计算机可读存储介质60,其上存储有非暂时性计算机可读指令61。当该非暂时性计算机可读指令61由处理器运行时,执行前述的本公开各实施例的加密方法的全部或部分步骤。
上述计算机可读存储介质60包括但不限于:光存储介质(例如:cd-rom和dvd)、磁光存储介质(例如:mo)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置rom的媒体(例如:rom盒)。
有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。
本公开提出的界面的自动生成方法的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,本公开提出的界面的自动生成方法的各种实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
另外,如在此使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“a、b或c的至少一个”的列举意味着a或b或c,或ab或ac或bc,或abc(即a和b和c)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
还需要指出的是,在本公开的系统和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
1.一种密码资源池系统,其特征在于,该系统包括:
密码计算池ccp,所述密码计算池ccp是由一个内部网络域的多台通用服务器组成,所述通用服务器上部署软件密码单元s-ccu,在所述ccp中,以s-ccu分组为单位进行主密钥申请和使用,所述s-ccu利用所述通用服务器的cpu和操作系统的安全隔离特性形成一个隔绝的安全计算环境,完成密码运算;
系统级密钥管理系统s-kms,所述s-kms包括系统级硬件密码设备、系统级密钥库和系统级密钥管理单元,所述系统级硬件密码设备用以安全产生所述ccp中的所述s-ccu的主密钥pmk,所述系统级密钥库用以安全存储所述pmk,所述系统级密钥管理单元用以向所述s-ccu提供密钥产生、密钥分发及密钥销毁服务。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括:
应用级密钥管理系统a-kms,所述a-kms包括应用级硬件密码设备、应用级密钥库和应用级密钥管理单元,所述应用级硬件密码设备用以安全产生用户应用系统定义的密钥,所述应用级密钥库用以安全存储所述应用系统定义的密钥,所述应用级密钥管理单元用以向所述用户应用系统提供所需的密钥产生、密钥分发及密码销毁服务。
3.根据权利要求2所述的系统,其特征在于,所述系统还包括:
安全随机熵分发服务单元s-eds,所述s-eds包括熵分发服务系统和随机数计算设备,所述随机数计算设备用以产生随机噪声源作为熵数据,所述熵分发服务系统根据接收的熵请求,将所述随机数计算设备生成的熵数据分发给请求者。
4.根据权利要求3所述的系统,其特征在于,所述系统还包括:
安全随机熵守护单元s-egu,所述s-egu和s-ccu部署在同一目标通用服务器上,用以接收所述s-eds分发来的熵数据,进行熵混乱度的判断后,将接收到的熵数据合并到本地熵池中。
5.根据权利要求4所述的系统,其特征在于,所述系统还包括:
密码抽象接口网关caig,所述caig与所述ccp相连接用以提供密码功能接口,以及进行应用程序接入控制和负载均衡。
6.一种基于密码资源池系统的加密方法,其特征在于,所述密码资源池系统包括具有多个软件密码单元s-ccu的密码计算池ccp、系统级密钥管理系统s-kms、应用级密钥管理系统a-kms、安全随机熵分发服务单元s-eds、安全随机熵守护单元s-egu和密码抽象接口网关caig,所述方法包括:
主密钥pmk生成步骤,基于所述s-ccu的请求所述s-kms生成所述pmk并发送至所述s-ccu,所述s-ccu将所述pmk保存在安全隔离环境;
加密的密钥euk生成步骤,所述密码资源池系统根据外部应用系统的请求基于所述pmk生成加密的密钥euk,并将密钥的访问标识kid或euk发送至所述caig;
加密步骤,外部应用系统通过所述kid或euk方式向所述caig发送密码请求,所述密码资源池系统根据外部应用系统的请求方式进行外部应用系统的待加密数据的加密。
7.根据权利要求6所述的方法,其特征在于,主密钥pmk生成步骤包括:
在所述s-ccu启动时,基于通用服务器的cpu或者操作系统提供的安全特性,申请安全隔离环境用于对密码资源进行存储和计算;
所述s-ccu在所述操作系统内核中创建一对非对称密钥,将私钥dtemp和状态在所述内核中暂时保存,并将公钥ptemp输出;
在所述s-ccu上的统一服务器上插入usbkey或ic卡,所述usbkey或ic卡中存储有用以证明所述s-ccu身份的数字证书c和私钥d,所述s-ccu所述向s-kms发送申请主密钥的请求,所述申请主密钥的请求中包含申请主密钥指令、主密钥标识和用以过程加密的公钥ptemp;
所述s-kms接收到申请主密钥的请求后,使用ptemp对所述pmk进行加密封装得到emk,并将所述emk发送至所述s-ccu,其中所述主密钥是所述s-kms在安装部署完成之后产生的;
所述s-ccu在所述内核中使用dtemp解密得到pmk,并保存在所述安全隔离环境中。
8.根据权利要求7所述的方法,其特征在于,所述加密的密钥euk生成步骤包括:
所述外部应用系统向所述caig发送创建密钥的申请;
所述caig接收到所述该申请时对所述所述外部应用系统进行身份认证和权限控制,如果所述外部应用系统通过所述身份认证且具有权限,所述caig将所述申请发送至所述a-kms;
所述a-kms请求所述s-ccu创建密钥;
所述s-ccu调用所述s-kms,所述s-kms在其系统级硬件密码设备中产生密钥uk,并使用s-ccu的主密钥pmk进行加密后得到euk发送至所述s-ccu,所述s-ccu返回euk给所述a-kms;
判断所述外部应用系统是否要求保存密钥,如果是,则将所述保存在a-kms中,并返回密钥的访问标识kid给所述caig,如果否,则返回所述euk给抽象接口服务所述caig,所述caig返回所述kid或euk给所述外部应用系统。
9.根据权利要求8所述的方法,其特征在于,所述密码资源池系统根据外部应用系统的请求方式进行外部应用系统的待加密数据的加密包括:
判断外部应用系统的请求方式为euk方式时,所述caig将euk和待加密数据发送至所述s-ccu,然后,所述s-ccu建立隔离的安全密码运行环境,所述s-ccu隔离环境中使用所述pmk解密所述euk得到uk,所述s-ccu使用所述uk对所述待加密数据进行加密得到加密后的数据;
判断外部应用系统的请求方式为kid方式时,所述外部应用系统发送kid和待加密数据所述caig,所述caig对所述外部应用系统进行身份认证和策略判断,认证通过后选择相应的策略所述caig发送获取密钥的请求至所述a-kms,所述a-kms基于kid返回密钥euk至所述s-ccu,所述caig将所述euk和待加密数据发送至所述s-ccu,然后,所述s-ccu建立隔离的安全密码运行环境,所述s-ccu隔离环境中使用所述pmk解密所述euk得到uk,所述s-ccu使用所述uk对所述待加密数据进行加密得到加密后的数据;
所述s-ccu将所述加密后的数据发送至所述caig,由所述caig发送至所述外部应用系统。
10.根据权利要求9所述的方法,其特征在于,安全随机熵分发服务单元s-eds向安全随机熵守护单元s-egu分发熵数据,所述安全随机熵守护单元s-egu对接收的熵数据进行熵混乱度判断,如果混乱度达到一定阈值,则将所接收的熵数据保存在本地熵池中,在使用所述uk对所述待加密数据进行加密时,如果加密过程中需要使用随机数,则s-ccu从所述本地熵池中获得熵数据,采用随机数产生算法基于所述熵数据计算得到随机数。
11.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求6-10任一所述的加密方法。
12.一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行权利要求6-10任一所述的加密方法。
技术总结