CN116805903A - 一种密钥管理方法及相关装置 - Google Patents
一种密钥管理方法及相关装置 Download PDFInfo
- Publication number
- CN116805903A CN116805903A CN202210233131.9A CN202210233131A CN116805903A CN 116805903 A CN116805903 A CN 116805903A CN 202210233131 A CN202210233131 A CN 202210233131A CN 116805903 A CN116805903 A CN 116805903A
- Authority
- CN
- China
- Prior art keywords
- key
- key factor
- computing node
- factor
- target
- 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
- 238000007726 management method Methods 0.000 title abstract description 99
- 238000004891 communication Methods 0.000 claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000006870 function Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 11
- 239000000463 material Substances 0.000 description 9
- 230000002194 synthesizing effect Effects 0.000 description 6
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005129 volume perturbation calorimetry Methods 0.000 description 4
- 238000009795 derivation Methods 0.000 description 3
- 238000001537 electron coincidence spectroscopy Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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)
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种密钥管理方法,由第一计算节点执行,包括:获取一个或多个密钥因子,使用基于一个或多个密钥因子中至少一个目标密钥因子得到的加密密钥,对明文数据进行加密得到密文数据,将密文数据和至少一个目标密钥因子的标识发送至第二计算节点。如此,第二计算节点可以根据至少一个目标密钥因子的标识,获取目标密钥因子,并根据目标密钥因子获得用于从密文数据中解密出明文数据的解密密钥,由此实现安全通信。该方法中,用于加密/解密的密钥在两个加密端点生成,不会在其他计算节点间共享,即使两个加密端点之间的密钥泄露,其他计算节点之间的通信也不会被窃听,有效缩减单个密钥泄露导致的被窃听半径,保障了通信安全。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种密钥管理方法、密钥管理系统、密钥管理装置、计算节点、计算机可读存储介质以及计算机程序产品。
背景技术
随着信息技术的不断发展,用户对信息安全的关注度日益增加。信息安全通常可以采用密钥对信息进行加密实现。在数据加密传输的场景中,密钥本身的安全性尤为重要。通常情况下,密钥可以通过协商生成。例如,通信双方在通信的过程中交换公钥,并通过公钥交换随机数,然后由彼此的随机数派生密钥。
协商方式通常是点对点协商,难以支持大范围的多点互通加密。为此,业界引入了中央派生密钥的方案。中央派生密钥是指密钥管理服务(key management service,KMS)节点直接生成并统一管理密钥。加密端点(也即进行数据加密的节点)通过与KMS节点交互获取密钥。如此降低了加密端点的技术要求和性能消耗。
在中央派生密钥的方案中,所有加密端点共享密钥。若密钥本身泄露,所有加密端点间通信均存在被窃听的风险,如此对信息安全产生较大的挑战。
发明内容
本申请提供了一种密钥管理方法,该方法通过在进行安全通信的计算节点侧生成用于加密/解密的密钥,该密钥不会在其他计算节点之间共享,即使进行安全通信的计算节点之间的密钥泄露,其他计算节点之间的通信并不会被窃听,有效缩减单个密钥泄露导致的被窃听半径,保障了通信安全。
第一方面,本申请提供一种密钥管理方法。该方法可以由第一计算节点执行。第一计算节点可以是密钥管理系统中的任意一个计算节点。第一计算节点可以是终端,或者是服务器。其中,终端包括但不限于台式机、笔记本电脑或智能手机等设备,服务器可以是云服务器,或者是物理服务器。
具体地,第一计算节点获取一个或多个密钥因子,使用加密密钥对明文数据进行加密得到密文数据,该加密密钥具体是基于一个或多个密钥因子中至少一个目标密钥因子得到,然后第一计算节点将密文数据和至少一个目标密钥因子的标识发送至第二计算节点,以使得第二计算节点能够根据至少一个目标密钥因子的标识获取目标密钥因子,根据目标密钥因子获得解密密钥,并利用解密密钥从密文数据中解密出明文数据,从而实现安全通信。
在该方法中,在任意两个加密端点(例如是第一计算节点和第二计算节点)之间用于加密/解密的密钥(如加密密钥、解密密钥)并不会在其他的加密端点(除所述两个加密端点之外的加密端点)之间共享。即使两个加密端点之间用于加密/解密的密钥本身泄露,其他加密端点之间的通信并不会被窃听,有效缩减单个密钥泄露导致的被窃听半径,保障了通信安全。
在一些可能的实现方式中,在将密文数据和至少一个目标密钥因子的标识发送至第二计算节点之前,第一计算节点还可以接收控制器发送的所述至少一个目标密钥因子的标识。具体地,控制器可以获取一个或多个密钥因子的标识,将一个或多个密钥因子的标识推送至包括第一计算节点在内的多个计算节点,其中,一个或多个密钥因子的标识包括至少一个目标密钥因子的标识。第一计算节点从一个或多个密钥因子中选取至少一个目标密钥因子用于生成加密密钥,并将至少一个目标密钥因子的标识发送至第二计算节点,以使第二计算节点根据目标密钥因子的标识获取目标密钥因子,并根据目标密钥因子获得用于解密出明文数据的解密密钥。
在该方法中,控制器通过推送目标密钥因子的标识,以便于第一计算节点根据该标识进行密钥因子的管理,为根据密钥因子生成用于加密/解密的密钥提供帮助。
在一些可能的实现方式中,目标密钥因子可以包括多个版本,相应地,目标密钥因子的标识可以根据目标密钥因子的版本号确定。例如,密钥因子每更新一个版本,新版本的密钥因子的标识可以通过对上一版本的密钥因子的标识中的序列号加上设定值得到,设定值可以根据经验值设置,例如设定值可以是版本号的差值。
如此,有助于第一计算节点根据该目标密钥因子的标识快速查找到相应版本的目标密钥因子,提高生成加密密钥的效率,进而提高安全通信的效率。
在一些可能的实现方式中,第一计算节点可以接收一个或多个密钥管理服务节点发送的一个或多个密钥因子。当第一计算节点采用多个密钥管理服务节点发送的多个密钥因子生成加密密钥时,即使有个别密钥管理服务节点被攻破,攻击者也难以获得加密密钥,有效规避了个别密钥管理服务节点被攻破导致的密钥泄露问题。
第二方面,本申请提供一种密钥管理方法。该方法可以由第二计算节点执行。第二计算节点可以是密钥管理系统中的任意一个计算节点。第二计算节点可以是终端,或者是服务器。其中,终端包括但不限于台式机、笔记本电脑或智能手机等设备,服务器可以是云服务器,或者是物理服务器。
具体地,第二计算节点接收第一计算节点发送的密文数据和至少一个目标密钥因子的标识,根据至少一个目标密钥因子的标识,获得至少一个目标密钥因子,然后根据至少一个目标密钥因子,得到解密密钥,利用解密密钥从密文数据中解密出明文数据。
在该方法中,在任意两个加密端点(例如是第一计算节点和第二计算节点)之间用于加密/解密的密钥(如加密密钥、解密密钥)并不会在其他的加密端点(除所述两个加密端点之外的加密端点)之间共享。即使两个加密端点之间用于加密/解密的密钥本身泄露,其他加密端点之间的通信并不会被窃听,有效缩减单个密钥泄露导致的被窃听半径,保障了通信安全。
在一些可能的实现方式中,与第一计算节点类似,在根据至少一个目标密钥因子的标识,获得至少一个目标密钥因子之前,第二计算节点还可以接收控制器发送的至少一个目标密钥因子的标识。具体地,控制器可以获取一个或多个密钥因子的标识,将一个或多个密钥因子的标识推送至包括第二计算节点在内的多个计算节点,其中,一个或多个密钥因子的标识包括至少一个目标密钥因子的标识。第二计算节点可以根据至少一个目标密钥因子的标识从密钥管理服务节点获取至少一个目标密钥因子,并存储上述目标密钥因子。当接收到密文数据和至少一个目标密钥因子的标识时,第二计算节点可以根据该标识从本地获取至少一个目标密钥因子用于生成解密密钥。
在该方法中,控制器通过推送目标密钥因子的标识,以便于第二计算节点根据该标识进行密钥因子的管理,为根据密钥因子生成用于加密/解密的密钥提供帮助。
在一些可能的实现方式中,目标密钥因子可以包括多个版本,相应地,目标密钥因子的标识可以根据目标密钥因子的版本号确定。例如,密钥因子每更新一个版本,新版本的密钥因子的标识可以通过对上一版本的密钥因子的标识中的序列号加上设定值得到,设定值可以根据经验值设置,例如设定值可以是版本号的差值。
如此,有助于第二计算节点根据该目标密钥因子的标识快速查找到相应版本的目标密钥因子,提高生成解密密钥的效率,进而提高安全通信的效率。
第三方面,本申请提供一种密钥管理系统。所述系统包括:
第一计算节点,用于使用加密密钥对明文数据进行加密得到密文数据,将所述密文数据和一个或多个目标密钥因子的标识发送至第二计算节点,所述加密密钥基于所述一个或多个目标密钥因子得到;
第二计算节点,用于根据所述一个或多个目标密钥因子的标识,获取所述一个或多个目标密钥因子,根据所述一个或多个目标密钥因子得到解密密钥,利用所述解密密钥从所述密文数据中解密出所述明文数据。
其中,第一计算节点可以选择采用对称加密或非对称加密。当第一计算节点采用对称加密时,第一计算节点使用的加密密钥和第二计算节点使用的解密密钥是相同的。当第一计算节点采用非对称加密时,第一计算节点使用的加密密钥和第二计算节点使用的解密密钥是不同的,例如第一计算节点和第二计算节点可以协商出公私钥对,第一计算节点可以采用公钥加密,第二计算节点可以采用私钥解密。
在该系统中,用于加密/解密的密钥在进行安全通信的加密端点侧生成,不会在其他的加密端点间共享。即使两个加密端点之间用于加密/解密的密钥本身泄露,其他加密端点之间的通信并不会被窃听,有效缩减单个密钥泄露导致的被窃听半径,保障了通信安全。
在一些可能的实现方式中,所述系统还包括:
第一密钥管理服务节点,用于将所述一个或多个目标密钥因子发送至所述第一计算节点。
在该系统中,进行安全通信的加密端点基于第一密钥管理服务节点发送的一个或多个目标密钥因子生成用于加密/解密的密钥,降低了密钥生成的复杂度,提高了密钥生成的效率。
在一些可能的实现方式中,所述系统还包括:
第一密钥管理服务节点,用于将第一目标密钥因子中发送至所述第一计算节点;
第二密钥管理服务节点,用于将第二目标密钥因子中发送至所述第一计算节点;
其中,所述多个目标密钥因子包括所述第一目标密钥因子和所述第二目标密钥因子。
在该系统中,进行安全通信的加密端点基于第一密钥管理服务节点发送的第一目标密钥因子和第二密钥管理服务节点发送的第二目标密钥因子生成用于加密/解密的密钥,避免了单个密钥管理服务节点被攻破,导致密钥泄露的风险。
在一些可能的实现方式中,所述系统还包括:
控制器,用于向所述第二计算节点发送所述目标密钥因子的标识。
在一些可能的实现方式中,所述目标密钥因子的标识根据所述目标密钥因子的版本号确定。
在一些可能的实现方式中,所述系统为计算设备集群。
第三方面,本申请提供一种密钥管理装置。所述装置包括:
通信模块,用于获取一个或多个密钥因子;
加密模块,用于使用加密密钥对明文数据进行加密得到密文数据,所述加密密钥基于所述一个或多个密钥因子中至少一个目标密钥因子得到;
所述通信模块,还用于将所述密文数据和所述至少一个目标密钥因子的标识发送至第二计算节点。
第四方面,本申请提供一种密钥管理装置。所述装置包括:
通信模块,用于接收第一计算节点发送的密文数据和至少一个目标密钥因子的标识;
所述通信模块,还用于根据所述至少一个目标密钥因子的标识,获得所述至少一个目标密钥因子;
密钥生成模块,用于根据所述至少一个目标密钥因子,得到解密密钥;
解密模块,用于利用所述解密密钥从所述密文数据中解密出明文数据。
第五方面,本申请提供一种计算节点。所述计算节点包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,以实现如第三方面或第四方面所述的密钥管理装置的功能。
第六方面,本申请提供一种计算节点。所述计算节点包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,使得所述计算节点执行如第一方面或第二方面所述的方法。
第七方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示计算节点执行上述第一方面或第二方面的任一种实现方式所述的密钥管理方法。
第八方面,本申请提供了一种包含指令的计算机程序产品,当其在计算设备或计算设备集群上运行时,使得计算节点执行上述第一方面或第二方面的任一种实现方式所述的密钥管理方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种加密端点之间进行安全通信的示意图;
图2为本申请实施例提供的一种密钥管理方法的系统架构图;
图3为本申请实施例提供的一种密钥管理方法的交互流程图;
图4为本申请实施例提供的一种报文的结构示意图;
图5为本申请实施例提供的一种虚拟私有云的架构示意图;
图6为本申请实施例提供的一种生成加密密钥和解密密钥的示意图;
图7为本申请实施例提供的一种密钥管理装置的结构示意图;
图8为本申请实施例提供的另一种密钥管理装置的结构示意图;
图9为本申请实施例提供的一种计算节点的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
密钥管理服务(key management service,KMS),具体是一种对密钥进行统一管理的服务。其中,对密钥的管理包括密钥的生成、交换、存储、使用、密钥销毁以及密钥更替等等。用于提供密钥管理服务的节点称作KMS节点。
加密端点,是指进行数据加密的节点。在一些实施例中,进行数据加密的节点可以是计算节点。例如,在云场景中,租户的虚拟机分散在数万计算节点中。加密端点可以是数万计算节点中的任意节点。
参见图1所示的加密端点之间进行安全通信的示意图,加密端点A、加密端点B、加密端点C与KMS节点建立有通信连接。KMS节点直接生成并统一管理密钥,当加密端点之间需要进行安全通信时,可以与KMS节点交互获得密钥。例如,加密端点A和加密端点B需要进行安全通信时,加密端点A和加密端点B可以分别与KMS节点交互获得密钥。相应地,加密端点A和加密端点B中的任一端点可以采用上述密钥加密待传输的明文数据得到密文数据,然后传输上述密文数据,接收到密文数据的加密端点可以采用上述密钥从密文数据中解密出明文数据。
在上述方案中,所有加密端点之间共享密钥。若密钥本身泄露,所有加密端点间通信均存在被窃听的风险,如此对信息安全产生较大的挑战。
有鉴于此,本申请提供了一种密钥管理方法。在该方法中,密钥管理服务KMS节点生成密钥因子(密钥材料的一种,通常用于合成加密密钥,密钥材料的安全性、多样性、保密性直接影响最终合成的加密密钥的安全性),计算节点(为了便于描述,称作第一计算节点)接收一个或多个KMS节点发送的一个或多个密钥因子,根据一个或多个密钥因子中的至少一个目标密钥因子生成加密密钥。当第一计算节点和另一计算节点(为了便于描述,称作第二计算节点)进行安全通信时,第一计算节点可以采用加密密钥对明文数据进行加密得到密文数据,然后将密文数据和至少一个目标密钥因子的标识发送至第二计算节点。第二计算节点可以根据至少一个目标密钥因子的标识获取至少一个目标密钥因子,根据至少一个目标密钥因子得到解密密钥,并利用解密密钥从密文数据中解密出明文数据。
在该方法中,加密端点(如第一计算节点)根据KMS节点提供的至少一个目标密钥因子生成加密密钥,对端的加密端点(如第二计算节点)根据目标密钥因子的标识从KMS节点或第二计算节点本地获取目标密钥因子,并根据目标密钥因子获得解密密钥。在任意两个加密端点之间用于加密/解密的密钥(如加密密钥、解密密钥)并不会在其他的加密端点(除所述两个加密端点之外的加密端点)之间共享。即使两个加密端点之间用于加密/解密的密钥本身泄露,其他加密端点之间的通信并不会被窃听,有效缩减单个密钥泄露导致的被窃听半径,保障了通信安全。而且,加密端点根据多个KMS节点提供的目标密钥因子生成用于加密/解密的密钥时,即使有个别KMS节点被攻破,攻击者也难以获得用于加密/解密的密钥,有效规避了个别KMS节点被攻破导致的密钥泄露问题。
本申请实施例的密钥管理方法可以应用在云场景中,例如租户在云环境的多个计算节点上创建虚拟机,并在虚拟机中部署密钥管理装置,计算节点可以运行密钥管理装置,以执行密钥管理方法,实现安全通信。例如,第一计算节点可以根据KMS节点提供的一个或多个密钥因子中的至少一个目标密钥因子生成加密密钥,通过加密密钥对明文数据进行加密获得密文数据,并将密文数据和生成加密密钥所采用的至少一个目标密钥因子的标识发送至第二计算节点,以便第二计算节点根据至少一个目标密钥因子的标识获取至少一个目标密钥因子,并根据至少一个目标密钥因子获得解密密钥,利用该解密密钥从密文数据中解密出明文数据。
在一些实施例中,本申请实施例的密钥管理方法也可以应用在非云场景中,例如用户可以在本地的计算节点(本地设备,例如本地服务器)中部署密钥管理装置,计算节点可以运行该密钥管理装置,以执行密钥管理方法,从而实现安全通信。
为了使得本申请的技术方案更加清楚、易于理解,下面结合附图对本申请的系统架构进行说明。
参见图2所示的密钥管理系统的系统架构示意图,密钥管理系统20包括多个计算节点102。进一步地,密钥管理系统20还可以包括至少一个KMS节点,图2以密钥管理系统20包括多个KMS节点进行示例说明。其中,多个KMS节点可以包括第一KMS节点202和第二KMS节点204。多个计算节点102中的每个计算节点102分别与第一KMS节点202和第二KMS节点204连接。在一些实施例中,密钥管理系统20还包括控制器300,该控制器300可以是软件定义网络控制器(software defined network controller,SDN controller)。每个计算节点102还可以连接控制器300,控制器300与第一KMS节点202和第二KMS节点204连接。
具体地,控制器300用于请求KMS节点生成密钥因子,并获取密钥因子的标识(identifer,ID)。例如,控制器300可以向第一KMS节点202发送创建密钥因子并获取密钥因子的标识的指令,例如为Creat&Get密钥因子1(ID),以请求第一KMS节点202生成密钥因子1,并返回密钥因子1的ID,以及控制器300可以向第二KMS节点204发送创建密钥因子并获取密钥因子的标识的指令,例如为Creat&Get密钥因子2(ID),以请求第二KMS节点204生成密钥因子2,并返回密钥因子2的ID。然后,控制器300将获取的密钥因子的ID(例如密钥因子1的ID和密钥因子2的ID)推送至各个计算节点102。
多个计算节点102中的两个计算节点102或两个以上的计算节点102进行安全通信时,一个计算节点102(例如是第一计算节点)可以获取一个或多个密钥因子,例如是接收第一KMS节点202节点发送的密钥因子1,接收第二KMS节点204发送的密钥因子2,然后根据多个密钥因子中的至少一个目标密钥因子,生成加密密钥。例如,第一计算节点可以根据第一目标密钥因子和第二目标密钥因子,采用密钥生成算法生成加密密钥。在图2的示例中,第一目标密钥因子为密钥因子2,第二目标密钥因子为密钥因子2。第一计算节点可以利用该加密密钥对明文数据进行加密得到密文数据,向对端的计算节点102(例如是第二计算节点)发送密文数据。并且,第一计算节点还向对端的第二计算节点发送多个目标密钥因子的ID。其中,目标密钥因子的ID可以根据目标密钥因子的序列号生成,该序列号是KMS节点(如第一KMS节点202或第二KMS节点204)生成目标密钥因子(如密钥因子1或密钥因子2)时分配的,该序列号通常具有唯一性。进一步地,目标密钥因子的ID还可以根据目标密钥因子的版本号生成。例如,目标密钥因子的标识可以根据序列号和版本号生成。在一些实施例中,本端的第一计算节点可以在将密文数据封装至报文时,将多个目标密钥因子的标识填入报文头中,然后发送报文,从而实现向对端的第二计算节点发送密文数据以及多个目标密钥因子的标识。
对端的第二计算节点可以根据多个目标密钥因子的标识,获取多个目标密钥因子,然后根据多个目标密钥因子获得解密密钥,接着利用解密密钥从密文数据中解密出明文数据。由此实现了在特定的计算节点102如第一计算节点、第二计算节点之间通过加密密钥和解密密钥进行安全通信。需要说明的是,当采用对称加密算法对明文数据进行加密时,加密密钥和解密密钥相同。当采用非对称加密算法对明文数据进行加密时,加密密钥和解密密钥不同。
在图2所示实施例中,第一KMS节点202、第二KMS节点204还可以将密钥因子进行更新,相应地,控制器300可以对密钥因子进行版本管理,并向计算节点102推送多个版本的密钥因子的ID,如此,计算节点102可以基于业务需求,根据特定版本的密钥因子(例如是新版本的密钥因子)生成加密密钥。
进一步地,图2所示实施例是以两个KMS节点分别提供一个密钥因子进行示例说明,在本申请实施例其他可能的实现方式中,也可以由两个以上的KMS节点提供密钥因子,并且,每个KMS节点可以提供至少一个密钥因子。在一些实施例中,部分KMS节点也可以提供多个密钥因子,以提高基于密钥因子生成的密钥的安全性。此外,计算节点102也可以基于一个KMS节点(如第一KMS节点202)发送的一个或多个密钥因子中的至少一个目标密钥因子,通过密钥生成算法生成用于加密/解密的密钥。
还需要说明的是,图2所示实施例是以控制器300作为中心节点分发密钥因子。在一些可能的实现方式中,也可以采用去中心化的架构,或者分布式控制中心的架构,避免控制器300被攻破,影响密钥因子的标识的分发,进而导致计算节点102难以生成或更新密钥,影响计算节点102间的安全通信。
接下来,将从计算节点102、第一KMS节点202、第二KMS节点204和控制器300交互的角度,对本申请实施例的密钥管理方法进行详细说明。
参见图3所示的密钥管理方法的交互流程图,该方法以两个计算节点102进行安全通信示例说明,为了便于描述,本申请实施例将两个计算节点102分别称作第一计算节点和第二计算节点,该方法具体包括如下步骤:
S302:控制器300生成两个密钥因子管理对象。
具体地,密钥因子管理对象可以是一种对密钥因子进行管理的数据对象。密钥因子属于密钥材料的一种,用于合成密钥。在一些实施例中,密钥因子可以是字符序列,其中,字符序列可以是数字序列,字母序列,或者是数字和字母的混合序列。
每个密钥因子管理对象可以用于对一个密钥因子进行管理。其中,对密钥因子进行管理包括存储密钥因子、删除或销毁密钥因子等。进一步地,密钥因子存在多个版本时,密钥因子管理对象可以进行版本管理。具体地,密钥因子管理对象可以存储一个密钥因子的多个版本。一个密钥因子的多个版本可以通过版本号进行区分。
S304:控制器300向第一KMS节点202、第二KMS节点204申请创建密钥因子。
S306:第一KMS节点202创建密钥因子1,并向控制器300返回密钥因子1的ID。
S308:第二KMS节点204创建密钥因子2,并向控制器300返回密钥因子2的ID。
控制器300可以通过向第一KMS节点202、第二KMS节点204分别发送创建命令的方式,向第一KMS节点202、第二KMS节点204申请创建密钥因子。类似地,控制器300可以通过向第一KMS节点202、第二KMS节点204分别发送获取命令的方式,请求第一KMS节点202、第二KMS节点204返回密钥因子的ID。密钥因子的ID是由KMS节点创建密钥因子时所分配的唯一标识。在一些实施例中,密钥标识可以根据序列号生成。其中,序列号可以为自增序列号。
参见图2,控制器300可以向第一KMS节点202发送创建密钥因子并获取密钥因子的标识的命令,第一KMS节点202执行上述命令,创建密钥因子1,并向控制器300返回密钥因子1的ID。如图2所示,密钥因子1的ID根据自增序列号0x01生成,密钥因子1的ID具体可以为ID_0x01。此外,控制器300可以向第二KMS节点204发送创建密钥因子并获取密钥因子的标识的命令,第二KMS节点204执行上述命令,创建密钥因子2,并向控制器300返回密钥因子2的ID。如图2所示,密钥因子2的ID根据自增序列号0x0a生成,密钥因子的ID具体可以为ID_0x0a。
需要说明的是,上述S306和S308可以并行执行,也可以按照设定的顺序先后执行,设定的顺序可以是先执行S306,然后执行S308,也可以是先执行S308,然后执行S306。本实施例对此不作限制。
S310:控制器300将密钥因子1的ID和密钥因子2的ID写入各自对应的密钥因子管理对象。
具体地,控制器300将密钥因子1的ID写入密钥因子1对应的密钥因子管理对象,将密钥因子2的ID写入密钥因子2对应的密钥因子管理对象。在一些可能的实现方式中,当密钥因子有多个版本时,控制器300可以将多个版本的密钥因子的标识均写入密钥因子管理对象。其中,密钥因子的标识还根据密钥因子的版本号确定。例如,密钥因子每更新一个版本,新版本的密钥因子的标识可以通过对上一版本的密钥因子的标识中的序列号加上设定值得到,设定值可以根据经验值设置,例如设定值可以是版本号的差值。
如图2所示,第一KMS节点202首次创建的密钥因子1称作第一版本(version 1)的密钥因子1,第一KMS节点202为该密钥因子1分配有序列号,并根据该序列号生成第一版本的密钥因子1的ID为ID_0x01,第一KMS节点202创建第二版本(version2)的密钥因子1,该第二版本的密钥因子1的ID根据第一版本的密钥因子1的ID中的序列号加1得到,具体可以为ID_0x02,类似地,第一KMS节点202创建的第三版本(version3)的密钥因子1的ID可以为ID_0x03。
以此类推,第二KMS节点204首次创建的密钥因子1称作第一版本(version 1)的密钥因子2,第二KMS节点204为该密钥因子2分配有序列号,并根据该序列号生成第一版本的密钥因子2的ID为ID_0x0a,第二KMS节点204创建第二版本(version2)的密钥因子2,该第二版本的密钥因子2的ID根据第一版本的密钥因子2的ID中的序列号加1得到,具体可以为ID_0x0b,类似地,第二KMS节点204创建的第三版本(version3)的密钥因子2的ID可以为ID_0x0c。
在一些可能的实现方式中,控制器300还可以将密钥因子的版本号写入密钥因子管理对象。例如,控制器300还可以将密钥因子1的版本号如version 1、version 2、version3写入密钥因子管理对象,其中,密钥因子1的版本号与各版本的密钥因子1的ID对应。类似地,控制器300还可以将密钥因子2的版本号如version 1、version 2、version3写入密钥因子管理对象,其中,密钥因子2的版本号与各版本的密钥因子2的ID对应。
需要说明的是,第一KMS节点202或第二KMS节点204在生成密钥因子的ID时,还可以结合第一KMS节点202或第二KMS节点204的标识,例如可以在密钥因子的ID中携带上述标识,从而保障密钥因子的标识的全局唯一性。
S312:控制器300根据密钥因子管理对象,向第一计算节点和第二计算节点推送密钥因子1的ID和密钥因子2的ID。
控制器300基于密钥因子管理对象,主动向每个计算节点推送密钥因子1的ID和密钥因子2的ID。其中,密钥因子1或密钥因子2具有多个版本时,控制器300可以推送多个版本的密钥因子的ID。在一些实施例中,控制器300也可以响应于第一计算节点、第二计算节点的请求,向第一计算节点和第二计算节点推送密钥因子1的ID和密钥因子2的ID。
上述S302至S312为可选步骤,执行本申请实施例的方法也可以不执行S302至S312。例如,当整个系统采用去中心化架构时,KMS节点(如第一KMS节点202、第二KMS节点204)可以直接将密钥因子的ID推送至各计算节点。
S314:第一计算节点根据密钥因子1的ID从第一KMS节点202获取密钥因子1。
S316:第一计算节点根据密钥因子2的ID从第二KMS节点204获取密钥因子2。
第一计算节点可以根据控制器300推送的密钥因子的ID,向对应的KMS节点获取密钥因子(具体是密钥因子的内容)。其中,第一计算节点可以向对应的第一KMS节点202提供密钥因子1的ID,以便于第一KMS节点202根据密钥因子1的ID查找密钥因子1,并向第一计算节点返回查找到的密钥因子1。第一计算节点可以向对应的第二KMS节点204提供密钥因子2的ID,以便于第二KMS节点204根据密钥因子2的ID查找密钥因子2,并向第一计算节点返回查找到的密钥因子2。
下面以第一计算节点根据密钥因子1的ID从第一KMS节点202获取密钥因子1进行示例说明。在图2的示例中,第一计算节点向第一KMS节点202提供密钥因子1的ID,第一KMS节点202根据该密钥因子1的ID查找密钥因子1,然后向第一计算节点返回密钥因子1,其中,密钥因子1的内容可以为“0x01rhc0…”。
需要说明的是,上述S314和S316可以并行执行,也可以按照设定的顺序先后执行,设定的顺序可以是先执行S314,然后执行S316,也可以是先执行S314,然后执行S316。本实施例对此不作限制。
S318:第一计算节点存储密钥因子1和密钥因子2。
具体地,第一计算节点可以将密钥因子1和密钥因子2进行持久化存储,以便后续可以直接从本地获取上述密钥因子并使用该密钥因子。
S320:第二计算节点根据密钥因子1的ID从第一KMS节点202获取密钥因子1。
S322:第二计算节点根据密钥因子2的ID从第二KMS节点204获取密钥因子2。
S324:第二计算节点存储密钥因子1和密钥因子2。
其中,第二计算节点获取密钥因子1和密钥因子2,并存储密钥因子1和密钥因子2的具体实现可以参见S314至S318相关内容描述,在此不再赘述。
上述S314至S318与上述S320至S324可以并行执行,也可以按照设定的顺序先后执行,例如可以先执行S314至S318,然后执行S320至S324。进一步地,上述S318和S324为本申请实施例的可选步骤,执行本申请实施例的密钥管理方法也可以不执行S318和S324,例如第一计算节点可以在获得密钥因子1和密钥因子2时,根据该密钥因子1和密钥因子2合成加密密钥。
S325:第一计算节点从密钥因子1和密钥因子2中选取至少一个目标密钥因子。
具体地,第一计算节点可以根据业务需求,从密钥因子1和密钥因子2中选取用于生成加密密钥的一个或多个目标密钥因子。其中,多个目标密钥因子可以包括第一目标密钥因子和第二目标密钥因子,在本实施例中,第一目标密钥因子可以为密钥因子1,第二目标密钥因子可以为密钥因子2。
S326:第一计算节点根据至少一个目标密钥因子,生成加密密钥。
在本实施例中,目标密钥因子为用于合成加密密钥的材料,第一计算节点可以根据至少一个目标密钥因子,通过约定的算法或规则对目标密钥因子进行处理,从而生成加密密钥。为了便于理解,下文以通过密钥生成算法对目标密钥因子进行处理,生成加密密钥示例说明。
密钥生成算法是指用于根据一个或多个密钥因子生成密钥的算法。在一些实施例中,密钥生成算法包括基于随机数或伪随机数的生成算法,具体地,第一计算节点可以根据至少一个目标密钥因子(例如是密钥因子1和密钥因子2)生成随机数或伪随机数,并根据随机数或伪随机数获得加密密钥。
其中,基于伪随机数的生成算法的一个典型示例是密钥派生函数(keyderivation function,KDF)。KDF使用为伪随机函数从主密钥(例如为密钥因子)中派生出一个或多个密钥,其中,伪随机函数可以是密码散列函数。例如,KDF算法可以是基于散列消息认证码(hash-based message authentication code,HMAC)的密钥派生算法HKDF。
在一些可能的实现方式中,考虑到安全性,第一计算节点还可以获取安全参数索引(security parameter index,SPI),结合安全参数索引,生成加密密钥。具体可以参见如下公式:
DataKey=HKDF(key1,key2,SPI) (1)
其中,DataKey表示加密密钥,key1表示密钥因子1,key2表示密钥因子2,SPI表示安全参数索引。安全参数索引可以视为密钥材料的一种。在一些实施例中,SPI可以为生成加密密钥的计算节点(如第一计算节点)的唯一标识,例如SPI可以为网际协议(InternetProtocol,IP)地址、设备序列号等等。基于此,每个计算节点生成的加密密钥可以是不同的,具有更高的安全性。
需要说明的是,在计算能力受限的情况下,例如第一计算节点为轻量级计算设备时,安全参数索引可以为常量。该常量可以是预设的,例如由用户预先设定。如此可以极大地减少计算量。而且,在加密密钥轮转或更新的情况下,仍然能够保障较好的安全性。
在另一些可能的实现方式中,计算能力受限时,第一计算节点也可以不将SPI作为密钥材料,直接基于密钥因子1和密钥因子2合成加密密钥,具体可以参见如下公式:
DataKey=HKDF(key1,key2) (2)
考虑到加密密钥被泄露,通信可能会被持续监听的情况,第一计算节点还可以更新加密密钥。例如,第一计算节点可以周期性更新加密密钥。具体地,控制器300可以周期性地向KMS节点申请创建密钥因子,以将密钥因子更新至新版本。并且,控制器300可以获取新版本的密钥因子的ID,并推送至各计算节点102。相应地,第一计算节点可以根据新版本的多个密钥因子,如新版本的密钥因子1和新版本的密钥因子2,采用密钥生成算法生成加密密钥。在一些实施例中,第一计算节点也可以根据需求,采用其他版本的密钥因子生成加密密钥。
需要说明的是,第一计算节点在利用新版本的密钥因子生成加密密钥时,可以是在获得新版本的密钥因子的时间满足沉浸时间后,利用该新版本的密钥因子生成加密密钥。如此可以防止本端发送的报文对端无法解密。
S328:第一计算节点利用加密密钥对明文数据进行加密,得到密文数据。
具体地,第一计算节点可以利用加密密钥,采用加密算法对明文数据进行加密,得到密文数据。其中,加密算法可以为对称加密算法或非对称加密算法。当加密算法为对称加密算法时,加密密钥通常和解密密钥相同或者对称,当加密算法为非对称加密算法时,加密密钥和解密密钥通常为公私钥对。
上述S328为可选步骤,执行本申请实施例的方法也可以不执行S328。例如,第一计算节点可以在生成加密密钥后,先将合成加密密钥使用的密钥因子的属性发送至第二计算节点,以便于第二计算节点合成解密密钥。
S330:第一计算节点将密文数据封装在报文,并将至少一个目标密钥因子的ID写入报文头。
在本实施例中,报文用于记录密文数据和生成加密密钥所采用的至少一个目标密钥因子的ID。参见图4所示的报文的结构示意图,该报文为基于网际网络安全协定(Internet Protocol Security,IPSEC)框架,改进封装安全载荷(Encapsulate SecurityPayload,ESP)格式,自定义ENC封装格式的报文,其中,第一计算节点将密文数据写入报文的载荷payload中,将密钥因子1的ID和密钥因子2的ID写入报文的报文头中。报文头可以包括协议头和加密信息头。其中,协议头定义了传输报文的协议,例如在该示例中,该协议可以为用户数据报协议(User Datagram Protocol,UDP)。协议头还可以包括传输报文所采用的端口的端口号。传输报文所采用的端口可以自定义。加密信息头(ENC-Info)记录合成加密密钥使用的密钥材料,如密钥因子的ID,以供对端合成解密密钥时使用。
需要说明的是,当合成加密密钥使用了SPI时,加密信息头还可以记录SPI,以便于对端的第二计算节点可以结合该SPI合成用于解密的解密密钥。
S332:第一计算节点向第二计算节点发送报文。
需要说明的是,上述S330至S332为第一计算节点发送密文数据以及合成加密密钥所采用的至少一个目标密钥因子的标识的一种实现方式,在本申请实施例其他可能的实现方式中,第一计算节点也可以分别发送密文数据和至少一个目标密钥因子的ID,例如可以将至少一个目标密钥因子的ID写入另一报文的payload,并发送多个报文。
S334:第二计算节点从报文的报文头中获取至少一个目标密钥因子的ID。
其中,当第一计算节点采用其他方式传输至少一个目标密钥因子的ID时,第二计算节点也可以采用其他方式获取至少一个目标密钥因子的ID。例如,第一计算节点将至少一个目标密钥因子的ID封装至另一报文的载荷时,第二计算节点可以从报文的载荷中获取至少一个目标密钥因子的ID。
S336:第二计算节点根据至少一个目标密钥因子的ID,获取至少一个目标密钥因子。
具体地,至少一个目标密钥因子包括密钥因子1和密钥因子2,第二计算节点可以根据密钥因子1的ID在本地查找密钥因子1,当查找成功时,获取上述密钥因子1。类似地,第二计算节点可以根据密钥因子2的ID在本地查找密钥因子2,当查找成功时,获取上述密钥因子2。
需要说明的是,第二计算节点也可以不存储密钥因子,基于此,第二计算节点也可以根据至少一个目标密钥因子的ID,从远端如第一KMS节点202或第二KMS节点204获取至少一个目标密钥因子。
S338:第二计算节点根据至少一个目标密钥因子,生成解密密钥。
在本实施例中,至少一个目标密钥因子为合成解密密钥的材料,第二计算节点可以根据至少一个目标密钥因子,通过约定的算法或规则对目标密钥因子进行处理,从而生成解密密钥。
第二计算节点根据至少一个目标密钥因子,采用密钥生成算法生成解密密钥的过程与第一计算节点生成加密密钥的过程类似,具体可以参考S318相关内容描述,在此不再赘述。
S340:第二计算节点通过解密密钥从密文数据中解密出明文数据。
具体地,第二计算节点可以从报文的payload中获取密文数据,利用解密密钥对密文数据进行处理,从而解密出明文数据。其中,第二计算节点可以根据与第一计算节点约定的算法或规则,利用解密密钥对密文数据进行处理,从而解密出明文数据。
基于上述内容描述,本申请实施例提供了一种密钥管理方法。在该方法中,第一计算节点可以根据KMS节点提供的一个或多个密钥因子中的至少一个目标密钥因子生成加密密钥,利用该加密密钥对明文数据进行加密获得密文数据,向第二计算节点发送密文数据和至少一个目标密钥因子的ID,相应地,第二计算节点根据至少一个目标密钥因子的ID,获取至少一个目标密钥因子,根据至少一个目标密钥因子生成解密密钥。用于加密/解密的密钥并不会在其他的计算节点之间共享。即使密钥本身泄露,其他计算节点间的通信并不会被窃听,有效缩减单个密钥泄露导致的被窃听半径,保障了通信安全。而且,计算节点根据从多个KMS节点获取的目标密钥因子生成加密密钥时,即使有个别KMS节点被攻破,攻击者也难以获得密钥,有效规避了个别KMS节点被攻破导致的密钥泄露问题。
图3所示实施例对密钥管理方法的流程进行了详细说明,下面以虚拟私有云(virtual private cloud,VPC)的场景进行示例说明。
参见图5所示的虚拟私有云的架构示意图,多台服务器上形成有2个私有云,具体表示为VPC1和VPC2,其中,每台服务器上包括VPC1的虚拟机和VPC2的虚拟机,该虚拟机具体可以是弹性云服务(elastic cloud service,ECS)的实例。其中,同一VPC的ECS之间可以通过加密密钥和解密密钥进行安全通信,需要说明的是,在进行安全通信时,可以通过网络设备中转报文。考虑到安全性,不同VPC之间ECS所使用的密钥可以是不同的。例如,服务器上归属于VPC1的虚拟机之间可以采用第一密钥(如第一加密密钥、第一解密密钥)进行安全通信,服务器上归属于VPC2的虚拟机之间可以采用第二密钥(如第二加密密钥、第二解密密钥)进行安全通信。
参见图6,控制器300可以向不同的KMS节点(如第一KMS节点202和第二KMS节点204,图6中未示出)申请创建密钥因子,并获得密钥因子的ID。然后,控制器300向多台服务器如服务器01、服务器02、服务器03下发2个Key_ID。其中,Key_ID-1标识VPC1的ECS使用的密钥,Key_ID-2标识VPC2的ECS使用的密钥。每个Key_ID都可以包括2个密钥因子组。每个密钥因子组可以包括密钥因子的多个版本。在该示例中,每个密钥因子组包括3个版本的密钥因子。
当VPC1的ECS之间进行安全通信时,服务器(如服务器01)上属于VPC1的ECS可以根据Key_ID-1中的密钥因子组,采用密钥生成算法如HKDF算法,生成加密密钥。然后利用加密密钥加密明文数据,获得密文数据。具体可以参见如下公式:
CipherText=AES-256-GCM(DataKey,PlainText) (3)
其中,CipherText表示密文数据,PlainText表示明文数据,DataKey表示加密密钥,AES-256-GCM表示一种加密算法,该加密算法属于对称加密算法的一种。
然后,ECS可以将密文数据写入报文的payload,将密钥材料如Key_ID-1、密钥因子的版本号、SPI(如果合成加密密钥时使用了SPI)等写入报文头,得到报文,接着向其他服务器如服务器02上属于VPC1的ECS发送该报文。
接收到报文的ECS通过读取报文头,获得Key_ID-1、密钥因子的版本号、SPI,根据Key_ID-1、密钥因子的版本号,选择相应版本的密钥因子,结合SPI,采用密钥生成算法生成解密密钥。然后,该ECS利用解密密钥解密报文的payload中的密文数据,获得明文数据。具体可以参见如下公式:
PlainText=AES-256-GCM(DataKey,CipherText) (4)
其中,由于加密明文数据采用了对称加密,因此,解密使用的算法通常与加密使用的算法相同,例如也可以是AES-256-GCM。
该方法通过从不同KMS节点引入多个密钥因子,并结合ECS的唯一标识,生成加密密钥和解密密钥,将该加密密钥和解密密钥用于安全通信,可以有效地规避单个KMS节点泄露导致的密钥泄露问题,而且能够有效缩减单个密钥泄露导致的被窃听半径。
基于本申请实施例提供的密钥管理方法,本申请实施例还提供了一种如前述的密钥管理系统20。下面将结合附图对本申请实施例提供的密钥管理系统20进行介绍。
参见图2所示的密钥管理系统20的结构示意图,该系统20包括多个计算节点102,多个计算节点102包括第一计算节点和第二计算节点。第一计算节点和第二计算节点的功能如下所示:
第一计算节点,用于使用加密密钥对明文数据进行加密得到密文数据,将所述密文数据和一个或多个目标密钥因子的标识发送至第二计算节点,所述加密密钥基于所述一个或多个目标密钥因子得到;
第二计算节点,用于根据所述一个或多个目标密钥因子的标识,获取所述一个或多个目标密钥因子,根据所述一个或多个目标密钥因子得到解密密钥,利用所述解密密钥从所述密文数据中解密出所述明文数据。
在一些可能的实现方式中,所述系统20还包括:
第一KMS节点202,用于将所述一个或多个目标密钥因子发送至所述第一计算节点。
一些可能的实现方式中,所述系统20还包括:
第一KMS节点202,用于将第一目标密钥因子中发送至所述第一计算节点;
第二KMS节点204,用于将第二目标密钥因子中发送至所述第一计算节点;
其中,所述多个目标密钥因子包括所述第一目标密钥因子和所述第二目标密钥因子。
在一些可能的实现方式中,所述系统20还包括:
控制器300,用于向所述第二计算节点发送所述目标密钥因子的标识。
在一些可能的实现方式中,所述目标密钥因子的标识根据所述目标密钥因子的版本号确定。
在一些可能的实现方式中,所述系统20为计算设备集群。该计算设备集群可以是多个计算节点形成的计算设备集群,进一步地,计算设备集群可以是多个计算节点与至少一个KMS节点形成的计算设备集群。在一些实施例中,计算设备集群中还包括用于实现控制器功能的节点。
根据本申请实施例的密钥管理系统20可对应于执行本申请实施例中描述的方法,并且密钥管理系统20的各个组成部分的上述和其它操作和/或功能分别为了实现图3所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
图2所示的密钥管理系统20中的计算节点102可以通过密钥管理装置实现相应的功能,下面结合附图对密钥管理装置进行介绍。
首先,参见图7所示的一种密钥管理装置的结构示意图,该装置700可以部署在第一计算节点,该装置700包括:
通信模块702,用于获取一个或多个密钥因子;
加密模块704,用于使用加密密钥对明文数据进行加密得到密文数据,所述加密密钥基于所述一个或多个密钥因子中至少一个目标密钥因子得到;
所述通信模块702,还用于将所述密文数据和所述至少一个目标密钥因子的标识发送至第二计算节点。
在一些可能的实现方式中,通信模块702还用于:
将所述密文数据和至少一个目标密钥因子的标识发送至第二计算节点之前,接收控制器发送的所述至少一个目标密钥因子的标识。
在一些可能的实现方式中,所述目标密钥因子的标识根据所述目标密钥因子的版本号确定。
在一些可能的实现方式中,通信模块702具体用于:
接收一个或多个密钥管理服务节点发送的所述一个或多个密钥因子。
根据本申请实施例的密钥管理装置700可对应于执行本申请实施例中描述的方法,并且密钥管理装置700的各个模块的上述和其它操作和/或功能分别为了实现图3所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
接着,参见图8所示的另一种密钥管理装置的结构示意图,该装置800可以部署在第二计算节点,该装置800包括:
通信模块802,用于接收第一计算节点发送的密文数据和至少一个目标密钥因子的标识;
所述通信模块802,还用于根据所述至少一个目标密钥因子的标识,获得所述至少一个目标密钥因子;
密钥生成模块804,用于根据所述至少一个目标密钥因子,得到解密密钥;
解密模块806,用于利用所述解密密钥从所述密文数据中解密出明文数据。
在一些可能的实现方式中,所述通信模块802具体用于:
接收控制器发送的所述至少一个目标密钥因子的标识。
在一些可能的实现方式中,所述目标密钥因子的标识根据所述目标密钥因子的版本号确定。
根据本申请实施例的密钥管理装置800可对应于执行本申请实施例中描述的方法,并且密钥管理装置800的各个模块的上述和其它操作和/或功能分别为了实现图3所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
图7、图8从功能模块的角度对密钥管理装置700、密钥管理装置800进行了介绍,下面将从硬件结构的角度对实施上述密钥管理装置700、密钥管理装置800功能的计算节点102进行介绍。
计算节点102可以是终端或服务器。其中,终端包括但不限于台式机、笔记本电脑、智能手机等设备,服务器可以包括云服务器或物理服务器。其中,云服务器可以是云计算集群中支持弹性伸缩的服务器。
图9提供了一种计算节点102的结构示意图,如图9所示,计算节点102包括总线901、处理器902、通信接口903和存储器904。处理器902、存储器904和通信接口903之间通过总线901通信。
总线901可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器902可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口903用于与外部通信。例如,通信接口903用于获取一个或多个密钥因子,发送密文数据或者至少一个目标密钥因子的标识等等。又例如,通信接口903可以用于接收第一计算节点发送的密文数据和至少一个目标密钥因子的标识等等。
存储器904可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器904还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器904中存储有计算机可读指令,处理器902执行该计算机可读指令,以使得计算节点102执行前述密钥管理方法(或实现前述密钥管理装置700、密钥管理装置800的功能)。
具体地,在实现图7、图8所示装置的实施例的情况下,且图7、图8中所描述的装置的各模块的功能为通过软件实现的情况下,执行图7、图8中各模块的功能所需的软件或程序代码可以存储在计算节点102中的至少一个存储器904中。至少一个处理器902执行存储器904中存储的程序代码,以使得计算节点102执行前述密钥管理方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算节点102执行上述密钥管理方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算节点102上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算设备或数据中心进行传输。所述计算机程序产品可以为一个软件安装包,在需要使用前述密钥管理方法的任一方法的情况下,可以下载该计算机程序产品并在计算节点102上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
Claims (19)
1.一种密钥管理方法,其特征在于,应用于第一计算节点,所述方法包括:
获取一个或多个密钥因子;
使用加密密钥对明文数据进行加密得到密文数据,所述加密密钥基于所述一个或多个密钥因子中至少一个目标密钥因子得到;
将所述密文数据和所述至少一个目标密钥因子的标识发送至第二计算节点。
2.根据权利要求1所述的方法,其特征在于,所述将所述密文数据和至少一个目标密钥因子的标识发送至第二计算节点之前,所述方法包括:
接收控制器发送的所述至少一个目标密钥因子的标识。
3.根据权利要求1或2所述的方法,其特征在于,所述目标密钥因子的标识根据所述目标密钥因子的版本号确定。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述获取一个或多个密钥因子,包括:
接收一个或多个密钥管理服务节点发送的所述一个或多个密钥因子。
5.一种密钥管理方法,其特征在于,应用于第二计算节点,所述方法包括:
接收第一计算节点发送的密文数据和至少一个目标密钥因子的标识;
根据所述至少一个目标密钥因子的标识,获得所述至少一个目标密钥因子;
根据所述至少一个目标密钥因子,得到解密密钥;
利用所述解密密钥从所述密文数据中解密出明文数据。
6.根据权利要求5所述的方法,其特征在于,所述根据所述至少一个目标密钥因子的标识,获得所述至少一个目标密钥因子之前,所述方法包括:
接收控制器发送的所述至少一个目标密钥因子的标识。
7.根据权利要求5或6所述的方法,其特征在于,所述目标密钥因子的标识根据所述目标密钥因子的版本号确定。
8.一种密钥管理系统,其特征在于,所述系统包括:
第一计算节点,用于使用加密密钥对明文数据进行加密得到密文数据,将所述密文数据和一个或多个目标密钥因子的标识发送至第二计算节点,所述加密密钥基于所述一个或多个目标密钥因子得到;
第二计算节点,用于根据所述一个或多个目标密钥因子的标识,获取所述一个或多个目标密钥因子,根据所述一个或多个目标密钥因子得到解密密钥,利用所述解密密钥从所述密文数据中解密出所述明文数据。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括:
第一密钥管理服务节点,用于将所述一个或多个目标密钥因子发送至所述第一计算节点。
10.根据权利要求8所述的系统,其特征在于,所述系统还包括:
第一密钥管理服务节点,用于将第一目标密钥因子中发送至所述第一计算节点;
第二密钥管理服务节点,用于将第二目标密钥因子中发送至所述第一计算节点;
其中,所述多个目标密钥因子包括所述第一目标密钥因子和所述第二目标密钥因子。
11.根据权利要求8至10中任一所述的系统,其特征在于,所述系统还包括:
控制器,用于向所述第二计算节点发送所述目标密钥因子的标识。
12.根据权利要求8至11中任一所述的系统,其特征在于,所述目标密钥因子的标识根据所述目标密钥因子的版本号确定。
13.根据权利要求8至12中任一所述的系统,其特征在于,所述系统为计算设备集群。
14.一种密钥管理装置,其特征在于,所述装置包括:
通信模块,用于获取一个或多个密钥因子;
加密模块,用于使用加密密钥对明文数据进行加密得到密文数据,所述加密密钥基于所述一个或多个密钥因子中至少一个目标密钥因子得到;
所述通信模块,还用于将所述密文数据和所述至少一个目标密钥因子的标识发送至第二计算节点。
15.一种密钥管理装置,其特征在于,所述装置包括:
通信模块,用于接收第一计算节点发送的密文数据和至少一个目标密钥因子的标识;
所述通信模块,还用于根据所述至少一个目标密钥因子的标识,获得所述至少一个目标密钥因子;
密钥生成模块,用于根据所述至少一个目标密钥因子,得到解密密钥;
解密模块,用于利用所述解密密钥从所述密文数据中解密出明文数据。
16.一种计算节点,其特征在于,所述计算节点包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,以实现如权利要求14或15所述的密钥管理装置的功能。
17.一种计算节点,其特征在于,所述计算节点包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,使得所述计算节点执行如权利要求1至4或5至7任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算节点上运行时,使得所述计算节点执行如权利要求1至4或5至7任一项所述的方法。
19.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算节点上运行时,使得所述计算节点执行如权利要求1至4或5至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210233131.9A CN116805903A (zh) | 2022-03-09 | 2022-03-09 | 一种密钥管理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210233131.9A CN116805903A (zh) | 2022-03-09 | 2022-03-09 | 一种密钥管理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116805903A true CN116805903A (zh) | 2023-09-26 |
Family
ID=88078367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210233131.9A Pending CN116805903A (zh) | 2022-03-09 | 2022-03-09 | 一种密钥管理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116805903A (zh) |
-
2022
- 2022-03-09 CN CN202210233131.9A patent/CN116805903A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11316677B2 (en) | Quantum key distribution node apparatus and method for quantum key distribution thereof | |
US11683160B2 (en) | Encrypted group communications | |
EP2634991B1 (en) | Content-centric networking | |
CN101605137A (zh) | 安全分布式文件系统 | |
CN109088810A (zh) | 群组消息的通信方法、装置、相应设备、系统及存储介质 | |
US11838409B2 (en) | Method and apparatus for transferring data in a publish-subscribe system | |
CN113193957B (zh) | 一种与量子网络分离的量子密钥服务方法与系统 | |
CN109347839A (zh) | 集中式密码管理方法、装置、电子设备及计算机存储介质 | |
KR102609406B1 (ko) | Tls 프로토콜 기반 통신 장치 및 공유키 확장 방법 | |
KR102266654B1 (ko) | Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템 | |
US10212141B2 (en) | Autonomous key update mechanism with blacklisting of compromised nodes for mesh networks | |
CN115766002A (zh) | 采用量子密钥分发及软件定义实现以太数据加解密的方法 | |
CN114142995B (zh) | 面向区块链中继通信网络的密钥安全分发方法及装置 | |
CN113824553A (zh) | 密钥管理方法、装置及系统 | |
CN113193958B (zh) | 一种量子密钥服务方法与系统 | |
CN107483197B (zh) | 一种vpn网络终端密钥分发方法及装置 | |
CN116166749A (zh) | 数据共享方法、装置、电子设备及存储介质 | |
CN116805903A (zh) | 一种密钥管理方法及相关装置 | |
CN113452514B (zh) | 密钥分发方法、装置和系统 | |
JP5491713B2 (ja) | 暗号化装置、暗号化プログラム及び方法 | |
Maffina et al. | An improved and efficient message passing interface for secure communication on distributed clusters | |
CN113452513B (zh) | 密钥分发方法、装置和系统 | |
CN111431846B (zh) | 数据传输的方法、装置和系统 | |
CN113918971A (zh) | 基于区块链的消息传输方法、装置、设备及可读存储介质 | |
US11743039B2 (en) | System and method for data encryption using key derivation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |