CN116112167B - 密钥管理系统、方法及装置 - Google Patents
密钥管理系统、方法及装置 Download PDFInfo
- Publication number
- CN116112167B CN116112167B CN202310393210.0A CN202310393210A CN116112167B CN 116112167 B CN116112167 B CN 116112167B CN 202310393210 A CN202310393210 A CN 202310393210A CN 116112167 B CN116112167 B CN 116112167B
- Authority
- CN
- China
- Prior art keywords
- hash
- user
- verified
- key
- blockchain network
- 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
- 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/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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/32—Cryptographic 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/3236—Cryptographic 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
-
- 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/32—Cryptographic 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/3247—Cryptographic 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
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)
- Lock And Its Accessories (AREA)
- Storage Device Security (AREA)
Abstract
本公开关于密钥管理系统、方法及装置。该系统包括客户端、服务端和区块链网络,客户端维护有用户的用户身份私钥,区块链网络维护有安全问题和所述用户的用户身份公钥,其中,客户端用于响应于密钥更新操作确定所述用户为安全问题输入的待验证答案;以及,基于所述安全问题、待验证答案和用户的身份信息生成第一待验证哈希,并向服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求;服务端用于响应于该请求从区块链网络获取标准哈希,并在确定第一待验证哈希与标准哈希相同的情况下,触发区块链网络将用户身份公钥更新为所述目标公钥。该方案可以有效避免用户身份公钥被非法替换,从而提升用户身份及链上资产的安全性。
Description
技术领域
本公开涉及区块链领域,尤其涉及一种密钥管理系统、方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。区块链网络可以对外提供基于区块链技术实现的数据存证等区块链服务,其中,通常采用非对称加密算法对参与方进行身份认证。在非对称加密算法中,任一参与方的公私钥对包括公钥和私钥,其中公钥可以对外公开,私钥则由该参与方保存。在参与区块链事务的过程中,可以通过合理使用上述公私钥对对参与方进行身份验证,以顺利完成区块链事务。
对于任一参与方而言,自身的公私钥对中的私钥可能会丢失或泄露,此时可能会对该参与方造成损失。如区块链网络的用户若丢失自身的私钥,则区块链网络中记录的该用户的链上资产则无法被该用户正常使用(如转账等);若泄露自身的私钥,则上述链上资产可能会被其他用户(如第三方)恶意使用,如被转账至其他账户等,从而造成该用户的链上资产损失。
在相关技术中,为了避免密钥丢失或泄露可能造成的损失,用户可以将自身的私钥托管至密钥管理平台。若密钥丢失,则可以从密钥管理平台找回;若密钥泄露,则可以通过密钥管理平台更换新的密钥。
发明内容
本公开提供了密钥管理系统、方法及装置,以至少解决相关技术中的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提出一种密钥管理系统,包括客户端、服务端和区块链网络,所述客户端维护有用户的用户身份私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,其中,
所述客户端用于响应于所述用户针对所述用户身份公钥实施的密钥更新操作,确定所述用户为所述安全问题输入的待验证答案;以及,基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求;
所述服务端用于响应于所述密钥更新请求从所述区块链网络获取标准哈希,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成;在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
根据本公开实施例的第二方面,提出一种密钥管理方法,应用于密钥管理系统中的客户端,所述客户端维护有用户的用户身份私钥,所述密钥管理系统还包括服务端和区块链网络,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述方法包括:
响应于所述用户针对所述用户身份公钥实施的密钥更新操作,确定所述用户为所述安全问题输入的待验证答案;
基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求,以由所述服务端响应于所述密钥更新请求从所述区块链网络获取标准哈希,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成,并在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
根据本公开实施例的第三方面,提出一种密钥管理方法,应用于密钥管理系统中的服务端,所述密钥管理系统还包括客户端和区块链网络,所述客户端维护有用户的用户身份私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述方法包括:
响应于所述客户端发起的密钥更新请求从所述区块链网络获取标准哈希,其中,所述密钥更新请求中包含目标公钥和第一待验证哈希,所述第一待验证哈希由所述客户端基于所述安全问题、所述用户为所述安全问题输入的待验证答案和所述用户的身份信息生成,所述待验证答案由所述客户端响应于所述用户针对所述用户身份公钥实施的密钥更新操作所确定,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成;
在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
根据本公开实施例的第四方面,提出一种密钥管理装置,应用于密钥管理系统中的客户端,所述客户端维护有用户的用户身份私钥,所述密钥管理系统还包括服务端和区块链网络,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述装置包括:
待验证答案确定装置,被配置为响应于所述用户针对所述用户身份公钥实施的密钥更新操作,确定所述用户为所述安全问题输入的待验证答案;
密钥更新请求发起装置,被配置为基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求,以由所述服务端响应于所述密钥更新请求从所述区块链网络获取标准哈希,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成,并在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
根据本公开实施例的第五方面,提出一种密钥管理装置,应用于密钥管理系统中的服务端,所述密钥管理系统还包括客户端和区块链网络,所述客户端维护有用户的用户身份私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述装置包括:
标准哈希获取装置,被配置为响应于所述客户端发起的密钥更新请求从所述区块链网络获取标准哈希,其中,所述密钥更新请求中包含目标公钥和第一待验证哈希,所述第一待验证哈希由所述客户端基于所述安全问题、所述用户为所述安全问题输入的待验证答案和所述用户的身份信息生成,所述待验证答案由所述客户端响应于所述用户针对所述用户身份公钥实施的密钥更新操作所确定,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成;
公钥更新触发装置,被配置为在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
根据本公开实施例的第六方面,提出一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述第二方面或第三方面中任一实施例所述的密钥管理方法。
根据本公开实施例的第七方面,提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述第二方面或第三方面中任一实施例所述的密钥管理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本方案摒弃了集中式托管的密钥管理方式,由密钥管理系统中的客户端和服务端与提供区块链服务的区块链网络进行交互,使得用户可以通过三者之间的相互配合对链上维护的用户身份公钥进行更新(即将原来的用户身份公钥更新为新的目标公钥)。可以理解的是,由于用户维护有(如由所述客户端维护)所述目标公钥对应的目标私钥,所以通过上述过程可以实现对用户所使用的目标公钥钥对这一整体的更新。由于目标公私钥对可以在该用户参与未来的区块链事务的过程中用于对其进行身份验证,所以若用户在原有用户身份私钥丢失或泄露的情况下实施上述密钥更新操作,并使用更新后的所述目标公私钥对参与未来的区块链事务,即可及时更新该用户在区块链网络中的身份,从而避免蒙受损失。
同时,由于第一待验证哈希基于所述安全问题、所述待验证答案和所述用户的身份信息生成;类似的,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成,所以若客户端生成的第一待验证哈希和链上存证的标准哈希相同,即表明用户本次为所述待安全问题输入的验证答案与预先设置的标准答案一致,从而在密钥更新过程中通过上述问题答案实现了对该用户身份的有效验证和确认。
进一步的,由于只有在第一待验证哈希和标准哈希相同的情况下,区块链网络才会将所述用户身份公钥更新为客户端新指定的目标公钥,从而保证了更新用户身份公钥的所述用户正是该用户身份公钥所对应的原有用户(即二者是同一用户),从而确保了更新过程以及更新后的目标公钥均是可信任的。可见,通过分布式设置的安全问题和基于安全问题及其问题答案对发起密钥更新的用户进行身份验证和确认,能够有效避免用户身份公钥被除该合法用户之外的其他用户替换(或称篡改),从而提升了该用户在区块链网络中的身份可信度及其链上资产的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是一示例性实施例提供的一种密钥管理系统的结构示意图;
图2是根据本公开的实施例示出的一种密钥管理方法的交互流程图;
图3是根据本公开的实施例示出的一种密钥管理方法的流程图;
图4是根据本公开的实施例示出的另一种密钥管理方法的流程图;
图5是根据本公开的实施例示出的一种密钥管理装置的示意框图;
图6是根据本公开的实施例示出的另一种密钥管理装置的示意框图;
图7是根据本公开的实施例示出的一种电子设备的结构图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在相关技术中,为了避免密钥丢失或泄露可能造成的损失,用户可以将自身的私钥托管至密钥管理平台。若密钥丢失,则可以从密钥管理平台找回;若密钥泄露,则可以通过密钥管理平台更换新的密钥。但是,现阶段的密钥管理平台通常是中心化或弱中心化的机构,该平台本身被作为绝对可信任的中心点。在这类平台本身缺乏有效的数据安全监管的情况下,密钥管理平台(如平台的操作人员)可能在用户不知情的情况下替换用户的私钥,因此仍然会威胁到用户的链上资产安全,存在较为明显的安全问题。
为解决相关技术中存在的上述问题,本公开提出一种密钥管理方案,用于对区块链网络维护的用户身份公钥进行更新。通过在区块链网络中分布式保存安全问题及其标准答案,并在任一用户发起密钥更新时基于上述安全问题以及所述用户输入的待验证问题答案对该用户进行身份验证,可以避免用户身份公钥被非法替换。下面结合附图及相应实施例对本说明书的密钥管理方案进行详细说明。
图1是一示例性实施例提供的一种密钥管理系统的架构示意图。如图1所示,该系统可以包括网络10、若干电子设备,如手机11和手机12等,若干服务器,如服务器13、服务器14和服务器15等,还包括区块链网络16,该网络由多个区块链节点构成,如节点A~E等。当然,图1示出的是密钥管理系统的一种示例性结构,实际上,该系统可以包含一个或多个电子设备,以及包含一个或多个服务器,不再赘述。
其中,手机11~12中的任一手机中可以运行有客户端程序,从而将该手机实现为密钥管理系统中的客户端。所述客户端本质上可以为应用程序(APP,Application),该应用程序可以被预先安装在手机上,使得该客户端可以在该终端设备上被启动并运行;当然,当使用诸如HTML5技术的在线“客户端”时,无需在手机上安装相应的应用程序,即可获得并运行该客户端。类似的,服务器13~15中的任一服务器中可以运行有服务端程序,从而将该服务器实现为密钥管理系统中的服务端,不再赘述。
上述任一手机可以对应于相应的用户,如任一用户可以使用自身的用户账号登录手机11中运行的客户端,登录完成后,该用户即可视为手机11对应的用户。另外,手机11~12只是用户可以使用的一种类型的电子设备。实际上,用户显然还可以使用诸如下述类型的电子设备:平板设备、笔记本电脑、掌上电脑(PDAs,Personal Digital Assistants)、可穿戴设备(如智能眼镜、智能手表等)、VR(Virtual Reality,虚拟现实)设备、AR(AugmentedReality,增强现实)设备等。另外,服务器13~15中的任一服务器可以为包含一独立主机的物理服务器,或者也可以为主机集群承载的虚拟服务器、云服务器等。网络10可以包括多种类型的有线或无线网络,本公开一个或多个实施例并不对此进行限制。
通过上述客户端和服务端,任一手机可以实现与任一服务器之间的交互。另外,任一手机也可以通过本地运行的客户端与区块链网络进行交互,任一服务器可以通过本地运行的服务端与所述区块链网络进行交互。其中,任一手机通过客户端与其他任一方的交互,可以视为该客户端与该方的交互;类似的,任一服务器通过服务端与其他任一方的交互,可以视为该服务端与该方的交互,下文描述不再逐一区分手机和客户端,以及服务器和服务端,特此说明。
本公开所述客户端可以通过与区块链网络交互参与区块链事务,如向区块链网络发起区块链交易、调用区块链网络中部署的智能合约、将数据上链存证、从区块链网络获取链上数据等。其中,所述区块链网络由多个区块链节点构成,至少部分区块链节点分别维护有区块链账本,该账本用于记录所述区块链网络运行过程中产生的相关数据(或称链上数据,如计算结果或状态数据等)。在一实施例中,安全问题、根据任一用户为至少一个安全问题设置的标准答案生成的标准哈希等,均可以被记录在所述区块链账本中。所述客户端或服务端可以通过与任一区块链节点的交互实现与区块链网络的交互,如任一客户端可以连接至任一区块链节点,并通过该区块链节点向区块链网络发起包含哈希密文的数据存证交易,从而将该哈希密文提交至区块链网络进行存证等。
本公开实施例提出一种基于密钥管理系统实现的密钥管理方案,用于对区块链网络维护的用户身份公钥进行更新。所述密钥管理系统包括客户端、服务端和区块链网络,所述客户端维护有用户的用户身份私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥。其中,
所述客户端用于响应于所述用户针对所述用户身份公钥实施的密钥更新操作,确定所述用户为所述安全问题输入的待验证答案;以及,基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求;
所述服务端用于响应于所述密钥更新请求从所述区块链网络获取标准哈希,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成;在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
如前所述,任一用户的公私钥对包括该用户的用户身份公钥和用户身份私钥。区块链网络(具体为网络中的区块链节点)维护有各个用户的用户身份公钥,使得各个用户可以使用自身的公私钥对与区块链网络配合实现区块链事务。其中,任一用户和区块链事务的相关方可以基于该用户的公私钥对,实现对该用户的身份认证。例如,所述客户端可以使用用户身份私钥对某一数据进行签名处理得到数据签名,该数据和相应的数据签名的接收方(如所述区块链网络)可以使用用户身份公钥进行验签(即验证接收到的数据签名和数据是否一致):若验签通过则表明自身接收到的数据签名和数据一致,即可确定该数据签名确实由所述用户身份私钥签名得到,且该数据并未被第三方所篡改,此时数据可信;若验签不通过则表明自身接收到的数据签名与数据不一致,该数据可能遭到篡改,此时数据不可信。
下文实施例所述的客户端可以为密钥管理系统中的任一客户端,所述用户即为使用该客户端的用户(如登录该客户端的用户),该客户端中可以维护有该用户的用户身份私钥。
所述区块链网络可以维护有问题列表,该列表用于记录至少一个安全问题。对于其中任一安全问题,该列表中还可以记录该问题的问题标识、问题公钥、该问题对应的服务端的相关信息(如服务端标识、服务端的网络地址等)。任一问题存在相应的问题公钥和问题私钥(二者构成一对公私钥对),其中,问题私钥由该问题对应的服务端所维护;换言之,任一问题对应的服务端就是维护有该问题的问题私钥的服务端。对于密钥管理系统中的任一服务端而言,该服务端可以维护有一个或多个安全问题的问题私钥,所以该服务端可以对应于一个或多个安全问题,而任意两个不同的安全问题可能对应于同一服务端。上述安全问题的公私钥对的具体作用可以参见下文实施例,此处暂不赘述。当然,任意两个安全问题的问题公钥互不相同,相应的,任意两个安全问题的问题私钥也互不相同。鉴于区块链网络所支持的数据一致性机制可以保证各个区块链节点分别维护相同的数据,所以各个区块链节点可以分别维护有相同的上述问题列表。
其中,安全问题可以由密钥更新系统的管理人员生成并预先存证至区块链网络。如该管理人员可以向区块链网络发起问题存证交易,各个区块链节点执行该交易后可以在区块链网络中部署问题管理合约,并将上述各个安全问题作为该合约的合约账户的账户状态数据记录在区块链账本中。所述问题管理合约的可执行代码可以包含针对安全问题的管理逻辑,以便用于对安全问题进行新增、修改、查找、删除等管理。实际上,本公开所述区块链网络参与实现的各个处理过程(步骤),均可以由所述问题管理合约实现,特此说明。
如图1所示,区块链网络16中的区块链节点A~E可以分别维护相同的问题列表,该列表中记录有至少一个安全问题以及各个安全问题分别对应的服务端的相关信息。在列表中仅记录有一个安全问题的情况下,该问题可以对应于该系统中的任一服务端;在列表中记录有多个安全问题的情况下,各个问题可以分别对应于不同的服务端,而任一服务端可以对应于至少一个安全问题,即任一服务端可以维护有至少一个问题私钥,不同服务端分别维护的问题私钥互不相同。示例性的,在问题列表中记录有10个安全问题Q1~10的情况下,服务器13可以记录有Q1的问题私钥、服务器14可以记录有Q2~4的问题私钥、服务器15可以记录有Q5~10的问题私钥。
本公开所述的安全问题用于引导用户设置标准答案或者输入待验证答案,以用于此后对发起密钥更新的用户进行身份验证。示例性的,所述安全问题可以为“你的身份证号是多少?”、“你的账户地址是多少?”、“你的第一辆车是什么品牌?”、“你早上几点起床”等等。任一安全问题具体可以为文字、图片、音频和/或视频等任意形式,本公开实施例对于所述安全问题的内容和形式并不进行限制。
在一实施例中,在实施密钥更新操作之前,所述用户可以先为安全问题设置相应的标准答案。例如,用户可以在客户端中实施答案设置操作,客户端响应于该操作从区块链网络获取所述安全问题以便向所述用户展示,并进一步确定用户为所述安全问题设置的标准答案。其中,所述客户端可以从区块链网络处获取其维护的全部安全问题(如获取所述问题列表)并向用户展示;或者也可以先展示全部安全问题的基本信息供用户查看,再从区块链网络进一步获取用户所指定的部分安全问题以向用户展示,从而减少需要获取的安全问题的数据量。可见,对于区块链网络所维护的至少一个安全问题,所述客户端可以获取其中部分或全部安全问题,本公开对于所获取安全问题的数量并不进行限制。
其中,对于任一安全问题,区块链网络除了将该问题本身(即问题的内容)返回至客户端之外,还可以将该问题的问题标识、问题公钥、该问题对应的服务端的相关信息(如服务端标识、网络地址)等一并返回至所述客户端,以便后续步骤使用,此处暂不赘述。
对于客户端展示的各个安全问题,用户可以为其设置相应的标准答案。可以理解的是,由于用户为安全问题设置的标准答案,用于在后续进行密钥更新时对该用户进行身份验证,所以用户在为任一安全问题设置标准答案时,可以按照自身意愿设置自定义的答案,其中任一问题的答案可以与该问题的具体含义无关。例如,针对“你的身份证号是多少?”这一安全问题Q1,用户可以设置自身的真实身份证号作为标准答案,也可以设置其他含义的数字或者随机字符(并非该用户的真实身份证号)等作为标准答案。换言之,用户为任一安全问题设置的标准答案可以为任意内容,而并不一定是该问题在现实世界中对应的真实内容。
另外,各个安全问题可能被预先配置有相应的答案格式,此时用户设置的标准答案应当满足该格式。如在安全问题Q1的答案格式为“数字”的情况下,用户需要输入数字格式的内容;而在Q1的答案格式为“18位数字”的情况下,用户需要输入18位的数字作为标准答案,不再赘述。当然,上述答案格式也可以为文字、图片、音频或视频等,如可以为用户手持本人身份证的照片等,本公开并不对此进行限制。在用户输入的内容不符合相应答案格式的情况下,客户端可以向用户展示提示信息以提醒其输入正确格式的内容作为标准答案,从而确保标准答案的格式正确,避免后续处理出错。
当然,需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),如上述真实的身份证号等,均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
其中,在上述设置完成后,所述用户可以在客户端本地记录上述标准答案,或者也可以通过任意线下方式(如写在纸上、记在大脑中等)记录上述标准答案,以便在后续实施密钥更新操作时,可以根据上述记录准确输入此时预先设置的标准答案(对应于后续针对所述安全问题输入待验证答案的过程)向区块链网络证明自己的身份。
如前所述,区块链网络维护的安全问题可以由系统的管理人员生成并预先存证至区块链网络,显然,上述安全问题可以被区块链网络中的各个用户分别使用(即设置相应的标准答案等)。但是,管理人员生成的上述安全问题可能无法满足所述用户的特定需求,所以该用户还可以向区块链网络中添加(或称新增)自定义的安全问题(下称新安全问题)。例如,所述客户端可以向密钥管理系统中的任一服务端发起针对(待添加的)新安全问题的添加请求;响应于该请求,所述任一服务端可以为所述新安全问题生成相应的公私钥对。此后,服务端可以将用户指定的所述新安全问题和生成的公私钥对中的问题公钥提交至区块链网络,并将所述问题公钥对应的问题私钥维护在本地。可以理解的是,所述用户新增完成的所述新安全问题,与系统提供的所述安全问题一样,都可以被所述用户获取并设置标准答案。另外,本公开所述任一安全问题的问题公钥可以用于唯一标识该问题,即相当于该问题的“身份公钥”;相关各方通过配合使用所述问题公钥与相应的问题私钥,能够完成与该安全问题相关的身份验证过程。
通过上述方式,所述用户可以向区块链网络中添加自己需要的安全问题,从而在后续过程中可以获取该安全问题及其相关信息,并为其设置相应的标准答案,以满足自身对于安全问题的个性化需求。通过该方式,在有效管理各个用户设置的标准答案的同时,不仅可以满足所述用户自身对于安全问题的个性化需求,因为新安全问题由所述用户自己生成(即指定),所以还可以一定程度上降低该问题的标准答案被他人准确猜出的可能性,从而提升用户身份公钥的安全性。当然,所述用户添加的新安全问题可以仅被该用户所使用(如被获取并设置相应的标准答案),也可以开放给区块链网络对应的其他用户所使用,相应的用户权限可以由所述用户或者所述区块链网络的管理员进行配置,不再赘述。
在确定用户为安全问题设置的标准答案之后,客户端可以将所述安全问题、所述标准答案和所述用户的身份信息一并提交至所述区块链网络,以由所述区块链网络据此生成并维护标准哈希。或者,为了规避标准答案在传输过程中可能存在的泄密风险,也可以由客户端根据所述安全问题、所述标准答案和所述用户的身份信息在本地生成安全问题对应的标准哈希,并将其提交至所述区块链网络。当然,无论所述标准哈希由客户端生成还是区块链网络由生成,生成方都应当使用预设形式的哈希算法,以避免不同哈希算法分别生成的哈希无法进行比较。
示例性的,对于任一安全问题Qi,可以按照下述公式(1)或(2)计算该问题对应的标准哈希Hash-si:
Hash-si=hash(Qi的内容,用户为Qi设置的标准答案,用户的身份标识) (1)
Hash-si= hash1(Qi的内容,Hash-s0i) (2)
其中,Hash-s0i=hash2(用户为Qi设置的标准答案,用户的身份标识),所述hash1()和hash2()可以为同一哈希算法,也可以为不同的哈希算法。
另外,本公开所述任一哈希算法(如上述hash()、hash1()或hash2()等)可以根据密钥管理系统的安全性要求等实际情况选取。如可以为SHA(Secure Hash Algorithm,安全散列算法)、MD5(MD5 Message-Digest Algorithm,MD5消息摘要算法)、DES(DataEncryption Standard,数据加密标准)、AES(Advanced Encryption Standard,高级加密标准)等,以SHA为例,具体可以采用SHA-1、SHA-224、SHA-256、SHA-384或SHA-512等任一算法,不再赘述。
通过上述哈希处理,使得服务端或者区块链网络中的区块链节点保存的始终是字符串(即哈希值)。可以理解的是,就现阶段的技术手段而言,哈希计算具有不可逆特性,因此即便作恶方(如恶意服务端或恶意区块链节点)截获到该字符串,也无法暴力破解该哈希值以获知哈希计算之前的原文,即无法知晓该字符串的实际含义,从而无法知晓所述用户为哪些安全问题设置了哪些标准答案,有效保证了标准答案仅能够被合法用户(即设置标准答案的用户)或其使用的客户端知晓,降低了密钥泄露的风险,提升了安全性。
由上述公式可见,在计算任一安全问题对应的标准哈希的过程中,该问题的内容、用户为该问题设置的标准答案和所述用户的身份标识等被作为相应的哈希算法的输入参数。在一实施例中,为了提升所生成标准哈希的破解难度,可以在所述标准哈希的生成过程中,将至少一个随机盐值(salt)作为哈希算法的输入参数。例如,可以将上述公式(2)改进为公式(3):
Hash-si= hash1(Qi的内容,Hash-s0i,salt1) (3)
其中,Hash-s0i=hash2(用户为Qi设置的标准答案,用户的身份标识,salt2),所述salt1和salt2可以为同一随机盐值,也可以为不同的随机盐值。任一随机盐值可以采用预设的随机算法生成,此处不再赘述。本实施例仅以客户端或者区块链网络(实际为区块链网络中的各个区块链节点)生成标准哈希为例进行说明。实际上,所述客户端、所述服务端或者所述区块链网络在生成任一哈希的过程中,均可以将至少一个随机盐值作为相应哈希算法的输入参数,以增强所生成哈希值的随机性,提升其破解难度和安全性。
需要说明的是,前述实施例均以“为各个安全问题分别生成相应的标准哈希”为例进行说明。在一些实施例中,所述客户端或者区块链网络也可以为多个安全问题生成一个标准哈希,即将多个安全问题的内容、用户为各个安全问题分别设置的标准答案和所述用户的用户标识作为哈希函数的入参生成一个标准哈希,该哈希值即可作为所述多个安全问题共同对应的标准哈希。其中,上述多个安全问题可以为同一用户设置的全部安全问题,也可以为同一用户设置的全部安全问题中对应于同一服务端的多个安全问题等。通过该方式可以有效减少所生成标准哈希的数量,从而减少区块链网络需要维护的标准哈希数量,在不影响方案效果的同时有效节省区块链网络的链上存储空间。
如前所述,在通过哈希算法计算得到标准哈希之后,客户端可以将标准哈希提交至区块链网络保存。在一实施例中,为了避免标准哈希在网络传输过程中被截取而泄密,或者避免在区块链网络中被恶意节点(或称拜占庭节点)获知而泄密,所述客户端还可以在对标准哈希加密后再提交相应的哈希密文。例如,若所述服务端维护有自身的身份私钥,则客户端可以使用所述服务端的身份公钥加密所述标准哈希得到哈希密文,并将该哈希密文提交至所述区块链网络进行存证。其中,使用任一服务端的身份公钥加密的各个标准哈希,可以是根据所述用户为所述任一服务端对应的各个安全问题分别设置的标准答案生成的哈希值;相应的,在后续的密钥更新过程中,对于根据用户为所述任一服务端对应的各个安全问题分别输入的待验证答案生成的待验证哈希,所述客户端可以将其均发送至所述任一服务端。进而,所述客户端在从区块链网络获取标准哈希时,可以先从所述区块链网络获取被存证的所述哈希密文,再使用自身的身份私钥解密该哈希密文得到所述标准哈希。
再例如,若所述服务端维护有所述安全问题的问题私钥,则客户端可以使用所述问题公钥加密所述标准哈希得到哈希密文,并将该哈希密文提交至所述区块链网络进行存证。可以理解的是,对于具有公私钥对的任一安全问题,其问题公钥由客户端所维护、问题私钥由该问题对应的服务端所维护。对此,在客户端使用该问题公钥加密并提交所述任一问题对应的标准哈希之后的密钥更新过程中,对于根据用户为所述任一安全问题输入的待验证答案生成的待验证哈希,所述客户端可以将其发送至该服务端。进而,所述服务端在从区块链网络获取标准哈希时,可以先从所述区块链网络获取被存证的所述哈希密文,再使用所述安全问题的问题私钥解密所述哈希密文得到所述标准哈希。
在接收到客户端上传的标准哈希(或者所述哈希密文)后,区块链网络可以关联保存所述标准哈希和所述用户的身份标识,以便后续使用,从而完成对标准哈希的存证。至此,所述用户通过客户端完成了标准答案的设置过程。可以理解的是,所述区块链网络对应的各个用户都可以分别通过自身使用的客户端按照前述方式为至少一个安全问题设置相应的标准答案,并由区块链网络维护根据该标准答案生成的标准哈希。
在本方案中,用户可以通过实施密钥更新操作对自身的公私钥对进行更新,以便及时更新原有的公私钥对,避免对区块链相关的资产带来损失。例如,所述用户可以在发现自身用户身份私钥丢失或泄露的情况下实施所述密钥更新操作。
在一实施例中,所述客户端可以获取所述安全问题并向用户展示,进而根据所述用户实施的答案输入操作确定其为被展示的所述安全问题输入的待验证答案。通过该方式,可以便于用户充分查看需要输入待验证答案的安全问题,避免用户未充分查看导致输入内容出错。如前所述,区块链网络可能维护有多个安全问题,可以理解的是,客户端获取并展示的所述安全问题,应当是所述用户预先设置有相应的标准答案的那部分安全问题,而不应当包含并未被该用户设置相应标准答案的其他安全问题。
在一实施例中,客户端可以通过多种方式获取所述安全问题以供用户为其输入待验证答案。例如,在从区块链网络获取安全问题并由用户为其设置所述安全问题之后,客户端除了将相应的标准哈希存证至区块链网络之外,还可以将所述安全问题缓存在本地存储空间,以便后续响应于所述密钥更新操作从本地存储空间中读取这些安全问题。再例如,为了减少对客户端本地存储空间的占用,并避免客户端登录的其他用户对本地存储的安全问题进行修改(增/删、篡改等),所述客户端也可以从所述区块链网络临时获取所述安全问题。如客户端可以响应于密钥更新操作确定所述用户的身份标识(账号、昵称等),并将该身份标识包含在问题获取请求中发送至区块链网络,以由区块链节点响应于该请求确定该身份标识对应的(即该身份标识所表征的预先设置有相应标准答案的)各个安全问题,并将其(即各个安全问题的问题内容)返回至所述客户端。其中,上述问题获取请求可以以区块链交易的形式向区块链网络发起,以由各个区块链节点通过执行该交易确定相应的安全问题并返回至所述客户端。
其中,在用户为所述安全问题设置标准答案之后,客户端可以在本地记录该用户的身份信息与被设置标准答案的所述安全问题的第一关联关系(如前述将安全问题缓存在本地存储空间的场景),或者记录该用户的身份信息与被设置标准答案的所述安全问题的问题标识之间的第二关联关系(如前述临时获取安全问题的场景)。基于此,客户端可以响应于所述密钥更新操作,根据所述第一关联关系确定需要向所述用户展示的各个安全问题,并向用户展示这些问题的内容;或者也可以根据所述第二关联关系确定需要展示的各个安全问题的问题标识,进而向区块链网络发起包含这些问题标识的问题获取请求,并在接收到区块链网络返回的所述各个安全问题的情况下,向用户展示这些问题的内容。
可以理解的是,实施所述密钥更新操作的用户可能是合法用户(即为所述安全问题设置标准答案的前述用户),也可能是非法用户(即合法用户之外的其他用户)。通常情况下,只有上述合法用户才会知晓所述安全问题的标准答案(因为该答案正是自己设置的),因此只有合法用户输入的待验证答案才可能与前述标准答案相同,所以可以通过所述待验证答案验证用户的真实身份(即验证针对所述安全问题实施所述密钥更新操作的用户,是否为针对这些安全问题设置标准答案的合法用户)。当然,若设置标准答案的用户由于记录有误而在本次输入错误的(即与标准答案不同的)待验证答案,则仍然会判定该用户为非法用户。
如前所述,密钥管理系统中可以包含一个或多个服务端。在所述服务端的数量为多个的情况下,其中任一服务端可以维护有至少一个安全问题的问题私钥。所述用户可以为多个安全问题分别输入相应的待验证答案,此时,所述客户端可以确定用户为所述多个安全问题(中各个问题)分别输入的待验证答案。基于此,客户端可以为所述多个安全问题分别生成相应的第一待验证哈希,其中,任一安全问题对应的第一待验证哈希基于所述任一安全问题、所述任一安全问题的待验证答案和所述用户的身份信息生成。可以理解的是,用于计算第一待验证哈希的任一安全问题即为该问题的内容。
与前述计算任一安全问题Qi对应的标准哈希的公式类似的,客户端可以按照下述公式(4)或(5)计算Qi对应的第一待验证哈希Hash1i:
Hash1i= hash(Qi的内容,用户为Qi输入的第一待验证答案,用户的身份标识)(4)
Hash1i= hash1(Qi的内容,Hash0i) (5)
其中,Hash0i=hash2(用户为Qi输入的第一待验证答案,用户的身份标识),所述hash1()和hash2()可以为同一哈希算法,也可以为不同的哈希算法。其中,上述公式(4)和(5)中也可以引入随机盐值,具体可参见前文在公式(2)中引入随机盐值的过程,此处不再赘述。
除了通过上述公式计算得到各个安全问题的第一待验证哈希之外,所述客户端还需要生成自身的目标公私钥对:包括目标公钥和目标私钥。其中,所述目标公钥即用于替换当前时刻区块链网络维护的所述用户的用户身份公钥,所述目标私钥用于替换所述客户端本地维护的或者所述用户自身记录的该用户的用户身份私钥。所述目标公私钥对可以采用预设的随机算法生成,该随机算法的入参可以为随机数,或者也可以为该用户的身份信息或者所述客户端的硬件信息等,具体计算过程可以参见相关技术中的记载,此处不再赘述。
针对所述多个安全问题,客户端可以向维护有其中至少一个安全问题的问题私钥的任一服务端,发起包含目标公钥和所述至少一个安全问题分别对应的第一待验证哈希的密钥更新请求。例如,假设所述用户为10个安全问题(Q1~10)分别输入了相应的待验证答案,则客户端可以先确定这10个安全问题分别对应的服务端(即维护有各个安全问题的问题私钥的服务端),然后分别向各个服务端发起相应的密钥更新请求,其中向任一服务端发起的密钥更新请求中,即包含上述10个安全问题中由该服务端所维护的至少一个安全问题分别对应的第一待验证哈希。
承接于前述实施例,对于安全问题Q1~10,在服务器13记录有Q1的问题私钥、服务器14记录有Q2~4的问题私钥、服务器15记录有Q5~10的问题私钥的情况下,客户端在计算得到Q1~10一一对应的第一待验证哈希hash1~10之后,可以将其中的hash1包含在密钥更新请求中发送至服务器13、将其中的hash2~4包含在密钥更新请求中发送至服务器14、将其中的hash5~10包含在密钥更新请求中发送至服务器15。由此可见,客户端向任一服务端发起的任一密钥更新请求中,会包含至少一个第一待验证哈希。
相应的,在接收到服务端发起的密钥更新请求后,任一服务端可以响应于该请求从区块链网络获取标准哈希。例如,所述任一服务端可以确定自身接收到的密钥更新请求中包含的各个第一待验证哈希,并从区块链网络获取所述各个第一待验证哈希分别对应的标准哈希。其中,所述任一服务端接收到的密钥更新请求中除了包含目标公钥和至少一个第一待验证哈希之外,还可以包含各个第一待验证哈希分别对应的安全问题的问题标识或者所述用户的身份信息。在密钥更新请求中包含各个安全问题的问题标识的情况下,该服务端可以根据这些问题标识向区块链网络请求获取相应安全问题对应的标准哈希;而在密钥更新请求中包含所述用户的身份信息的情况下,该服务端可以将上述身份信息提交至区块链网络,以由区块链网络根据该身份信息确定所述用户对应的各个标准哈希(即根据该用户为相应安全问题设置的标准答案生成的哈希),并从这些标准哈希中确定对应于该服务端的部分标准哈希,然后将这部分标准哈希返回至该服务端。通过上述方式,任一服务端在接收到客户端发起的密钥更新请求后,可以根据其中包含的第一待验证哈希或标识信息,从区块链网络处准确地获取相应的标准哈希,以便后续进行哈希比较。
其中,客户端在向任一服务端发起密钥更新请求时,为了避免其中包含的第一待验证哈希被第三方截获而导致泄密,可以使用该服务端的身份公钥对各个第一待验证哈希进行加密,并将加密后的数据哈希密文包含在密钥更新请求中发送至所述服务端;相应的,该服务端接收到密钥更新请求后可以使用自身的身份私钥进行解密以获取各个(明文形式的)第一待验证哈希。或者,也可以使用各个安全问题的问题公钥对相应的第一待验证哈希进行加密,并将加密后的哈希密文包含在密钥更新请求中发送至所述服务端;相应的,该服务端接收到密钥更新请求后可以使用自身维护的问题私钥进行解密以获取相应的(明文形式的)第一待验证哈希。而且,在向任一服务端发起的密钥更新请求中包含多个第一待验证哈希的情况下,还可以使用各个安全问题的问题私钥以数字信封的形式对各个第一待验证哈希进行嵌套式加密,从而进一步提升哈希的破解难度和传输过程中的安全性。
类似的,承接于前述实施,客户端可以使用相应服务端的身份公钥对各个标准哈希进行加密生成相应的哈希密文,并将其提交至区块链网络进行存证;对此,该服务端在从区块链网络处获取到任一标准哈希的哈希密文之后,可以使用自身的身份私钥解密该哈希密文得到所述标准哈希。或者,所述客户端也可以使用相应安全问题的问题公钥对各个标准哈希进行加密生成相应的哈希密文,并将其提交至区块链网络进行存证;对此,该服务端在从区块链网络处获取到任一标准哈希的哈希密文之后,可以使用相应安全问题的问题私钥解密该哈希密文得到所述标准哈希。通过该方式,可以确保标准哈希的传输过程及其在区块链网络中存储期间的安全性,避免标准哈希被第三方获取而泄密。
如前所述,客户端向服务端发起的密钥更新请求中包含目标公钥和第一待验证哈希,而服务端响应于该请求从区块链网络获取到相应的标准哈希之后,可以进一步比较所述第一待验证哈希和该标准哈希是否相同,以便根据判断结果决定是否触发区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
在一实施例中,服务端在接收到客户端发起的密钥更新请求后,可以获取其中包含的第一待验证哈希,并从区块链网络获取该第一待验证哈希所对应安全问题的标准哈希。此后,可以直接比较获取到的所述第一待验证哈希与所述标准哈希是否相同,从而确保对密钥更新请求的快速、高效响应。
在另一实施例中,所述客户端在向服务端发起密钥更新请求时,为了避免其中包含的第一待验证哈希被截获并破解而遭到泄露,可以基于目标公钥和第一待验证哈希生成第二待验证哈希,并向服务端发起包含所述目标公钥和该第二待验证哈希的密钥更新请求。相应的,由于所述服务端接收到的并非明文形式的第一待验证哈希而是第二待验证哈希,因此为了有效地比较第一待验证哈希与标准哈希,可以基于所述目标公钥和所述标准哈希生成第三待验证哈希,并确定所述第二待验证哈希与所述第三待验证哈希是否相同:在二者相同的情况下,可以确定所述第一待验证哈希与标准哈希相同;反之,在二者不同的情况下,则可以确定所述第一待验证哈希与标准答案不同。可以理解的是,因为第二待验证哈希被根据目标公钥和第一待验证哈希生成,第三待验证哈希被根据目标公钥和标准哈希生成——鉴于生成第二待验证哈希和第三待验证哈希的过程使用了相同的目标公钥,所以若第二待验证哈希与第三待验证哈希相同,则可以直接确定所述第一待验证哈希与标准哈希相同,从而确定相应的待验证答案与标准答案相同;反之亦然,不再赘述。
通过该方式可以避免中间人攻击可能带来的损失:即便所述密钥更新请求被客户端和服务端之间的任意第三方(或称中间人)截获,此时虽然中间人能够获知第二待验证哈希(本质上就是字符串),但由于哈希运算的不可逆性,使得其无法反向解析该哈希值得到第一待验证哈希,因此无法将第一待验证哈希替换为根据自己的公钥生成的哈希值,从而导致该中间人无法发起有效的中间人攻击。
当然,要根据上述判断方式得出准确结论,所述第二待验证哈希和第三待验证哈希需要采用相同的算法计算得到。示例性的,针对任一安全问题Qi,可以采用下述式(6)和(7)分别计算第二待验证哈希Hash2i和第三待验证哈希Hash3i:
Hash2i= hash(目标公钥,Hash1i) (6)
Hash3i= hash(目标公钥,Hash-si) (7)
其中,所述Hash1i为Qi对应的第一待验证哈希,所述Hash-si为Qi对应的标准哈希,式(6)和(7)应当采用相同的哈希算法hash()。
在通过前述方式确定所述第一待验证哈希与所述标准哈希相同的情况下,所述服务端可以触发区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
如前所述,所述密钥管理系统中可能包含多个服务端,即所述服务端的数量可能为多个,其中任一服务端可能维护有至少一个安全问题的问题私钥。在一实施例中,在确定所述第一待验证哈希与所述标准哈希相同的情况下,各个服务端可以分别对自身接收到的第一待验证哈希进行签名,以通过该签名触发区块链网络将用户身份公钥更新为所述目标公钥。其中任一服务端可以使用自身的身份私钥或者相应安全问题的问题私钥进行上述签名,下面以问题私钥为例进行说明:
例如,任一服务端在接收到所述密钥更新请求后,针对其中包含的对应于任一安全问题的任一第一待验证哈希,在通过前述方式确定该哈希与相应的标准哈希相同(即验证通过)的情况下,可以使用所述任一安全问题的问题私钥对所述任一第一待验证哈希进行签名,并将该哈希及其签名返回至发起所述密钥更新请求的客户端。可以理解的是,客户端可能接收到至少一个服务端分别返回的第一待验证哈希及其签名,该客户端可以响应于接收到任一服务端返回的任一第一待验证哈希及其签名,将所述目标公钥、所述任一第一待验证哈希及其签名提交至所述区块链网络。或者,所述任一服务端也可以自行将目标公钥、所述任一第一待验证哈希及其签名一并提交至所述区块链网络,而不必将上述签名返回至所述客户端。进而,所述区块链网络可以在接收到的(所述客户端或者所述服务端提交的)第一待验证哈希及其签名满足预设条件的情况下,将所述用户的用户身份公钥更新为接收到的所述目标公钥。具体的,区块链网络中的任一区块链节点可以分别统计自身接收到的针对各个第一待验证哈希的签名,并判断这些签名是否满足预设条件,进而在满足的情况下对用户身份公钥进行更新。
其中,客户端对任一第一待验证哈希做出的签名,可以直接基于所述任一第一待验证哈希生成,也可以基于该哈希所处的密钥更新请求所生成;在前述通过第一待验证哈希生成相应的第二待验证哈希的情况下,所述签名还可以基于所述第二待验证哈希生成,本公开对于第一待验证哈希的签名的具体形式及其生成方式并不进行限制。
通过上述方式,各个服务端可以分别使用自身维护的问题私钥对客户端生成的第一待验证哈希进行签名,以通过该签名作为各个服务端对自身接收到的第一待验证哈希的验证结果的证明:区块链网络接收到针对任一待验证哈希的签名,即表明相应的服务端已经判断出该哈希和相应安全问题的标准哈希相同。
由前述实施例可知,任一用户针对任一安全问题输入的任一待验证答案,将会由服务端生成一个相应的待验证哈希并为该哈希生成一个签名,因此区块链网络接收到任一服务端针对任一第一待验证哈希生成的签名,即表明该服务端已经判定该第一待验证哈希与相应安全问题的标准哈希相同。
基于上述分析,所述区块链网络可以在多种情况下判定接收到的上述签名满足预设条件。例如,区块链网络中的各个区块链节点可以统计接收到的针对第一待验证哈希的签名的总数,若该总数不小于(即大于或等于,下同)第一数量阈值,即可判定区块链网络接收到的签名满足预设条件。其中,所述第一数量阈值可以为所述用户输入待验证答案的安全问题数量的预设百分比,如所述用户针对10个安全问题输入了待验证答案,则上述第一数量阈值可以为10个(预设百分比为100%)、5个(预设百分比为50%)、8个(预设百分比为80%)等。再例如,区块链网络中的各个区块链节点也可以分别对自身接收到的签名进行验签(如在服务端通过问题私钥签名的情况下,使用问题公钥验签;在服务端通过自身的身份私钥签名的情况下,使用该服务端的身份公钥验签等):若通过验签的签名的数量不小于第二数量阈值,则可判定区块链网络接收到的签名满足预设条件。其中,上述第二数量阈值也可以为所述用户输入待验证答案的安全问题数量的预设百分比;或者,假设该安全问题数量为f,则第二数量阈值可以不小于(f+1)/3,以便在部分恶意服务端对签名对象进行造假(如在第一待验证哈希与标准答案不同的情况下进行签名等)的情况下,仍然能够保证对用户身份公钥的更新结果是可信的。
在一实施例中,所述区块链网络中的任一区块链节点也可以对接收到的各个第一待验证哈希进行初步验证。例如,客户端在向所述区块链网络提交所述目标公钥、所述任一第一待验证哈希及其签名(包含在前述密钥更新请求中)时,还可以同时提交所述任一安全问题的问题标识和所述任一安全问题对应的基础待验证哈希。其中,所述基础待验证哈希基于所述用户为所述任一安全问题输入的待验证答案和所述用户的身份信息生成,如前述公式(5)所示,对于安全问题Qi对应的第一待验证哈希Hash1i,其对应的基础待验证哈希即为Hash0i,即Hash0i=hash2(用户为Qi输入的第一待验证答案,用户的身份标识)。基于此,所述区块链网络中的任一区块链节点可以根据前述密钥更新请求包含的所述问题标识查询相应的任一安全问题,并基于所述基础待验证哈希和查询到的该安全问题生成第一基础待验证哈希。其中,可以按照前述公式(5)同样的方式计算第一基础待验证哈希Hash1i’,如下公式(8)所示:
Hash1i’= hash1(区块链节点根据Qi的问题标识查询到的Qi的内容,Hash0i) (8)
进而,该客户端可以根据所述问题标识在所述区块链网络存证的哈希密文中查询加密所述任一安全问题对应的标准哈希得到的哈希密文,并使用加密所述哈希密文的公钥加密所述第一基础待验证哈希得到第一基础待验证哈希密文。其中,所述第一基础待验证哈希密文与查询到的所述哈希密文相同,被作为判定所述任一第一待验证哈希及其签名是否满足所述预设条件的前提条件。
如根据前述Qi的问题标识查询到区块链网络中存证的、被使用公钥加密的标准哈希密文Hash-si’,此时可以使用该公钥加密前述Hash1i’得到第一基础待验证哈希密文Hash1i’’,此时,若Hash1i’’=Hash-si’,区块链节点即可判定:接收到的第一待验证哈希Hash1i及其签名通过验证,此时可以开始对第一待验证哈希Hash1i及其签名进行前述验签等操作。其中,如前所述,加密标准哈希密文Hash-si’的公钥可以是该服务端的身份公钥,也可以是安全问题Qi的问题公钥,不再赘述。
通过上述方式可见,因为所述用户设置标准答案的多个问题的问题私钥并未全部由这一个服务端所维护,而是分散到多个服务端分别维护,所以即便任一服务端为作恶方,使用各种办法非法获得所有的Hash1i,但因为其无法提供相应的Hash0i,区块链上其他节点也无法验证通过,使得该服务端无法盗用用户密钥,从而通过安全问题的分散部署,进一步提升了用户密钥的安全性。
在接收到的上述签名满足预设条件的情况下,区块链网络可以响应于这些签名的触发,对自身维护的用户身份公钥进行更新。
在一实施例中,所述区块链网络中的各个区块链节点,可以分别使用所述目标公钥替换自身维护的所述用户的用户身份公钥,从而将该用户身份公钥更新为所述目标公钥。
在一实施例中,所述用户身份公钥可以由区块链网络中部署的智能合约所维护,此时区块链网络中的区块链节点可以调用该智能合约将所述用户的用户身份公钥更新为所述目标公钥。例如,在所述用户的身份信息集合用户身份公钥被记录在区块链网络维护的用户列表中的情况下,区块链节点可以调用上述智能合约将该用户列表中所述用户的用户身份公钥替换为所述目标公钥。当然,上述客户端或者服务端可以通过发起区块链交易的方式向区块链网络发送目标公钥、第一待验证哈希及其签名,此时区块链节点可以在执行该交易的过程中调用上述智能合约。
至此,对区块链网络维护的用户身份公钥更新过程介绍完毕。可以理解的是,上述密钥更新方案不仅将用户身份公钥更新为目标公钥,还将原来的用户身份私钥更新为相应的目标私钥,即使用新生成的目标公私钥对替换了原来的用户公私钥对。在更新完成后,所述用户即可使用所述目标公钥和目标私钥相互配合,参与所述区块链网络的区块链事务,具体过程不再赘述。
本方案摒弃了集中式托管的密钥管理方式,由密钥管理系统中的客户端和服务端与提供区块链服务的区块链网络进行交互,使得用户可以通过三者之间的相互配合对链上维护的用户身份公钥进行更新(即将原来的用户身份公钥更新为新的目标公钥)。可以理解的是,由于用户维护有(如由所述客户端维护)所述目标公钥对应的目标私钥,所以通过上述过程可以实现对用户所使用的目标公钥钥对这一整体的更新。由于目标公私钥对可以在该用户参与未来的区块链事务的过程中用于对其进行身份验证,所以若用户在原有用户身份私钥丢失或泄露的情况下实施上述密钥更新操作,并使用更新后的所述目标公私钥对参与未来的区块链事务,即可及时更新该用户在区块链网络中的身份,从而避免蒙受损失。
同时,由于第一待验证哈希基于所述安全问题、所述待验证答案和所述用户的身份信息生成;类似的,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成,所以若客户端生成的第一待验证哈希和链上存证的标准哈希相同,即表明用户本次为所述待安全问题输入的验证答案与预先设置的标准答案一致,从而在密钥更新过程中通过上述问题答案实现了对该用户身份的有效验证和确认。
进一步的,由于只有在第一待验证哈希和标准哈希相同的情况下,区块链网络才会将所述用户身份公钥更新为客户端新指定的目标公钥,从而保证了更新用户身份公钥的所述用户正是该用户身份公钥所对应的原有用户(即二者是同一用户),从而确保了更新过程以及更新后的目标公钥均是可信任的。可见,通过分布式设置的安全问题和基于安全问题及其问题答案对发起密钥更新的用户进行身份验证和确认,能够有效避免用户身份公钥被除该合法用户之外的其他用户替换(或称篡改),从而提升了该用户在区块链网络中的身份可信度及其链上资产的安全性。
如图2所示为本公开实施例示出的一种密钥管理方法的交互流程图。如图2所示,该方法涉及密钥管理系统中的任一客户端、任一服务端(下称服务端i)和区块链网络,可以包括下述示例性步骤201a~214b。
其中,步骤201a~206a属于答案配置阶段,即所述用户通过任一客户端为多个安全问题分别配置相应的标准答案;步骤201b~214b属于密钥更新阶段,即所述用户任一客户端为所述多个安全问题输入待验证答案以证明自己的合法身份,并据此修改区块链网络维护的该用户的用户身份公钥的过程。下面分别对两阶段进行说明:
【答案配置阶段】
步骤201a,客户端检测到用户实施的答案配置操作。
步骤202a,客户端从区块链网络维护的问题列表获取n个安全问题。
在用户账户登录后的合适时刻(如用户注册后的首次登录时),用户可以在客户端中实施答案配置操作,以便对安全问题设置标准答案。其中,上述答案设置操作可以触发客户端从区块链网络获取安全问题。其中,服务端可以按照预设规则获取安全问题,或者也可以获取所述用户指定的各个安全问题。
假设密钥管理系统中共包含S(S≥1)个服务端,区块链网络维护的问题列表中包含N(N≥1)个安全问题,对于任一安全问题,该列表中除了记录该问题的内容(即问题本身)之外,还可以记录该问题的问题标识和问题公钥。进一步假设客户端从区块链网络处获取n(N≥n≥1)个安全问题,所述n个安全问题一一对应的n个问题私钥由上述S个服务端中的s(S≥s≥1)个服务端所维护,其中任一服务端维护有至少一个安全问题的问题私钥,而任一问题私钥可以仅由一个服务端所维护,即任一服务端与问题私钥之间可以满足一对多的数量关系。其中,所述问题列表可以由前述问题管理合约所维护,不再赘述。
下述步骤以“n>s,且任一问题私钥仅由一个服务端所维护”的场景进行说明,可见,对于服务端j而言,存在s≥j≥1,且服务端j可能维护有一个或多个问题私钥,特此说明。
在一实施例中,所述客户端可以向任一区块链节点发起问题获取请求,并接收该节点响应于该请求返回的n个安全问题;或者,也可以向区块链网络发起问题获取交易,并接收区块链网络在执行该交易后(通过任一区块链节点)返回的n个安全问题。
其中,返回的任一安全问题,除了包含问题本身的内容之外,还可以包含该问题的问题公钥和问题标识,不再赘述。
步骤203a,客户端确定所述用户为各个安全问题分别设置的标准答案。
服务端可以将获取到的n个安全问题向用户展示,以便用户为各个问题设置相应的标准答案。
其中,用户为任一安全问题设置的标准答案可以与该问题内容的实际含义强相关,也可以与其实际含义无关。如对于“你的第一辆车是什么品牌?”这一问题,用户既可以设置自己第一辆车的真实品牌,也可以设置虚拟品牌甚至与车辆完全无关的随机内容。换言之,所述用户可以自定义地为任一安全问题设置任一内容作为标准答案,只需以自己合适的方式记住(如通过线下方式记录或者记录在客户端本地等)该内容即可。
步骤204a,客户端根据各个标准答案分别计算标准哈希,并用相应的公钥加密得到哈希密文。
针对用户输入的各个标准答案,客户端可以分别计算相应的标准哈希。如对于任一安全问题,可以根据该安全问题、所述用户为该安全问题设置的标准答案和所述用户的身份信息生成该安全问题对应的标准哈希。具体计算过程可以参见前文所述公式(1)、(2)或(3),不再赘述。
此后,客户端可以将各个标准哈希加密后存证至区块链网络。如对于任一安全问题Qi的标准哈希Hash-si,可以使用该问题的问题公钥加密该哈希得到哈希密文Hash-si’;或者也可以先确定维护有该问题的问题私钥的任一服务端,再使用该服务端的身份公钥加密该标准哈希Hash-si得到哈希密文Hash-si’。
当然,为了减少区块链网络需要维护的哈希密文Hash-si’的数量,也可以将多个标准哈希合并加密。例如,若任一服务端维护有所述n(n≥2)个安全问题中的m(n≥m≥2)个安全问题的问题私钥,则客户端可以使用该服务端的身份公钥一并加密所述m个安全问题一一对应的m个标准哈希得到一个哈希密文Hash-si’。再例如,客户端也可以使用所述服务端j的身份公钥加密所述n个安全问题一一对应的全部n个标准哈希得到一个哈希密文Hash-si’。
步骤205a,客户端将所述哈希密文提交至区块链网络进行存证。
步骤206a,区块链网络保存所述客户端上传的所述哈希密文。
在通过上述方式加密得到至少一个哈希密文后,客户端可以将各个哈希密文提交至所述区块链网络进行存证。如可以向区块链网络发起调用所述问题管理合约的区块链交易,以由各个区块链节点执行该交易将上述各个哈希密文交由该问题管理合约所维护,如将各个哈希密文作为该合约所对应合约账户的账户状态数据记录在区块链账本中,以便于后续通过所述问题管理合约对这些哈希密文进行快速查找。
另外,所述区块链网络可以记录所述用户的身份标识与所述n个安全问题的问题标识之间的对应关系。或者,所述客户端本地也可以记录所述n个安全问题与所述用户的用户标识之间的对应关系,或者记录所述n个安全问题的问题标识与所述用户的用户标识之间的对应关系等,以便后续过程使用。
至此,在用户为n个安全问题分别设置的标准答案后生成的n个标准哈希即被存证至区块链网络,可以在后续密钥更新阶段用于对发起密钥更新的用户进行身份验证。
可以理解的是,密钥更新阶段发生在答案配置阶段之后,但本方案对于上述两阶段之间的间隔时间并无限制,可以根据所述用户的需求灵活决定。
【密钥更新阶段】
步骤201b,客户端检测到用户实施的密钥更新操作。
步骤202b,客户端获取并展示该操作对应的所述n个安全问题。
在想要更新自身的用户身份公钥时,用户可以在所述客户端中实施密钥更新操作,客户端则响应于该操作获取相应的n个安全问题并向用户展示。
在一实施例中,客户端可以在前述答案设置阶段获取到n个安全问题之后,可以将这些问题缓存在本地存储空间,从而可以响应于所述密钥更新操作从所述本地存储空间中获取所述n个安全问题。在另一实施例中,客户端也可以从所述区块链网络获取所述安全问题。
如前所述,在客户端本地记录有所述n个安全问题与所述用户的用户标识之间的对应关系的情况下,客户端可以在确定实施所述密钥更新操作的用户的用户标识后,根据该对应关系查找该用户标识对应的n个问题。或者,在客户端记录有所述n个安全问题的问题标识与所述用户的用户标识之间的对应关系的情况下,客户端可以在确定实施所述密钥更新操作的用户的用户标识后,根据该对应关系查找该用户标识对应的n个问题标识,再向区块链网络请求获取这n个问题标识所表征的n个安全问题。
步骤203b,客户端确定用户为各个安全问题分别输入的标准答案,并计算各个相应的第一待验证哈希。
针对客户端展示出的n个安全问题,所述用户可以实施答案输入操作,为各个安全问题分别输入相应的待验证答案。对此,客户端可以依次计算各个安全问题分别对应的第一待验证哈希。如对于任一安全问题,客户端可以基于所述任一安全问题、所述用户为该安全问题输入的待验证答案和所述用户的身份信息生成第一待验证哈希Hash1i。具体计算过程可以采用前文所述公式(4)或(5)。当然,若步骤204a采用公式(1)计算标准哈希,则此处应当采用公式(4)计算第一待验证哈希;若步骤204a采用公式(2)或(3)计算标准哈希的情况下,此处应当采用公式(5)计算第一待验证哈希,以保证后续哈希对比过程是有意义的,具体过程不再赘述。
可以理解的是,若该用户正是合法用户(即该用户是为所述n个安全问题设置相应标准答案的用户),则该用户会记得自己曾经设置的各个标准答案,并按照自己的记录输入待验证答案——该待验证答案应当与标准答案相同——此时(根据待验证答案)计算出的待验证哈希应当与标准哈希相同;反之,若该用户不是上述合法用户,则该用户无从获知真实的标准答案,因此其输入的待验证答案将与实际的标准答案不同——此时计算出的待验证哈希应当与标准哈希不同。
步骤204b,客户端采用随机算法生成新的目标公私钥对。
除了根据用户输入的待验证答案生成第一待验证哈希之外,客户端还可以采用随机算法生成新的目标公私钥对,包括目标公钥和目标私钥。该目标公私钥对即被用于替换所述用户当前使用的公私钥对。需要说明的是,生成新的目标公私钥对的过程,可以在步骤205b之前的任一时刻进行,因此步骤204b与前述步骤之前并不存在时间上的先后顺序。
实际上,所述目标公私钥对也可以由不由所述客户端生成,而由所述用户直接向客户端指定,不再赘述。
步骤205b,客户端根据目标公钥和第一待验证哈希计算第二待验证哈希。
为了避免针对待传输的第一待验证哈希发起的中间方攻击可能造成的损失,可以根据第一待验证哈希计算第二待验证哈希,并将所述目标公钥和第二待验证哈希发送至所述服务端j。其中,计算第二待验证哈希的过程可以使用所述目标公钥,如采用前述公式(6)进行计算(下文步骤以此为例);或者也可以不采用目标公钥,本公开并不对此进行限制。
步骤206b,客户端向服务端j发起包含第二待验证哈希的密钥更新请求。
在生成上述第二待验证哈希之后,客户端可以将各个第二待验证哈希分别发送至相应的服务端,如向所述s个服务端分别发起密钥更新请求。其中,向任一服务端j发起的密钥更新请求中除了包含服务端j维护有问题私钥的至少一个安全问题对应的第二待验证哈希之外,还可以包含所述目标公钥。如在服务端j维护有n个安全问题中的某2个安全问题的问题私钥的情况下,客户端向服务端j发起的密钥更新请求中即可包含这2个安全问题对应的第二待验证哈希。
其中,鉴于任一第二待验证哈希均根据相应的第二待验证哈希生成,所以服务端j接收到任一第二待验证哈希,即可视为该服务端接收到相应的第一待验证哈希,特此说明。
客户端还可以使用服务端j的身份公钥或者相应安全问题的问题公钥加密密钥更新请求中的目标公钥和/或第二待验证哈希,并由服务端j使用相应的身份私钥或者问题私钥进行解密。
步骤207b,服务端j响应于密钥更新请求从区块链网络获取相应的哈希密文。
在一实施例中,客户端发起的任一密钥更新请求中除包含目标公钥和至少一个安全问题对应的第二待验证哈希之外,还可以包含所述至少一个安全问题的问题标识。基于这些问题标识,服务端j可以向区块链网络针对性地获取所述至少一个安全问题对应的标准哈希。
在另一实施例中,服务端j也可以根据所述密钥更新请求确定所述用户的身份信息(可以包含在密钥更新请求中或者根据请求所属的会话ID确定),然后根据该身份信息从区块链网络获取相应的标准哈希。如服务端j在将该身份信息发送至区块链网络后,区块链节点可以确定该身份信息所表征的用户在答案设置阶段设置了标准答案的n个安全问题,并从这些安全问题中确定所述服务端j对应的那部分安全问题(即使用服务端j的身份公钥加密了相应标准哈希的问题,或者被服务端j维护有相应问题私钥的问题),进而将这部分安全问题的标准哈希(或相应的哈希密文Hash-si’)返回至所述服务端j。
步骤208b,服务端j解密哈希密文得到标准哈希。
若接收到的哈希密文Hash-si’使用服务端j的身份公钥加密,则可以使用自身的身份私钥进行解密;若接收到的哈希密文Hash-si’使用安全问题的问题公钥加密,则可以使用相应的(维护在服务端j本地)的问题私钥进行解密。通过解密所述哈希密文Hash-si’,可以得到相应安全问题Qi的标准哈希Hash-si。
步骤209b,服务端j根据标准哈希和目标公钥计算第三待验证哈希。
针对解密得到的标准哈希,服务端j可以使用目标公钥和该哈希计算第三待验证哈希Hash3i,其计算所采用的哈希算法应当与步骤205b中计算第二待验证哈希Hash2i所使用的哈希算法相同。如在步骤205b采用公式(6)计算Hash2i的情况下,此处可以采用前述公式(7)计算Hash3i,不再赘述。
步骤210b,服务端j判断第二待验证哈希与第三待验证哈希是否相同。
针对客户端发送的第二待验证哈希Hash2i和计算得到的第三待验证哈希Hash3i,服务端j可以判断二者是否相同。可以理解的是,若二者相同,即表明用户本次输入的待验证答案与为相应安全问题预先设置的标准答案相同,此时可以认为实施密钥更新操作的用户就是为相应安全问题设置标准答案的合法用户,即实施密钥更新操作的所述用户通过身份验证,可以转入步骤211b。
反之,若二者不同则所述用户未通过身份验证,此时可以终止后续步骤,还可以向所述客户端返回通知消息,以告知用户本次密钥更新失败。
或者,在二者相同的情况下,服务端j也可以用相应的私钥对第一待验证哈希进行签名,并将目标公钥和自身接收到的n个第一待验证哈希及其签名直接提交至区块链网络。
步骤211b,服务端用相应的私钥对第一待验证哈希进行签名,并将第一待验证哈希及其签名返回至客户端。
服务端j可以使用自身的身份私钥对第一待验证哈希Hash1i进行签名,也可以使用相应安全问题的问题私钥对第一待验证哈希进行签名。通过使用自身维护的私钥对上述第一待验证哈希签名,使得所述服务端j以自己的身份对第一待验证哈希与标准哈希的真实性进行倍数背书,实现了对第一待验证哈希的可靠性传递。
其中,所述签名可以基于第一待验证哈希Hash1i本身生成,也可以基于前述第二待验证哈希Hash2i生成,还可以基于包含Hash1i的密钥更新请求所生成,可以根据实际情况合理选取,本公开对此并不进行限定。
步骤212b,客户端接收各个服务端分别返回的第一待验证哈希及其签名。
步骤213b,客户端向区块链网络发起包含目标公钥和接收到的各个第一待验证哈希及其签名的密钥更新指令。
前述步骤206b~211b由任一服务端j实施,实际上,所述s个服务端中的每一服务端均可以分别执行上述步骤。从而,服务端可能接收到一个或多个(最多s个)服务端分别返回的针对不同第一待验证哈希的签名。基于此,客户端可以向区块链网络发起包含目标公钥和接收到的各个第一待验证哈希及其签名的密钥更新指令,以触发区块链网络更新自身维护的用户身份公钥。
步骤214b,在接收到的签名满足预设条件的情况下,区块链网络将链上维护的用户身份公钥更新为目标公钥。
针对接收到的各个签名,区块链网络可以验证上述签名的真实性(即验签),并统计相应签名的数量。进而在签名的总数不小于第一数量阈值;和/或所述区块链网络接收到的签名中通过验签的签名的数量不小于第二数量阈值的情况下,将链上维护的用户身份公钥更新为目标公钥。
其中,上述密钥更新指令中还可以包含所述n个安全问题的问题标识和所述用户的身份信息等,以便后续区块链网络使用,不再赘述。
需要说明的是,在上述更新后,目标公钥即成为所述用户的新的用户身份公钥,而相应的目标私钥被所述用户自己通过链下方式记录或者由所述客户端维护。可见,本方案不仅将用户身份公钥更新为目标公钥,还将原来的用户身份私钥更新为相应的目标私钥,即使用新生成的目标公私钥对替换了原来的用户公私钥对。在更新完成后,所述用户即可使用所述目标公钥和目标私钥相互配合,参与所述区块链网络的区块链事务。
例如,所述用户可以针对自身的链上资产发起转账交易,并使用自身的目标私钥对该交易进行签名。区块链网络中的区块链节点可以使用更新后的目标公钥验证该签名,并在验证通过后执行该交易以实现对所述链上资产的转账处理。
对应于前述密钥更新系统的实施例,本公开还提出一种密钥管理方法的流程图,如图3所示,该方法应用于密钥管理系统中的客户端,所述客户端维护有用户的用户身份私钥,所述密钥管理系统还包括服务端和区块链网络,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述方法包括:
响应于所述用户针对所述用户身份公钥实施的密钥更新操作,确定所述用户为所述安全问题输入的待验证答案;
基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求,以由所述服务端响应于所述密钥更新请求从所述区块链网络获取标准哈希,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成,并在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
另外,对应于前述密钥更新系统的实施例,本公开还提出另一种密钥管理方法的流程图,如图4所示,该方法应用于密钥管理系统中的服务端,所述密钥管理系统还包括客户端和区块链网络,所述客户端维护有用户的用户身份私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述方法包括:
响应于所述客户端发起的密钥更新请求从所述区块链网络获取标准哈希,其中,所述密钥更新请求中包含目标公钥和第一待验证哈希,所述第一待验证哈希由所述客户端基于所述安全问题、所述用户为所述安全问题输入的待验证答案和所述用户的身份信息生成,所述待验证答案由所述客户端响应于所述用户针对所述用户身份公钥实施的密钥更新操作所确定,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成;
在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
上述客户端和服务端所实现的密钥更新方法的具体实现过程,可以参见前文实施例的记载,此处不再赘述。
与前述密钥管理方法的实施例相对应的,本公开还提出了密钥管理装置的实施例。
图5是根据本公开的实施例示出的一种密钥管理装置的示意框图。如图5所示,所述密钥管理装置应用于密钥管理系统中的客户端,所述客户端维护有用户的用户身份私钥,所述密钥管理系统还包括服务端和区块链网络,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述装置包括:
答案确定装置501,被配置为响应于所述用户针对所述用户身份公钥实施的密钥更新操作,确定所述用户为所述安全问题输入的待验证答案;
请求发起装置502,被配置为基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求,以由所述服务端响应于所述密钥更新请求从所述区块链网络获取标准哈希,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成,并在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
图6是根据本公开的实施例示出的另一种密钥管理装置的示意框图。如图6所示,所述密钥管理装置应用于密钥管理系统中的服务端,所述密钥管理系统还包括客户端和区块链网络,所述客户端维护有用户的用户身份私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述装置包括:
哈希获取装置601,被配置为响应于所述客户端发起的密钥更新请求从所述区块链网络获取标准哈希,其中,所述密钥更新请求中包含目标公钥和第一待验证哈希,所述第一待验证哈希由所述客户端基于所述安全问题、所述用户为所述安全问题输入的待验证答案和所述用户的身份信息生成,所述待验证答案由所述客户端响应于所述用户针对所述用户身份公钥实施的密钥更新操作所确定,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成;
更新触发装置602,被配置为在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不作详细阐述说明。
本公开的实施例还提出一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施例所述的密钥管理方法。
本公开的实施例还提出一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的密钥管理方法。
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图7对本公开示例性实施方式的计算设备进行说明。
图7显示的电子设备70仅仅是一个示例,不应对本公开实施例的功能和适用范围带来任何限制。
如图7所示,电子设备70以通用电子设备的形式表现。电子设备70的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702,连接不同系统组件(包括处理单元701和存储单元702)的总线703。
总线703包括数据总线、控制总线和地址总线。
存储单元702可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)7021和/或高速缓存存储器7022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)7023。
存储单元702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备70也可以与一个或多个外部设备704(例如键盘、指向设备等)通信。
这种通信可以通过输入/输出(I/O)接口705进行。并且,电子设备70还可以通过网络适配器706与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器706通过总线703与电子设备70的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了密钥管理装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (19)
1.一种密钥管理系统,包括客户端、服务端和区块链网络,所述客户端维护有用户的用户身份私钥,所述服务端的数量为多个,任一服务端维护有至少一个安全问题的问题私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,其中,
所述客户端用于响应于所述用户针对所述用户身份公钥实施的密钥更新操作,确定所述用户为所述安全问题输入的待验证答案;以及,基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求;
所述服务端用于响应于所述密钥更新请求从所述区块链网络获取标准哈希,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成;在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥,包括:任一服务端针对自身接收到的所述密钥更新请求中包含的任一安全问题对应的任一第一待验证哈希,使用所述任一安全问题的问题私钥对所述任一第一待验证哈希进行签名,并将所述任一第一待验证哈希及其签名返回至所述客户端或者提交至所述区块链网络;
其中,所述客户端还用于:响应于接收到任一服务端返回的任一第一待验证哈希及其签名,将所述目标公钥、所述任一第一待验证哈希及其签名提交至所述区块链网络;
所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥,包括:在接收到的第一待验证哈希及其签名满足预设条件的情况下,将所述用户的用户身份公钥更新为接收到的所述目标公钥。
2.根据权利要求1所述的系统,所述客户端确定所述用户为所述安全问题输入的待验证答案,包括:
所述客户端获取并向被所述用户展示所述安全问题;
根据所述用户实施的答案输入操作确定所述用户为被展示的所述安全问题输入的待验证答案。
3.根据权利要求2所述的系统,所述客户端获取所述安全问题,包括:
所述客户端从所述区块链网络获取所述安全问题;或者,
所述客户端从本地存储空间获取所述安全问题,所述安全问题由所述客户端从所述区块链网络预先获取缓存在所述本地存储空间,预先获取的所述安全问题被所述用户用于设置所述标准答案。
4.根据权利要求1所述的系统,所述客户端还用于:
响应于所述用户实施的答案设置操作,从所述区块链网络获取所述安全问题并确定所述用户为所述安全问题设置的所述标准答案;
根据所述安全问题、所述标准答案和所述用户的身份信息生成所述标准哈希并将其提交至所述区块链网络;或者,
将所述安全问题、所述标准答案和所述用户的身份信息一并提交至所述区块链网络,以由所述区块链网络根据所述安全问题、所述标准答案和所述用户的身份信息生成并维护所述标准哈希。
5.根据权利要求4所述的系统,
若所述服务端维护有自身的身份私钥,所述客户端将所述标准哈希提交至所述区块链网络,包括:使用所述服务端的身份公钥加密所述标准哈希得到哈希密文,并将所述哈希密文提交至所述区块链网络;所述服务端从所述区块链网络获取标准哈希,包括:从所述区块链网络获取所述哈希密文,并使用自身的身份私钥解密所述哈希密文得到所述标准哈希;或者,
若所述服务端维护有所述安全问题的问题私钥,所述客户端将所述标准哈希提交至所述区块链网络,包括:使用所述安全问题的问题公钥加密所述标准哈希得到哈希密文,并将所述哈希密文提交至所述区块链网络;所述服务端从所述区块链网络获取标准哈希,包括:从所述区块链网络获取所述哈希密文,并使用所述安全问题的问题私钥解密所述哈希密文得到所述标准哈希。
6.根据权利要求1所述的系统,所述服务端的数量为多个,任一服务端维护有至少一个安全问题的问题私钥,
所述客户端确定所述用户为所述安全问题输入的待验证答案,包括:所述客户端确定所述用户为多个安全问题分别输入的待验证答案;
所述客户端基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求,包括:所述客户端为所述多个安全问题分别生成对应的第一待验证哈希,其中,任一安全问题对应的第一待验证哈希基于所述任一安全问题、所述任一安全问题的待验证答案和所述用户的身份信息生成;以及,针对所述多个安全问题,向维护有其中至少一个安全问题的问题私钥的任一服务端,发起包含目标公钥和所述至少一个安全问题分别对应的第一待验证哈希的密钥更新请求;
所述任一服务端响应于所述密钥更新请求从所述区块链网络获取标准哈希,包括:确定自身接收到的密钥更新请求中包含的各个第一待验证哈希,并从区块链网络获取所述各个第一待验证哈希分别对应的标准哈希。
7.根据权利要求1所述的系统,
所述客户端向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求,包括:所述客户端基于目标公钥和所述第一待验证哈希生成第二待验证哈希,并向所述服务端发起包含所述目标公钥和所述第二待验证哈希的密钥更新请求;
所述服务端确定所述第一待验证哈希与所述标准哈希相同,包括:基于所述目标公钥和所述标准哈希生成第三待验证哈希,并在所述第二待验证哈希与所述第三待验证哈希相同的情况下,确定所述第一待验证哈希与所述标准哈希相同。
8.根据权利要求1所述的系统,所述签名满足预设条件,包括:
所述区块链网络接收到的签名的总数不小于第一数量阈值;和/或,
所述区块链网络接收到的签名中通过验签的签名的数量不小于第二数量阈值。
9.根据权利要求1所述的系统,
所述客户端还用于:在向所述区块链网络提交所述目标公钥、所述任一第一待验证哈希及其签名时,同时提交所述任一安全问题的问题标识和所述任一安全问题对应的基础待验证哈希,所述基础待验证哈希基于所述用户为所述任一安全问题输入的待验证答案和所述用户的身份信息生成;
所述区块链网络中的任一区块链节点还用于:基于所述基础待验证哈希和根据所述问题标识查询到的所述任一安全问题生成第一基础待验证哈希;以及,根据所述问题标识在所述区块链网络存证的哈希密文中查询加密所述任一安全问题对应的标准哈希得到的哈希密文,并使用加密所述哈希密文的公钥加密所述第一基础待验证哈希得到第一基础待验证哈希密文;
其中,所述第一基础待验证哈希密文与查询到的所述哈希密文相同,被作为判定所述任一第一待验证哈希及其签名是否满足所述预设条件的前提条件。
10.根据权利要求1所述的系统,所述用户身份公钥由区块链网络中部署的智能合约所维护,所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥,包括:
所述区块链网络中的区块链节点调用所述智能合约将所述用户的用户身份公钥更新为所述目标公钥。
11.根据权利要求1所述的系统,所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥,包括:
所述区块链网络中的各个区块链节点分别使用所述目标公钥替换自身维护的所述用户的用户身份公钥。
12.根据权利要求1所述的系统,
所述客户端还用于:向所述服务端发起针对新安全问题的添加请求;
所述服务端还用于:响应于所述添加请求为所述新安全问题生成相应的公私钥对;以及,将所述新安全问题和所述公私钥对中的问题公钥提交至所述区块链网络,并将所述公私钥对应的问题私钥维护在本地。
13.根据权利要求1-12中的任一项所述的系统,所述客户端、所述服务端或所述区块链网络还用于:
在任一哈希的生成过程中,将至少一个随机盐值作为哈希算法输入参数。
14.一种密钥管理方法,应用于密钥管理系统中的客户端,所述客户端维护有用户的用户身份私钥,所述密钥管理系统还包括服务端和区块链网络,所述服务端的数量为多个,任一服务端维护有至少一个安全问题的问题私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述方法包括:
响应于所述用户针对所述用户身份公钥实施的密钥更新操作,确定所述用户为所述安全问题输入的待验证答案;
基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求,以由所述服务端响应于所述密钥更新请求从所述区块链网络获取标准哈希,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成,并在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥,包括:任一服务端针对自身接收到的所述密钥更新请求中包含的任一安全问题对应的任一第一待验证哈希,使用所述任一安全问题的问题私钥对所述任一第一待验证哈希进行签名,并将所述任一第一待验证哈希及其签名返回至所述客户端或者提交至所述区块链网络;
响应于接收到任一服务端返回的任一第一待验证哈希及其签名,将所述目标公钥、所述任一第一待验证哈希及其签名提交至所述区块链网络;
其中,所述用户的用户身份公钥由所述区块链网络在接收到的第一待验证哈希及其签名满足预设条件的情况下更新为接收到的所述目标公钥。
15.一种密钥管理方法,应用于密钥管理系统中的服务端,所述密钥管理系统还包括客户端和区块链网络,所述客户端维护有用户的用户身份私钥,所述服务端的数量为多个,任一服务端维护有至少一个安全问题的问题私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述方法包括:
响应于所述客户端发起的密钥更新请求从所述区块链网络获取标准哈希,其中,所述密钥更新请求中包含目标公钥和第一待验证哈希,所述第一待验证哈希由所述客户端基于所述安全问题、所述用户为所述安全问题输入的待验证答案和所述用户的身份信息生成,所述待验证答案由所述客户端响应于所述用户针对所述用户身份公钥实施的密钥更新操作所确定,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成;
在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥,包括:任一服务端针对自身接收到的所述密钥更新请求中包含的任一安全问题对应的任一第一待验证哈希,使用所述任一安全问题的问题私钥对所述任一第一待验证哈希进行签名,并将所述任一第一待验证哈希及其签名返回至所述客户端或者提交至所述区块链网络,以使所述客户端响应于接收到任一服务端返回的任一第一待验证哈希及其签名,将所述目标公钥、所述任一第一待验证哈希及其签名提交至所述区块链网络,并使所述区块链网络在接收到的第一待验证哈希及其签名满足预设条件的情况下,将所述用户的用户身份公钥更新为接收到的所述目标公钥。
16.一种密钥管理装置,应用于密钥管理系统中的客户端,所述客户端维护有用户的用户身份私钥,所述密钥管理系统还包括服务端和区块链网络,所述服务端的数量为多个,任一服务端维护有至少一个安全问题的问题私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述装置包括:
待验证答案确定装置,被配置为响应于所述用户针对所述用户身份公钥实施的密钥更新操作,确定所述用户为所述安全问题输入的待验证答案;
密钥更新请求发起装置,被配置为基于所述安全问题、所述待验证答案和所述用户的身份信息生成第一待验证哈希,并向所述服务端发起包含目标公钥和所述第一待验证哈希的密钥更新请求,以由所述服务端响应于所述密钥更新请求从所述区块链网络获取标准哈希,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成,并在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥,包括:任一服务端针对自身接收到的所述密钥更新请求中包含的任一安全问题对应的任一第一待验证哈希,使用所述任一安全问题的问题私钥对所述任一第一待验证哈希进行签名,并将所述任一第一待验证哈希及其签名返回至所述客户端或者提交至所述区块链网络;
哈希及签名提交装置,被配置为响应于接收到任一服务端返回的任一第一待验证哈希及其签名,将所述目标公钥、所述任一第一待验证哈希及其签名提交至所述区块链网络;
其中,所述用户的用户身份公钥由所述区块链网络在接收到的第一待验证哈希及其签名满足预设条件的情况下更新为接收到的所述目标公钥。
17.一种密钥管理装置,应用于密钥管理系统中的服务端,所述密钥管理系统还包括客户端和区块链网络,所述客户端维护有用户的用户身份私钥,所述服务端的数量为多个,任一服务端维护有至少一个安全问题的问题私钥,所述区块链网络维护有安全问题和所述用户的用户身份公钥,所述装置包括:
标准哈希获取装置,被配置为响应于所述客户端发起的密钥更新请求从所述区块链网络获取标准哈希,其中,所述密钥更新请求中包含目标公钥和第一待验证哈希,所述第一待验证哈希由所述客户端基于所述安全问题、所述用户为所述安全问题输入的待验证答案和所述用户的身份信息生成,所述待验证答案由所述客户端响应于所述用户针对所述用户身份公钥实施的密钥更新操作所确定,所述标准哈希基于所述安全问题、为所述安全问题设置的标准答案和所述用户的身份信息生成;
公钥更新触发装置,被配置为在确定所述第一待验证哈希与所述标准哈希相同的情况下,触发所述区块链网络将所述用户的用户身份公钥更新为所述目标公钥,包括:任一服务端针对自身接收到的所述密钥更新请求中包含的任一安全问题对应的任一第一待验证哈希,使用所述任一安全问题的问题私钥对所述任一第一待验证哈希进行签名,并将所述任一第一待验证哈希及其签名返回至所述客户端或者提交至所述区块链网络,以使所述客户端响应于接收到任一服务端返回的任一第一待验证哈希及其签名,将所述目标公钥、所述任一第一待验证哈希及其签名提交至所述区块链网络,并使所述区块链网络在接收到的第一待验证哈希及其签名满足预设条件的情况下,将所述用户的用户身份公钥更新为接收到的所述目标公钥。
18.一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求14或15所述的密钥管理方法。
19.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求14或15所述的密钥管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310393210.0A CN116112167B (zh) | 2023-04-13 | 2023-04-13 | 密钥管理系统、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310393210.0A CN116112167B (zh) | 2023-04-13 | 2023-04-13 | 密钥管理系统、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116112167A CN116112167A (zh) | 2023-05-12 |
CN116112167B true CN116112167B (zh) | 2023-06-27 |
Family
ID=86264196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310393210.0A Active CN116112167B (zh) | 2023-04-13 | 2023-04-13 | 密钥管理系统、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116112167B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639361A (zh) * | 2020-05-15 | 2020-09-08 | 中国科学院信息工程研究所 | 一种区块链密钥管理方法、多人共同签名方法及电子装置 |
CN114221764A (zh) * | 2021-12-17 | 2022-03-22 | 建信金融科技有限责任公司 | 基于区块链的公钥更新方法、装置和设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107579817A (zh) * | 2017-09-12 | 2018-01-12 | 广州广电运通金融电子股份有限公司 | 基于区块链的用户身份验证方法、装置及系统 |
CN109272317A (zh) * | 2018-09-27 | 2019-01-25 | 北京金山安全软件有限公司 | 一种区块链私钥的获取方法、装置及电子设备 |
CN110071808A (zh) * | 2019-04-09 | 2019-07-30 | 郭浩 | 一种区块链用户的安全数字身份验证方法和装置 |
CN110069918B (zh) * | 2019-04-11 | 2020-12-04 | 苏州同济区块链研究院有限公司 | 一种基于区块链技术的高效双因子跨域认证方法 |
CN111783075B (zh) * | 2020-06-28 | 2022-09-09 | 平安普惠企业管理有限公司 | 基于密钥的权限管理方法、装置、介质及电子设备 |
CN112633854A (zh) * | 2020-12-31 | 2021-04-09 | 重庆电子工程职业学院 | 基于区块链的学生档案管理系统 |
-
2023
- 2023-04-13 CN CN202310393210.0A patent/CN116112167B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639361A (zh) * | 2020-05-15 | 2020-09-08 | 中国科学院信息工程研究所 | 一种区块链密钥管理方法、多人共同签名方法及电子装置 |
CN114221764A (zh) * | 2021-12-17 | 2022-03-22 | 建信金融科技有限责任公司 | 基于区块链的公钥更新方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116112167A (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109862041B (zh) | 一种数字身份认证方法、设备、装置、系统及存储介质 | |
US10790976B1 (en) | System and method of blockchain wallet recovery | |
CA3058013C (en) | Managing sensitive data elements in a blockchain network | |
CN109951489B (zh) | 一种数字身份认证方法、设备、装置、系统及存储介质 | |
CN111800268A (zh) | 用于区块链背书的零知识证明 | |
EP3673640B1 (en) | Processing data elements stored in blockchain networks | |
US9160535B2 (en) | Truly anonymous cloud key broker | |
US11329817B2 (en) | Protecting data using controlled corruption in computer networks | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
US20210241270A1 (en) | System and method of blockchain transaction verification | |
US11595365B1 (en) | Method and apparatus for third-party managed data transference and corroboration via tokenization | |
WO2021190197A1 (zh) | 生物支付设备的认证方法、装置、计算机设备和存储介质 | |
CN110380859A (zh) | 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统 | |
CN117240625B (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
US20230362018A1 (en) | System and Method for Secure Internet Communications | |
CN116112167B (zh) | 密钥管理系统、方法及装置 | |
CN116263834A (zh) | 许可区块链的多发布者匿名证书 | |
CN116361823A (zh) | 用于隐私保护的区块链的选择性审计处理 | |
CN114553557A (zh) | 密钥调用方法、装置、计算机设备和存储介质 | |
CN110138547A (zh) | 基于非对称密钥池对和序列号的量子通信服务站密钥协商方法和系统 | |
CN116647413B (zh) | 应用登录方法、装置、计算机设备和存储介质 | |
CN112449143B (zh) | 一种安全视频的实现方法及实现系统 | |
WO2024088145A1 (zh) | 数据处理方法、装置、程序产品、计算机设备和存储介质 | |
WO2023052845A2 (en) | Protecting data using controlled corruption in computer networks | |
CN116094718A (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 |