CN112235324B - 一种基于KeyStore密钥树的密钥管理系统、更新方法、读取方法 - Google Patents
一种基于KeyStore密钥树的密钥管理系统、更新方法、读取方法 Download PDFInfo
- Publication number
- CN112235324B CN112235324B CN202011461506.4A CN202011461506A CN112235324B CN 112235324 B CN112235324 B CN 112235324B CN 202011461506 A CN202011461506 A CN 202011461506A CN 112235324 B CN112235324 B CN 112235324B
- Authority
- CN
- China
- Prior art keywords
- key
- node
- alias
- node key
- tree
- 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.)
- Active
Links
Images
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/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
- 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
-
- 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/083—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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及保密通信技术领域,具体涉及一种基于KeyStore密钥树的密钥管理系统,以及应用于该系统的密钥更新方法、读取方法,管理系统包括密钥树,所述密钥树包括若干层呈分层拓扑结构的密钥层;每个节点密钥都对应设有一个标识该节点密钥的密钥标识名称,记为KeyName;子节点密钥的关联名Alias采用其父节点密钥的关联名Alias后缀该子节点密钥的KeyName的方式进行命名,以得到该子节点密钥的关联名Alias;其中子节点密钥的KeyPass=FUN(父节点密钥,子节点密钥的关联名Alias);其中FUN表示一个输入参数为父节点密钥,以及子节点密钥的关联名Alias的单向函数。本发明便于对密钥进行管理。
Description
技术领域
本发明涉及保密通信技术领域,具体涉及一种基于KeyStore密钥树的密钥管理系统,以及应用于该系统的密钥更新方法、读取方法。
背景技术
随着物联网的快速发展,越来越多的物联网终端设备或边缘平台的关键安全参数(如终端用于接入认证鉴权的密钥、边缘平台用于身份识别的私钥及证书信息)、用户敏感数据等需存储于物联网云服务端以方便管理,因此云服务端需提供密钥库的管理服务。很多时候这些关键安全参数往往以明文形式存储于服务端数据库中。
KeyStore是Java提供的一种密钥库文件,常用于云服务端加密存储密钥,以防非授权访问。通常,以这种形式存储的密钥包括对称密钥、或者是绑定相应公钥证书链的私钥。其思想是通过设置存储密钥的关联助记字符串Alias以及设置用于保护密钥的KeyPass来加密存储密钥,因此所有密钥是相互独立无关联地存储于KeyStore文件中。
当前,云服务端密钥存储管理通常采用数据库明文存储或者KeyStore存储。显然密钥采用数据库明文存储方式无法确保密钥的安全,一方面数据库因利益驱动可能被黑客攻击而拖库,另一方面,密钥以明文形式存储于数据库中,内部开发人员及后台维护管理人员巨额利益诱惑下也存在内鬼可能性。
而对于使用传统KeyStore方式存储管理密钥时,由于KeyStore存储的密钥之间没有关联性,也无法体现密钥分层管理系统。因此存储多个密钥需要设置多个对应的KeyPass来保护密钥,而大量的KeyPass的存储管理有需要通过数据库进行辅助管理,故还有待改进。
发明内容
有鉴于此,本发明目的是提供一种基于KeyStore密钥树的密钥管理系统。
为了解决上述技术问题,本发明的技术方案是:
一种基于KeyStore密钥树的密钥管理系统,包括密钥树,所述密钥树包括若干层呈分层拓扑结构的密钥层;
每个节点密钥都对应设有一个标识该节点密钥的密钥标识名称,记为KeyName;
子节点密钥的关联名Alias采用其父节点密钥的关联名Alias后缀该子节点密钥的KeyName的方式进行命名,以得到该子节点密钥的关联名Alias;
其中子节点密钥的KeyPass= FUN(父节点密钥,子节点密钥的关联名Alias);其中FUN表示一个输入参数为父节点密钥,以及子节点密钥的关联名Alias的单向函数。
进一步的,在对子节点密钥的关联名Alias进行命名时,若其没有父节点密钥或父节点密钥为根节点密钥时,则该子节点密钥的关联名Alias直接采用该子节点密钥的KeyName进行命名。
进一步的,所述FUN函数采用HMAC或HASH函数。
进一步的,所述密钥树包括如下几层密钥:
主密钥,主密钥位于整个密钥树层次体系的最高层;
用户密钥,位于整个密钥树层次体系的第二层,由主密钥加密保护,用于加密其下属层分支节点密钥;
密钥加密密钥,位于整个密钥树层次体系的第三层,由其上层的用户密钥加密保护,用于加密其下属层分支节点密钥;
数据密钥,位于整个密钥树层次体系的第四层,由其上层的密钥加密保护,直接用于向用户数据提供密码操作的密钥。
本发明进一步提供一种密钥读取方法,应用于上述的基于KeyStore密钥树的密钥管理系统,具体包括如下步骤:
STP1、根据父节点密钥的KeyPass,以及父节点密钥的关联名Alias计算得到父节点密钥;
STP2、根据步骤STP1得到的父节点密钥,以及子节点密钥的关联名Alias,计算得出子节点密钥的KeyPass;
STP3、根据步骤STP2得出的子节点密钥的KeyPass和该子节点密钥的关联名Alias计算得出该子节点密钥。
本发明进一步提供一种密钥更新方法,应用于上述的基于KeyStore密钥树的密钥管理系统;
用于在当前节点密钥更新时,对该节点密钥对应的下层分支节点密钥均相应的进行更新,具体包括如下步骤:
S100、首先系统随机产生一个新的密钥;
S200、通过原密钥遍历该节点密钥的下层节点密钥,并读取出密钥明文;
S300、使用新密钥计算下层节点密钥的KeyPass;
S400、根据步骤S300计算得出的KeyPass,以及下层节点密钥对应的Alias重新加密并覆盖存储密钥;
S500、使用当前节点密钥的关联名Alias,以及KeyPass加密新密钥,并覆盖当前节点密钥的原密文。
本发明进一步提供一种密钥更新方法,应用于上述的基于KeyStore密钥树的密钥管理系统;
用于在当前节点密钥的关联名Alias更新时,对该节点密钥对应的下层分支节点密钥的关联名进行更新,具体包括如下步骤:
T100、读取以当前节点密钥为根节点密钥的所有分支节点密钥;
T200、将以当前节点密钥为根节点密钥的所有分支节点密钥的关联名Alias进行相应的替换;
T300、根据更新后的所有分支节点密钥的关联名Alias,重新计算所有分支节点密钥的KeyPass;
T400、利用所有分支节点密钥更新后的关联名Alias及对应步骤T300计算的KeyPass,利用步骤T100读取对应的所有分支节点密钥按照原有密钥树的分层拓扑结构重新执行密钥存储;
T500、根据当前节点密钥的原关联名Alias,对以原关联名Alias为根节点密钥的所有分支节点密钥全部进行密钥删除。
较之现有技术,本发明的优点在于:
1、本发明中KeyStore文件中所存储的各密钥节点密钥之间形成密钥树型拓扑关系,通过KeyStore存储的各密钥的Alias值,我们也可以恢复密钥节点密钥间的树形结构拓扑图,从而方便密钥分层管理。
2、通过当前节点密钥KeyPass= FUN(父节点密钥, 子节点密钥的关联名Alias)的派生方法,使通过节点密钥访问以该节点密钥为根节点密钥的所有分支节点密钥成为可能,这样我们便不需要建立数据库记录各层密钥节点密钥的KeyPass,而只需要记录根节点密钥的KeyPass。
3、本发明还提出的两种密钥更新方法,可以适用于以任意密钥节点密钥为根节点密钥的子密钥树的密钥分层管理系统,因此可实现多用户密钥体系管理。
附图说明
图1为KeyStore密钥存储示意图;
图2为KeyStore密钥读取示意图;
图3为KeyStore密钥树示意图;
图4为KeyStore密钥树节点密钥的Alias与KeyPass表格。
具体实施方式
以下结合附图,对本发明的具体实施方式作进一步详述,以使本发明技术方案更易于理解和掌握。
为了更好的对本发明进行说明,现对现有技术中的一些技术名词和概念原理进行简单阐述:
(1)KeyStore的概念
是Java提供的一种密钥库文件,KeyStore存储的密钥包括:对称密钥、密钥材料、绑定证书链(如X.509证书链)的私钥。任意的密钥Key存储于该KeyStore文件时,都需要对应设置一个密钥独一无二的关联名Alias,作为密钥Key的存储或访问时使用,Alias通常是一个不区分大小写的字符串,明文存储关联存储于KeyStore;同时KeyStore通过设置一一对应的KeyPass来加密保护所存储的Key。
(2)KeyStore密钥存储
图1为KeyStore密钥存储示意图,对密钥Key的存储,存储时需要设置对应的密钥关联名Alias以及KeyPass,KeyStore文件存储着Alias明文以及加密保护后的Key密文;通过KeyStore文件查询所有存储密钥的关联Alias。
(3)KeyStore密钥读取
图2为KeyStore密钥读取示意图,对密钥Key的读取。读取时用户需提供密钥对应的Alias以及KeyPass,KeyStore根据用户提供的参数对密钥进行解密、校验后恢复出原密钥Key。如果提供的Alias与KeyPass不匹配,将无法恢复出原密钥。
依据以上密钥存储及读取系统KeyStore可以实现密钥库管理,但是所存储密钥之间没有任何关联。
以下对本发明的具体实施方式进行具体说明:
实施例1:
参照图1所示,本实施例提供一种基于KeyStore密钥树的密钥管理系统,包括密钥树,所述密钥树包括若干层呈分层拓扑结构的密钥层,具体的,如图3所示:
密钥树包括如下几层密钥:
主密钥,记为MasterKey,主密钥位于整个密钥树层次体系的最高层;
用户密钥,记为UserKey,位于整个密钥树层次体系的第二层,由主密钥加密保护,用于加密其下属层分支节点密钥;该层密钥可由云服务系统分配给云用户或者不同权限等级的后台管理人员、维护人员。若该层包含多个用户密钥,分别记为User1_Key、User2_Key、User3_Key…。
密钥加密密钥,记为KEK,位于整个密钥树层次体系的第三层,由其上层的用户密钥加密保护,用于加密其下属层分支节点密钥;若该层包括多个密钥加密密钥,分别记为KEK1、KEK2、KEK3…。
数据密钥,记为DataKey,位于整个密钥树层次体系的第四层,由其上层的密钥加密保护,直接用于向用户数据提供密码操作的密钥;若该层包含多个数据密钥,则分别记为DataKey1、DataKey2、DataKey3…。
在本实施例中,每个节点密钥都对应设有一个标识该节点密钥的密钥标识名称,记为KeyName;
子节点密钥的关联名Alias采用其父节点密钥的关联名Alias后缀该子节点密钥的KeyName的方式进行命名,以得到该子节点密钥的关联名Alias,命名时,需确保关联名Alias的唯一性。
比如采用如下方式进行命名:
子节点密钥的关联名Alias为“FatherAlias: KeyName”,其中FatherAlias表示父节点密钥的关联名Alias;KeyName为标识该子节点密钥的密钥标识名称。FatherAlias与SelfAlias以“:”连接,当然也可以采用其他的方式进行连接,在此不做限定。
在对子节点密钥的关联名Alias进行命名时,若其没有父节点密钥或父节点密钥为根节点密钥时,则该子节点密钥的关联名Alias可以省略FatherAlias以及“:”,即直接采用KeyName。
如图4所示,按照上述命名方法对各节点密钥进行命名:
1、由于一个KeyStore文件只有一个主密钥 MasterKey,本发明规定MasterKey对应的关联名Alias为“MasterKey”。
2、对于第二层用户密钥层,以User1_Key为例,其对应的关联名Alias为“MasterKey:User1_Key”,简写成“User1_Key”,因为父节点密钥MasterKey可省略不标记;
3、密钥加密密钥层,以KEK1为例,其对应的关联名Alias为“User2_Key:KEK1”,其中“User2_Key”是其父节点密钥User2_Key的Alias;
4、数据密钥层,以DataKey3为例,其对应的Alias可表示为“User2_Key: KEK1:DataKey3”,其中“User2_Key:KEK1”是其父节点密钥KEK1的节点密钥关联名Alias,“User2_Key”又是KEK1的父节点密钥User2_Key的节点密钥关联名Alias;
具体其它各节点密钥的密钥命名如图4表格所示,在此不做具体展开。
在本实施例中,其中子节点密钥的KeyPass= FUN(父节点密钥,子节点密钥的关联名Alias);其中FUN表示一个输入参数为父节点密钥,以及子节点密钥的关联名Alias的单向函数。
比如,KeyStore中某节点密钥Key(子节点密钥)的父节点密钥为FatherKey,父节点密钥的Alias为“FatherKey”,该节点密钥Key的关联名Alias为“FatherAlias:KeyName”。
则节点密钥Key的KeyPass满足:KeyPass = FUN(FatherKey, “FatherAlias:KeyName”),其中FUN(Key, Alias)表示一个输入参数为密钥Key与关联名Alias的单向函数,通常可采用HMAC、HASH或者类似密码安全算法组合函数。
依据上述公式,便可得出各层节点密钥的KeyPass,具体参见图1所示。
基于上述方案,本实施例提供一种密钥读取方法,具体包括如下步骤:
STP1、根据父节点密钥的KeyPass,以及父节点密钥的关联名Alias计算得到父节点密钥;
STP2、根据步骤STP1得到的父节点密钥,以及子节点密钥的关联名Alias,计算得出子节点密钥的KeyPass;
STP3、根据步骤STP2得出的子节点密钥的KeyPass和该子节点密钥的关联名Alias计算得出该子节点密钥。
由上述步骤可知,则只要已知某节点密钥KeyPass,则以该节点密钥为根节点密钥的所有分支节点密钥均可以被读取,为了便于理解,以下给出具体的密钥读取方式:
假设已知节点密钥User2_Key的KeyPass,需要读取目标密钥节点密钥为DataKey3,则读取的递归步骤如下:
由于DataKey3 的Alias = “User2_Key:KEK1:DataKey3”,而KeyPass = FUN(KEK1, “User2_Key:KEK1:DataKey3”),则根据如图2所示方法来读取节点密钥DataKey3。
但是,在上述公式中,由于DataKey3 的父节点密钥KEK1仍属于未知参数。此时利用节点密钥KEK1的Alias = “User2_Key:KEK1”, KeyPass = FUN(User2_Key, “User2_Key:KEK1”),根据如图2所示方法可以读取节点密钥KEK1。
对于KEK1的父节点密钥User2_Key,已知节点密钥User2_Key的KeyPass,其Alias= “User2_Key”,则根据如图2所示方法可以读取节点密钥User2_Key。
通过以上递归步骤,可以完成节点密钥DataKey3的读取。
实施例2:
本实施例提供一种密钥更新方法,应用于实施例1所述的基于KeyStore密钥树的密钥管理系统;
用于在当前节点密钥更新时,对该当前节点密钥对应的下层分支节点密钥均相应的进行更新,具体包括如下步骤:
S100、首先系统随机产生一个新的密钥;
S200、通过原密钥遍历该节点密钥的下层节点密钥,并读取出密钥明文;
S300、使用新密钥计算下层节点密钥的KeyPass;
S400、根据步骤S300计算得出的KeyPass,以及下层节点密钥对应的Alias重新加密并覆盖存储密钥;
S500、使用当前节点密钥的关联名Alias,以及KeyPass加密新密钥,并覆盖当前节点密钥的原密文。
为了能够更为清楚的了解上述更新方法,以节点密钥User2_Key为例,假定User2_Key已知或其对应的KeyPass已知,如果其密钥更新,则节点密钥User2_Key以及分支节点密钥KEK1、KEK2均需要进行密钥更新,其更新步骤如下:
第一步:首先系统随机产生一个新的密钥User2_NewKey;
第二步:通过原密钥User2_Key遍历密钥节点密钥下层节点密钥KEK1、KEK2并读取出密钥明文;
第三步:使用新密钥User2_NewKey计算下层节点密钥KEK1、KEK2的KeyPass;
第四步、根据节点密钥KEK1、KEK2新计算出的KeyPass以及各自的Alias重新加密并覆盖存储密钥KEK1、KEK2;
第五步、使用User2_Key的Alias以及KeyPass加密新密钥User2_NewKey并覆盖原有User2_Key密文。
实施例3
由于密钥更新时,存在两种情况,第一种即为实施例2的情形(由节点密钥更新所带来的密钥体系更新);第二种为由节点密钥的关联名Alias所带来的密钥体系更新
因此,本实施例针对第二种情形提供一种密钥更新方法,应用于实施例1所述的基于KeyStore密钥树的密钥管理系统。
主要用于在当前节点密钥的关联名Alias更新时,对该节点密钥对应的下层分支节点密钥的关联名Alias进行更新,具体包括如下步骤:
T100、读取以当前节点密钥为根节点密钥的所有分支节点密钥;
T200、将以当前节点密钥为根节点密钥的所有分支节点密钥的关联名Alias进行相应的替换;
T300、根据更新后的所有分支节点密钥的关联名Alias,重新计算所有分支节点密钥的KeyPass;
T400、利用所有分支节点密钥更新后的关联名Alias及对应步骤T300计算的KeyPass,将利用步骤T100读取对应的所有分支节点密钥按照原有密钥树的分层拓扑结构重新执行密钥存储;
T500、根据当前节点密钥的原关联名Alias,对以原关联名Alias为根节点密钥的所有分支节点密钥全部进行密钥删除。
为了更为清楚的理解本实施例,以下以节点密钥User2_Key为例,并假定User2_Key对应的KeyPass已知,如果其Alias由“User2_Key”变更为“User2_Key_Alias”,则该节点密钥及以其为根节点密钥的所有分支节点密钥更新步骤如下:
第一步、由于已知User2_Key对应的KeyPass以及其Alias = “User2_Key”,利用本发明提供的密钥读取方法,可以读取以密钥节点密钥User2_Key为根节点密钥的所有树节点密钥;
第二步、将原有节点密钥User2_Key下所有分支节点密钥的Alias中“User2_Key”字段替换为“User2_Key_Alias”,如节点密钥KEK1的Alias由“User2_Key:KEK1”变更为“User2_Key_Alias:KEK1”;
第三步、根据更新的所有分支节点密钥的Alias,重新计算所有分支节点密钥的KeyPass。如密钥节点密钥KEK1的KeyPass将由FUN(User2_Key, “User2_Key:KEK1”)变更为FUN(User2_Key, “User2_Key_Alias:KEK1”);
第四步、利用所有分支密钥节点密钥更新的Alias及KeyPass,将利用第一步读取对应的所有树节点密钥按照原有树型拓扑结构重新执行密钥存储;
第五步、对User2_Key原有关联名Alias = “User2_Key”,进行密钥删除(所有以User2_Key为根节点密钥的树型拓扑结构上的节点密钥均被删除)。
原有KeyStore密钥删除可以根据密钥的Alias对该密钥的内容进行删除而不影响其它密钥,然而由于本发明采用树型结构存储密钥,密钥之间存在一定关联关系。因此当删除某一节点密钥后,实际上以该节点密钥为根节点密钥的所有分支节点密钥数据都被废了,因为无法恢复出这些分支节点密钥对应的KeyPass。因此本发明提出的密钥删除为树型密钥删除,即删除该密钥节点密钥及以该节点密钥为根节点密钥的所有树型分支密钥节点密钥,从而防止密钥树中存在死分叉的情况。
实施例4
本实施例在实施例1的基础上提供一种密钥存储方法,应用于实施例1所述的基于KeyStore密钥树的密钥管理系统;密钥存储主要包括数据密钥的存储以及其它密钥层密钥的存储,其它密钥层密钥在KeyStore建立时由密钥管理系统随机产生,并基于密钥的Alias以及KeyPass加密存储于KeyStore文件中。按照密钥分层体系,将先构建底层根节点密钥主密钥,然后往上层逐层构建,直到最后实现所有叶子节点密钥数据密钥的存储,其存储原理与图1一致,各节点密钥的Alias以及KeyPass参考图4所示。
一般KeyStore文件,密钥之间的关联名Alias是相互独立的;而本发明中:
子节点密钥与父节点密钥的关联名Alias相关联,如此便可以使KeyStore文件中所存储的各节点密钥之间形成密钥树型拓扑关系,通过KeyStore存储的各密钥的Alias值我们也可以恢复节点密钥间的树形结构拓扑图,从而方便密钥分层管理。
而且提出密钥节点密钥的并且采用子节点密钥的KeyPass= FUN(父节点密钥,子节点密钥的关联名Alias)的派生方法,使通过密钥节点密钥访问以该节点密钥为根节点密钥的所有分支密钥节点密钥成为可能,这样我们便不需要建立数据库记录各层密钥节点密钥的KeyPass,而只需要记录根节点密钥的KeyPass。
通过递归密钥读取系统,使将某子密钥树分享或授权给用户管理在技术上很容易实现,因为如已知某节点密钥KeyPass,则以该节点密钥为根节点密钥的所有分支节点密钥均可以被读取、更新甚至删除。
本发明提出的密钥存储、密钥更新、密钥读取及密钥删除等灵活的管理系统,适用于以任意密钥节点密钥为根节点密钥的子密钥树的密钥分层管理系统,因此可实现多用户密钥体系管理。
密钥删除提供的树型密钥删除机制,使密钥删除更彻底,同时也避免了密钥树中存在死分叉的情况。
以上只是本发明的典型实例,除此之外,本发明还可以有其它多种具体实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明要求保护的范围。
Claims (7)
1.一种基于KeyStore密钥树的密钥管理系统,包括密钥树,其特征在于:
所述密钥树包括若干层呈分层拓扑结构的密钥层;
每个节点密钥都对应设有一个标识该节点密钥的密钥标识名称,记为KeyName;
子节点密钥的关联名Alias采用其父节点密钥的关联名Alias后缀该子节点密钥的KeyName的方式进行命名,以得到该子节点密钥的关联名Alias;
其中子节点密钥的KeyPass= FUN(父节点密钥,子节点密钥的关联名Alias);其中FUN表示一个输入参数为父节点密钥,以及子节点密钥的关联名Alias的单向函数。
2.根据权利要求1所述的一种基于KeyStore密钥树的密钥管理系统,其特征在于:在对子节点密钥的关联名Alias进行命名时,若其没有父节点密钥或父节点密钥为根节点密钥时,则该子节点密钥的关联名Alias直接采用该子节点密钥的KeyName进行命名。
3.根据权利要求2所述的一种基于KeyStore密钥树的密钥管理系统,其特征在于:所述FUN函数采用HMAC或HASH函数。
4.根据权利要求1所述的一种基于KeyStore密钥树的密钥管理系统,其特征在于:所述密钥树包括如下几层密钥:
主密钥,主密钥位于整个密钥树层次体系的最高层;
用户密钥,位于整个密钥树层次体系的第二层,由主密钥加密保护,用于加密其下属层分支节点密钥;
密钥加密密钥,位于整个密钥树层次体系的第三层,由其上层的用户密钥加密保护,用于加密其下属层分支节点密钥;
数据密钥,位于整个密钥树层次体系的第四层,由其上层的密钥加密保护,直接用于向用户数据提供密码操作的密钥。
5.一种密钥读取方法,其特征在于:应用于如权利要求1-4任一项所述的基于KeyStore密钥树的密钥管理系统,具体包括如下步骤:
STP1、根据父节点密钥的KeyPass,以及父节点密钥的关联名Alias计算得到父节点密钥;
STP2、根据步骤STP1得到的父节点密钥,以及子节点密钥的关联名Alias,计算得出子节点密钥的KeyPass;
STP3、根据步骤STP2得出的子节点密钥的KeyPass和该子节点密钥的关联名Alias计算得出该子节点密钥。
6.一种密钥更新方法,其特征在于:应用于如权利要求1-4任一项所述的基于KeyStore密钥树的密钥管理系统;
用于在当前节点密钥更新时,对该节点密钥对应的下层分支节点密钥均相应的进行更新,具体包括如下步骤:
S100、首先系统随机产生一个新的密钥;
S200、通过原密钥遍历该节点密钥的下层节点密钥,并读取出密钥明文;
S300、使用新密钥计算下层节点密钥的KeyPass;
S400、根据步骤S300计算得出的KeyPass,以及下层节点密钥对应的关联名Alias重新加密并覆盖存储密钥;
S500、使用当前节点密钥的关联名Alias,以及KeyPass加密新密钥,并覆盖当前节点密钥的原密文。
7.一种密钥更新方法,其特征在于:应用于如权利要求1-4任一项所述的基于KeyStore密钥树的密钥管理系统;
用于在当前节点密钥的关联名Alias更新时,对该节点密钥对应的下层分支节点密钥的关联名进行更新,具体包括如下步骤:
T100、读取以当前节点密钥为根节点密钥的所有分支节点密钥;
T200、将以当前节点密钥为根节点密钥的所有分支节点密钥的关联名Alias进行相应的替换;
T300、根据更新后的所有分支节点密钥的关联名Alias,重新计算所有分支节点密钥的KeyPass;
T400、利用所有分支节点密钥更新后的关联名Alias及对应步骤T300计算的KeyPass,利用步骤T100读取对应的所有分支节点密钥按照原有密钥树的分层拓扑结构重新执行密钥存储;
T500、根据当前节点密钥的原关联名Alias,对以原关联名Alias为根节点密钥的所有分支节点密钥全部进行密钥删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011461506.4A CN112235324B (zh) | 2020-12-14 | 2020-12-14 | 一种基于KeyStore密钥树的密钥管理系统、更新方法、读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011461506.4A CN112235324B (zh) | 2020-12-14 | 2020-12-14 | 一种基于KeyStore密钥树的密钥管理系统、更新方法、读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112235324A CN112235324A (zh) | 2021-01-15 |
CN112235324B true CN112235324B (zh) | 2021-03-02 |
Family
ID=74124481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011461506.4A Active CN112235324B (zh) | 2020-12-14 | 2020-12-14 | 一种基于KeyStore密钥树的密钥管理系统、更新方法、读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112235324B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112600944B (zh) * | 2021-03-02 | 2021-05-25 | 杭州字节信息技术有限公司 | 一种适用于物联网时序数据的差分云存储方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540914A (zh) * | 2003-04-22 | 2004-10-27 | �Ҵ���˾ | 数字资源的分层密钥生成方法及其设备 |
CN101557587A (zh) * | 2009-04-08 | 2009-10-14 | 哈尔滨工程大学 | 一种无线传感器网络中层次树密钥管理方法 |
CN103530578A (zh) * | 2013-10-18 | 2014-01-22 | 武汉大学 | 一种android系统的软构可信平台模块STPM的构建方法 |
CN110268394A (zh) * | 2017-02-09 | 2019-09-20 | 美光科技公司 | Kvs树 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014039045A1 (en) * | 2012-09-06 | 2014-03-13 | Empire Technology Development, Llc | Tree comparison to manage progressive data store switchover with assured performance |
US9208335B2 (en) * | 2013-09-17 | 2015-12-08 | Auburn University | Space-time separated and jointly evolving relationship-based network access and data protection system |
US11349655B2 (en) * | 2018-10-05 | 2022-05-31 | Oracle International Corporation | System and method for a distributed keystore |
-
2020
- 2020-12-14 CN CN202011461506.4A patent/CN112235324B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540914A (zh) * | 2003-04-22 | 2004-10-27 | �Ҵ���˾ | 数字资源的分层密钥生成方法及其设备 |
CN101557587A (zh) * | 2009-04-08 | 2009-10-14 | 哈尔滨工程大学 | 一种无线传感器网络中层次树密钥管理方法 |
CN103530578A (zh) * | 2013-10-18 | 2014-01-22 | 武汉大学 | 一种android系统的软构可信平台模块STPM的构建方法 |
CN110268394A (zh) * | 2017-02-09 | 2019-09-20 | 美光科技公司 | Kvs树 |
Also Published As
Publication number | Publication date |
---|---|
CN112235324A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10803194B2 (en) | System and a method for management of confidential data | |
CN108632292B (zh) | 基于联盟链的数据共享方法和系统 | |
US8752196B2 (en) | Protecting privacy of shared personal information | |
KR102025409B1 (ko) | 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법 | |
KR101224749B1 (ko) | 파일 암호화 및 복호화를 위한 다수의 키를 관리하는시스템 및 방법 | |
ES2848030T3 (es) | Servidor y método para intercambio seguro y económico de datos | |
CN108768951B (zh) | 一种云环境下保护文件隐私的数据加密和检索方法 | |
CN103731395B (zh) | 文件的处理方法及系统 | |
CN102571329B (zh) | 密码密钥管理 | |
CN108833385A (zh) | 基于联盟链加密的用户数据匿名共享方法 | |
US9485090B2 (en) | Managed authentication on a distributed network | |
KR20100062013A (ko) | 결합 키워드를 이용한 데이터 암호화 방법 및 데이터 검색방법 | |
Mo et al. | Two-party fine-grained assured deletion of outsourced data in cloud systems | |
CN108632385B (zh) | 基于时间序列的多叉树数据索引结构云存储隐私保护方法 | |
CN108881189A (zh) | 基于联盟链的用户数据匿名共享系统 | |
US11646872B2 (en) | Management of access authorization using an immutable ledger | |
CN116668072A (zh) | 一种基于多权限属性基加密的数据安全共享方法及系统 | |
JP2002111659A (ja) | ファイル暗号化システム、ファイル暗号化用プログラムおよびデータを記録した記録媒体 | |
CN107294701B (zh) | 具有高效密钥管理的多维密文区间查询装置及查询方法 | |
CN112235324B (zh) | 一种基于KeyStore密钥树的密钥管理系统、更新方法、读取方法 | |
CN105553661B (zh) | 密钥管理方法和装置 | |
CN114168703A (zh) | 一种群组加密数据检索方法 | |
CN108763944A (zh) | 雾计算中安全可撤销多中心大属性域属性基加密方法 | |
CN108259606A (zh) | 云计算公有云文件存储及检索方法 | |
CN108269610A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A key management system, updating method and reading method based on KeyStore key tree Effective date of registration: 20221121 Granted publication date: 20210302 Pledgee: Zhejiang Fuyang Rural Commercial Bank Co.,Ltd. Jinqiao sub branch Pledgor: HANGZHOU BYTE INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2022980022579 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |