CN113824553A - 密钥管理方法、装置及系统 - Google Patents
密钥管理方法、装置及系统 Download PDFInfo
- Publication number
- CN113824553A CN113824553A CN202010567928.3A CN202010567928A CN113824553A CN 113824553 A CN113824553 A CN 113824553A CN 202010567928 A CN202010567928 A CN 202010567928A CN 113824553 A CN113824553 A CN 113824553A
- Authority
- CN
- China
- Prior art keywords
- key
- network element
- ciphertext
- management network
- components
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
Abstract
本申请实施例公开了密钥管理方法、装置及系统,所述方法包括:密钥管理网元响应于密钥操作请求,从N个密文存储地址中选择出M个密文存储地址,根据M个密文存储地址从M密文存储地址所对应的密钥分量管理网元获取相应的M个密钥分量的密文,使用密钥管理网元的私钥对M个密钥分量的密文进行解密得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥以及第一密钥的ID执行相应的密钥操作。本申请方案可用于安全技术领域等领域。
Description
技术领域
本申请实施例涉及加密技术领域,尤其涉及密钥管理方法、装置及系统。
背景技术
业务系统中,为了保证业务敏感数据存储、传输的机密性以及一致性,通常会使用加密技术对业务敏感数据进行加密处理,如客户证件信息的加密存储、交易金额的加密传输、客户账户余额的签名防篡改等。加密技术中,通常会使用到加密算法、解密算法以及密钥。
由于算法(如加密算法、解密算法)本身是公开的,业务系统必须保证密钥的安全,如果密钥泄露,则在得到业务敏感数据的密文的情况下,就可以根据解密算法解密业务敏感数据的密文得到业务敏感数据的原文,从而泄露业务敏感数据,因此,为了不泄露业务敏感数据,则必须保证密钥的安全,以免密钥被泄露。
发明内容
本申请实施例提供一种密钥管理方法、装置及系统,以解决密钥被泄露的问题。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种密钥管理方法,该方法由密钥管理网元执行,该方法可以包括:密钥管理网元响应于密钥操作请求,在N个密钥存储地址中选择出M个密钥存储地址,一个密钥存储地址可以用于从一个密钥分量管理网元获取一个密钥分量的密文,根据M个密钥存储地址获取M个密钥分量的密文,使用密钥管理网元的私钥对M个密钥分量的密文进行解密得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥以及第一密钥的标识(identifier,ID)执行相应的密钥操作。
基于第一方面所述的方法,可以将密钥分量加密后成密钥分量的密文后分布式存储在密钥分量管理网元上,并触发密钥管理网元将存储密钥分量的密文对应的密文存储地址保存在密钥管理网元上,以便在接收到密钥操作请求后,密钥管理网元从已存在密文存储地址中选择密文存储地址,根据选择的密钥存储地址获取M个密钥分量的密文,使用密钥管理网元的私钥对M个密钥分量的密文进行解密得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥执行相应的密钥操作。由于密钥分量管理网元较多,且密钥分量以密文的形式分布式存在较多的密钥分量管理网元,使得攻击者/不法分子从数量较多的密钥分量管理网元获取密钥分量的难度较大,保证密钥分量存储的安全性,进而保证根据密钥分量所生成的密钥的安全。同时,不需要量子密钥分发设备、加密机等专业硬件设备来保证密钥分量存储安全,降低硬件资源需求。
一种可能的设计中,所述方法还包括:接收N个密钥分量管理网元发送的用于指示密钥分量管理网元存储有密钥分量的密文的注册请求,响应于N个密钥分量管理网元发送的注册请求,将N个密钥分量管理网元的地址信息作为N个密文存储地址存储起来;或者,将N个密钥分量的密文的序号作为N个密文存储地址,将N个密钥分量的密文的序号与N个密钥分量管理网元的地址信息对应存储起来。
基于该可能的设计,密钥管理网元可以通过现有注册流程获知密钥分量管理网元生成有密钥分量的密文,降低信令开销;同时,密钥管理网元可以将密钥分量管理网元的地址信息作为密文存储地址存储起来,也可以对密钥分量的密文进行编号,将密钥分量的密文的序号作为存储地址存储起来,增加存储灵活性以及存储压力。
一种可能的设计中,每一个密钥分量管理网元的地址信息包括在密钥分量管理网元发送的注册请求中。基于该可能的设计,可以通过现有注册流程将密钥分量管理网元的地址信息显式指示给密钥管理网元,降低信令开销。
一种可能的设计中,密钥分量管理网元的地址信息包括密钥分量管理网元的ID、密钥分量管理网元的统一资源定位符(uniform resource locator,URL)、密钥分量管理网元的文件传输协议(file transfer protocol,FTP)中任一种地址信息。基于该可能的设计,可以将密钥分量管理网元的ID或者URL或者FTP作为密钥分量管理网元的地址信息,支持不同传输协议,提高该方案的应用场景以及设计灵活性。
一种可能的设计中,所述方法还包括:存储M个密文存储地址与第一密钥的ID之间的对应关系,以便于后续密钥管理网元根据该对应关系得到/追溯用于生成第一密钥的密钥分量,避免直接保存密钥分量导致的密钥分量泄露的风险,同时,又便于查找用于生成第一密钥的密钥分量,提高密钥分量查找效率。
一种可能的设计中,所述方法还包括:确定更新第一密钥;从N个密文存储地址选择K个密文存储地址,根据K个密文存储地址获取相应的与M个密钥分量的密文不同的K个密钥分量的密文,使用密钥管理网元的私钥分别对K个密钥分量的密文进行解密得到K个密钥分量的明文,基于K个密钥分量的明文生成第二密钥,使用第二密钥更新第一密文,第一密文为根据第一密钥以及第一密钥的ID对第一明文执行加密操作得到的密文,第一密文包括第一密钥的ID。基于该可能的设计,可以采用新的K个密钥分量更新第一密钥得到更新后的第二密钥,使用更新后的第二密钥对原有采用第一密钥加密后的密文进行更新,保证密钥以及该密钥所加密的密文同步更新,提高后续利用密钥解密密文以及其他密钥操作的准确性。
一种可能的设计中,K个密钥分量的密文与M个密钥分量的密文不同包括:K与M不同;或者,K与M相同或不同,K个密钥分量的密文的密文存储地址与M个密钥分量的密文的密文存储地址完全不同;或者,K与M相同或不同,K个密钥分量的密文的密文存储地址与M个密钥分量的密文的密文存储地址部分或全部相同,同一密文存储地址对应的密钥分量的密文不同。基于该可能的设计,可以采用不同数量的密钥分量更新第一密钥,或者,采用更新后的密钥分量更新第一密钥,更新方式灵活多样。
一种可能的设计中,使用第二密钥更新第一密文包括:根据第一密文包括的第一密钥的ID以及M个密文存储地址与第一密钥的ID之间的对应关系确定M个密文存储地址,根据M个密文存储地址获取相应的M个密钥分量的密文,使用密钥管理网元的私钥分别对M个密钥分量的密文进行解密得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥对第一密文执行解密操作得到第一明文,使用第二密钥、第二密钥的ID对第一明文执行加密操作得到第二密文。基于该可能的设计,每次执行解密/加密等操作时,基于M个密文存储地址与第一密钥的ID之间的对应关系确定密文存储地址,根据密文存储地址从密钥分量管理网元获取到密钥分量,根据获取到密钥分量进行解密/加密操作,无需密钥管理网元直接存储用于生成密钥的密钥分量,保证了密钥分量存储的安全性。
一种可能的设计中,所述方法还包括:当所有第一密文被更新后,将M个密文存储地址与第一密钥的ID之间的对应关系更新为K个密文存储地址与第二密钥的ID之间的对应关系,第一密钥的ID与第二密钥的ID相同或者不同。基于该可能的设计,可以在利用新的密钥分量更新密钥之后,及时更新密钥存储地址以及密钥的ID的对应关系,以便根据新的对应关系查找到新的密钥分量,准确执行密钥管理操作。
一种可能的设计中,确定更新第一密钥包括:若预设更新周期到来,则确定更新第一密钥;或者,若M个密钥分量中的任一密钥分量更新,则确定更新第一密钥;或者,若接收到更新第一密钥加密的密文的请求,则确定更新第一密钥。基于该可能的设计,可以在不同触发条件下及时更新密钥,保证业务系统中密钥以及利用密钥所加密的密文的持续安全性,降低密钥以及密文泄露的风险。
一种可能的设计中,基于M个密钥分量的明文生成第一密钥包括:使用下述任一种算法对M个密钥分量的明文进行计算得到第一密钥:基于密码的密钥衍生函数(PBKDF)2、安全哈希算法(secure hash algorithm,SHA)256、散列信息认证码(hash-based messageauthentication code,HMAC)算法。基于该可能的设计,可以基于多种算法中任一种算法计算得到的第一密钥,提高系统设计灵活性。
一种可能的设计中,密钥管理网元包括平台类网元;密钥分量管理网元包括前台用户操作网元、后台管理操作网元、文档服务网元、日志服务网元、定时任务服务网元、通知服务网元中一种或多种网元。基于该可能的设计,可以利用不同类型的密钥分量管理网元生成并分散存储密钥分量,保证密钥存储的安全性。
一种可能的设计中,密钥操作包括加密、解密、更新密钥、更新密文中任一种操作。基于该可能的设计,第一方面所述的方法可以应用于加密、解密、更新密钥、更新密文等应用场景下,提高了该方法的适应范围以及设计灵活性。
第二方面,本申请提供一种装置,该装置可以为密钥管理网元或者密钥管理网元中的芯片或者片上系统,还可以为密钥管理网元中用于实现本申请实施例所述的密钥管理方法的模块或者单元,或者为其他能够实现密钥管理网元执行的方法的模块或者单元。该装置可以实现上述第一方面或者各可能的设计中密钥管理网元所执行的功能。一种设计中,该装置可以包括执行第一方面中所描述的方法/操作/步骤/动作所一一对应的模块单元、或手段(means),该模块、单元、或means可以通过硬件实现,软件实现,或者通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块或单元。如该装置可以包括:处理单元;
处理单元,用于响应于密钥操作请求,在N个密文存储地址中,选择M个密文存储地址,其中,每一个密文存储地址用于从一个密钥分量管理网元获取一个密钥分量的密文,每一个密钥分量的密文为用密钥管理网元的公钥对相应密钥分量的明文加密得到,M为大于2且小于等于N的整数。处理单元,还用于根据M个密文存储地址获取相应的M个密钥分量的密文,使用密钥管理网元的私钥分别对M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥以及第一密钥的ID执行相应的密钥操作。
其中,该装置的具体实现方式可以参考第一方面或第一方面的任一可能的设计提供的数据传输方法中终端的行为功能,在此不再重复赘述。因此,第二方面提供的装置可以达到与第一方面或者第一方面的任一可能的设计相同的有益效果。
第三方面,提供了一种装置,该装置可以为密钥管理网元或者密钥管理网元中的芯片或者片上系统,或者为其他能够实现密钥管理网元侧方法的模块或者单元。该装置可以实现上述第一方面或者各可能的设计中密钥管理网元所执行的功能,所述功能可以通过硬件实现。一种可能的设计中,该装置可以包括:处理器和通信接口,处理器用于响应于密钥操作请求,在N个密文存储地址中,选择M个密文存储地址,根据M个密文存储地址获取相应的M个密钥分量的密文,使用密钥管理网元的私钥分别对M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥以及第一密钥的ID执行相应的密钥操作。在又一种可能的设计中,装置还可以包括存储器,存储器用于保存计算机指令和/或数据。当该装置运行时,该处理器执行该存储器保存的该计算机指令,以使该装置执行上述第一方面或者第一方面的任一种可能的设计所述的密钥管理方法。在本申请实施例中,通信接口可以是收发器、接口电路、总线接口、管脚或其它能够实现收发功能的装置。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或者上述方面的任一可能的设计所述的密钥管理方法。
第五方面,提供了一种包含指令的计算机程序产品,该计算机程序产品可以包括程序指令,当该计算机程序产品在计算机上运行时,使得计算机可以执行上述第一方面或者上述方面的任一可能的设计所述的密钥管理方法。
第六方面,提供了一种芯片系统,该芯片系统包括处理器以及通信接口,该芯片系统可以用于实现上述第一方面或第一方面的任一可能的设计中密钥管理网元所执行的功能。例如处理器用于响应于密钥操作请求,在N个密文存储地址中,选择M个密文存储地址,根据M个密文存储地址获取相应的M个密钥分量的密文,使用密钥管理网元的私钥分别对M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥以及第一密钥的ID执行相应的密钥操作。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存程序指令和/或数据,当该芯片系统运行时,该处理器执行该存储器保存的该程序指令,以使该芯片系统执行上述第一方面或者第一方面的任一种可能的设计所述的密钥管理方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件,不予限制。
第七方面,本申请实施例还提供一种业务系统,所述业务系统包括如第二方面或第三方面所述的装置以及密钥分量管理网元。
附图说明
图1为密钥层次化管理结构示意图;
图2为本申请实施例提供的一种业务系统的架构示意图;
图3为本申请实施例提供的一种业务系统的架构示意图;
图4为本申请实施例提供的一种密钥管理方法的流程图;
图5为本申请实施例提供的又一种密钥管理方法的流程图;
图6为本申请实施例提供的又一种密钥管理网元的流程图;
图7为本申请实施例提供的一种装置70的组成示意图;
图8为本申请实施例提供的一种装置80的组成示意图。
具体实施方式
业务系统中,为了保证密钥不被泄露,采用层次化的保护方式对密钥进行安全管理。图1为密钥层次化管理结构示意图,如图1所示,密钥分为三层密钥:第一层是根密钥,也称为主密钥(master key),第二层是密钥加密密钥(key encryption key,KEK),第三层是工作密钥(work key,WK)。下行的密钥为上层密钥提供加密保护,如根密钥为KEK提供加密保护,KEK为WK提供加密保护。下面对根密钥、KEK以及WK进行介绍:
其中,WK可以对本地保存的敏感数据和需要在不安全信道上传输的数据提供机密性、完整性保护,还可以提供认证和签名等密码学服务。WK直接被上层应用程序所使用,WK可以包括存储加密使用的密钥、预共享密钥、消息认证码(message authentication code,MAC)密钥、签名私钥等。如图1所示,WK可以包括鉴权类工作密钥、存储类工作密钥、签名类工作密钥、传输类工作密钥,不同工作密钥可以加密不同类型的业务数据,不同工作密钥可以对应不同的加密场景,为了区分工作密钥对应的加密场景,一个加密场景对应设置一个密钥特征码,通过密钥特征码来标识工作密钥对应的加密场景。鉴权类工作密钥可以包括密码(password)加密存储密钥、个人身份识别码(personal identification number,PIN)加密存储密钥、机机接口鉴权加密密钥。存储类工作密钥可以包括用户敏感数据加密存储密钥、配置数据加密存储密钥。签名类工作密钥可以包括交易数据签名存储密钥、MAC密钥。传输类工作密钥可以包括数据加密传输密钥。
其中,KEK可以对工作密钥提供机密性保护的密钥,使用KEK加密后的工作密钥的密文存储在业务系统中,KEK自身则受到根密钥的保护。对于较为简单、安全等级要求不高的密码应用系统,KEK的职能可以直接由根密钥兼任。如图1所示,KEK可以包括鉴权类密钥加密密钥、存储类密钥加密密钥、签名类密钥加密密钥、传输类密钥加密密钥,不同KEK可以加密不同类型的WK,不同KEK可以对应不同的加密场景,为了区分KEK对应的加密场景,KEK对应的一个加密场景对应设置一个密钥特征码,不同加密场景对应的密钥特征码不同,通过密钥特征码来标识KEK对应的加密场景。鉴权类密钥加密密钥可以为鉴权类工作密钥提供机密性保护,存储类密钥加密密钥可以为存储类工作密钥提供机密性保护,签名类密钥加密密钥可以为签名类工作密钥提供机密性保护,传输类密钥加密密钥可以为传输类工作密钥提供机密性保护。
其中,根密钥位于密钥管理分层结构的最底端,根密钥可以为上层密钥(如密钥加密密钥或者工作密钥)提供机密性保护,使用根密钥加密后的密钥加密密钥的密文存储在业务系统中。从图1所示架构可知,处于最底端的密钥(如根密钥)没有其他密钥为其提供机密性保护,安全性较低。
为保护根密钥的安全性,在业务系统的实际应用中,根据固定的几个密钥分量合成根密钥,如密钥管理网元、终端设备分别生成一份密钥分量,通过量子密钥分发设备分发至虚拟加密机,虚拟加密机自身也生成一份密钥分量,虚拟加密机将自身生成的密钥分量、密钥管理网元生成的密钥分量以及终端设备生成的这三个密钥分量进行合成得到根密钥,使用根密钥加密保护KEK,使用KEK加密保护WK。但是,这种合成根密钥的方式中,只有三份密钥分量,密钥分量比较少,被恶意攻击者获取的概率大,根密钥安全性不高;同时,需要增加量子密钥分发设备、虚拟加密机等专业硬件设备来保证密钥分量的安全,硬件资源需求大。
为解决上述问题,本申请实施例提供一种密钥管理方法:由业务系统中的密钥分量管理网元(如业务网元)生成并存储密钥分量的密文,并通过注册流程告知密钥管理网元密钥分量管理网元生成有密钥分量的密文。密钥管理网元自身不保存密钥分量,记录密钥分量的密文对应的密文存储地址。后续,当接收到密钥操作请求后,从记录的密文存储地址中选择出M个密文存储地址,根据M个密文存储地址从密钥分量管理网元获取M个密钥分量的密文,进而根据密钥管理网元的私钥对M个密钥分量的密文进行解密得到M个密钥分量的明文,根据M个密钥分量的明文生成第一密钥,利用第一密钥执行相应的密钥操作。如此,可以由业务系统中的每个密钥分量管理网元都生成一个密钥分量,密钥分量数量多,获取所有密钥分量的难度大。同时,密钥管理网元自身不保存密钥分量,只记录密文存储地址,根据随机选取的密钥分量合成密钥,借助大规模集群系统抗攻击的优势,保证密钥分量存储的安全性。并且不需要量子密钥分发设备、加密机等专业硬件设备来保证密钥分量存储安全,在保证根密钥安全的基础上降低了硬件资源需求。
下面结合说明书附图,对本申请实施例提供的密钥管理方法进行描述。
本申请实施例提供的密钥管理方法可以应用于图2所示业务系统,如图2所示,所述业务系统可以包括:密钥管理网元101、多个密钥分量管理网元102,如该业务系统可以包括N个密钥分量管理网元102,N为大于2的整数。
其中,密钥管理网元101可以提供密钥的管理、加密/解密密钥等操作,负责生成和定期更新根密钥、KEK以及WK,并记录密钥分量的密文所对应的密文存储地址。
具体的,密钥管理网元101,用于响应于密钥操作请求,在N个密文存储地址中选择M个密文存储地址,根据M个密文存储地址获取相应的M个密钥分量的密文,使用密钥管理网元101的私钥分别对M个密钥分量的密文进行解密得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥以及第一密钥的ID执行相应的密钥操作。
其中,密钥分量管理网元102,可以用于生成密钥分量的明文以及加密存储密钥分量的明文,如密钥分量管理可以用于生成密钥分量的明文,使用密钥管理网元101的公钥对密钥分量的明文进行加密得到密钥分量的密文。
进一步的,密钥管理网元101,还可以用于记录/存储第一密钥的ID与M个密文存储地址之间的对应关系,以便后续根据该对应关系追溯回用于生成第一密钥的密钥分量,根据追溯回的密钥分量再次生成第一密钥,利用第一密钥执行加密或解密操作。
进一步的,密钥管理网元101,还可以用于从N个密文存储地址中选择K个密文存储地址,根据K个密文存储地址获取到与M个密钥分量不同的K个的密钥分量,根据K个密钥分量更新第一密钥得到第二密钥。
需要说明的是,图2仅为示例性架构图,除图2中所示功能单元外,该系统还可以包括其他功能网元,如:数据库(database)等,本申请实施例对此不进行限定。此外,图2中各个设备的名称不受限制,除图2所示名称之外,各个设备还可以命名为其他名称,如替换成具备相同或相似功能的网元名称,不予限制。
可选的,本申请实施例中的密钥管理网元、密钥分量管理网元也可以称之为密钥管理装置,其可以是一个台式机、便携式电脑、网络服务器、移动手机、平板电脑、无线终端、嵌入式设备、芯片系统等,本申请实施例对此不作具体限定。本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。
可选的,本申请实施例中的密钥管理网元、密钥分量管理网元的相关功能可以由一个设备实现,也可以由多个设备共同实现,还可以是由一个设备内的一个或多个功能模块实现,本申请实施例对此不作具体限定。可以理解的是,上述功能既可以是硬件设备中的网络元件,也可以是在专用硬件上运行的软件功能,或者是硬件与软件的结合,或者是平台(例如云平台)上实例化的虚拟化功能。
以密钥管理网元、密钥分量管理网元是由一个设备内的一个或多个功能模块实现为例,如图3所示,密钥管理网元、密钥分量管理网元可以部署在一个设备的应用程序(application,APP)之上,密钥管理网元、密钥分量管理网元的相关功能可以为APP平台上实例化的虚拟化功能。进一步的,图3所示的业务系统还可以包括数据库,该数据库可以包括多个数据库管理网元,如可以包括N个MySQL等。
在图3所示业务系统中,密钥管理网元可以称为平台类网元,密钥分量管理网元可以称为业务网元,如密钥分量管理网元可以为APP上的前台操作(frontend portal)网元、后台操作(backend portal)网元、文档服务(document service)网元、日志服务(logservice)网元、定时任务服务(task job service)网元、通知服务(notificationservice)网元中任一种或者多种业务网元。其中,前台操作网元可以用于对用户提供前台服务,供用户直接操作的Web网站页面。后台操作网元可以用于对管理员提供管理的Web网站页面。文档服务网元可以为提供文档服务的网元,实现文档存储、导出等功能。日志服务网元可以为提供日志服务的网元,实现审计日志收集等功能。定时任务服务网元可以为提供定时任务服务的网元,用于定时在后台执行某些操作等。通知服务网元可以为提供通知服务的网元,如负责给用户发送短信等。
下面结合图2所示业务系统,以图2所示业务系统包括N个密钥分量管理网元为例,对本申请实施例提供的密钥管理方法进行描述。需要说明的是,本申请的各实施例之间涉及的动作,术语等均可以相互参考。本申请的实施例中各个网元之间交互的消息名称或消息中的参数名称等只是一个示例,具体实现中也可以采用其他的名称,例如本申请实施例中的“生成(generate)”也可以理解为“合成”,本申请实施例中的“包括”也可以理解为“携带”等,本申请实施例中的“存储”也可以理解为“记录”或者“保存”等,在此统一说明,本申请实施例对此不作具体限定。
图4为本申请实施例提供的一种密钥管理方法的流程图,如图4所示,可以包括:
步骤401:N个密钥分量管理网元中的每一个密钥分量管理网元生成密钥分量的密文。
其中,N为大于2的整数,N可以根据需要预先配置,N个密钥分量管理网元可以为图2中的任意N个密钥分量管理网元。为了增加密钥分量的密文的安全性,执行步骤401的密钥分量管理网元越多,生成密钥分量的密文的网元越分散,获取生成第一密钥的密钥分量越困难,密钥分量的密文的安全性越高。本申请中,以N个密钥分量管理网元具备生成密钥分量的密文的功能,执行步骤401为例进行说明,一个密钥分量管理网元可以生成一个密钥分量的密文,也可以生成两个以及两个以上密钥分量的密文,不同密钥分量管理网元生成的密钥分量的密文可以相同或者不同,不予限制。本申请实施例以一个密钥分量管理网元生成一个密钥分量的密文为例进行说明。
示例性的,密钥分量管理网元可以采用下述方式生成密钥分量的密文:密钥分量管理网元生成密钥分量的明文,使用密钥管理网元的公钥对密钥分量的明文进行加密得到密钥分量的密文。如密钥分量管理网元可以将密钥管理网元的公钥以及密钥分量的明文作为输入参数输入到哈希算法得到密钥分量的密文。其中,哈希算法可以包括安全哈希算法(secure hash algorithm,SHA)256或者散列信息认证码(hash-based messageauthentication code,HMAC)算法等,不予限制。
其中,密钥分量的明文可以用于生成第一密钥,如根密钥。密钥分量的明文可以为32比特的十六进制数,密钥分量的明文的长度越长,利用密钥分量的明文生成的第一密钥越安全。密钥分量管理网元可以使用安全随机算法或者密钥派生算法生成密钥分量的明文。具体的,密钥分量管理网元生成密钥分量的明文的过程可参照现有技术,不予赘述。
其中,密钥管理网元的公钥与密钥管理网元的私钥对应,密钥管理网元的公钥与密钥管理网元的私钥是通过加密算法得到的一个密钥对,密钥管理网元的公钥是密钥对中公开的部分,密钥管理网元的私钥则是非公开的部分,是只有密钥管理网元知道的密钥。密钥管理网元的公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的密钥管理网元的私钥解密的数据。通过加密算法得到的密钥对能保证在世界范围内是独一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用密钥管理网元的公钥加密数据就必须用密钥管理网元的私钥解密,如果用密钥管理网元的私钥加密也必须用密钥管理网元的公钥解密,否则解密将不会成功。
执行步骤401之前,可以由密钥管理网元生成密钥管理网元的公钥与密钥管理网元的私钥,并将密钥管理网元的公钥预先配置给N个密钥分量管理网元。或者,可以由密钥分量管理网元向密钥管理网元发送请求消息,请求密钥管理网元的公钥,密钥管理网元响应于密钥分量管理网元发送的请求消息,将密钥管理网元的公钥发送给密钥分量管理网元。
进一步的,N个密钥分量管理网元中的任一密钥分量管理生成密钥分量的密文后,向密钥管理网元发送注册请求,该注册请求可以用于指示密钥分量管理网元存储有/生成有密码分量的密文。需要说明的是,除通过注册请求之外,密钥分量管理网元还可以通过其他新增消息或者现有消息将密钥分量管理网元存储有/生成有密码分量的密文通知给密钥管理网元,不予限制。
其中,注册请求可以携带有密钥分量管理网元的地址信息,也可以不携带密钥分量管理网元的地址信息。当注册请求不携带密钥分量管理网元的地址信息时,密钥分量管理网元可以通过密钥分量管理网元与密钥管理网元之间的传输隧道向密钥管理网元发送注册请求,其中,该传输隧道与密钥分量管理网元对应,根据该传输隧道的标识信息可以识别出密钥分量管理网元。
其中,本申请各实施例中,密钥分量管理网元的地址信息可以用于指示/标识密钥分量管理网元,密钥分量管理网元的地址信息可以为密钥分量管理网元的ID、密钥分量管理网元的统一资源定位符(uniform resource locator,URL)、密钥分量管理网元的文件传输协议(file transfer protocol,FTP)、密钥分量管理网元与密钥管理网元之间的传输隧道的标识信息中任一种地址信息,还可以为其他能够标识密钥分量管理网元的标识符。密钥分量管理网元的ID可以为密钥分量管理网元在业务系统中的编号或者索引(index)等。密钥分量管理网元的URL/FTP与密钥分量管理网元的ID之间存在对应关系。
例如,假设存在四个密钥分量管理网元:密钥分量管理网元1~密钥分量管理网元4,可以采用001~004来对应标识四个密钥分量管理网元,比如001标识密钥分量管理网元1,002标识密钥分量管理网元2,003标识密钥管理网元3,004标识密钥分量管理网元4;或者,采用下述URL:http://192.168.1.1/1/part1.cred、http://192.168.1.1/2/part2.cred、http://192.168.1.1/3/part3.cred、http://192.168.1.1/4/part4.cred来对应标识密钥分量管理网元1~密钥分量管理网元4,或者,采用下述FTP:ftp://192.168.1.1/1/part1.cred、ftp://192.168.1.1/2/part2.cred、ftp://192.168.1.1/3/part3.cred、ftp://192.168.1.1/4/part4.cred来对应标识密钥分量管理网元1~密钥分量管理网元4。
步骤402:密钥管理网元记录N个密文存储地址。
其中,N个密文存储地址与生成密钥分量的密文的N个密钥分量管理网元对应,每一个密文存储地址用于从一个密钥分量管理网元获取一个密钥分量的密文。
一种示例中,密文存储地址为密钥分量管理网元的地址信息。例如,假设存在四个密钥分量管理网元:密钥分量管理网元1~密钥分量管理网元4,这四个密钥分量管理网元的ID分别为001、002、003、004,则密钥管理网元可以记录4个密文存储地址,这4个密文存储地址可以为{001、002、003、004}。
又一种示例中,密文存储地址可以为N个密钥分量的密文的序号,N个密钥分量的密文的序号与N个密钥分量管理网元的地址信息对应存储起来,如可以以列表或者数组形式将N个密钥分量的密文的序号与N个密钥分量管理网元的地址信息可以对应存储起来。例如,假设存在四个密钥分量管理网元:密钥分量管理网元1~密钥分量管理网元4,这四个密钥分量管理网元的ID分别为001、002、003、004,密钥分量管理网元1~密钥分量管理网元4生成的密钥分量的密文的序号分别为1、2、3、4,则密钥管理网元可以将序号:1、2、3、4与密钥分量管理网元的ID:001、002、003、004之间的对应关系记录在下述表一中,也可以以数组形式记录:{序号1、001}、{序号2、002}、{序号3、003}、{序号4、004}。
表一
序号 | 密钥分量管理网元的ID |
1 | 001 |
2 | 002 |
3 | 003 |
4 | 004 |
需要说明的是,本申请中,N个密钥分量的密文的序号可以是从小到大顺序编号或者从大到小顺序编号,也可以是随机编号,不予限制。不同密钥分量的密文的序号是不同的。
一种示例中,密钥分量管理网元的地址信息携带在注册请求中,密钥管理网元可以接收N个密钥分量管理网元发送的注册请求,响应于N个密钥分量管理网元发送的注册请求,从注册请求中获取密钥分量管理网元的地址信息,将N个密钥分量管理网元的地址信息作为N个密文存储地址存储起来/记录起来;或者,对N个密钥分量的密文进行编号,将密钥分量的密文的序号作为N个密文存储地址,将N个密钥分量的密文的序号与N个密钥分量管理网元的地址信息对应存储/记录起来。
又一种示例中,密钥分量管理网元的地址信息未携带在注册请求中,密钥管理网元可以通过其与N个密钥分量管理网元之间的传输隧道接收N个密钥分量管理网元发送的注册请求,响应于N个密钥分量管理网元发送的注册请求,将N个传输隧道的标识信息作为N个密文存储地址存储起来/记录起来;或者,对N个密钥分量的密文进行编号,将密钥分量的密文的序号作为N个密文存储地址,将N个密钥分量的密文的序号与N个传输隧道的标识信息对应存储/记录起来。
步骤403:密钥管理网元响应于密钥操作请求,在N个密文存储地址中选择M个密文存储地址。
其中,M可以为大于2且小于等于N的整数。M的具体取值可以预先设置给密钥管理网元。比如在密钥管理网元运行前,由管理员通过图像化界面或者配置文件等方式将M的取值配置给密钥管理网元,配置完成后,M的取值会存储在数据库或者密钥管理网元上,供密钥管理网元在运行中使用。需要说明的是,M的取值可以动态调整,如周期性地更新M的取值等。
其中,密钥操作请求可以用于请求密钥管理网元执行相应的密钥操作,密钥操作可以包括加密、解密、更新密钥、更新密文等任一操作,密钥操作请求可以包括加密请求、更新密文请求、更新密钥请求、更新密文请求等任一请求。加密请求可以用于请求对业务数据的原文进行加密,更新密文请求可以用于请求对业务数据的密文进行解密,更新密钥请求可以用于请求对用于加密业务数据的明文的密钥进行更新,更新密文请求可以用于请求对密文进行更新等。业务数据可以指需要加密存储的数据,可以包括用户密钥、交易数据、用户敏感数据等等。例如,用户使用前台服务重置用户密钥,用户输入旧密钥和新密钥后,前台用户操作网元可以向密钥管理网元发送携带旧密钥的密文的更新密文请求,请求密钥管理网元进行解密,得到旧密钥的原文,如果旧密钥原文与用户输入一致,前台用户操作网元可以向密钥管理网元发送携带新密钥的原文的加密请求,请求密钥管理网元进行加密,得到新密钥的密文并存储。
其中,密钥管理网元响应于密钥操作请求,在N个密文存储地址中选择M个密文存储地址可以指密钥操作请求作为触发条件,密钥管理网元接收到密钥操作请求后,触发密钥管理网元在N个密文存储地址中随机选择M个密文存储地址,或者顺序选择M个密文存储地址等。例如,以M为3为例,密钥管理网元接收到密钥操作请求后,可以响应于密钥操作请求从上述表一中选择3个密文存储地址:序号1、序号2、序号3。
步骤404:密钥管理网元根据M个密文存储地址获取相应的M个密钥分量的密文,使用密钥管理网元的私钥分别对M个密钥分量的密文进行解密,得到M个密钥分量的明文。
示例性的,密钥管理网元可以根据M个密文存储地址获取M个密钥分量管理网元的地址信息,根据M个密钥分量管理网元的地址信息,向M个密钥分量管理网元发送获取请求,请求获取密钥分量的密文,M个密钥分量管理网元中每一个密钥分量管理网元接收到获取请求后,向密钥管理网元发送密钥分量的密文,密钥管理网元接收M个密钥分量管理网元返回的M个密钥分量的密文。
其中,密钥管理网元根据M个密文存储地址获取M个密钥分量管理网元的地址信息可以包括:密文存储地址为密钥分量管理网元的地址信息,密钥管理网元直接将选择的M个密文存储地址作为M个密钥分量管理网元的地址信息;或者,密文存储地址为密钥分量的密文的序号,密钥管理网元将选择的M个序号对应的M个地址信息作为M个密钥分量管理网元的地址信息。
其中,密钥管理网元的私钥如步骤401中所述,密钥管理网元使用密钥管理网元的私钥对密钥分量的密文进行解密得到密钥分量的明文可以包括:密钥分量管理网元可以将密钥管理网元的私钥以及密钥分量的密文作为输入参数输入到哈希算法(如SHA256或者HMAC算法)得到密钥分量的明文。
步骤405:密钥管理网元基于M个密钥分量的明文生成第一密钥,使用第一密钥以及第一密钥的ID执行相应的密钥操作。
其中,第一密钥可以为上述根密钥。第一密钥的ID可以唯一标识该第一密钥,第一密钥的ID可以由密钥管理网元配置,例如第一密钥的ID可以为1001。
示例性的,密钥管理网元可以使用下述任一种算法对M个密钥分量的明文进行计算得到第一密钥:PBKDF2、SHA256、HMAC算法。如以HMAC算法为例,密钥管理网元可以将M个密钥分量的明文作为输入参数输入到HMAC算法得到第一密钥。
示例性的,密钥管理网元使用第一密钥以及第一密钥的ID执行相应的密钥操作可以包括:密钥管理网元生成一个固定长度的安全随机数,将该安全随机数与第一密钥的ID拼接在一起得到一个初始向量(initialization vector,IV),根据该初始向量、第一密钥执行相应的密钥操作。如若密钥操作为加密,则根据该初始向量、第一密钥对第一原文进行加密处理得到第一密文。若密钥操作为解密,则根据该初始向量、第一密钥对第一密文进行解密处理得到第一原文。若密钥操作为更新密钥或者更新密文,则更新第一密钥得到第二密钥,先根据该初始向量、第一密钥对第一密文进行解密处理得到第一原文,再根据第二密钥的ID生成新的IV,根据新的IV、第二密钥对第一原文进行加密得到第二密文。
其中,本申请中安全随机数的长度可以预先配置好。将安全随机数与第一密钥的ID拼接在一起可以包括:将第一密钥的ID排列在安全随机数之后。如假设安全随机数为234653465534542,第一密钥的ID为1001,则将该安全随机数与第一密钥的ID拼接在一起得到的初始向量可以为:2346534655345421001。
其中,本申请所述的第一原文可以为KEK的原文,也可以为WK的原文或者业务数据的原文等等。第一密文可以为KEK的密文、也可以为WK的密文或者业务数据的密文,被第一密文加密得到的密文中可以包括第一密钥的ID。其中,KEK、WK以及业务数据的相关描述可参照上述,不予赘述。
基于图4所示方法,可以将密钥分量的密文分布式存储在密钥分量管理网元上,并触发密钥管理网元将存储密钥分量的密文对应的密文存储地址保存在密钥管理网元上,以便在接收到密钥操作请求后,密钥管理网元从已存在密文存储地址中选择密文存储地址,根据选择的密钥存储地址获取M个密钥分量的密文,对M个密钥分量的密文进行解密得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥执行相应的密钥操作。由于密钥分量管理网元较多,且密钥分量以密文的形式分布式存在较多的密钥分量管理网元,使得攻击者从数量较多的密钥分量管理网元获取密钥分量的难度较大,保证密钥分量存储的安全性,进而保证密钥分量所生成的第一密钥的安全性。同时,不需要量子密钥分发设备、加密机等专业硬件设备来保证密钥分量的存储安全,降低硬件资源需求。
进一步的,图4所示方法中,为了便于密钥管理网元追溯回第一密钥,根据第一密钥执行相应的密钥操作,图4所示方法还可以包括:密钥管理网元存储M个密文存储地址与第一密钥的ID之间的对应关系,以便密钥管理网元根据该对应关系,找到用于生成第一密钥的M个密钥分量所对应的M个密文存储地址,根据M个密文存储地址生成第一密钥,根据第一密钥执行加密/解密操作。
示例性的,密钥管理网元存储M个密文存储地址与第一密钥的ID之间的对应关系可以包括:密钥管理网元将M个密文存储地址记录在某个文件/数组中,该文件/数组与第一密钥的ID对应;或者,在有且仅有一个第一密钥的情况下,密钥管理网元将N个密文存储地址中被选中的M个密文存储地址进行标记,如M个密文存储地址中的一个密文存储地址对应一个第一标志位,可以利用第一标志位对应的密文存储地址获取到用于生成第一密钥的密钥分量,对应有第一标志位的M个密文存储地址默认与第一密钥的ID对应。
相对应的,N个密文存储地址中未被选中的密文存储地址也可以进行标记,如未被选中的密文存储地址可以对应第二标志位,利用第二标志位对应的密文存储地址不能获取到用于生成第一密钥的密钥分量。或者,对N个密文存储地址中未被选中的密文存储地址不进行标记,不予限制。
其中,第一标志位、第二标志位可以为二进制比特数“0”、“1”或者二进制比特数“1”、“0”,还可以为其他符号或者数字等,如:可以用字符串“true”表示其对应的密文存储地址能够用来找到生成第一密钥的密钥分量,用字符串“false”表示其对应的密文存储地址未被选中来获取密钥分量。例如,如下表二所述,存在4个密文存储地址,其中,序号1、序号2、序号3对应的密文存储地址被选中,被标记为“true”,序号4对应的密文存储地址未被选中,被标记为“false”。
表二
序号 | 密钥分量管理网元的ID | 标志位 |
1 | 001 | true |
2 | 002 | true |
3 | 003 | true |
4 | 004 | false |
进一步的,图4所示方法中,为了保证业务系统中密钥的持续有效性和安全性,需要定期更新第一密钥或者根据用户需求更新第一密钥,以保证第一密钥的时效性,防止第一密钥被攻击,保证第一密钥以及第一密钥加密的密文的安全性。具体的,该方法可以包括:
密钥管理网元确定更新第一密钥,从N个密文存储地址中选择K个密文存储地址;根据K个密文存储地址获取相应的K个密钥分量的密文,使用密钥管理网元的私钥分别对K个密钥分量的密文进行解密,得到K个密钥分量的明文,基于K个密钥分量的明文生成第二密钥;使用第二密钥更新第一密文。
其中,密钥管理网元的私钥的相关描述如步骤401中所述,密钥管理网元根据K个密文存储地址获取相应的K个密钥分量的密文,以及基于K密钥分量的明文生成第二密钥的过程可参照上述密钥管理网元根据N个密文存储地址获取相应的N个密钥分量的密文,以及基于N密钥分量的明文生成第一密钥的过程,不予赘述。
其中,K可以为大于2且小于等于N的整数,K个密钥分量的密文与M个密钥分量的密文不同,如K与M不同,即用于生成第一密钥的密钥分量的数量与用于生成第二密钥的密钥分量的数量不同;或者,K与M相同或不同,K个密钥分量的密文的密文存储地址与M个密钥分量的密文的密文存储地址完全不同;或者,K与M相同或不同,K个密钥分量的密文的密文存储地址与M个密钥分量的密文的密文存储地址部分或全部相同,同一密文存储地址对应的密钥分量的密文不同。
示例性的,若满足下述条件(1)~条件(3)中任一条件,则确定更新第一密钥:
条件(1)、预设更新周期到来。
其中,预设更新周期可以根据需要设置,不予限制。该预设更新周期可以指更新第一密钥的时间周期,到达该预设更新周期就更新第一密钥。
条件(2)、用于生成第一密钥的M个密钥分量中的密钥分量发生更新,如M个密钥分量中的任一密钥分量更新。
例如,M个密文存储地址对应的M个密钥分量管理网元中某个密钥分量管理网元,如第一密钥分量管理网元生成新的密钥分量,并利用密钥管理网元的公钥对该新的密钥分量进行加密得到新的密钥分量的密文,该第一密钥分量管理网元向密钥管理网元指示信息,该指示信息可以用于指示第一密钥分量管理网元生成新的密钥分量的密文,密钥管理网元接收到该指示信息,获知生成第一密钥的原有密钥分量发生变化,确定更新第一密钥。
条件(3)、密钥管理网元接收到更新第一密钥加密的密文的请求,如接收到更新第一密文的请求。第一密文可以指利用第一密钥加密得到的一类密文。
例如,假设第一密文为客户身份证信息的密文,当管理客户身份证信息的业务网元需要重新加密客户身份证信息时,该业务网元可以向密钥管理网元发送更新请求,请求更新客户身份证信息的密文,密钥管理网元接收到该更新请求,确定更新第一密钥,采用新的密钥对客户身份证信息进行加密。
示例性的,密钥管理网元使用第二密钥更新第一密文可以包括:根据第一密文包括的第一密钥的ID、以及M个密文存储地址与第一密钥的ID之间的对应关系,确定M个密文存储地址,根据M个密文存储地址获取相应的M个密钥分量的密文,使用密钥管理网元的私钥分别对M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥对第一密文执行解密操作得到第一明文;使用第二密钥、第二密钥的ID对第一明文执行加密操作得到第二密文。
其中,第二密钥的ID可以由密钥管理网元自行分配,第二密钥的ID可以与第一密钥的ID相同或者不同,不予限制。
进一步的,为了便于密钥管理网元追溯回第二密钥,根据第二密钥执行相应的密钥操作,密钥管理网元可以存储K个密文存储地址与第二密钥的ID之间的对应关系。
其中,为了区分具体采用K个密文存储地址或者M个密文存储地址寻址到用于生成密钥的密钥分量,密钥管理网元可以将K个密文存储地址与第二密钥的ID之间的对应关系的状态设置为有效的(effective)或可用的,将M个密文存储地址与第一密钥的ID之间的对应关系设置为历史的(history)或过时的。后续,当密钥管理网元发现M个密文存储地址与第一密钥的ID之间的对应关系处于history状态时,密钥管理网元可以使用第一密钥对利用第一密钥加密过的其他密文执行解密操作得到明文,并找到状态为effective的K个密文存储地址与第二密钥的ID之间的对应关系,根据K个密文存储地址与第一密钥的ID之间的对应关系进一步获取K个密钥分量的明文,基于K个密钥分量的明文生成第二密钥,使用第二密钥对解密得到的明文执行加密操作,实现更新密文的目的。
进一步的,图4所示方法中,为了降低存储压力,图4所示方法还可以包括:当所有第一密文被更新后,将M个密文存储地址与第一密钥的ID之间的对应关系更新为K个密文存储地址与第二密钥的ID之间的对应关系,或者,删除M个密文存储地址与第一密钥的ID之间的对应关系,仅保存K个密文存储地址与第二密钥的ID之间的对应关系。
下面结合图3所示业务系统,以第一密钥为第一根密钥,密钥管理网元管理图1所示的三层密钥体系,密钥分量管理网元为图3中的业务网元为例,对密钥管理网元利用密钥分量生成第一根密钥、利用第一根密钥加密KEK的原文、利用KEK的原文加密WK的原文以及利用WK的原文加密业务数据的过程进行描述:
图5为本申请实施例提供的一种密钥管理方法的流程图,如图5所示,可以包括步骤501~步骤516,其中,步骤501~步骤503对应图4所示方法中业务网元生成密钥分量的密文、密钥管理网元获知业务网元生成有密钥分量的密文,记录密文存储地址,并响应于密钥操作请求,从记录的密文存储地址中选择出M个密文存储地址的过程。步骤505对应图4所示方法中根据选择出的M个密文存储地址进一步的获取M个密钥分量的明文,根据M个密文分量的明文生成第一根密钥的过程。
步骤501:图3中各个业务网元生成密钥分量的密文,各个业务网元分别向密钥管理网元发送注册请求。
示例性的,密钥管理网元将密钥管理网元的公钥预配置给各个业务网元,各业务网元生成一个密钥分量,利用密钥管理分量的公钥生成该密钥分量的密文,业务网元向密钥管理网元发送携带业务网元的地址信息的注册请求,注册过程业务网元不直接提供密钥分量的密文给密钥管理网元,而是通知密钥管理网元该业务网元生成有/持有密钥分量的密文。
步骤502:密钥管理网元响应于各个业务网元发送的注册请求,记录密文存储地址,如将密文存储地址记录在一个密钥分量记录表中。
其中,密文存储地址对应上述各个业务网元。具体的,密钥管理网元记录密文存储地址的方式可参照步骤402中所述,不予赘述。
步骤503:密钥管理网元响应于密钥操作请求,从记录的密文存储地址中选取M个密文存储地址,并记录选取的M个密文存储地址。
其中,密钥操作请求的相关描述可参照图4中所述,不予赘述。
示例性的,密钥管理网元可以随机从记录的密文存储地址中选择M个密文存储地址,将选中的M个密文存储地址单独记录在一个文件中,或者,将上述步骤502所述的密钥分量记录表中被选中的M个密文存储地址对应标志为true。
步骤504:密钥管理网元生成KEK的原文、WK的原文。
示例性的,密钥管理网元可以通过密钥派生算法,如PBKDF2,基于安全随机数生成多个KEK的原文、多个WK的原文。具体的,该方式可参照现有技术,不予赘述。
其中,本申请中,一个KEK对应一个加密场景,一个WK对应一个加密场景,密钥管理网元可以根据加密场景管理WK、KEK,比如不同类型业务数据的加密是不同的加密场景,使用不同的WK;密钥管理网元可以将WK分成不同类,将加密不同类的WK也作为不同的加密场景,使用不同的KEK。密钥管理网元分配业务系统内唯一的密钥特征码来标识加密场景。密钥管理网元针对每个加密场景生成一个KEK或者WK,为每个密钥分配业务系统内唯一的密钥ID。
例如,如表三所示,不同加密场景对应不同密钥特征码。密钥特征码WK_10001对应的加密场景是Password加密存储,即业务系统在加密用户的Password后将的密文存储到数据库的场景,使用这一个密钥特征码对应的WK;而WK_10002则是针对业务系统对重点交易数据进行签名防篡改的场景使用,WK_10003则是针对业务系统对MAC签名的场景使用,WK_10004则是针对业务系统对用户敏感数据加密存储的场景使用,这样就定义了不同加密场景下使用不同类型的WK对业务数据进行加密。类似的,密钥特征码KEK_10001是针对业务系统对签名类WK加密的场景使用,那么WK_10002类型的交易数据签名业务的WK就可以用KEK_10001类型的KEK加密保护,而密钥特征码KEK_10002是针对存储类WK加密的场景使用,那么WK_10001类型的WK就可以用KEK_10001类型的KEK加密,这样就定义了不同加密场景下使用不同类型的KEK对WK进行加密。
表三
密钥特征码 | 密钥级别 | 加密场景 |
WK_10001 | 工作密钥 | Password加密存储(存储类) |
WK_10002 | 工作密钥 | 交易数据签名存储(签名类) |
WK_10003 | 工作密钥 | MAC签名(签名类) |
WK_10004 | 工作密钥 | 用户敏感数据加密存储(存储类) |
KEK_10001 | 密钥加密密钥 | 签名类WK加密 |
KEK_10002 | 密钥加密密钥 | 存储类WK加密 |
步骤505:密钥管理网元根据M个密文存储地址获取M个密钥分量的密文,利用密钥管理网元的私钥分别对M个密钥分量的密文进行解密得到M个密钥分量的密文,根据M个密钥分量的明文生成第一根密钥。
具体的,步骤505所示过程可参照图4中所述,不予赘述。
步骤506:密钥管理网元使用第一根密钥加密KEK的原文得到KEK的密文。
示例性的,密钥管理网元可以基于哈希算法对第一根密钥以及KEK的原文进行加密计算得到KEK的密文。
进一步的,密钥管理网元可以记录所有KEK的相关信息,一个KEK的相关信息可以包括该KEK的密钥ID、KEK对应的密钥特征码、KEK的密文、状态:effective等相关信息。例如,密钥管理网元可以将密钥ID为10001的KEK以及密钥ID为10002的KEK的相关信息记录在如下表四所示的密钥记录表中。其中,KEK的密钥ID可以由密钥管理网元自行分配,不同KEK对应的密钥ID不同。
表四
步骤507:密钥管理网元根据KEK的原文以及KEK的密钥ID对WK的原文执行加密操作,得到WK的密文。
示例性的,密钥管理网元可以生成一个固定长度的安全随机数,将该安全随机数拼接上KEK的密钥ID作为IV1,根据IV1、KEK的原文对WK的原文加密得到WK的密文。
其中,WK的密文包括IV1,即从WK的密文中可以提取出加密WK的原文所用的IV1。
例如,以用KEK_10002加密WK_10004为例,密钥管理网元生成安全随机数“234653465534542”,将KEK的密钥ID拼接上该安全随机数得到IV1为“23465346553454210002”,利用KEK的密钥ID为“10002”并拼接在IV1中,用IV1、KEK的原文加密WK的原文后得到WK的密文为:“23465346553454210002HSHGHrete45HFDGDSFggygertGDSFtrewtjjKkjhKJKarawWQsdfgerGewrtJDwW”。
进一步的,密钥管理网元可以记录所有WK的相关信息,一个WK的相关信息可以包括该WK的密钥ID、WK对应的密钥特征码、WK的密文、状态:effective等相关信息。例如,密钥管理网元可以将密钥ID为10004的WK的相关信息记录在密钥记录表中,如下表五所示。其中,WK的密钥ID可以由密钥管理网元自行分配,不同WK对应的密钥ID不同。此外,需要说明的是,本申请中,KEK的相关信息以及WK的相关信息可以如下表五所示,记录在同一个密钥记录表中,也可以记录在不同密钥记录表中,不予限制。
表五
由上可知,上述表五中密钥ID为10004的WK的密文由下述表六中的安全随机数、KEK的密钥ID、KEK的IV1三部分组成,其中IV1可以配置为拼接在“加密WK的原文得到的密文”的左侧或者右侧,不予限制。本申请实施例中配置为拼接在左侧。
表六
以上步骤501~步骤507为生成第一根密钥、KEK的密文、WK的密文的过程,进一步的,可以根据WK的原文对业务数据进行加密得到业务数据的密文。下面通过对客户身份证件信息加密的例子来说明业务数据加密过程:
步骤508:业务网元向密钥管理网元发送加密请求,请求加密业务数据。
其中,业务数据可以为用户敏感数据,如可以为客户身份证件信息。加密请求中可以携带业务数据的原文以及加密该业务数据时的加密场景所对应的密钥特征码。
例如,客户身份证件信息属于用户敏感数据,业务网元在存储客户身份证件信息时需要先加密再存储,同时,身份证件信息加密存储属于敏感数据加密存储场景,业务网元预置的加密身份证件信息所使用的密钥特征码为WK_10004。因此,业务网元在请求对客户身份证件信息进行加密时,可以将客户身份证信息的原文(ID123456)、对应的密钥特征码WK_10004携带在加密请求中发送给密钥管理网元。
步骤509:密钥管理网元接收加密请求,根据加密请求中携带的密钥特征码,确定状态为effective的、与该密钥特征码对应的WK的相关记录:WK的密钥ID以及WK的密文。
例如,密钥管理网元可以从加密请求中得到密钥特征码WK_10004,以密钥特征码WK_10004为索引查询上述表五所示的密钥记录表,从密钥记录表中查找得到密钥特征码为WK_10004、状态为effective的WK的相关记录:WK的密钥ID为10004、WK的密文为“23465346553454210002HSHGHrete45HFDGDSFggygertGDSFtrewtjjKkjhKJKarawWQsdfgerGewrtJDwW”。
步骤510:密钥管理网元根据WK的密文得到IV1,根据IV1得到加密WK所用的KEK的密钥ID。
示例性的,密钥管理网元可以根据WK的密文,根据IV的拼接位置配置从WK的密文左侧或者右侧截取出加密该WK时所用到的IV1,以及拼接在IV1中的KEK的密钥ID。例如,假设IV1为“23465346553454210002”,加密该WK所用KEK的密钥ID为“10002”。
步骤511:密钥管理网元根据KEK的密钥ID,从密钥记录表中找到KEK的相关记录:KEK的密文。
示例性的,密钥管理网元可以以KEK的密钥ID为索引,从表五所示的密钥记录表中查找得到密钥ID为10002的KEK的密钥记录,从KEK的密钥记录中得到KEK的密文。
步骤512:密钥管理网元根据记录的M个密文存储地址获取M个密钥分量的密文,利用密钥管理网元的私钥对M个密钥分量的密文解密得到M个密钥分量的明文,根据M个密钥分量的明文生成第一根密钥,根据第一根密钥以及KEK的密文得到KEK的原文。
步骤513:密钥管理网元根据KEK的原文、步骤509中的WK的密文得到WK的原文。
步骤514:密钥管理网元根据WK的密钥ID得到IV2,根据IV2以及WK的原文对业务数据的原文执行加密操作得到业务数据的密文。
示例性的,密钥管理网元可以使用安全随机数生成器生成16字节的安全随机数534534563247899,将该安全随机数拼接密钥ID(10004)得到IV2:53453456324789910004。假定预先配置了用户敏感数据的加密算法为高级加密标准(advanced encryptionstandard,AES)256算法,客户身份证件信息的原文为ID123456,密钥管理网元对客户身份证件信息进行加密,得到的密文:“HGASDGrwetarw23423hfdsGSDFHsdfsdSHAFSDTYhjgdSGDHGfg DFGETrfeJgRE”;将IV2与的密文进行左端拼接后得到业务数据的密文:53453456324789910004HGASDGrwetarw23423hfdsGSDFHsdfsdSHAFSDTYhjgdSGDHGfgDF GETrfeJgREt”。
步骤515:密钥管理网元向业务网元返回业务数据的密文。
步骤516:业务网元接收业务数据的密文,保存业务数据的密文。
示例性的,业务网元可以业务数据的密文与业务数据的ID对应保存起来,业务数据的ID可以由业务网元自行分配,不予限制。
例如,业务数据为客户身份证件信息,业务网元可以将客户身份证件信息的密文以及客户ID对应存储到下表七所示的数据表中。
表七
基于图5所示方法,由业务网元生成和维护密钥分量的密文,密钥管理网元自身不保存密钥分量的密文,只记录密钥分量的密文和业务网元的对应关系,从大规模的业务网元中随机选取部分业务网元生成的密钥分量的密文合成根密钥,并记录根密钥使用的密钥分量的密文的密文存储地址供后续合成根密钥时使用,借助大规模集群系统抗攻击的优势,保证密钥分量存储的安全性。同时,不需要量子密钥分发设备、加密机等专业硬件设备来保证密钥分量存储安全,在保证根密钥安全的基础上降低了硬件资源需求,节约成本。
下面结合图3所示系统,以第一密钥为第一根密钥,第二密钥为第二根密钥,密钥管理网元管理图1的三层密钥体系,密钥分量管理网元为图3中的业务网元为例,对根密钥、KEK更新、WK更新与业务数据的密文更新的过程进行描述。
图6为本申请实施例提供的又一种密钥管理方法的流程图,如图6所示,可以包括步骤601~步骤613。
步骤601:密钥管理网元更新第一根密钥,得到更新后的第二根密钥。
示例性的,密钥管理网元可以在条件(1)~条件(3)中任一条件满足的情况下更新第一根密钥。其中,条件(1)~条件(3)如图4所示方法中所述,不予赘述。
具体的,密钥管理网元可以从记录的密文存储地址中选择K个密文存储地址,根据K个密文存储地址获取K个密钥分量的密文,利用密钥管理网元的私钥分别对M个密钥分量的密文进行解密得到M个密钥分量的密文,根据M个密钥分量的明文生成第二根密钥。该过程的详细描述可参照图4所示方法中所述,不予赘述。
进一步的,密钥管理网元记录选取的K个密文存储地址。
步骤602:密钥管理网元获取需要更新密文的第一KEK的原文。
其中,第一KEK的原文可以为图5所示步骤504中生成的部分或者全部KEK的原文。例如,第一KEK可以对密钥特征码为KEK_10010的KEK。
具体的,可以由密钥管理网元自行确定哪些KEK的密文需要更新,比如可以确定更新某些加密场景对应的KEK的密文。
步骤603:密钥管理网元利用第二根密钥对第一KEK的原文加密得到第一KEK的密文。
进一步的,密钥管理网元可以记录第一KEK的相关信息,第一KEK的相关信息可以包括第一KEK的密钥ID、第一KEK的密钥特征码、第一KEK的密文、状态:effective等相关信息。例如,密钥管理网元可以为第一KEK分配一个密钥ID:10003,将密钥ID为10003的第一KEK的相关信息记录在如下表八所示的密钥记录表中。
进一步的,密钥管理网元以第一KEK的密钥特征码为索引,查找密钥记录表中第一KEK的密钥特征码所对应的、状态为effective的KEK的相关记录,将该相关记录中的状态更改为history,即将第一KEK的原有密文标记为是过时的、旧的密文。例如,如下表八所示,将密钥ID为10002的相关记录中的状态更改为history。
表八
步骤604:密钥管理网元确定需要更新密文的第一WK。
其中,第一WK的原文可以为图5所示步骤504中生成的部分或者全部WK的原文。例如,第一WK可以对密钥特征码为WK_10004的WK。
具体的,可以由密钥管理网元自行确定哪些WK的密文需要更新,比如可以确定更新某些加密场景对应的WK的密文。
步骤605:密钥管理网元利用KEK的原文以及KEK的密钥ID,对第一WK的原文进行加密得到第一WK的密文。
具体的,密钥管理网元利用KEK的原文以及KEK的密钥ID,对第一WK的原文进行加密得到第一WK的密文的执行过程可参照图5中所述,不予赘述。
需要说明的是,若密钥记录表中存在两个密钥特征码相同的KEK的相关记录,密钥管理网元可以用状态为effective所对应的KEK的密钥ID对第一WK的原文进行加密。
进一步的,密钥管理网元可以记录第一WK的相关信息,第一WK的相关信息可以包括第一WK的密钥ID、第一WK的密钥特征码、第一WK的密文、状态:effective等相关信息。例如,密钥管理网元可以为第一WK分配一个密钥ID:10005,将密钥ID为10005的第一WK的相关信息记录在如下表八所示的密钥记录表中。
进一步的,密钥管理网元以第一WK的密钥特征码为索引,查找密钥记录表中第一WK的密钥特征码所对应的、状态为effective的WK的相关记录,将该相关记录中的状态更改为history,即将第一WK的原有密文标记为是过时的、旧的密文。例如,如下表九所示,将密钥ID为10004的相关记录中的状态更改为history。
表九
以上步骤601~步骤605为更新根密钥、更新KEK的密文、更新WK的密文的过程,进一步的,可以根据更新密文后的WK的原文对业务数据重新进行加密来更新业务数据的密文。下面通过对客户身份证件信息重新加密的例子来说明更新业务数据的密文的过程:
步骤606:业务网元发送更新密文请求,请求更新业务数据的密文。
其中,业务数据可以为用户敏感数据,如可以为客户身份证件信息。更新密文请求中可以携带业务数据的密文。
例如,客户身份证件信息属于用户敏感数据,业务网元需要展示业务数据的明文时,业务网关根据客户ID从上述表七所示的数据库中查找得到相应的业务数据的密文:53453456324789910004HGASDGrwetarw23423hfdsGSDFHsdfsdSHAFSDTYhjgdSGDHGfgDFGETrfeJgREt,将业务数据的密文携带在更新密文请求中发送给密钥管理网元,请求密钥管理网元解密业务数据的密文。
步骤607:密钥管理网元接收更新密文请求,根据更新密文请求中携带的业务数据的密文得到IV2,根据IV2得到加密业务数据所用的WK的密钥ID。
示例性的,密钥管理网元可以根据IV的拼接位置配置,从业务数据的密文左侧或者右侧截取到IV2,从IV2中截取出加密时所用WK的密钥ID,如IV2为“53453456324789910004”,从IV2中截取出加密时所用WK的密钥ID为“10004”。
步骤608:密钥管理网元根据WK的密钥ID,确定WK的密钥ID对应的WK的相关信息,如WK的密文、WK的密钥特征码。
示例性的,密钥管理网元以WK的密钥ID:10004为索引查询上述表九所示的密钥记录表,从密钥记录表中查找得到WK的密钥ID为10004的WK的相关记录:密钥特征码WK_10004、WK的密文为“23465346553454210002HSHGHrete45HFDGDSFggygertGDSF trewtjjKkjhKJKarawWQsdfgerGewrtJDwW”、状态为history。
步骤609:密钥管理网元根据WK的密文得到IV1,根据IV1得到加密WK所用的KEK的密钥ID,根据KEK的密钥ID从密钥记录表中找到KEK的相关记录:KEK的密文,利用第一根密钥对KEK的密文进行解密得到KEK的原文,利用KEK的原文以及KEK的密钥ID对WK的密文进行解密,得到WK的原文。
例如,WK的密文由KEK加密,密钥管理网元可以从WK的密文中截取出加密该WK时所使用的IV1以及KEK的密钥ID,如若得到IV1为“23465346553454210002”,则加密该WK所用KEK的密钥ID为“10002”;根据KEK的密钥ID“10002”获取到KEK的密文,密钥管理网元根据M个密钥分量的密文的序号记录获取M个密钥分量的明文,合成第一根密钥,根据第一根密钥、KEK的密文得到KEK的原文;根据KEK的原文、IV1、WK的密文,得到WK的原文。
步骤610:密钥管理网元根据WK的原文、IV2对业务数据的密文进行解密得到业务数据的原文。
步骤611:密钥管理网元以步骤607中确定出的密钥特征码为索引,查询密钥记录表,找到该密钥特征码对应的、状态为effective的WK的相关记录,即更新密文后的WK(如WK_e)的相关记录,根据更新密文后的WK的相关记录中的密钥ID生成IV3,对业务数据的原文进行加密得到业务数据的新的密文:业务数据的密文_e。
例如,密钥管理网元确定步骤607中确定出的密钥特征码为WK_10004,根据密钥特征码WK_10004从表九中确定状态为effective的WK_e的相关信息,根据WK_e的密钥ID10005得到IV3,根据IV3、WK_e的原文(即密钥特征码为WK_10004的WK的原文)对业务数据的原文进行加密得到业务数据的新的密文:业务数据的密文_e。
步骤612:密钥管理网元向业务网元返回业务数据的密文_e;
步骤613:业务网元接收业务数据的密文_e,进行业务数据的密文更新,如用业务数据的密文_e替换业务数据的原有密文。
基于图6所示方法,密钥管理网元通过重新选取根密钥分量,记录重新选择的根密钥分量的密文的序号来实现根密钥更新;在密钥记录表中分别保存更新前、后的KEK的密文记录/WK密钥记录,通过状态和密钥ID进行区分。密钥管理网元加密时在WK密钥的密文/业务数据的密文中携带WK/业务数据加密使用的KEK/WK密钥ID,解密时基于密钥的密文得到密钥ID,根据密钥ID从密钥记录表中确定密钥记录并进行解密。同时,密钥管理网元在确定WK密钥的密文/业务数据的密文中携带的KEK/WK密钥ID的状态为history时,确定对应的状态为effective的KEK/WK密钥记录,根据状态为effective的KEK/WK密钥记录生成新的WK密钥的密文/业务数据的密文,更新对应的WK密钥的密文/业务数据的密文。在更新KEK/WK的过程中,不需要确定系统内所有关联WK的密文/业务数据的密文并进行相应的更新,密钥更新过程简单,耗时短;实现关联WK密钥的密文/业务数据的密文的分散更新,不影响业务系统运。
上述主要从各个节点之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个节点,例如密钥管理网元为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请实施例的方法能够以硬件、软件、或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对密钥管理网元进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图7示出了一种装置70的结构图,该装置70可以为密钥管理网元、密钥管理网元中的芯片、片上系统或者其他能够实现上述方法中密钥管理网元的功能的装置等,该装置70可以用于执行上述方法实施例中涉及的密钥管理网元的功能。作为一种可实现方式,图7所示装置70包括:处理单元701;
处理单元701,用于响应于密钥操作请求,在N个密文存储地址中,选择M个密文存储地址。例如,处理单元701用于支持装置70执行步骤403。
处理单元701,还用于根据M个密文存储地址获取相应的M个密钥分量的密文,使用密钥管理网元的私钥分别对M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于M个密钥分量的明文生成第一密钥,使用第一密钥以及第一密钥的ID执行相应的密钥操作。例如,处理单元701用于支持装置70执行步骤404、步骤405。
进一步的,所述密钥管理网元还包括:收发单元702;
收发单元702,用于接收N个密钥分量管理网元发送的注册请求,每一个密钥分量管理网元发送的注册请求用于指示密钥分量管理网元存储有密钥分量的密文;
处理单元701,还用于响应于N个密钥分量管理网元发送的注册请求,将N个密钥分量管理网元的地址信息作为N个密文存储地址存储起来;或者,将N个密钥分量的密文的序号作为N个密文存储地址,将N个密钥分量的密文的序号与N个密钥分量管理网元的地址信息对应存储起来。
具体的,上述图4-图6所示方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。装置70用于执行图4-图6所示方法所示密钥管理方法中密钥管理网元的功能,因此可以达到与上述密钥管理方法相同的效果。
在本实施例中,该装置70还可以采用集成的方式划分各个功能模块的形式来呈现。这里的“功能模块”可以指专用集成电路(application specific integratedcircuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该装置70中的处理单元701的功能/实现过程可以通过处理器调用存储器中保存的计算机执行指令来实现。图7中的收发单元702的功能/实现过程可以通过信接口来实现。
例如,作为又一种可实现方式,上述密钥管理网元可以采用图8所示的组成结构,或者包括图8所示的部件。图8为本申请实施例提供的一种装置80的组成示意图,该装置80可以为密钥管理网元、密钥管理网元中的芯片、片上系统或者其他能够实现上述方法中密钥管理网元的功能的装置等,该装置80可以包括处理器801,通信线路802以及通信接口803。进一步的,该装置80还可以包括存储器804。其中,处理器801,存储器804以及通信接口803之间可以通过通信线路802连接。其中,处理器801可以集成上述处理单元701的功能。通信接口803可以集成上述收发单元702的功能。
处理器801,可以是中央处理器(central processing unit,CPU)、通用处理器、网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器801还可以是其它具有处理功能的装置,如电路、器件或软件模块,不予限制。
通信线路802,用于在装置80所包括的各部件之间传送信息。
通信接口803,用于与其他设备或其它通信网络(如以太网,无线接入网(radioaccess network,RAN),无线局域网(wireless local area networks,WLAN))等进行通信。通信接口803可以是模块、电路、收发器、网络接口或者任何能够实现通信的装置。
存储器804,用于存储指令。其中,指令可以是计算机程序。
其中,存储器804可以是只读存储器(read-only memory,ROM)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是随机存取存储器(random accessmemory,RAM)或者可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟)、磁盘存储介质、其他磁存储设备,不予限制。
需要说明的是,存储器804可以独立于处理器801存在,也可以和处理器801集成在一起。存储器804可以用于存储指令或者程序代码或者一些数据等。存储器804可以位于装置80内,也可以位于装置80外,不予限制。
处理器801,用于执行存储器804中存储的指令,以实现本申请下述实施例提供的密钥管理方法。在一种示例中,处理器801可以包括一个或多个CPU,作为一种可选的实现方式,装置80包括多个处理器。
作为一种可选的实现方式,装置80还包括输出设备805和输入设备806。示例性地,输入设备806是键盘、鼠标、麦克风或操作杆等设备,输出设备805是显示屏、扬声器(speaker)等设备。
需要说明的是,装置80可以是台式机、便携式电脑、网络服务器、移动手机、平板电脑、无线终端、嵌入式设备、芯片系统或有图8中类似结构的设备。此外,图8中示出的组成结构并不构成对该通信装置的限定,除图8所示部件之外,该通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。
本申请实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机程序来指令相关的硬件完成,该程序可存储于上述计算机可读存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。计算机可读存储介质可以是前述任一实施例的终端装置,如:包括数据发送端和/或数据接收端的内部存储单元,例如终端装置的硬盘或内存。上述计算机可读存储介质也可以是上述终端装置的外部存储设备,例如上述终端装置上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,上述计算机可读存储介质还可以既包括上述终端装置的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述终端装置所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机指令。上述方法实施例中的全部或者部分流程可以由计算机指令来指令相关的硬件(如计算机、处理器、网络设备、和终端等)完成。该程序可被存储于上述计算机可读存储介质中。
应理解,在本申请实施例中,“与A对应的B”表示B与A相关联。例如,可以根据A可以确定B。还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,本申请实施例中出现的“连接”是指直接连接或者间接连接等各种连接方式,以实现设备间的通信,本申请实施例对此不做任何限定。
在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备,如:可以是单片机,芯片等,或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (30)
1.一种密钥管理方法,应用于密钥管理网元,其特征在于,所述方法包括:
响应于密钥操作请求,在N个密文存储地址中,选择M个密文存储地址,其中,每一个密文存储地址用于从一个密钥分量管理网元获取一个密钥分量的密文,每一个密钥分量的密文为用所述密钥管理网元的公钥对相应密钥分量的明文加密得到,M为大于2且小于等于N的整数;
根据所述M个密文存储地址获取相应的M个密钥分量的密文,使用所述密钥管理网元的私钥分别对所述M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于所述M个密钥分量的明文生成第一密钥,使用所述第一密钥以及所述第一密钥的标识ID执行相应的密钥操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收N个密钥分量管理网元发送的注册请求,每一个密钥分量管理网元发送的注册请求用于指示所述密钥分量管理网元存储有密钥分量的密文;
响应于所述N个密钥分量管理网元发送的注册请求,将所述N个密钥分量管理网元的地址信息作为所述N个密文存储地址存储起来;或者,将所述N个密钥分量的密文的序号作为所述N个密文存储地址,将所述N个密钥分量的密文的序号与所述N个密钥分量管理网元的地址信息对应存储起来。
3.根据权利要求2所述的方法,其特征在于,每一个密钥分量管理网元的地址信息包括在所述密钥分量管理网元发送的注册请求中。
4.根据权利要求2或3所述的方法,其特征在于,所述密钥分量管理网元的地址信息包括所述密钥分量管理网元的ID、所述密钥分量管理网元的统一资源定位符URL、所述密钥分量管理网元的文件传输协议FTP中任一种地址信息。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
存储所述M个密文存储地址与所述第一密钥的ID之间的对应关系。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
确定更新所述第一密钥;从所述N个密文存储地址,选择K个密文存储地址,所述K为大于2且小于等于N的整数;
根据所述K个密文存储地址获取相应的K个密钥分量的密文,使用所述密钥管理网元的私钥分别对所述K个密钥分量的密文进行解密,得到K个密钥分量的明文,基于所述K个密钥分量的明文生成第二密钥;所述K个密钥分量的密文与所述M个密钥分量的密文不同;
使用所述第二密钥更新第一密文,所述第一密文为根据所述第一密钥以及所述第一密钥的ID对第一明文执行加密操作得到的密文,所述第一密文包括所述第一密钥的ID。
7.根据权利要求6所述的方法,其特征在于,所述K个密钥分量的密文与所述M个密钥分量的密文不同包括:
所述K与所述M不同;或者,
所述K与所述M相同或不同,所述K个密钥分量的密文的密文存储地址与所述M个密钥分量的密文的密文存储地址完全不同;或者,
所述K与所述M相同或不同,所述K个密钥分量的密文的密文存储地址与所述M个密钥分量的密文的密文存储地址部分或全部相同,同一密文存储地址对应的密钥分量的密文不同。
8.根据权利要求6或7所述的方法,其特征在于,所述使用所述第二密钥更新第一密文包括:根据所述第一密文包括的所述第一密钥的ID、以及所述M个密文存储地址与所述第一密钥的ID之间的对应关系,确定所述M个密文存储地址;
根据所述M个密文存储地址获取相应的M个密钥分量的密文,使用所述密钥管理网元的私钥分别对所述M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于所述M个密钥分量的明文生成所述第一密钥,使用所述第一密钥对所述第一密文执行解密操作得到第一明文;
使用所述第二密钥、所述第二密钥的ID对所述第一明文执行加密操作得到第二密文。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述方法还包括:
当所有所述第一密文被更新后,将所述M个密文存储地址与所述第一密钥的ID之间的对应关系更新为所述K个密文存储地址与所述第二密钥的ID之间的对应关系,所述第一密钥的ID与所述第二密钥的ID相同。
10.根据权利要求6-9任一项所述的方法,其特征在于,所述确定更新所述第一密钥包括:若预设更新周期到来,则确定更新所述第一密钥;或者,
若所述M个密钥分量中的任一密钥分量更新,则确定更新所述第一密钥;或者,
若接收到更新所述第一密钥加密的密文的请求,则确定更新所述第一密钥。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述基于所述M个密钥分量的明文生成第一密钥包括:
使用下述任一种算法对所述M个密钥分量的明文进行计算得到所述第一密钥:基于密码的密钥衍生函数PBKDF2、安全哈希算法SHA256、散列信息认证码HMAC算法。
12.根据权利要求1-11任一项所述的方法,其特征在于,
所述密钥管理网元包括平台类网元;
所述密钥分量管理网元包括前台用户操作网元、后台管理操作网元、文档服务网元、日志服务网元、定时任务服务网元、通知服务网元中一种或多种网元。
13.根据权利要求1-12任一项所述的方法,其特征在于,
所述密钥操作包括加密、解密、更新密钥、更新密文中任一种操作。
14.一种密钥管理网元,其特征在于,所述密钥管理网元包括:
处理单元,用于响应于密钥操作请求,在N个密文存储地址中,选择M个密文存储地址,其中,每一个密文存储地址用于从一个密钥分量管理网元获取一个密钥分量的密文,每一个密钥分量的密文为用所述密钥管理网元的公钥对相应密钥分量的明文加密得到,M为大于2且小于等于N的整数;
所述处理单元,还用于根据所述M个密文存储地址获取相应的M个密钥分量的密文,使用所述密钥管理网元的私钥分别对所述M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于所述M个密钥分量的明文生成第一密钥,使用所述第一密钥以及所述第一密钥的标识ID执行相应的密钥操作。
15.根据权利要求14所述的密钥管理网元,其特征在于,所述密钥管理网元还包括:收发单元;
所述收发单元,用于接收N个密钥分量管理网元发送的注册请求,每一个密钥分量管理网元发送的注册请求用于指示所述密钥分量管理网元存储有密钥分量的密文;
所述处理单元,还用于响应于所述N个密钥分量管理网元发送的注册请求,将所述N个密钥分量管理网元的地址信息作为所述N个密文存储地址存储起来;或者,将所述N个密钥分量的密文的序号作为所述N个密文存储地址,将所述N个密钥分量的密文的序号与所述N个密钥分量管理网元的地址信息对应存储起来。
16.根据权利要求15所述的密钥管理网元,其特征在于,每一个密钥分量管理网元的地址信息包括在所述密钥分量管理网元发送的注册请求中。
17.根据权利要求15或16所述的密钥管理网元,其特征在于,所述密钥分量管理网元的地址信息包括所述密钥分量管理网元的ID、所述密钥分量管理网元的统一资源定位符URL、所述密钥分量管理网元的文件传输协议FTP中任一种地址信息。
18.根据权利要求14-17任一项所述的密钥管理网元,其特征在于,所述处理单元,还用于存储所述M个密文存储地址与所述第一密钥的ID之间的对应关系。
19.根据权利要求18所述的密钥管理网元,其特征在于,所述处理单元,还用于确定更新所述第一密钥;从所述N个密文存储地址,选择K个密文存储地址,所述K为大于2且小于等于N的整数;
根据所述K个密文存储地址获取相应的K个密钥分量的密文,使用所述密钥管理网元的私钥分别对所述K个密钥分量的密文进行解密,得到K个密钥分量的明文,基于所述K个密钥分量的明文生成第二密钥;所述K个密钥分量的密文与所述M个密钥分量的密文不同;
使用所述第二密钥更新第一密文,所述第一密文为根据所述第一密钥以及所述第一密钥的ID对第一明文执行加密操作得到的密文,所述第一密文包括所述第一密钥的ID。
20.根据权利要求19所述的密钥管理网元,其特征在于,所述K个密钥分量的密文与所述M个密钥分量的密文不同包括:
所述K与所述M不同;或者,
所述K与所述M相同或不同,所述K个密钥分量的密文的密文存储地址与所述M个密钥分量的密文的密文存储地址完全不同;或者,
所述K与所述M相同或不同,所述K个密钥分量的密文的密文存储地址与所述M个密钥分量的密文的密文存储地址部分或全部相同,同一密文存储地址对应的密钥分量的密文不同。
21.根据权利要求19或20所述的密钥管理网元,其特征在于,所述处理单元,具体用于根据所述第一密文包括的所述第一密钥的ID、以及所述M个密文存储地址与所述第一密钥的ID之间的对应关系,确定所述M个密文存储地址;
根据所述M个密文存储地址获取相应的M个密钥分量的密文,使用所述密钥管理网元的私钥分别对所述M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于所述M个密钥分量的明文生成所述第一密钥,使用所述第一密钥对所述第一密文执行解密操作得到第一明文;
使用所述第二密钥、所述第二密钥的ID对所述第一明文执行加密操作得到第二密文。
22.根据权利要求19-21任一项所述的密钥管理网元,其特征在于,所述处理单元,还用于当所有所述第一密文被更新后,将所述M个密文存储地址与所述第一密钥的ID之间的对应关系更新为所述K个密文存储地址与所述第二密钥的ID之间的对应关系,所述第一密钥的ID与所述第二密钥的ID相同。
23.根据权利要求19-22任一项所述的密钥管理网元,其特征在于,所述处理单元,具体用于若预设更新周期到来,则确定更新所述第一密钥;或者,
若所述M个密钥分量中的任一密钥分量更新,则确定更新所述第一密钥;或者,
若接收到更新所述第一密钥加密的密文的请求,则确定更新所述第一密钥。
24.根据权利要求14-23任一项所述的密钥管理网元,其特征在于,所述处理单元具体用于使用下述任一种算法对所述M个密钥分量的明文进行计算得到所述第一密钥:基于密码的密钥衍生函数PBKDF2、安全哈希算法SHA256、散列信息认证码HMAC算法。
25.根据权利要求14-24任一项所述的密钥管理网元,其特征在于,
所述密钥管理网元包括平台类网元;
所述密钥分量管理网元包括前台用户操作网元、后台管理操作网元、文档服务网元、日志服务网元、定时任务服务网元、通知服务网元中一种或多种网元。
26.根据权利要求14-25任一项所述的密钥管理网元,其特征在于,
所述密钥操作包括加密、解密、更新密钥、更新密文中任一种操作。
27.一种业务系统,其特征在于,所述业务系统包括:密钥管理网元、密钥分量管理网元;
密钥管理网元,用于响应于密钥操作请求,在N个密文存储地址中,选择M个密文存储地址,其中,每一个密文存储地址用于从一个所述密钥分量管理网元获取一个密钥分量的密文,每一个密钥分量的密文为用所述密钥管理网元的公钥对相应密钥分量的明文加密得到,M为大于2且小于等于N的整数;
根据所述M个密文存储地址获取相应的M个密钥分量的密文,使用所述密钥管理网元的私钥分别对所述M个密钥分量的密文进行解密,得到M个密钥分量的明文,基于所述M个密钥分量的明文生成第一密钥,使用所述第一密钥以及所述第一密钥的ID执行相应的密钥操作。
28.一种装置,其特征在于,所述装置包括处理器,所述处理器用于执行权利要求1-13任一项所述的密钥管理方法。
29.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行如权利要求1-13任一项所述所述的密钥管理方法。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行如权利要求1-13任一项所述所述的密钥管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010567928.3A CN113824553A (zh) | 2020-06-19 | 2020-06-19 | 密钥管理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010567928.3A CN113824553A (zh) | 2020-06-19 | 2020-06-19 | 密钥管理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113824553A true CN113824553A (zh) | 2021-12-21 |
Family
ID=78912126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010567928.3A Pending CN113824553A (zh) | 2020-06-19 | 2020-06-19 | 密钥管理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113824553A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172650A (zh) * | 2022-02-14 | 2022-03-11 | 北京安盟信息技术股份有限公司 | 一种云计算环境下多用户密钥安全隔离方法及系统 |
CN114861191A (zh) * | 2022-04-27 | 2022-08-05 | 北京计算机技术及应用研究所 | 一种嵌入式设备安全启动架构及方法 |
CN116318686A (zh) * | 2023-05-17 | 2023-06-23 | 成都赛力斯科技有限公司 | 一种数据加密传输方法、装置、电子设备及存储介质 |
-
2020
- 2020-06-19 CN CN202010567928.3A patent/CN113824553A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172650A (zh) * | 2022-02-14 | 2022-03-11 | 北京安盟信息技术股份有限公司 | 一种云计算环境下多用户密钥安全隔离方法及系统 |
CN114172650B (zh) * | 2022-02-14 | 2022-05-17 | 北京安盟信息技术股份有限公司 | 一种云计算环境下多用户密钥安全隔离方法及系统 |
CN114861191A (zh) * | 2022-04-27 | 2022-08-05 | 北京计算机技术及应用研究所 | 一种嵌入式设备安全启动架构及方法 |
CN114861191B (zh) * | 2022-04-27 | 2024-04-05 | 北京计算机技术及应用研究所 | 一种嵌入式设备安全启动架构及方法 |
CN116318686A (zh) * | 2023-05-17 | 2023-06-23 | 成都赛力斯科技有限公司 | 一种数据加密传输方法、装置、电子设备及存储介质 |
CN116318686B (zh) * | 2023-05-17 | 2023-09-05 | 成都赛力斯科技有限公司 | 一种数据加密传输方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107689869B (zh) | 用户口令管理的方法和服务器 | |
CN102804677B (zh) | 安全网络包围区的发现 | |
US9742560B2 (en) | Key management in secure network enclaves | |
US9219722B2 (en) | Unclonable ID based chip-to-chip communication | |
US8635465B1 (en) | Counter-based encryption of stored data blocks | |
US10484170B2 (en) | Custom encryption function for communications between a client device and a server device | |
KR101213984B1 (ko) | 복합 인증 시스템을 구비한 하이브리드 클라우드 | |
CN105553951A (zh) | 数据传输方法和装置 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN111740966B (zh) | 一种基于区块链网络的数据处理方法及相关设备 | |
CN113824553A (zh) | 密钥管理方法、装置及系统 | |
CN114157415A (zh) | 数据处理方法、计算节点、系统、计算机设备和存储介质 | |
CN111400728A (zh) | 应用于区块链的数据加密解密方法及装置 | |
US9906953B2 (en) | Method and user equipment for discovering device user | |
CN107729760B (zh) | 基于Android系统的CSP实现方法及智能终端 | |
CN114285551A (zh) | 量子密钥分发方法、装置、可读存储介质及电子设备 | |
US20200044838A1 (en) | Data encryption method and system using device authentication key | |
CN108418679B (zh) | 一种多数据中心下处理密钥的方法、装置及电子设备 | |
CN115150109A (zh) | 认证方法、装置及相关设备 | |
EP3001346B1 (en) | Directory service device, client device, key cloud system, method thereof, and program | |
CN116166749A (zh) | 数据共享方法、装置、电子设备及存储介质 | |
CN112242976B (zh) | 一种身份认证方法及装置 | |
CN114663234A (zh) | 一种区块链上异常交易的监管系统和方法 | |
CN114117388A (zh) | 设备注册方法、设备注册装置、电子设备以及存储介质 | |
CN114124440A (zh) | 安全传输方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |