CN116743351A - 密钥管理方法、装置、设备及存储介质 - Google Patents

密钥管理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116743351A
CN116743351A CN202210207291.6A CN202210207291A CN116743351A CN 116743351 A CN116743351 A CN 116743351A CN 202210207291 A CN202210207291 A CN 202210207291A CN 116743351 A CN116743351 A CN 116743351A
Authority
CN
China
Prior art keywords
key
plaintext
ciphertext
public
information
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
Application number
CN202210207291.6A
Other languages
English (en)
Inventor
宁海波
刘啸南
庄尔悦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210207291.6A priority Critical patent/CN116743351A/zh
Publication of CN116743351A publication Critical patent/CN116743351A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme

Abstract

本申请公开了一种密钥管理方法、装置、设备及存储介质,属于信息安全技术领域。该方法包括:获取第一对象的对象密钥的明文,对象密钥包括第一对象的公钥和私钥中的至少一个;基于对象密钥的明文,获取对象密钥的密文;其中,对象密钥的密文为密钥管理服务设备利用第一密钥的明文对对象密钥的明文进行加密后得到的密文,或者,对象密钥的密文为本地利用第二密钥的明文对对象密钥的明文进行加密后得到的密文;将对象密钥的密文与第一对象的标识信息对应存储在数据库中。此种方法,能够将第一对象的公钥和/或私钥以密文的方式存储在数据库中,不容易泄露,密钥管理的安全性较高;对象密钥的密文有两种情况,获取对象密钥的密文的灵活性较高。

Description

密钥管理方法、装置、设备及存储介质
技术领域
本申请实施例涉及信息安全技术领域,特别涉及一种密钥管理方法、装置、设备及存储介质。
背景技术
在信息安全技术领域中,密钥管理的安全性会影响信息的安全性,因此,密钥管理在信息安全技术领域中极为重要。其中,密钥管理包括对第一对象的公钥和私钥进行管理。目前,如何对第一对象的公钥和私钥进行较为安全的管理,是一种亟需解决的问题。
发明内容
本申请实施例提供了一种密钥管理方法、装置、设备及存储介质,可用于提高密钥管理的安全性。所述技术方案如下:
一方面,本申请实施例提供了一种密钥管理方法,所述方法包括:
获取第一对象的对象密钥的明文,所述对象密钥包括所述第一对象的公钥和私钥中的至少一个,所述第一对象的公钥的明文用于生成所述第一对象在目标区块链上对应的区块链账号信息,所述第一对象的私钥的明文用于对所述第一对象的待记录在所述目标区块链上的目标信息进行签名;
基于所述对象密钥的明文,获取所述对象密钥的密文;其中,所述对象密钥的密文为密钥管理服务设备利用第一密钥的明文对所述对象密钥的明文进行加密后得到的密文,或者,所述对象密钥的密文为本地利用第二密钥的明文对所述对象密钥的明文进行加密后得到的密文;
将所述对象密钥的密文与所述第一对象的标识信息对应存储在数据库中。
另一方面,提供了一种密钥管理装置,所述装置包括:
第一获取单元,用于获取第一对象的对象密钥的明文,所述对象密钥包括所述第一对象的公钥和私钥中的至少一个,所述第一对象的公钥的明文用于生成所述第一对象在目标区块链上对应的区块链账号信息,所述第一对象的私钥的明文用于对所述第一对象的待记录在所述目标区块链上的目标信息进行签名;
第二获取单元,用于基于所述对象密钥的明文,获取所述对象密钥的密文;其中,所述对象密钥的密文为密钥管理服务设备利用第一密钥的明文对所述对象密钥的明文进行加密后得到的密文,或者,所述对象密钥的密文为本地利用第二密钥的明文对所述对象密钥的明文进行加密后得到的密文;
存储单元,用于将所述对象密钥的密文与所述第一对象的标识信息对应存储在数据库中。
在一种可能实现方式中,所述第二获取单元,用于向所述密钥管理服务设备发送第一加密请求,所述第一加密请求包括所述对象密钥的明文和所述第一密钥的明文的标识信息,所述密钥管理服务设备用于响应于所述第一加密请求,利用所述第一密钥的明文对所述对象密钥的明文进行加密,得到所述对象密钥的密文,返回所述对象密钥的密文;接收所述密钥管理服务设备返回的所述对象密钥的密文。
在一种可能实现方式中,所述第一密钥的明文的标识信息从所述数据库中提取得到,所述存储单元,还用于向所述密钥管理服务设备发送第一密钥生成请求,所述密钥管理服务设备用于响应于所述第一密钥生成请求,生成所述第一密钥的明文,返回所述第一密钥的明文的标识信息;接收所述密钥管理服务设备返回的所述第一密钥的明文的标识信息,将所述第一密钥的明文的标识信息存储在所述数据库中。
在一种可能实现方式中,所述第二获取单元,用于利用所述第二密钥的明文对所述对象密钥的明文进行加密,得到所述对象密钥的密文。
在一种可能实现方式中,所述第二获取单元,还用于从所述数据库中提取所述第二密钥的密文;向所述密钥管理服务设备发送第一解密请求,所述第一解密请求包括所述第二密钥的密文,所述密钥管理服务设备用于响应于所述第一解密请求,对所述第二密钥的密文进行解密,得到所述第二密钥的明文,返回所述第二密钥的明文;接收所述密钥管理服务设备返回的所述第二密钥的明文。
在一种可能实现方式中,所述第二获取单元,还用于从所述数据库中提取所述第二密钥的密文;对所述第二密钥的密文进行解密,得到所述第二密钥的明文。
在一种可能实现方式中,所述第二获取单元,还用于从本地存储中提取所述第二密钥的明文。
在一种可能实现方式中,所述存储单元,还用于向所述密钥管理服务设备发送第一密钥生成请求,所述密钥管理服务设备用于响应于所述第一密钥生成请求,生成所述第一密钥的明文,返回所述第一密钥的明文的标识信息;接收所述密钥管理服务设备返回的所述第一密钥的明文的标识信息;向所述密钥管理服务设备发送第二密钥生成请求,所述第二密钥生成请求包括所述第一密钥的明文的标识信息,所述密钥管理服务设备用于响应于所述第二密钥生成请求,基于所述第一密钥的明文,生成所述第二密钥的明文,对所述第二密钥的明文进行加密得到所述第二密钥的密文,返回所述第二密钥的密文;将所述第二密钥的密文与所述第一密钥的明文的标识信息对应存储在所述数据库中。
在一种可能实现方式中,所述存储单元,还用于基于所述第一对象的标识信息,生成所述第二密钥的明文,对所述第二密钥的明文进行加密,得到所述第二密钥的密文;将所述第二密钥的密文与所述第一对象的标识信息对应存储在所述数据库中。
在一种可能实现方式中,所述第一获取单元,还用于向公私钥对生成设备发送公私钥对生成请求,所述公私钥对生成请求包括所述第一对象的标识信息,所述公私钥对生成设备用于响应于所述公私钥对生成请求,生成所述第一对象的公钥的明文和私钥的明文,返回所述公钥的明文和所述私钥的明文;接收所述公私钥对生成设备返回的所述公钥的明文和所述私钥的明文。
在一种可能实现方式中,所述装置还包括:
第三获取单元,用于基于所述第一对象的标识信息,从所述数据库中提取所述对象密钥的密文;向所述密钥管理服务设备发送第二解密请求,所述第二解密请求包括所述第一密钥的明文的标识信息以及所述对象密钥的密文,所述密钥管理服务设备用于响应于所述第二解密请求,利用所述第一密钥的明文对所述对象密钥的密文进行解密,得到所述对象密钥的明文,返回所述对象密钥的明文;接收所述密钥管理服务设备返回的所述对象密钥的明文。
在一种可能实现方式中,所述第三获取单元,还用于基于所述第一对象的标识信息,从所述数据库中提取所述对象密钥的密文;利用所述第二密钥的明文对所述对象密钥的密文进行解密,得到所述对象密钥的明文。
在一种可能实现方式中,所述对象密钥包括所述公钥,所述装置还包括:
第四获取单元,用于向区块链节点设备发送账号生成请求,所述账号生成请求包括所述公钥的明文,所述区块链节点设备用于响应于所述账号生成请求,基于所述公钥的明文,生成所述第一对象在所述目标区块链上对应的区块链账号信息,返回所述区块链账号信息;接收所述区块链节点设备返回的所述区块链账号信息。
在一种可能实现方式中,所述对象密钥包括所述私钥,所述第四获取单元,还用于基于所述私钥的明文对所述目标信息进行签名,得到所述目标信息的签名信息;向区块链节点设备发送信息记录请求,所述信息记录请求包括所述目标信息、所述签名信息以及所述第一对象的区块链账号信息,所述区块链节点设备用于响应于所述信息记录请求,基于所述签名信息以及所述第一对象的区块链账号信息对所述目标信息进行验证,将验证通过的目标信息记录在所述目标区块链上,返回信息记录结果;接收所述区块链节点设备返回的所述信息记录结果。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述计算机设备实现上述任一所述的密钥管理方法。
另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一所述的密钥管理方法。
另一方面,还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或所述计算机指令由处理器加载并执行,以使计算机实现上述任一所述的密钥管理方法。
本申请实施例提供的技术方案至少带来如下有益效果:
本申请实施例提供的技术方案,获取了第一对象的公钥和/或私钥的密文,从而能够将第一对象的公钥和/或私钥以密文的方式存储在数据库中,以密文的方式存储的公钥和/或私钥不容易泄露,密钥管理的安全性较高。此外,对象密钥的密文有两种情况,获取对象密钥的密文的灵活性较高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种密钥管理方法的实施环境的示意图;
图2是本申请实施例提供的一种密钥管理方法的流程图;
图3是本申请实施例提供的一种密钥管理方法的流程图;
图4是本申请实施例提供的一种密钥管理方案的示意图;
图5是本申请实施例提供的一种密钥管理方案的示意图;
图6是本申请实施例提供的一种密钥管理方案的示意图;
图7是本申请实施例提供的一种密钥管理方案的示意图;
图8是本申请实施例提供的一种公私钥的整体加解密过程的示意图;
图9是相关技术中的一种信封加解密的过程的示意图;
图10是本申请实施例提供的一种密钥管理方案的比对结果的示意图;
图11是本申请实施例提供的一种密钥管理方案对应的分数雷达图;
图12是本申请实施例提供的一种数字资源管理系统的示意图;
图13是本申请实施例提供的一种vuid、公私钥的明文与数字资源地址之间的关系的示意图;
图14是本申请实施例提供的一种密钥管理装置的示意图;
图15是本申请实施例提供的一种终端的结构示意图;
图16是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
对本申请实施例中涉及的名词进行介绍:
KMS(Key Management Service,密钥管理服务):是一款安全管理类服务,能够创建和管理密钥,保护密钥的保密性、完整性和可用性,满足用户多应用多业务的密钥管理需求,符合管理规定的要求。
RSA:一种非对称加密算法。非对称加密算法也叫公钥密码算法,通过生成的公私钥来对明文密文进行加密解密。RSA的名字是由它的三个开发者Ron Rivest(罗纳德·李维斯特)、Adi Shamir(阿迪·萨莫尔)和Leonard Adleman(伦纳德·阿德曼)的首字母而来的。
数字资源:可以在区块链上交易的资源。示例性地,数字资源包括但不限于数字艺术品(或称为数字藏品)、虚拟游戏物品、视频等。数字资源的表示形式包括但不限于视频剪辑形式、JPEG(Joint Photographic Experts Group,联合图像专家组)等。
数字资源地址:使用公钥的明文在区块链上生成的唯一的管理数字资源的地址,用来标识交互对象在区块链上的唯一地址。
CMK(Custom Master Key,用户主密钥):用于对用户的公私钥对进行加解密的密钥。
至信链:是基于区块链技术构建的一种版权保护平台,能够实现对数字资源的版权(或称为产权)的全生命周期的保护。通过至信链能快速实现版权登记,可对数字版权内容防伪追溯,预防侵权。基于至信链能够实现对原创作品的确权、存证和维权。
示例性地,本申请实施例提供的密钥管理方法涉及区块链技术。区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链账号信息对应关系维护(权限管理)等。基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储。
智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能。运营模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、查看网络情况、查看节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
图1示出了本申请实施例提供的一种密钥管理方法的实施环境的示意图。该实施环境可以包括:目标设备11和数据库12。
目标设备11能够根据本申请实施例提供的密钥管理方法对交互对象的公钥和私钥进行管理,以将交互对象的公钥和私钥中的至少一个以密文的形式存储在数据库12中,从而提高安全性。其中,交互对象的公钥和私钥为属于交互对象的一个密钥对,用于标识交互对象的身份。不同的交互对象具有不同的公私钥对。示例性地,目标设备11可以为交互对象的终端,也可以为与交互对象的终端建立有通信连接的服务器,本申请实施例对此不加以限定。
示例性地,交互对象的终端中安装有目标应用程序,与交互对象的终端建立有通信连接的服务器能够为目标应用程序提供后台服务。示例性地,服务器能够提供的服务的类型可以根据经验设置,或者根据实际的应用需求、目标应用程序的类型等灵活调整,本申请实施例对此不加以限定。示例性地,对于目标应用程序为一种视频播放类应用程序的情况,服务器能够提供的服务包括但不限于视频播放服务、身份验证服务、将信息记录到区块链上的服务等。
数据库12用于存储与密钥相关的数据,示例性地,与密钥相关的数据包括但不限于交互对象具有的密钥的相关数据(如,交互对象具有的公钥的密文、私钥的密文等)、用于对交互对象的公钥的明文以及私钥的明文进行加密的密钥的相关数据(如,第一密钥的明文的标识信息、第二密钥的密文等)。
示例性地,目标设备11可以将数据存储在数据库12中,也可以从数据库12中提取数据。示例性地,数据库12可以由一个或多个计算机设备维护。该一个或多个计算机设备可以包括目标设备11,也可以不包括目标设备11。
示例性地,终端可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如PC(PersonalComputer,个人计算机)、手机、智能手机、PDA(Personal Digital Assistant,个人数字助手)、可穿戴设备、PPC(Pocket PC,掌上电脑)、平板电脑、智能车机、智能电视、智能音箱、车载终端等。服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
本领域技术人员应能理解上述目标设备11和数据库12仅为举例,其他现有的或今后可能出现的目标设备或数据库如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
基于上述图1所示的实施环境,本申请实施例提供一种密钥管理方法,以该方法应用于目标设备11为例。如图2所示,本申请实施例提供的密钥管理方法可以包括如下步骤201至步骤203。
在步骤201中,获取第一对象的对象密钥的明文,对象密钥包括第一对象的公钥和私钥中的至少一个,第一对象的公钥的明文用于生成第一对象在目标区块链上对应的区块链账号信息,第一对象的私钥的明文用于对第一对象的待记录在目标区块链上的目标信息进行签名。
第一对象是指与目标应用程序进行交互的任一交互对象,目标设备可以为第一对象的安装有目标应用程序的终端,也可以为与第一对象的终端建立有通信连接的用于为目标应用程序提供后台服务的服务器。目标应用程序的类型根据经验设置,或者根据实际的应用场景灵活调整,本申请实施例对此不加以限定,示例性地,目标应用程序的类型可以为视频播放类应用程序、音频播放类应用程序等。
第一对象的对象密钥是指第一对象具有的需要以密文的方式存储在数据库中密钥,第一对象的密钥包括第一对象的公钥和私钥中的至少一个,也就是说,第一对象的对象密钥可以是指第一对象的公钥,也可以是指第一对象的私钥,也可以包括第一对象的公钥和私钥。第一对象的对象密钥的具体情况可以灵活设定,本申请实施例对此不加以限定。
第一对象的公钥的明文和第一对象的私钥的明文是第一对象在当前时刻具有的一个密钥对。示例性地,第一对象的公钥的明文和私钥的明文可以不随时间戳的变化而变化,也可以随时间戳的变化有所变化。在示例性实施例中,对于第一对象的公钥的明文和私钥的明文随时间戳的变化有所变化的情况,在获取新的公钥的明文和私钥的明文后,删除历史的公钥的明文和私钥的明文,以避免冲突。需要说明的是,公私钥对是对象间隔离的密钥对,也就是说,对于不同的交互对象而言,公私钥对是不同。
第一对象的公钥的明文和私钥的明文的作用包括:第一对象的公钥的明文用于生成第一对象在目标区块链上对应的区块链账号信息,第一对象的私钥的明文用于对第一对象的待记录在目标区块链上的目标信息进行签名。本申请实施例对目标区块链的类型不加以限定,可以根据实际的应用场景灵活选定。示例性地,目标区块链为用于记录数字资源相关信息的区块链,示例性地,数字资源相关信息包括但不限于数字资源的购买信息、数字资源的持有者变更信息等。当然,目标区块链还可以为用于记录其他信息的区块链,如,用于记录与游戏相关的信息的区块链等。
第一对象在目标区块链上对应的区块链账号信息用于标识第一对象在目标区块链上的唯一身份,第一对象的需要记录在目标区块链上的信息均会与第一对象在目标区块链上对应的区块链账号信息对应存储。目标信息为第一对象对应的待记录到目标区块链上的信息。目标信息的类型与目标区块链的类型有关,本申请实施例对此不加以限定。示例性地,以目标区块链为记录数字资源相关信息的区块链为例,则目标信息为第一对象产生的与数字资源相关的信息。
第一对象的对象密钥的明文是指第一对象的对象密钥的没有进行加密的原始信息。若直接将对象密钥的明文存储在数据库中,会导致对象密钥容易泄漏,所以,本申请实施例中将对象密钥以密文的方式存储在数据库中,提高对象密钥的安全性。
在一种可能实现方式中,在获取第一对象的对象密钥的明文之前,还包括:向公私钥对生成设备发送公私钥对生成请求,公私钥对生成请求包括第一对象的标识信息,公私钥对生成设备用于响应于公私钥对生成请求,生成第一对象的公钥的明文和私钥的明文,返回公钥的明文和私钥的明文;接收公私钥对生成设备返回的公钥的明文和私钥的明文。
在此种方式下,目标设备通过与公私钥对生成设备进行交互获取第一对象的公钥的明文和私钥的明文,有利于节省目标设备的计算资源。示例性地,公私钥对生成设备是指具有生成交互对象的公私钥对的明文的功能的设备,示例性地,公私钥对生成设备可以是区块链系统中的一个区块链节点设备,也可以是未处于区块链系统中的设备等,本申请实施例对此不加以限定。
示例性地,目标设备向公私钥对生成设备发送公私钥对生成请求的实现方式为:目标设备调用公私钥对生成SDK(Software Development Kit,软件开发工具包),向公私钥对生成设备发送公私钥对生成请求。该公私钥对生成SDK集成有生成公私钥对的明文的功能。示例性地,公私钥对生成设备为区块链系统中的一个区块链节点设备,示例性地,该区块链节点设备配置可以有目标区块链。
公私钥对生成请求包括第一对象的标识信息,以便于公私钥对生成设备得知需要生成哪个交互对象的公私钥对。公私钥对生成设备在接收到公私钥对生成请求后,响应于公私钥对生成请求,生成第一对象的公钥的明文以及私钥的明文。在生成第一对象的公钥的明文以及私钥的明文后,将第一对象的公钥的明文和私钥的明文返回目标设备,从而使得目标设备接收公私钥对生成设备返回的公钥的明文和私钥的明文。本申请实施例对公私钥对生成设备生成第一对象的公钥的明文和私钥的明文所采用的算法不加以限定,可以由技术人员预先编写设置。
示例性地,在接收公私钥对生成设备返回的公钥的明文和私钥的明文以及确定第一对象的公钥和私钥中的哪个或哪些为对象密钥后,能够从接收到的公钥的明文和私钥的明文中,提取出对象密钥的明文,从而获取到对象密钥的明文。
在示例性实施例中,获取对象密钥的明文的方式还可以为:向对象密钥生成设备发送对象密钥生成请求,对象密钥生成请求包括第一对象的标识信息,对象密钥生成设备用于响应于对象密钥生成请求,生成第一对象的对象密钥的明文,返回对象密钥的明文;接收对象密钥生成设备返回的对象密钥的明文。
在示例性实施例中,获取对象密钥的明文的方式还可以为包括:目标设备利用密钥生成算法,获取第一对象的对象密钥的明文。此种方式下,对象密钥的明文在本地获取得到,无需与其他设备进行交互,有利于提高效率。密钥生成算法用于生成对象密钥的明文,根据经验设置,或者根据应用场景灵活调整,本申请实施例对此不加以限定。在示例性实施例中,密钥生成算法的输入参数包括第一对象的标识信息,示例性地,除包括第一对象的标识信息外,密钥生成算法的输入参数还可以包括当前时间戳等信息。
在步骤202中,基于对象密钥的明文,获取对象密钥的密文;其中,对象密钥的密文为密钥管理服务设备利用第一密钥的明文对对象密钥的明文进行加密后得到的密文,或者,对象密钥的密文为本地利用第二密钥的明文对对象密钥的明文进行加密后得到的密文。
在获取对象密钥的明文后,基于对象密钥的明文,获取对象密钥的密文,以便于将对象密钥以密文的方式存储在数据库中。示例性地,对象密钥的密文有两种情况,从而能够提高获取对象密钥的密文的灵活性,该两种情况为:对象密钥的密文为密钥管理服务设备利用第一密钥的明文对对象密钥的明文进行加密后得到的密文;或者,对象密钥的密文为本地利用第二密钥的明文对对象密钥的明文进行加密后得到的密文。需要说明的是,本申请实施例中提到的本地是指目标设备本地。
密钥管理服务设备为用于提供密钥管理服务的设备,简称为KMS。示例性地,密钥管理服务设备为部署在云端的设备。第一密钥的明文为依据密钥管理服务设备的能力生成且供密钥管理服务设备使用的密钥的明文,示例性地,第一密钥是指CMK。示例性地,第一密钥为全局唯一的密钥,也就是说,对于不同的交互对象而言,第一密钥是相同的。第二密钥的明文为本地能够使用的密钥的明文。示例性地,第二密钥与第一密钥不同。示例性地,第二密钥可以为全局唯一的密钥,也可以为对象间隔离的密钥,本申请实施例对此不加以限定。示例性地,对象间隔离是指对于不同的交互对象而言,第二密钥不同。
在示例性实施例中,如图3所示,对于对象密钥的密文为密钥管理服务设备利用第一密钥的明文对对象密钥的明文进行加密后得到的密文情况,基于对象密钥的明文,获取对象密钥的密文的实现过程包括以下步骤2021和步骤2022。
步骤2021:向密钥管理服务设备发送第一加密请求,第一加密请求包括对象密钥的明文和第一密钥的明文的标识信息;密钥管理服务设备用于响应于第一加密请求,利用第一密钥的明文对对象密钥的明文进行加密,得到对象密钥的密文,返回对象密钥的密文。
在获取第一对象的对象密钥的明文后,目标设备向密钥管理服务设备发送包括对象密钥的明文和第一密钥的明文的标识信息的第一加密请求,该第一加密请求用于请求密钥管理服务设备利用第一密钥的明文对对象密钥的明文进行加密。示例性地,第一密钥的明文的标识信息由密钥管理服务设备生成并返回目标设备,目标设备可以将第一密钥的明文的标识信息存储在本地存储中,也可以将第一密钥的明文的标识信息存储在数据库中。
对于目标设备将第一密钥的明文的标识信息存储在本地存储中的情况,目标设备在向密钥管理服务设备发送第一加密请求之前,需要先从本地存储中提取第一密钥的明文的标识信息。对于目标设备将第一密钥的明文的标识信息存储在数据库中的情况,目标设备在向密钥管理服务设备发送第一加密请求之前,需要先从数据库中提取第一密钥的明文的标识信息。
在示例性实施例中,以第一密钥的明文的标识信息从数据库中提取得到为例,则需要将第一密钥的明文的标识信息存储在数据库中。示例性地,将第一密钥的明文的标识信息存储在数据库中的过程包括:目标设备向密钥管理服务设备发送第一密钥生成请求,密钥管理服务设备用于响应于第一密钥生成请求,生成第一密钥的明文,返回第一密钥的明文的标识信息;接收密钥管理服务设备返回的第一密钥的明文的标识信息,将第一密钥的明文的标识信息存储在数据库中。
在示例性实施例中,密钥管理服务设备提供有第一密钥的创建接口,目标设备通过调用第一密钥的创建接口向密钥管理服务设备发送第一密钥生成请求。示例性地,第一密钥的创建接口是指CreatKey接口。示例性地,第一密钥生成请求的形式可以是指与第一密钥的创建接口匹配的形式,该形式根据经验设置,或者根据实际的应用需求灵活调整,本申请实施例对此不加以限定。
在示例性实施例中,目标设备向密钥管理服务设备发送第一密钥生成请求的时机可以是目标设备启动时,还可以是时间戳到达指定时间戳时等,本申请实施例对此不加以限定。
密钥管理服务设备在接收到第一密钥生成请求后,响应于第一密钥生成请求,生成第一密钥的明文,然后将第一密钥的明文的标识信息返回目标设备。第一密钥的明文的标识信息用于对第一密钥的明文进行标识,本申请实施例对第一密钥的明文的标识信息的类型不加以限定,可以由密钥管理服务设备自行设定。示例性地,第一密钥为CMK,第一密钥的明文的标识信息可以记为CMKKeyID。
在密钥管理服务设备向目标设备返回第一密钥的明文的标识信息后,目标设备接收密钥管理服务设备返回的第一密钥的明文的标识信息,然后将第一密钥的明文的标识信息存储在数据库中,以便于后续需要时直接从数据库中提取第一密钥的明文的标识信息。
在示例性实施例中,目标设备在接收到密钥管理服务设备返回的第一密钥的明文的标识信息后,还可以将第一密钥的明文的标识信息存储在本地存储中,则后续可以直接从本地存储中提取第一密钥的明文的标识信息。示例性地,本地存储是指目标设备的外部存储空间(如,磁盘),本地存储中的数据在目标设备掉电之后不会消失。
在示例性实施例中,目标设备在接收到密钥管理服务设备返回的第一密钥的明文的标识信息后,还可以将第一密钥的明文的标识信息缓存在内存中,若在需要发送第一解密请求时内存中存在第一密钥的明文的标识信息,则可以直接读取到内存中的第一密钥的明文的标识信息。示例性地,内存是指目标设备具有的内部存储空间,内存中的数据在目标设备掉电之后会消失。
在示例性实施例中,密钥管理服务设备提供有加密接口,该加密接口用于提供加密功能。目标设备通过调用加密接口向密钥管理服务设备发送第一加密请求。示例性地,加密接口是指Encrypt接口。示例性地,第一加密请求的形式可以是指与加密接口匹配的形式,该形式根据经验设置,或者根据实际的应用需求灵活调整,本申请实施例对此不加以限定。
密钥管理服务设备在接收到第一加密请求后,响应于第一加密请求,利用第一密钥的明文对对象密钥的明文进行加密,得到对象密钥的密文,返回对象密钥的密文。示例性地,对象密钥的密文与对象密钥的明文的关系可以表示为:对象密钥的密文=Encrypt(第一密钥的明文+对象密钥的明文)。
示例性地,密钥管理服务设备利用第一密钥的明文对对象密钥的明文进行加密,得到对象密钥的密文的方式包括:将第一密钥的明文和对象密钥的明文作为参考加密算法的加密函数的输入参数,运行参考加密算法的加密函数,将运行结果作为对象密钥的明文。参考加密算法可以为与加密接口绑定的预先设置的算法,本申请实施例对此不加以限定。
步骤2022:接收密钥管理服务设备返回的对象密钥的密文。
在密钥管理服务设备将对象密钥的密文返回目标设备后,目标设备接收密钥管理服务设备返回的对象密钥的密文。
在上述步骤2021和步骤2022所述的实现方式下,目标设备通过与密钥管理服务设备进行交互获取对象密钥的密文,对对象密钥的明文进行加密的过程在密钥管理服务设备侧执行,有利于节省目标设备的计算资源。
在示例性实施例中,对于对象密钥的密文为本地利用第二密钥的明文对对象密钥的明文进行加密后得到的密文情况,基于对象密钥的明文,获取对象密钥的密文的过程包括:利用第二密钥的明文对对象密钥的明文进行加密,得到对象密钥的密文。此种方式下,获取对象密钥的密文的过程在本地完成,无需与密钥管理服务设备进行交互,有利于提高效率,减少对密钥管理服务设备的单点依赖。
在示例性实施例中,目标设备利用第二密钥的明文对对象密钥的明文进行加密的方式可以根据经验设置,或者根据应用场景灵活调整,本申请实施例对此不加以限定。示例性地,目标设备基于第一加密算法的加密函数,利用第二密钥的明文对对象密钥的明文进行加密,得到对象密钥的密文。第一加密算法根据经验选定,或者根据实际的应用场景灵活调整。
示例性地,第一加密算法可以是公开的算法,也可以未公开的算法等。示例性地,第一加密算法可以是指非对称加密算法(如,RSA、ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)等),也可以是指对称加密算法(如,AES(Advanced EncryptionStandard,高级加密标准)、DES(Data Encryption Standard,数据加密标准)等)。对于第一加密算法是指对称加密算法的情况,对对象密钥的明文进行加密和对对象密钥的密文进行解密的过程均依据第二密钥的明文。
示例性地,第一加密算法是指AES256算法。则将第二密钥的明文以及对象密钥的明文作为AES256算法的加密函数的输入参数,运行AES256算法的加密函数,将运行得到的结果作为对象密钥的密文。示例性地,对象密钥的密文与对象密钥的明文的关系可以表示为:对象密钥的密文=AES256的加密函数(对象密钥的明文+第二密钥的明文)。
需要说明的是,由于对象密钥的密文可能为密钥管理服务设备利用第一密钥的明文对对象密钥的明文进行加密后得到的密文,也可能为本地利用第二密钥的明文对对象密钥的明文进行加密后得到的密文,所以,在需要获取对象密钥的密文时,可以灵活选取实现方式。示例性地,在当前的网络状态良好的情况下,可以选取通过与密钥管理服务设备进行交互获取对象密钥的密文的实现方式,以节省目标设备的计算资源;在当前的网络状态不佳的情况下,可以选取本地获取对象密钥的密文的实现方式,避免出现因网络状态不佳导致无法成功与密钥管理服务设备进行交互的问题。
示例性地,在利用第二密钥的明文对对象密钥的明文进行加密之前,需要先获取第二密钥的明文。获取第二密钥的明文的方式与第二密钥的明文的生成方式,以及第二密钥是以明文的形式存储在目标设备的本地存储中,还是以密文的形式存储在数据库中等有关,本申请实施例对此不加以限定。
在示例性实施例中,第二密钥以密文的形式存储在数据库中,此种情况下,获取第二密钥的明文的过程以下步骤1和步骤2。
步骤1:从数据库中提取第二密钥的密文。
第二密钥以密文的形式存储在数据库中是指数据库中存储有第二密钥的密文,此种存储方式有利于提高第二密钥的安全性。在从数据库中提取第二密钥的密文之前,需要先将第二密钥的密文存储在数据库中。示例性地,将第二密钥的密文存储在数据库中的实现方式与第二密钥的密文的获取方式有关。
在一种可能实现方式中,第二密钥的密文由密钥管理服务设备对第二密钥的明文进行加密得到且存储在数据库中,此种情况下,第二密钥的明文是由密钥管理服务设备生成的。在示例性实施例中,密钥管理服务设备基于第一密钥的明文生成第二密钥的明文,此种情况下,将第二密钥的密文存储在数据库中的过程包括以下步骤1-1至步骤1-3。
步骤1-1:向密钥管理服务设备发送第一密钥生成请求,密钥管理服务设备用于响应于第一密钥生成请求,生成第一密钥的明文,返回第一密钥的明文的标识信息;接收密钥管理服务设备返回的第一密钥的明文的标识信息。
该步骤1-1的实现过程参见将第一密钥的明文的标识信息存储在数据库中的相关步骤的实现过程,此处不再加以赘述。
在示例性实施例中,目标设备在接收到密钥管理服务设备返回的第一密钥的明文的标识信息后,可以将第一密钥的明文的标识信息存储在数据库中,也可以存储在本地存储中,本申请实施例对此不加以限定。
步骤1-2:向密钥管理服务设备发送第二密钥生成请求,第二密钥生成请求包括第一密钥的明文的标识信息,密钥管理服务设备用于响应于第二密钥生成请求,基于第一密钥的明文,生成第二密钥的明文,对第二密钥的明文进行加密得到所述第二密钥的密文,返回第二密钥的密文。
由于第二密钥的明文由密钥管理服务设备基于第一密钥的明文生成,所以需要向密钥管理服务设备发送包括第一密钥的明文的标识信息的第二密钥生成请求。第二密钥生成请求用于请求密钥管理服务设备基于第一密钥的明文生成第二密钥的明文。
密钥管理服务设备在接收到第二密钥生成请求后,响应于第二密钥生成请求,基于第一密钥的明文,生成第二密钥的明文,然后对第二密钥的明文进行加密,得到第二密钥的密文,在得到第二密钥的密文后,将第二密钥的密文返回给目标设备。需要说明的是,基于第一密钥的明文,生成第二密钥的明文的方式以及对第二密钥的明文进行加密的方式均由密钥管理服务设备确定,本申请实施例对此不加以限定。示例性地,第二密钥可以是指DEK(Data Encryption Key,数据加密密钥)。
示例性地,目标设备向密钥管理服务设备发送第二密钥生成请求的实现方式包括:目标设备调用第二密钥生成接口向密钥管理服务设备发送第二密钥生成请求。示例性地,第二密钥生成接口是指GenerateDataKey接口。示例性地,第二密钥生成请求的形式可以是指与第二密钥生成接口匹配的形式,该形式根据经验设置,或者根据实际的应用需求灵活调整,本申请实施例对此不加以限定。
在示例性实施例中,密钥管理服务设备除了可以返回第二密钥的密文外,还可以返回第二密钥的明文,以使目标设备将第二密钥的明文缓存到内存中,也即临时存储第二密钥的明文。需要说明的是,若目标设备掉电,则临时存储在目标设备的内存中的第二密钥的明文将会被删除。
步骤1-3:将第二密钥的密文存储在数据库中。
在密钥管理服务设备返回第二密钥的密文后,目标设备可以接收第二密钥的密文,目标设备在接收到第二密钥的密文后,将第二密钥的密文存储在数据库中,以便于后续提取使用。
在示例性实施例中,第一密钥的明文并不是全局唯一的,则第二密钥的密文也不是全局唯一的,则可以将第二密钥的密文与第一密钥的明文的标识信息对应存储在数据库中。此种情况下,目标设备从数据库中提取第二密钥的密文的方式为:基于第一密钥的明文的标识信息,从数据库中提取第二密钥的密文。示例性地,第一密钥的明文的标识信息可以从数据库中提取,也可以从本地存储中提取等。
在示例性实施例中,第一密钥的明文是全局唯一的,则第二密钥的密文也是全局唯一的,则可以直接将第二密钥的密文存储在数据库中。此种情况下,目标设备能够直接从数据库中提取第二密钥的密文。当然,也可以将第二密钥的密文与第一密钥的明文的标识信息对应存储在数据库中。
在示例性实施例中,对于第二密钥的密文是全局唯一的情况,上述将第二密钥的密文存储在数据库中的操作仅需执行一次。也就是说,通过调用密钥管理服务设备的密钥生成功能,生成一对公用的第二密钥的明文和第二密钥的密文,第二密钥的密文存储到数据库中,第二密钥的明文可以放在内存中用来本地加解密。若数据库中已经存储有第二密钥的密文,则无需执行上述将第二密钥的密文存储在数据库中的全部实现过程。
在示例性实施例中,密钥管理服务设备可以直接生成第二密钥的明文,此种情况下,将第二密钥的密文存储在数据库中的过程包括:向密钥管理服务设备发送第二密钥生成请求,密钥管理服务设备用于响应于第二密钥生成请求,生成第二密钥的明文,对第二密钥的明文进行加密得到第二密钥的密文,返回第二密钥的密文;目标设备将第二密钥的密文存储在数据库中。
在示例性实施例中,密钥管理服务设备还可以基于第一对象的标识信息生成第二密钥的明文。此种情况下,将第二密钥的密文存储在数据库中的过程包括:向密钥管理服务设备发送包括第一对象的标识信息的第二密钥生成请求,密钥管理服务设备用于响应于第二密钥生成请求,基于第一对象的标识信息生成第二密钥的明文,对第二密钥的明文进行加密得到第二密钥的密文,返回第二密钥的密文;目标设备将第二密钥的密文存储在数据库中。
在一种可能实现方式中,第二密钥的密文由目标设备在本地对第二密钥的明文进行加密得到且存储在数据库中,此种情况下,第二密钥的明文是由标服务设备在本地生成的。在示例性实施例中,目标设备基于第一对象的标识信息生成第二密钥的明文,此种情况下,将第二密钥的密文存储在数据库中的过程包括:基于第一对象的标识信息,生成第二密钥的明文,对第二密钥的明文进行加密,得到第二密钥的密文;将第二密钥的密文与第一对象的标识信息对应存储在数据库中。
目标设备基于第一对象的标识信息生成第二密钥的明文的方式根据经验设置,或者根据实际的应用场景灵活调整,本申请实施例对此不加以限定,示例性地,目标设备利用MD5(Message Digest 5,信息摘要5)算法基于第一对象的标识信息以及当前时间戳,生成第二密钥的明文,也即,第二密钥的明文=MD5(第一对象的标识信息+当前时间戳)。当前时间戳是指生成第二密钥的明文时的时间戳。示例性地,基于第一对象的标识信息生成的第二密钥的明文为第一对象对应的第二密钥的明文,此种方式能够生成对象间隔离的加解密密钥。
对第二密钥的明文进行加密,得到第二密钥的密文的方式根据经验设置,或者根据应用场景灵活调整,本申请实施例对此不加以限定。示例性地,基于AES256算法的加密函数,利用参考密钥的明文对第二密钥的明文进行加密,得到第二密钥的密文,也即,第二密钥的密文=AES256的加密函数(第二密钥的明文+参考密钥的明文)。参考密钥可以根据经验灵活选定,也可以根据实际的应用场景灵活调整,本申请实施例对此不加以限定。
由于第二密钥的密文是与第一对象的标识信息存在对应关系的,所以在得到第二密钥的密文后,将第二密钥的密文与第一对象的标识信息对应存储在数据库中。此种存储方式下,从数据库中提取第二密钥的密文的方式包括:基于第一对象的标识信息,从数据库中提取第二密钥的密文。
示例性地,基于第一对象的标识信息生成第二密钥的明文的过程可以由目标设备本地的加解密密钥生成模块实现,此种生成第二密钥的明文的方式,能够不依赖密钥管理服务设备,且能够实现对象间加解密密钥隔离,将加解密密钥生成功能本地化,无网络请求,无接口成本,同时也满足合规要求,能够应用于针对安全级别要求高、用户鉴权和用户核心资产保护等场景,实现高效生成用户的加解密密钥,且能够安全合规地存储。
在示例性实施例中,目标设备基于预先配置的密钥生成脚本生成第二密钥的明文,此种情况下,将第二密钥的密文存储在数据库中的过程包括:目标设备基于密钥生成脚本生成第二密钥的明文,对第二密钥的明文进行加密,得到第二密钥的密文,将第二密钥的密文存储在数据库中。示例性地,密钥生成脚本为预先配置的用于生成第二密钥的明文的脚本,密钥生成脚本根据经验设置,或者根据实际的应用场景灵活调整等,本申请实施例对此不加以限定。在示例性实施例中,对于目标设备基于预先配置的密钥生成脚本生成第二密钥的明文的情况,第二密钥的明文以及第二密钥的密文对不同的交互对象而言是固定不变的,也就是说,第二密钥的明文以及第二密钥的密文为全局唯一的,可以实现不依赖密钥管理服务设备,直接本地生成所有交互对象共享的加解密密钥。
在示例性实施例中,目标设备在生成第二密钥的明文后,可以将第二密钥的明文缓存在内存中。
步骤2:基于第二密钥的密文,获取第二密钥的明文。
在从数据库中提取出第二密钥的密文后,基于第二密钥的密文,获取第二密钥的明文。基于第二密钥的密文,获取第二密钥的明文的方式与第二密钥的密文是由密钥管理服务设备对第二密钥的明文进行加密得到,还是在本地对第二密钥的明文进行加密得到有关。
在示例性实施例中,在第二密钥的密文是由密钥管理服务设备对第二密钥的明文进行加密得到且存储在数据库中的情况下,基于第二密钥的密文,获取第二密钥的明文的过程包括:向密钥管理服务设备发送第一解密请求,第一解密请求包括第二密钥的密文,密钥管理服务设备用于响应于第一解密请求,对第二密钥的密文进行解密,得到第二密钥的明文,返回第二密钥的明文;接收密钥管理服务设备返回的第二密钥的明文。
第一解密请求用于请求密钥管理服务设备对第二密钥的密文进行解密。示例性地,密钥管理服务设备对第二密钥的密文进行解密的方式与密钥管理服务设备对第二密钥的明文进行加密的方式有关,本申请实施例对此不加以限定。
示例性地,目标设备向密钥管理服务设备发送第一解密请求的实现方式包括:目标设备调用解密接口向密钥管理服务设备发送第一解密请求。示例性地,解密接口是指Decrypt接口。示例性地,第一解密请求的形式可以是指与解密接口匹配的形式,该形式根据经验设置,或者根据实际的应用需求灵活调整,本申请实施例对此不加以限定。
在示例性实施例中,在第二密钥的密文是在本地对第二密钥的明文进行加密得到且存储在数据库中的情况下,基于第二密钥的密文,获取第二密钥的明文的过程包括:对第二密钥的密文进行解密,得到第二密钥的明文。对第二密钥的密文进行解密得到第二密钥的明文的方式与对第二密钥的明文进行加密得到第二密钥的密文的方式有关,本申请实施例对此不加以限定。
在示例性实施例中,第二密钥以明文的形式存储在目标设备的本地存储中,此种情况下,获取第二密钥的明文的过程包括:从本地存储中提取第二密钥的明文。此种方式获取第二密钥的明文的效率较高。
在从本地存储中提取第二密钥的明文之前,需要先将第二密钥的明文存储在本地存储中。示例性地,将第二密钥的明文存储在本地存储中可以是指将第二密钥的明文配置到本地存储中的配置文件中。
在示例性实施例中,目标设备将第二密钥的明文存储在本地存储中的实现方式包括:目标设备在基于第一对象的标识信息或基于密钥生成脚本生成第二密钥的明文后,将第二密钥的明文与第一对象的标识信息对应存储在本地存储中。在示例性实施例中,目标设备将第二密钥的明文存储在本地存储中的实现方式包括:目标设备在接收到密钥管理服务设备返回的第二密钥的明文后,将第二密钥的明文存储在本地存储中。
需要说明的是,以上所述获取第二密钥的明文的方式均是指在需要获取第二密钥的明文时,目标设备的内存中不存在第二密钥的明文的情况下的方式。在示例性实施例中,若在需要获取第二密钥的明文时,目标设备的内存中存在第二密钥的明文,则可以直接读取出内存中的第二密钥的明文。
本申请实施例对内存中存在第二密钥的明文的情况不加以限定。示例性地,内存中存在第二密钥的明文的情况可以是指目标设备接收密钥管理服务设备返回的第二密钥的明文并将第二密钥的明文缓存在内存中,且内存中的数据未被清除。示例性地,内存中存在第二密钥的明文的情况还可以是指目标设备将本地生成的第二密钥的明文缓存在内存中且内存中的数据未被清除。
示例性地,内存中存在第二密钥的明文的情况还可以是指目标设备将基于第二密钥的密文通过与密钥管理服务设备进行交互获取的第二密钥的明文或者基于第二密钥的密文本地解密得到的第二密钥的明文缓存在内存中,且内存中的数据未被清除。示例性地,内存中存在第二密钥的明文的情况还可以是指目标设备将从本地存储中提取的第二密钥的明文缓存在内存中,且内存中的数据未被清除。
在步骤203中,将对象密钥的密文与第一对象的标识信息对应存储在数据库中。
第一对象的标识信息用于对第一对象进行标识,本申请实施例对第一对象的标识信息的类型不加以限定,示例性地,第一对象的标识信息包括但不限于第一对象的身份证件号码、通信号码等。示例性地,第一对象的标识信息可以是指第一对象在目标应用程序中注册的账号。
在获取对象密钥的密文后,将对象密钥的密文与第一对象的标识信息对应存储在数据库中,以便于后续能够基于第一对象的标识信息,从数据库中提取对象密钥的密文。将对象密钥的密文与第一对象的标识信息对应存储在数据库中,能够实现将对象密钥以密文的形式存储在数据库中,以密文的形式存储在数据库中的对象密钥不容易泄露,有利于提高对象密钥的安全性。
数据库用于存储与密钥相关的数据,示例性地,与密钥相关的数据包括但不限于交互对象具有的密钥的相关数据(如,交互对象具有的公钥的密文、私钥的密文等)、用于对交互对象的公钥的明文以及私钥的明文进行加密的密钥的相关数据(如,第一密钥的明文的标识信息、第二密钥的密文等)。本申请实施例对数据库的类型不加以限定,可以根据经验选取,也可以根据实际的应用需求灵活调整。示例性地,数据库可以为关系型数据库,也可以为非关系型数据库等。示例性地,非关系型数据库具体可以是指Redis(一种内存数据库),以提高数据提取的效率。示例性地,数据库还可以是指分布式数据库。
示例性地,对于对象密钥为第一对象的公钥的情况,可以直接将第一对象的私钥的明文与第一对象的标识信息对应存储在数据库中;对于对象密钥为第一对象的私钥的情况,可以直接将第一对象的公钥的明文与第一对象的标识信息对应存储在数据库中。
在示例性实施例中,在将对象密钥的密文与第一对象的标识信息对应存储在数据库中之后,还包括:基于第一对象的标识信息,从数据库中提取对象密钥的密文;基于对象密钥的密文,获取对象密钥的明文。
示例性地,在对象密钥的密文为密钥管理服务设备利用第一密钥的明文对对象密钥的明文进行加密后得到的密文情况下,基于对象密钥的密文,获取对象密钥的明文的过程包括:向密钥管理服务设备发送第二解密请求,第二解密请求包括第一密钥的明文的标识信息以及对象密钥的密文,密钥管理服务设备用于响应于第二解密请求,利用第一密钥的明文对对象密钥的密文进行解密,得到对象密钥的明文,返回对象密钥的明文;接收密钥管理服务设备返回的对象密钥的明文。
第二解密请求用于请求密钥管理服务设备利用第一密钥的明文对对象密钥的密文进行解密,所以,第二解密请求需要包括第一密钥的明文的标识信息以及对象密钥的密文。第一密钥的明文的标识信息用于对第一密钥的明文进行标识。
在示例性实施例中,密钥管理服务设备提供有解密接口,该解密接口用于提供解密功能。目标设备通过调用解密接口向密钥管理服务设备发送第二解密请求。示例性地,解密接口是指Decrypt接口。示例性地,第二解密请求的形式可以是指与解密接口匹配的形式,该形式根据经验设置,或者根据实际的应用需求灵活调整,本申请实施例对此不加以限定。
密钥管理服务设备在接收到第二解密请求后,响应于第二解密请求,利用第一密钥的明文对对象密钥的密文进行解密,得到对象密钥的明文。密钥管理服务设备在得到对象密钥的明文后,将对象密钥的明文返回目标设备。示例性地,对象密钥的明文与对象密钥的密文的关系可以表示为:对象密钥的明文=Decrypt(第一密钥的明文+对象密钥的密文)。
示例性地,密钥管理服务设备利用第一密钥的明文对对象密钥的密文进行解密,得到对象密钥的明文的方式包括:将第一密钥的明文和对象密钥的密文作为解密接口绑定的解密函数的输入参数,运行解密接口绑定的解密函数,将运行结果作为对象密钥的明文。解密接口绑定的解密函数可以根据经验设置,或者根据实际的应用需求灵活调整,本申请实施例对此不加以限定。
在密钥管理服务设备将对象密钥的明文返回目标设备后,目标设备接收密钥管理服务设备返回的对象密钥的明文。在此种实现方式下,目标设备通过与密钥管理服务设备进行交互,实现基于对象密钥的密文,获取对象密钥的明文的过程。此种方式有利于节省目标设备的计算资源。
在示例性实施例中,在对象密钥的密文为本地利用第二密钥的明文对对象密钥的明文进行加密后得到的密文情况下,基于对象密钥的密文,获取对象密钥的明文的过程包括:利用第二密钥的明文对对象密钥的密文进行解密,得到对象密钥的明文。
由于对象密钥的密文是本地利用第二密钥的明文对对象密钥的明文进行加密后得到的密文,所以,在获取对象密钥的密文后,目标设备能够在本地利用第二密钥的明文对对象密钥的密文进行解密,得到对象密钥的明文。
示例性地,目标设备利用第二密钥的明文对对象密钥的密文进行解密的方式可以根据经验设置,或者根据应用场景灵活调整,本申请实施例对此不加以限定。示例性地,目标设备基于目标加密算法的解密函数,利用第二密钥的明文对对象密钥的密文进行解密,得到对象密钥的明文。目标加密算法根据经验选定,或者根据实际的应用场景灵活调整,示例性地,目标加密算法是指对称加密算法,对对象密钥的明文进行加密和对对象密钥的密文进行解密的过程均依据第二密钥的明文。
示例性地,基于目标加密算法的解密函数,利用第二密钥的明文对对象密钥的密文进行解密,得到对象密钥的明文的过程包括:将第二密钥的明文以及对象密钥的密文作为目标加密算法的解密函数的输入参数,运行目标加密算法的解密函数,将运行得到的结果作为对象密钥的明文。示例性地,目标加密算法是指AES256。对象密钥的明文与对象密钥的密文的关系可以表示为:对象密钥的明文=AES256的解密函数(对象密钥的密文+第二密钥的明文)。
在利用第二密钥的明文对对象密钥的密文进行解密之前,需要先获取第二密钥的明文。获取第二密钥的明文的实现方式参见步骤202中介绍的在利用第二密钥的明文对对象密钥的明文进行加密之前获取第二密钥的明文的实现方式,此次不再加以赘述。
在示例性实施例中,在获取对象密钥的明文后,能够基于对象密钥的明文与区块链节点设备进行交互。示例性地,在对象密钥的不同情况下,基于对象密钥的明文与区块链节点设备进行交互的方式有所不同。区块链节点设备是指配置有目标区块链的节点设备。
在示例性实施例中,对象密钥包括第一对象的公钥,此种情况下,基于对象密钥的明文与区块链节点设备进行交互的过程包括:向区块链节点设备发送账号生成请求,账号生成请求包括公钥的明文,区块链节点设备用于响应于账号生成请求,基于公钥的明文,生成第一对象在目标区块链上对应的区块链账号信息,返回区块链账号信息;接收区块链节点设备返回的区块链账号信息。账号生成请求用于请求区块链节点设备生成第一对象的区块链账号信息。
第一对象在目标区块链上对应的区块链账号信息是基于第一对象的公钥的明文生成的,所以,目标设备要想获取第一对象的区块链账号信息,需要向区块链节点设备发送包括公钥的明文的账号生成请求。
在示例性实施例中,区块链节点设备可以是指维护目标区块链的区块链系统中用于生成交互对象的区块链账号信息的节点设备,目标设备记录有区块链节点设备的设备标识信息,然后可以基于该设备标识信息,向相应的区块链节点设备发送账号生成请求。
本申请实施例对区块链节点设备基于公钥的明文生成第一对象的区块链账号信息的方式不加以限定,在示例性实施例中,基于公钥的明文,利用目标算法生成第一对象的区块链账号信息。在示例性实施例中,目标算法为区块链节点设备记录的未公开的算法,以保证区块链账号信息的安全性。
区块链节点设备在生成区块链账号信息后,将区块链账号信息返回目标设备,以使目标设备接收区块链节点设备返回的区块链账号信息。在示例性实施例中,目标设备在接收区块链账号信息后,可以将区块链账号信息与第一对象的对象标识进行绑定,以便于在将第一对象的需要记录在目标区块链上的信息发送给区块链节点设备时,将该区块链账号信息与需要记录的信息一并发送,从而使区块链节点设备对需要记录的信息进行验证,并且在验证通过后将需要记录的信息与区块链账号信息对应记录在目标区块链上。
在示例性实施例中,以目标区块链为记录数字资源相关信息的区块链为例,第一对象的区块链账户信息还可以是指第一对象的数字资源地址。
在示例性实施例中,对象密钥包括第一对象的私钥,此种情况下,基于对象密钥的明文与区块链节点设备进行交互的过程包括:基于私钥的明文对目标信息进行签名,得到目标信息的签名信息;向区块链节点设备发送信息记录请求,信息记录请求包括目标信息、签名信息以及第一对象的区块链账号信息,区块链节点设备用于响应于信息记录请求,基于签名信息以及第一对象的区块链账号信息对目标信息进行验证,将验证通过的目标信息记录在目标区块链上,返回信息记录结果;接收区块链节点设备返回的信息记录结果。
在示例性实施例中,基于私钥的明文对目标信息进行签名,得到目标信息的签名信息的方式为:获取目标信息的摘要,利用私钥的明文对目标信息的摘要进行加密,将加密后得到的信息作为目标信息的签名信息。本申请实施例对获取目标信息的摘要的方式不加以限定,示例性地,利用哈希函数对目标信息进行处理,得到目标信息的摘要。
在获取签名信息后,目标设备向区块链节点设备发送信息记录请求,信息记录请求用于请求区块链节点设备将目标信息记录在目标区块链上。该信息记录请求包括目标信息、签名信息以及第一对象的区块链账号信息。第一对象的区块链账号信息用于标识第一对象在目标区块链上的身份。
示例性地,第一对象的区块链账号信息是由区块链节点设备基于第一对象的公钥的明文生成的。示例性地,第一对象的区块链账号信息可以与第一对象的标识信息对应记录在目标设备中,目标设备能够直接基于第一对象的标识信息获取第一对象的区块链账号信息。
需要说明的是,用于接收信息记录请求的区块链节点设备可以与用于接收账号生成请求的区块链节点设备可以为区块链系统的中的相同的节点设备,也可以为区块链系统中的不同的节点设备,这与区块链系统中的节点设备的功能有关,本申请实施例对此不加以限定。
区块链节点设备在接收到信息记录请求后,响应于信息记录请求,基于签名信息以及第一对象的区块链账号信息对目标信息进行验证。示例性地,第一对象的区块链账号信息是基于第一对象的公钥的明文生成的,区块链节点设备基于签名信息以及第一对象的区块链账号信息对目标信息进行验证的过程包括:区块链节点设备基于第一对象的区块链账号信息,获取第一对象的公钥的明文;利用第一对象的公钥的明文对签名信息进行解密,得到第一摘要;利用与目标设备采用的相同的摘要获取方式获取目标信息的待验证摘要;验证第一摘要与目标信息的待验证摘要是否相同。若第一摘要与目标信息的待验证摘要相同,则目标信息的验证通过;若第一摘要与目标信息的待验证摘要不相同,则目标信息的验证不通过。示例性地,上述基于签名信息实现的验证过程可以称为验签过程。
示例性地,区块链节点设备记录有第一对象的区块链账号信息与第一对象的公钥的明文的对应关系,则可以直接基于第一对象的区块链账号信息,提取第一对象的公钥的明文。示例性地,基于第一对象的公钥的明文生成第一对象的区块链账号信息的过程为一种可逆过程,区块链节点设备能够通过对第一对象的区块链账号信息进行解析,得到第一对象的公钥的明文。
区块链节点设备在确定目标信息验证通过后,将验证通过的目标信息记录在目标区块链上,返回信息记录结果。在区块链节点设备返回信息记录结果后,目标设备接收区块链节点设备返回的信息记录结果,至此,完成将目标信息记录到目标区块链上的过程。
在示例性实施例中,区块链节点设备将目标信息记录在目标区块链上的过程包括:区块链节点设备基于目标信息生成目标区块;基于共识机制将该目标区块添加至目标区块链上。
在区块链技术中,数据可以采用电子记录的形式储存在区块中,当满足打包条件时,区块链节点设备可以将目标信息打包,生成目标区块。其中,满足打包条件可以是指满足打包数据所需的时间间隔,或者满足打包数据所需的数据数量,本申请实施例对此不加以限定。在一种可能实现方式中,区块链节点设备生成目标区块的过程可以如下:
区块链节点设备对目标信息进行校验,完成校验后,将目标信息作为输入信息,将该输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到新的输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为目标区块的父区块的区块头特征值,目标区块的父区块为当前目标区块链上的区块高度最大的区块;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到目标区块。
需要说明的是,上述对目标区块生成过程的说明仅是一种区块生成方式的示例性描述,本申请实施例对具体采用哪种区块生成方式不加以限定。
区块链系统可以对该目标区块进行共识,来确定该目标区块中的数据是否准确,也就是对该目标区块中的数据进行验证。在一种可能实现方式中,区块链节点设备生成该目标区块后,可以根据区块链系统中其他节点设备的节点设备标识,将目标区块分别发送给其他节点设备,其他节点设备可以对该目标区块进行验证,并各自在该区块链系统中广播验证结果,当该区块链系统中验证结果为通过的节点设备的数量大于参考比例或者大于参考数量时,该区块链节点设备可以确定该目标区块共识通过,然后将该目标区块添加至目标区块链上。
示例性地,参考比例是指验证结果为通过的节点设备的数量占区块链系统中的所有节点设备的数量的比例,参考比例可以根据经验设置,也可以根据应用场景自由调整,本申请实施例对此不加以限定。例如,参考比例可以设置为1/3等。同样地,参考数量可以根据经验设置,也可以根据区块链系统中的所有节点设备的总数量自由调整,例如,参考数量可以设置为100等。上述共识过程可以基于共识机制实现,例如,该共识机制可以为工作量证明机制、权益证明机制等。需要说明的是,上述共识过程仅为一种示例性描述,本申请实施例对此不加以限定。
在示例性实施例中,目标设备还可以基于对象密钥的密文与未处于区块链系统中的待交互设备进行交互。目标设备基于对象密钥的明文与待交互设备进行交互的目的可以根据实际交互需求灵活设定,本申请实施例对此不加以限定。在不同的目的下,交互过程可能有所不同。
示例性地,对象密钥为第一对象的公钥,基于对象密钥的明文与待交互设备进行交互的目的可以是指使待交互设备保存第一对象的公钥,以便于后续待交互设备利用第一对象的公钥对需要发送给第一对象的信息进行加密,提高安全性,避免信息泄露。此种情况下,目标设备基于对象密钥的明文与待交互设备进行交互的过程可以为:目标设备向待交互设备发送公钥的明文,待交互对象用于保存公钥的明文,返回保存结果;目标设备接收保存结果。
示例性地,对象密钥为第一对象的私钥,基于对象密钥的明文与待交互设备进行交互的目的可以是指利用私钥的明文对需要发送给待交互对象的信息进行签名,以便于待交互信息通过验签来验证信息的可靠性。此种情况下,目标设备基于对象密钥的明文与待交互设备进行交互的过程可以为:目标设备利用私钥的明文对待发送给待交互设备的第一信息进行签名,得到第一签名,向待交互设备发送第一信息和第一签名,待交互对象用于利用第一签名以及预先存储的第一对象的公钥的明文对第一信息进行验证,验证通过后返回响应信息;目标设备接收响应信息。
示例性地,本申请实施例提供的密钥管理方法可以辅助实现区块链的接口认证和用户认证,区块链的接口认证和用户认证是区块链智能合约的核心,主要靠公私钥的签名和验签技术来实现。本申请实施例提供的密钥管理方法涉及公私钥的生成、存储、读取和使用的相关内容。
本申请实施例中,在公私钥生成环节,使用公私钥对生成SDK生成公私钥对,每个交互对象的公私钥对都不相同。密钥存储环节,需要合规安全存储,如,利用AES256算法进行加密并存储。通过远程加密或者本地利用对象间隔离的加解密密钥进行加密,能够实现合规安全存储和使用交互对象的公私钥。
示例性地,每个交互对象的公私钥对不同,交互对象的公私钥不能明文存储,需要将公私钥加密存储。公私钥加密的AES256算法利用的加解密密钥是可以所有交互对象共用,也可以对象间隔离,加解密密钥的生成和管理可以依据KMS远程管理,也可以本地生成,本地加密存储,使用时再解密。KMS远程管理有单点依赖的风险,同时还有接口耗时的问题,但是可以节省本地的计算资源。如果是本地生成,加解密更高效,但是加解密的密钥需要更合规的存储。
本申请实施例提供的密钥管理方法,获取了第一对象的公钥和/或私钥的密文,从而能够将第一对象的公钥和/或私钥以密文的方式存储在数据库中,以密文的方式存储的公钥和/或私钥不容易泄露,密钥管理的安全性较高。此外,对象密钥的密文有两种情况,获取对象密钥的密文的灵活性较高。
上述实施例是从方法步骤的角度阐述了密钥管理方法,下面从四个详细实施例的角度,阐述基于本申请实施例提供的密钥管理方法实现的四种密钥管理方案。示例性地,每个密钥管理方案均是在对象密钥包括公钥和私钥的情况下的实现方式。示例性地,每个密钥管理方案均可以包括加解密密钥生成阶段、公私钥加密阶段以及公私钥解密阶段。示例性地,公私钥加密阶段是在携带第一对象的标识信息(vuid)的公私钥对生成操作下启动的,公私钥解密阶段是在携带vuid的公钥和私钥获取操作下启动的。
第一种密钥管理方案如图4所示,在第一种密钥管理方案中,在加解密密钥生成阶段,目标设备通过调用CreatKey接口向密钥管理服务设备(KMS)发送第一密钥生成请求,密钥管理服务设备响应于第一密钥生成请求,生成第一密钥(CMK)的明文,向目标设备返回第一密钥的明文的标识信息(CMKKeyID)。CMK是全局唯一的,则CMKKeyID也是全局唯一的。目标设备在接收到CMKKeyID后,将全局唯一的CMKKeyID存储在Redis数据库中。
在公私钥加密阶段,目标设备通过调用公私钥对生成SDK向公私钥对生成设备发送公私钥对生成请求,公私钥对生成设备响应于公私钥生成请求,生成公钥的明文和私钥的明文,将公钥的明文和私钥的明文返回目标设备。目标设备在接收到公钥的明文和私钥的明文后,通过调用Encrypt接口向KMS发送包括CMKKeyID和公钥的明文的加密请求;KMS响应于该加密请求,利用CMK的明文对公钥的明文进行加密,得到公钥的密文(公钥的密文=Encrypt(公钥的明文+CMK的明文)),将公钥的密文返回目标设备。目标设备通过调用Encrypt接口向KMS发送包括CMKKeyID和私钥的明文的加密请求;KMS响应于该加密请求,利用CMK的明文对私钥的明文进行加密,得到私钥的密文(私钥的密文=Encrypt(私钥的明文+CMK的明文)),将私钥的密文返回目标设备。目标设备将公钥的密文与vuid对应存储在Redis数据库中,将私钥的密文与vuid对应存储在Redis数据库中。
在公私钥解密阶段,目标设备基于vuid从Redis数据库中提取CMKKeyID,基于vuid从Redis数据库中提取公钥的密文和私钥的密文。目标设备通过调用Decrypt接口向KMS发送公钥的密文和私钥的密文,以及CMKKeyID,KMS利用CMK的明文对公钥的密文和私钥的密文进行解密,得到公钥的明文(公钥的明文=Decrypt(公钥的密文+CMK的明文))和私钥的明文(私钥的明文=Decrypt(私钥的密文+CMK的明文)),将公钥的明文和私钥的明文返回目标设备,从而使得目标设备获取到需要使用的公钥的明文和私钥的明文。
示例性地,图4所示的密钥管理方案可以称为KMS远程加解密方案,该方案依赖KMS,目标设备启动的时候从KMS生成一个全局唯一的CMK,同时返回CMKKeyID,将CMKKeyID存储到Redis数据库中,在此步骤以后,交互对象所有的操作都依赖这个全局唯一的CMKKeyID。交互对象侧的每一次加密解密都依赖KMS,通过存储的CMKKeyID去KMS侧进行加解密。
第二种密钥管理方案如图5所示,在第二种密钥管理方案中,在加解密密钥生成阶段,目标设备通过调用CreatKey接口向KMS发送第一密钥生成请求,密钥管理服务设备响应于第一密钥生成请求,生成CMK的明文,向目标设备返回CMKKeyID,此过程只需要执行一次,如果数据库中有DEK的密文,则不用执行该过程。CMK是全局唯一的,则CMKKeyID也是全局唯一的。目标设备在接收到CMKKeyID后,通过调用GenerateDataKey向KMS发送包括CMKKeyID的第二密钥生成请求,KMS响应于第二密钥生成请求,生成DEK的明文,对DEK的明文进行加密,得到DEK的密文,将DEK的明文和DEK的密文返回目标设备。目标设备将CMKKeyID与DEK的密文对应存储在Redis数据库中,此过程只需要执行一次,如果数据库中有DEK的密文,则不用执行该过程。示例性地,DEK的明文和DEK的密文也为全局唯一的,也即所有交互对象公用KMS生成的DEK的明文和DEK的密文。
在此种加解密密钥生成阶段下,在执行公私钥加密阶段之前,还可以执行以下过程:目标设备在启动时,基于CMKKeyID从Redis数据库提取DEK的密文。通过调用Decrypt接口向KMS发送包括DEK的密文的解密请求,KMS响应于该解密请求,对DEK的密文进行解密,得到DEK的明文,将DEK的明文返回目标设备。目标设备在接收到DEK的明文后,将DEK的明文缓存到内存中,便于直接使用。
在公私钥加密阶段,目标设备通过调用公私钥对生成SDK向公私钥对生成设备发送公私钥对生成请求,公私钥对生成设备响应于公私钥对生成请求,生成公钥的明文和私钥的明文,将公钥的明文和私钥的明文返回目标设备。目标设备在接收到公钥的明文和私钥的明文后,基于AES256算法的加密函数,利用DEK的明文对公钥的明文进行加密,得到公钥的密文(公钥的密文=AES256的加密函数(公钥的明文+DEK的明文)),利用DEK的明文对私钥的明文进行加密,得到私钥的密文(私钥的密文=AES256的加密函数(私钥的明文+DEK的明文))。目标设备将公钥的明文与vuid对应存储在Redis数据库中,将私钥的明文与vuid对应存储在Redis数据库中。
在公私钥解密阶段,目标设备基于vuid从Redis数据库中提取公钥的密文和私钥的密文。目标设备基于AES256算法的解密函数,利用DEK的明文对公钥的密文进行解密,得到公钥的明文(公钥的明文=AES256的解密函数(公钥的密文+DEK的明文));利用DEK的明文对私钥的密文进行解密,得到私钥的明文(私钥的明文=AES256的解密函数(私钥的密文+DEK的明文))。
示例性地,第一密钥可以是指主密钥(CMK)。图5所示的密钥管理方案可以称为KMS生成主密钥,本地加解密方案。在此方案下,采用KMS的CMK生成功能生成一对公共的DEK的明文和DEK的密文,DEK的密文落地到数据库中,DEK的明文缓存在内存中用来本地加解密,生成CMK的过程以及生成DEK的明文和DEK的密文的过程均只需要一次网络调用。
第三种密钥管理方案如图6所示,在第三种密钥管理方案中,在加解密密钥生成阶段,目标设备基于脚本生成AES256的加解密秘钥(Key)的明文,配置化,所有的交互对象都共享一个Key。
在公私钥加密阶段,目标设备通过调用公私钥对生成SDK向公私钥对生成设备发送公私钥对生成请求,公私钥对生成设备响应于公私钥对生成请求,生成公钥的明文和私钥的明文,将公钥的明文和私钥的明文返回目标设备。目标设备在接收到公钥的明文和私钥的明文后,读取配置的加解密秘钥(Key)的明文;基于AES256算法的加密函数,利用Key的明文对公钥的明文进行加密,得到公钥的密文(公钥的密文=AES256的加密函数(公钥的明文+Key的明文));基于AES256算法的加密函数,利用Key的明文对私钥的明文进行加密,得到私钥的密文(私钥的密文=AES256的加密函数(私钥的明文+Key的明文))。目标设备将公钥的明文与vuid对应存储在Redis数据库中,将私钥的明文与vuid对应存储在Redis数据库中,方便其他业务获取第一对象的公私钥的密文。
在公私钥解密阶段,目标设备基于vuid从Redis数据库中提取公钥的密文和私钥的密文。目标设备读取配置的Key的明文,基于AES256算法的解密函数,利用Key的明文对公钥的密文进行解密,得到公钥的明文(公钥的明文=AES256的解密函数(公钥的密文+Key的明文));基于AES256算法的解密函数,利用Key的明文对私钥的密文进行解密,得到私钥的明文(私钥的明文=AES256解密函数(私钥的密文+Key))。
示例性地,图6所示的密钥管理方案可以称为不依赖KMS,本地AES256加解密方案。此方案不依赖KMS,所有交互对象的公私钥加解密的密钥全局公用一个Key,使用脚本提前生成好,并配置到配置文件里去。通过配置文件将密钥拉取到内存,可以对交互对象的公私钥进行高效的加解密。此方案中没有网络请求,所有的操作都是使用本地计算完成。
第四种密钥管理方案如图7所示,在第四种密钥管理方案中,在加解密密钥生成阶段,目标设备通过本地的加解密密钥生成模块基于vuid生成DEK的明文(如,DEK的明文=MD5(vuid+时间戳))和DEK的密文(如,DEK密文=AES256的加密函数(DEK的明文+Key’的明文)),Key’为根据经验设置的一种密钥。
在公私钥加密阶段,目标设备通过调用公私钥对生成SDK向公私钥对生成设备发送公私钥对生成请求,公私钥对生成设备响应于公私钥对生成请求,生成公钥的明文和私钥的明文,将公钥的明文和私钥的明文返回目标设备。目标设备在接收到公钥的明文和私钥的明文后,基于AES256算法的加密函数,利用DEK的明文对公钥的明文进行加密,得到公钥的密文(公钥的密文=AES256的加密函数(公钥的明文+DEK的明文));基于AES256算法的加密函数,利用DEK的明文对私钥的明文进行加密,得到私钥的密文(私钥的密文=AES256的加密函数(私钥的明文+DEK的明文))。目标设备将公钥的明文与vuid对应存储在Redis数据库中,将私钥的明文与vuid对应存储在Redis数据库中。
在公私钥解密阶段,目标设备基于vuid从Redis数据库中提取DEK的密文,基于vuid从Redis数据库中提取公钥的密文和私钥的密文。目标设备通过本地的加解密密钥生成模块对DEK的密文进行解密,得到DEK的明文。基于AES256算法的解密函数,利用DEK的明文对公钥的密文进行解密,得到公钥的明文(公钥的明文=AES256的解密函数(公钥的密文+DEK的明文));利用DEK的明文对私钥的密文进行解密,得到私钥的明文(私钥的明文=AES256的解密函数(私钥的密文+DEK的明文))。
示例性地,图7所示的密钥管理方案可以称为不依赖KMS,本地AES256加解密,且每个交互对象的加解密密钥隔离的方案。
示例性地,图7所示的密钥管理方案将生成加解密密钥的能力本地化,在本地维护一个加解密密钥生成模块,同时实现根据交互对象的标识信息生成DEK的明文和DEK的密文,实现对象级的加解密密钥隔离。此种方式能够实现本地加解密,且可以对象级加解密密钥隔离,避免单点依赖KMS,无网络请求,无接口成本,同时也满足了合规要求。基于图7所示的密钥管理方案,针对安全级别要求高的,交互对象鉴权和交互对象核心资产保护的场景,需要高效的生成交互对象的公私钥,且能够安全合规的存储。
示例性地,在图7所示的密钥管理方案下,公私钥的整体加解密过程可以如图8所示。生成公私钥的明文,基于AES256算法的加密函数,利用DEK的明文对公私钥的明文进行加密,获取公私钥的密文,存储公私钥的密文和DEK的密文。DEK的明文和DEK的密文由本地的加解密密钥生成模块基于交互对象的标识信息vuid获取,是对象级别隔离的密钥,每个交互对象都不一样。当交互对象需要鉴权的时候从Redis数据库中提取公私钥的密文和DEK的密文,DEK的密文通过本地的加解密密钥生成模块解密出DEK的明文。基于AES256算法的解密函数,利用DEK的明文对公私钥的密文进行解密,得到公私钥的明文。每个交互对象的加密和解密的密钥由本地的加解密密钥生成模块根据交互对象的标识信息(vuid)计算生成,对象间的加解密密钥是隔离的。示例性地,DEK的明文可以基于AES256算法生成,实现加解密密钥的配置化管理,有限权限范围内公开。
示例性地,图7所示的密钥管理方案对应的一种相关技术为依赖KMS实现的远程信封加解密方案。示例性地,相关技术中的信封加解密的过程如图9所示。整个加密过程分为以下4步:1、KMS中的主密钥CMK模块生成DEK的明文和DEK的密文;2、使用DEK的明文对业务数据的明文进行加密,得到业务数据的密文;3、将第1步里生成的DEK的密文和第2步生成的业务数据的密文一起打包;4、将打包好后的DEK的密文和业务数据的密文存储到存储容器(如,数据库)中。整个解密过程分为以下4步:(1)从存储容器中取出业务数据的密文和DEK的密文;(2)将DEK的密文的传递给主密钥CMK模块进行解密;(3)主密钥CMK模块返回解密得到的DEK的明文;(4)使用第(3)步返回的DEK的明文对业务数据的密文进行解密,得到业务数据的明文。
根据图9可知,相关技术中的信封加解密过程依赖KMS实现,存在对KMS的单点依赖问题,若KMS出现故障,则无法成功实现加解密过程。此外,相关技术中的信封加解密过程是对业务数据进行管理的过程,并未涉及对交互对象的公钥和私钥的管理过程,管理的应用场景较为局限。并且,相关技术中的信封加解密过程中利用的DEK明文和DEK密文适用于全部的业务数据,隔离级别较低,安全性较低。
而基于图7所示的密钥管理方案,能够将KMS的主密钥CMK模块的功能本地化,在本地维护一个加解密密钥生成模块,通过本地维护的加解密密钥生成模块,在本地实现对公钥和私钥的管理,扩展了管理的应用场景,且此种管理过程无需与KMS进行网络请求,能够避免对KMS的单点依赖问题。此外,图7所示的密钥管理方案中利用的DEK明文和DEK密文是本地维护的加解密密钥生成模块基于交互对象的标识信息生成的,能够实现对象间隔离,隔离级别较高,安全性较高。
示例性地,上述四种密钥管理方案与相关技术中的托管于密钥管理服务设备进行管理的密钥管理方案相比,在适用场景、依赖的接口、接入复杂度、计费接口、接口的QPS(Queries Per Second,每秒请求数)、是否在数据库中存储密钥、是否对象间密钥隔离、费用成本、安全性等维度,有各自的优势。上述四种密钥管理方案与相关技术中的密钥管理方案的比对结果如图10所示。
为了更直观对比各方案的优缺点,将图10所示的表格规约化为5个维度:安全性、接入复杂度、接口性能、对象间密钥隔离的程度和费用成本,在表1所示的各维度的涉及信息以及得分说明下,上述四种密钥管理方案以及相关技术中的密钥管理方案对应的分数雷达图如图11所示。
表1
根据图11可知,相关技术中的密钥管理方案在安全性、接入复杂度、接口性能、对象间密钥隔离的程度和费用成本这5个维度下的得分分别为3分、2分、2分、1分和2分;第一种密钥管理方案在安全性、接入复杂度、接口性能、对象间密钥隔离的程度和费用成本这5个维度下的得分分别为4分、3分、2分、2分和2分;第二种密钥管理方案在安全性、接入复杂度、接口性能、对象间密钥隔离的程度和费用成本这5个维度下的得分分别为4分、2分、3分、2分和3分;第三种密钥管理方案在安全性、接入复杂度、接口性能、对象间密钥隔离的程度和费用成本这5个维度下的得分分别为4分、3分、5分、2分和5分;第四种密钥管理方案在安全性、接入复杂度、接口性能、对象间密钥隔离的程度和费用成本这5个维度下的得分分别为5分、5分、4分、5分和5分。
示例性地,上述四种密钥管理方案,在安全性、接入复杂度、接口性能、对象间密钥隔离的程度和费用成本等维度各有所侧重,覆盖了不同的使用场景,有一定普适性。对于上述第四种密钥管理方案,通过本地加解密方案,实现了对象间密钥的隔离存储和加解密,不依赖KMS,去掉了系统中的网络请求依赖的单点服务,节省了KMS调用的付费成本开销,安全、高效且不需要额外服务。
在示例性实施例中,本申请实施例中涉及的目标设备执行操作具体可以是指目标设备中的账号注册服务模块执行操作,目标区块链可以是指至信链,至信链能够由至信链系统维护。目标设备能够接入至信链系统。示例性地,目标设备和至信链系统能够构成数字资源管理系统。示例性地,如图12所示,数字资源管理系统一共分为五层,依次是前端展示层、接入层、业务后台逻辑层、基础服务层和数据存储层。
前端展示层主要用于提供交互对象可查看的页面,提供的页面包括但不限于数字资源商品首页、数字资源商品H5(一种营销页面)、数字资源购买H5、数字资源助力预约H5、数字资源人脸核身页面、数字资源个人中心页面、配置页面等。接入层主要用于接入相关的应用程序以及接口等,接入层包括但不限于APP(Application,应用程序)接入层、CGI(Common Gateway Interface,公共网关接口)接入层以及配置后台接入层等。业务后台逻辑层主要用于实现业务的逻辑的运行,业务后台逻辑层包括但不限于APP商品服务模块、H5商品管理服务模块、购买服务模块、助力服务模块、账号注册服务模块、个人资产服务模块以及管理台服务模块,不同的模块主要实现的功能有所不同,例如,账号注册服务模块主要实现的功能包括:人脸核身获取人脸标识、绑定数字资源地址、获取个人数字资源地址以及获取已绑定账号的数字资源地址等。需要说明的是,本申请实施例提供的密钥管理方法主要由账号注册服务模块实现。
基础服务层用于提供运行业务逻辑所需的服务,基础服务层能够提供的服务包括但不限于手机号绑定、账号转换、登录态校验、图形验证码以及安全组件等。示例性地,基础服务层还能够通过调用人脸识SDK实现人脸识别,以及通过调用至信链SDK接入至信链等。数据存储层用于提供数据库,数据存储层提供的数据库的类型可以灵活设置,例如,数据存储层提供的数据库包括Redis数据库以及多个其他数据库。
在至信链系统中,智能合约是链上管理数字资源和数字资源地址的一个重要环节,而交互对象的公私钥又是智能合约实现的基础和核心。交互对象的公私钥需要合规的生成、存储、读取,不能被第三方获取,只允许至信链系统和目标设备侧感知,且对象间隔离。
示例性地,交互对象通过目标设备到至信链系统中生成数字资源地址,其中数字资源地址=f(公钥的明文),目标设备为每个交互对象生成一对公私钥,对象间的公私钥是隔离的,公钥的明文用来生成至信链系统侧的数字资源地址,私钥的明文由目标设备侧做对象级别的鉴权、计算签名和验签等。示例性地,交互对象的标识信息(vuid)、公私钥的明文与数字资源地址之间的关系如图13所示。根据图13可知,根据目标设备侧维护的vuid能够生成公钥的明文和的私钥的明文,其中,公钥的明文能够用来生成在至信链系统侧维护的数字资源地址。通过图13所示的一一映射关系,可以看出通过vuid生成数字资源地址的全过程,也描述了数字资源地址推导生成的过程。
参见图14,本申请实施例提供了一种密钥管理装置,该装置包括:
第一获取单元1401,用于获取第一对象的对象密钥的明文,对象密钥包括第一对象的公钥和私钥中的至少一个,第一对象的公钥的明文用于生成第一对象在目标区块链上对应的区块链账号信息,第一对象的私钥的明文用于对第一对象的待记录在目标区块链上的目标信息进行签名;
第二获取单元1402,用于基于对象密钥的明文,获取对象密钥的密文;其中,对象密钥的密文为密钥管理服务设备利用第一密钥的明文对对象密钥的明文进行加密后得到的密文,或者,对象密钥的密文为本地利用第二密钥的明文对对象密钥的明文进行加密后得到的密文;
存储单元1403,用于将对象密钥的密文与第一对象的标识信息对应存储在数据库中。
在一种可能实现方式中,第二获取单元1402,用于向密钥管理服务设备发送第一加密请求,第一加密请求包括对象密钥的明文和第一密钥的明文的标识信息,密钥管理服务设备用于响应于第一加密请求,利用第一密钥的明文对对象密钥的明文进行加密,得到对象密钥的密文,返回对象密钥的密文;接收密钥管理服务设备返回的对象密钥的密文。
在一种可能实现方式中,第一密钥的明文的标识信息从数据库中提取得到,存储单元1403,还用于向密钥管理服务设备发送第一密钥生成请求,密钥管理服务设备用于响应于第一密钥生成请求,生成第一密钥的明文,返回第一密钥的明文的标识信息;接收密钥管理服务设备返回的第一密钥的明文的标识信息,将第一密钥的明文的标识信息存储在数据库中。
在一种可能实现方式中,第二获取单元1402,用于利用第二密钥的明文对对象密钥的明文进行加密,得到对象密钥的密文。
在一种可能实现方式中,第二获取单元1402,还用于从数据库中提取第二密钥的密文;向密钥管理服务设备发送第一解密请求,第一解密请求包括第二密钥的密文,密钥管理服务设备用于响应于第一解密请求,对第二密钥的密文进行解密,得到第二密钥的明文,返回第二密钥的明文;接收密钥管理服务设备返回的第二密钥的明文。
在一种可能实现方式中,第二获取单元1402,还用于从数据库中提取第二密钥的密文;对第二密钥的密文进行解密,得到第二密钥的明文。
在一种可能实现方式中,第二获取单元1402,还用于从本地存储中提取第二密钥的明文。
在一种可能实现方式中,存储单元1403,还用于向密钥管理服务设备发送第一密钥生成请求,密钥管理服务设备用于响应于第一密钥生成请求,生成第一密钥的明文,返回第一密钥的明文的标识信息;接收密钥管理服务设备返回的第一密钥的明文的标识信息;向密钥管理服务设备发送第二密钥生成请求,第二密钥生成请求包括第一密钥的明文的标识信息,密钥管理服务设备用于响应于第二密钥生成请求,基于第一密钥的明文,生成第二密钥的明文,对第二密钥的明文进行加密得到第二密钥的密文,返回第二密钥的密文;将第二密钥的密文与第一密钥的明文的标识信息对应存储在数据库中。
在一种可能实现方式中,存储单元1403,还用于基于第一对象的标识信息,生成第二密钥的明文,对第二密钥的明文进行加密,得到第二密钥的密文;将第二密钥的密文与第一对象的标识信息对应存储在数据库中。
在一种可能实现方式中,第一获取单元1401,还用于向公私钥对生成设备发送公私钥对生成请求,公私钥对生成请求包括第一对象的标识信息,公私钥对生成设备用于响应于公私钥对生成请求,生成第一对象的公钥的明文和私钥的明文,返回公钥的明文和私钥的明文;接收公私钥对生成设备返回的公钥的明文和私钥的明文。
在一种可能实现方式中,该装置还包括:
第三获取单元,用于基于第一对象的标识信息,从数据库中提取对象密钥的密文;向密钥管理服务设备发送第二解密请求,第二解密请求包括第一密钥的明文的标识信息以及对象密钥的密文,密钥管理服务设备用于响应于第二解密请求,利用第一密钥的明文对对象密钥的密文进行解密,得到对象密钥的明文,返回对象密钥的明文;接收密钥管理服务设备返回的对象密钥的明文。
在一种可能实现方式中,第三获取单元,还用于基于第一对象的标识信息,从数据库中提取对象密钥的密文;利用第二密钥的明文对对象密钥的密文进行解密,得到对象密钥的明文。
在一种可能实现方式中,对象密钥包括公钥,该装置还包括:
第四获取单元,用于向区块链节点设备发送账号生成请求,账号生成请求包括公钥的明文,区块链节点设备用于响应于账号生成请求,基于公钥的明文,生成第一对象在目标区块链上对应的区块链账号信息,返回区块链账号信息;接收区块链节点设备返回的区块链账号信息。
在一种可能实现方式中,对象密钥包括私钥,第四获取单元,还用于基于私钥的明文对目标信息进行签名,得到目标信息的签名信息;向区块链节点设备发送信息记录请求,信息记录请求包括目标信息、签名信息以及第一对象的区块链账号信息,区块链节点设备用于响应于信息记录请求,基于签名信息以及第一对象的区块链账号信息对目标信息进行验证,将验证通过的目标信息记录在目标区块链上,返回信息记录结果;接收区块链节点设备返回的信息记录结果。
本申请实施例提供的密钥管理装置,获取了第一对象的公钥和/或私钥的密文,从而能够将第一对象的公钥和/或私钥以密文的方式存储在数据库中,以密文的方式存储的公钥和/或私钥不容易泄露,密钥管理的安全性较高。此外,对象密钥的密文有两种情况,获取对象密钥的密文的灵活性较高。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条计算机程序。该至少一条计算机程序由一个或者一个以上处理器加载并执行,以使该计算机设备实现上述任一种密钥管理方法。示例性地,该计算机设备可以是指上述实施例中涉及的目标设备、区块链节点设备、密钥管理服务设备等。计算机设备可以是指终端,也可以是指服务器,本申请实施例对此不加以限定。接下来,对终端和服务器的结构分别进行介绍。
图15是本申请实施例提供的一种终端的结构示意图。通常,终端包括有:处理器1501和存储器1502。
处理器1501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1501可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1501所执行,以使该终端实现本申请中方法实施例提供的密钥管理方法。
在一些实施例中,终端还可选包括有:外围设备接口1503和至少一个外围设备。处理器1501、存储器1502和外围设备接口1503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1503相连。具体地,外围设备包括:射频电路1504、显示屏1505、摄像头组件1506、音频电路1507和电源1508中的至少一种。
外围设备接口1503可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1501和存储器1502。在一些实施例中,处理器1501、存储器1502和外围设备接口1503被集成在同一芯片或电路板上;在一些其他实施例中,处理器1501、存储器1502和外围设备接口1503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1504包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1504还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1505是触摸显示屏时,显示屏1505还具有采集在显示屏1505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1501进行处理。此时,显示屏1505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1505可以为一个,设置在终端的前面板;在另一些实施例中,显示屏1505可以为至少两个,分别设置在终端的不同表面或呈折叠设计;在另一些实施例中,显示屏1505可以是柔性显示屏,设置在终端的弯曲表面上或折叠面上。甚至,显示屏1505还可以设置成非矩形的不规则图形,也即异形屏。显示屏1505可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1506用于采集图像或视频。可选地,摄像头组件1506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1501进行处理,或者输入至射频电路1504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1501或射频电路1504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1507还可以包括耳机插孔。
电源1508用于为终端中的各个组件进行供电。电源1508可以是交流电、直流电、一次性电池或可充电电池。当电源1508包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端还包括有一个或多个传感器1509。该一个或多个传感器1509包括但不限于:加速度传感器1510、陀螺仪传感器1511、压力传感器1512、光学传感器1513以及接近传感器1514。
加速度传感器1510可以检测以终端建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1510可以用于检测重力加速度在三个坐标轴上的分量。处理器1501可以根据加速度传感器1510采集的重力加速度信号,控制显示屏1505以横向视图或纵向视图进行用户界面的显示。加速度传感器1510还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1511可以检测终端的机体方向及转动角度,陀螺仪传感器1511可以与加速度传感器1510协同采集用户对终端的3D动作。处理器1501根据陀螺仪传感器1511采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1512可以设置在终端的侧边框和/或显示屏1505的下层。当压力传感器1512设置在终端的侧边框时,可以检测用户对终端的握持信号,由处理器1501根据压力传感器1512采集的握持信号进行左右手识别或快捷操作。当压力传感器1512设置在显示屏1505的下层时,由处理器1501根据用户对显示屏1505的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器1513用于采集环境光强度。在一个实施例中,处理器1501可以根据光学传感器1513采集的环境光强度,控制显示屏1505的显示亮度。具体地,当环境光强度较高时,调高显示屏1505的显示亮度;当环境光强度较低时,调低显示屏1505的显示亮度。在另一个实施例中,处理器1501还可以根据光学传感器1513采集的环境光强度,动态调整摄像头组件1506的拍摄参数。
接近传感器1514,也称距离传感器,通常设置在终端的前面板。接近传感器1514用于采集用户与终端的正面之间的距离。在一个实施例中,当接近传感器1514检测到用户与终端的正面之间的距离逐渐变小时,由处理器1501控制显示屏1505从亮屏状态切换为息屏状态;当接近传感器1514检测到用户与终端的正面之间的距离逐渐变大时,由处理器1501控制显示屏1505从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图15中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图16是本申请实施例提供的一种服务器的结构示意图,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central Processing Units,CPU)1601和一个或多个存储器1602,其中,该一个或多个存储器1602中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器1601加载并执行,以使该服务器实现上述各个方法实施例提供的密钥管理方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由计算机设备的处理器加载并执行,以使计算机实现上述任一种密钥管理方法。
在一种可能实现方式中,上述计算机可读存储介质可以是只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact DiscRead-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,该计算机程序或计算机指令由处理器加载并执行,以使计算机实现上述任一种密钥管理方法。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的目标信息、第一对象的标识信息等都是在充分授权的情况下获取的。
需要说明的是,本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以上示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种密钥管理方法,其特征在于,所述方法包括:
获取第一对象的对象密钥的明文,所述对象密钥包括所述第一对象的公钥和私钥中的至少一个,所述第一对象的公钥的明文用于生成所述第一对象在目标区块链上对应的区块链账号信息,所述第一对象的私钥的明文用于对所述第一对象的待记录在所述目标区块链上的目标信息进行签名;
基于所述对象密钥的明文,获取所述对象密钥的密文;其中,所述对象密钥的密文为密钥管理服务设备利用第一密钥的明文对所述对象密钥的明文进行加密后得到的密文,或者,所述对象密钥的密文为本地利用第二密钥的明文对所述对象密钥的明文进行加密后得到的密文;
将所述对象密钥的密文与所述第一对象的标识信息对应存储在数据库中。
2.根据权利要求1所述的方法,其特征在于,所述基于所述对象密钥的明文,获取所述对象密钥的密文,包括:
向所述密钥管理服务设备发送第一加密请求,所述第一加密请求包括所述对象密钥的明文和所述第一密钥的明文的标识信息,所述密钥管理服务设备用于响应于所述第一加密请求,利用所述第一密钥的明文对所述对象密钥的明文进行加密,得到所述对象密钥的密文,返回所述对象密钥的密文;
接收所述密钥管理服务设备返回的所述对象密钥的密文。
3.根据权利要求2所述的方法,其特征在于,所述第一密钥的明文的标识信息从所述数据库中提取得到,所述方法还包括:
向所述密钥管理服务设备发送第一密钥生成请求,所述密钥管理服务设备用于响应于所述第一密钥生成请求,生成所述第一密钥的明文,返回所述第一密钥的明文的标识信息;
接收所述密钥管理服务设备返回的所述第一密钥的明文的标识信息,将所述第一密钥的明文的标识信息存储在所述数据库中。
4.根据权利要求1所述的方法,其特征在于,所述基于所述对象密钥的明文,获取所述对象密钥的密文,包括:
利用所述第二密钥的明文对所述对象密钥的明文进行加密,得到所述对象密钥的密文。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
从所述数据库中提取所述第二密钥的密文;
向所述密钥管理服务设备发送第一解密请求,所述第一解密请求包括所述第二密钥的密文,所述密钥管理服务设备用于响应于所述第一解密请求,对所述第二密钥的密文进行解密,得到所述第二密钥的明文,返回所述第二密钥的明文;
接收所述密钥管理服务设备返回的所述第二密钥的明文。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
从所述数据库中提取所述第二密钥的密文;
对所述第二密钥的密文进行解密,得到所述第二密钥的明文。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
从本地存储中提取所述第二密钥的明文。
8.根据权利要求5所述的方法,其特征在于,所述从所述数据库中提取所述第二密钥的密文之前,所述方法还包括:
向所述密钥管理服务设备发送第一密钥生成请求,所述密钥管理服务设备用于响应于所述第一密钥生成请求,生成所述第一密钥的明文,返回所述第一密钥的明文的标识信息;
接收所述密钥管理服务设备返回的所述第一密钥的明文的标识信息;
向所述密钥管理服务设备发送第二密钥生成请求,所述第二密钥生成请求包括所述第一密钥的明文的标识信息,所述密钥管理服务设备用于响应于所述第二密钥生成请求,基于所述第一密钥的明文,生成所述第二密钥的明文,对所述第二密钥的明文进行加密得到所述第二密钥的密文,返回所述第二密钥的密文;
将所述第二密钥的密文与所述第一密钥的明文的标识信息对应存储在所述数据库中。
9.根据权利要求6所述的方法,其特征在于,所述从所述数据库中提取所述第二密钥的密文之前,所述方法还包括:
基于所述第一对象的标识信息,生成所述第二密钥的明文,对所述第二密钥的明文进行加密,得到所述第二密钥的密文;
将所述第二密钥的密文与所述第一对象的标识信息对应存储在所述数据库中。
10.根据权利要求1-9任一所述的方法,其特征在于,所述获取第一对象的对象密钥的明文之前,所述方法还包括:
向公私钥对生成设备发送公私钥对生成请求,所述公私钥对生成请求包括所述第一对象的标识信息,所述公私钥对生成设备用于响应于所述公私钥对生成请求,生成所述第一对象的公钥的明文和私钥的明文,返回所述公钥的明文和所述私钥的明文;
接收所述公私钥对生成设备返回的所述公钥的明文和所述私钥的明文。
11.根据权利要求2或3所述的方法,其特征在于,所述将所述对象密钥的密文与所述第一对象的标识信息对应存储在数据库中之后,所述方法还包括:
基于所述第一对象的标识信息,从所述数据库中提取所述对象密钥的密文;
向所述密钥管理服务设备发送第二解密请求,所述第二解密请求包括所述第一密钥的明文的标识信息以及所述对象密钥的密文,所述密钥管理服务设备用于响应于所述第二解密请求,利用所述第一密钥的明文对所述对象密钥的密文进行解密,得到所述对象密钥的明文,返回所述对象密钥的明文;
接收所述密钥管理服务设备返回的所述对象密钥的明文。
12.根据权利要求4-9任一所述的方法,其特征在于,所述将所述对象密钥的密文与所述第一对象的标识信息对应存储在数据库中之后,所述方法还包括:
基于所述第一对象的标识信息,从所述数据库中提取所述对象密钥的密文;
利用所述第二密钥的明文对所述对象密钥的密文进行解密,得到所述对象密钥的明文。
13.根据权利要求1-9任一所述的方法,其特征在于,所述对象密钥包括所述公钥,所述方法还包括:
向区块链节点设备发送账号生成请求,所述账号生成请求包括所述公钥的明文,所述区块链节点设备用于响应于所述账号生成请求,基于所述公钥的明文,生成所述第一对象在所述目标区块链上对应的区块链账号信息,返回所述区块链账号信息;
接收所述区块链节点设备返回的所述区块链账号信息。
14.根据权利要求1-9任一所述的方法,其特征在于,所述对象密钥包括所述私钥,所述方法还包括:
基于所述私钥的明文对所述目标信息进行签名,得到所述目标信息的签名信息;
向区块链节点设备发送信息记录请求,所述信息记录请求包括所述目标信息、所述签名信息以及所述第一对象的区块链账号信息,所述区块链节点设备用于响应于所述信息记录请求,基于所述签名信息以及所述第一对象的区块链账号信息对所述目标信息进行验证,将验证通过的目标信息记录在所述目标区块链上,返回信息记录结果;
接收所述区块链节点设备返回的所述信息记录结果。
15.一种密钥管理装置,其特征在于,所述装置包括:
第一获取单元,用于获取第一对象的对象密钥的明文,所述对象密钥包括所述第一对象的公钥和私钥中的至少一个,所述第一对象的公钥的明文用于生成所述第一对象在目标区块链上对应的区块链账号信息,所述第一对象的私钥的明文用于对所述第一对象的待记录在所述目标区块链上的目标信息进行签名;
第二获取单元,用于基于所述对象密钥的明文,获取所述对象密钥的密文;其中,所述对象密钥的密文为密钥管理服务设备利用第一密钥的明文对所述对象密钥的明文进行加密后得到的密文,或者,所述对象密钥的密文为本地利用第二密钥的明文对所述对象密钥的明文进行加密后得到的密文;
存储单元,用于将所述对象密钥的密文与所述第一对象的标识信息对应存储在数据库中。
16.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述计算机设备实现如权利要求1至14任一所述的密钥管理方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现如权利要求1至14任一所述的密钥管理方法。
18.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或所述计算机指令由处理器加载并执行,以使计算机实现如权利要求1至14任一所述的密钥管理方法。
CN202210207291.6A 2022-03-04 2022-03-04 密钥管理方法、装置、设备及存储介质 Pending CN116743351A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210207291.6A CN116743351A (zh) 2022-03-04 2022-03-04 密钥管理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210207291.6A CN116743351A (zh) 2022-03-04 2022-03-04 密钥管理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116743351A true CN116743351A (zh) 2023-09-12

Family

ID=87908450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210207291.6A Pending CN116743351A (zh) 2022-03-04 2022-03-04 密钥管理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116743351A (zh)

Similar Documents

Publication Publication Date Title
CN110602089B (zh) 基于区块链的医疗数据存储方法、装置、设备及存储介质
CN112711774B (zh) 数据处理方法、装置、设备及存储介质
CN110245144B (zh) 协议数据管理方法、装置、存储介质及系统
CN108964903B (zh) 密码存储方法及装置
CN111245745B (zh) 消息发送方法、装置、节点设备及存储介质
CN110826103B (zh) 基于区块链的文档权限处理方法、装置、设备及存储介质
CN112235400B (zh) 通信方法、通信系统、装置、服务器及存储介质
CN111080443B (zh) 基于区块链的业务处理方法、装置、设备及存储介质
JP2023506406A (ja) ユーザ招待方法、装置、コンピュータ装置及びプログラム
WO2021120794A1 (zh) 人脸图像传输方法、数值转移方法、装置及电子设备
CN110597924B (zh) 基于区块链的用户标识处理方法、装置、设备及存储介质
CN110598386B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN111404991A (zh) 获取云服务的方法、装置、电子设备及介质
CN111212074B (zh) 基于区块链的资格认定方法、装置、设备及存储介质
CN110401648A (zh) 获取云服务的方法、装置、电子设备及介质
CN110365501B (zh) 基于图形码进行群组加入处理的方法及装置
CN110677262B (zh) 基于区块链的信息公证方法、装置及系统
CN113852459B (zh) 密钥协商方法、设备及计算机可读存储介质
CN111935166B (zh) 通信认证方法、系统、电子设备、服务器及存储介质
CN110597840B (zh) 基于区块链的伴侣关系建立方法、装置、设备及存储介质
CN110597868B (zh) 基于区块链的信息查询方法、装置、终端及存储介质
CN110532324B (zh) 基于区块链的公告信息展示方法、装置、设备及存储介质
CN112989370B (zh) 密钥灌装方法、系统、装置、设备以及存储介质
CN116743351A (zh) 密钥管理方法、装置、设备及存储介质
CN111028059B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40094482

Country of ref document: HK