CN111224776B - 基于联盟链的私钥备份、挂失及恢复方法及系统 - Google Patents
基于联盟链的私钥备份、挂失及恢复方法及系统 Download PDFInfo
- Publication number
- CN111224776B CN111224776B CN201910991411.4A CN201910991411A CN111224776B CN 111224776 B CN111224776 B CN 111224776B CN 201910991411 A CN201910991411 A CN 201910991411A CN 111224776 B CN111224776 B CN 111224776B
- Authority
- CN
- China
- Prior art keywords
- key
- user
- private key
- transaction
- key fob
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请涉及一种基于联盟链的私钥备份、挂失及恢复方法及系统,实施在相互通信的CA机构和用户之间,其中一部分用户作为联盟链成员,其中一部分用户作为User,各方均配有由CA机构颁发的密钥卡,所有密钥卡均存储有己方公钥以及私钥,所述联盟链成员包括Endorser,所述User根据己方私钥生成多个私钥分量,并将多个所述私钥分量分别发送至各Endorser的密钥卡中,所述Endorser的密钥卡中存储有与各User一一对应的私钥分量,多个所述私钥分量用于得到相应User的私钥,通过使用秘密共享的方式通过区块链进行备份,避免了私钥的泄露,以提高私钥安全性。
Description
技术领域
本发明涉及安全通信技术技术领域,特别是涉及一种基于联盟链的私钥备份、挂失及恢复方法及系统。
背景技术
区块链是一种全新的分布式基础架构与计算范式,利用有序的链式数据结构存储数据,利用共识算法更新数据,利用密码学技术保障数据安全。在基于区块链的交易中,确保交易的数据安全和客户的隐私是区块链能够进一步发展的必要条件。为此,密码学技术尤其是公钥密钥学在区块链中得到了广泛的应用。而联盟链是区块链的一个分支,所以它本身也是一个分布式的,去中心化的公共数据库,跟其他链的区别就是它是针对特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人,其共识过程受到预选节点控制的区块链。
区块链的私钥是唯一证明用户身份的数据,用户的核心资产有且仅有私钥控制,即只有经过私钥的签名才能实现交易的确认。所以关于区块链私钥的保护显得至关重要。一方面要防止私钥泄漏、防止私钥被黑客木马窃取,另一方面还要防止私钥丢失,万一丢失后可以安全的找回。
当前区块链存储和使用有四种主流方法:平台托管、本地客户端、硬件KEY(类似U盾)、离线冷存储(打印或抄写在纸上,放保险柜)。这四种方法,除了硬件KEY外,其他均无法抵御木马或黑客的攻击。同时这四种方法,都没有考虑密钥找回,万一私钥丢失,其他权益将永久消失。如何保证区块链私钥的安全以及区块链私钥的找回,是需要解决的技术问题。
现有技术存在的问题:
1.现有区块链的存储和使用的主流方法均无法抵御木马或黑客的攻击,且均没有考虑密钥找回。万一私钥丢失,其他权益将永远消失。
2.现有的使用平台托管的方式备份私钥的方法,当用户密钥丢失时需要委托核心节点找回私钥,赋予了核心节点过大的权利,不能满足客户需求。被委托方能完全控制账户,甚至可以进行违背委托方意愿的操作。
3.用户的区块链私钥可以保存在电子设备中,但是一旦丢失或信息被盗取,区块链私钥便会丢失,对用户的财产安全造成重大影响。
发明内容
基于此,有必要针对上述技术问题,提供一种基于联盟链的私钥备份、挂失及恢复方法及系统。
一种基于联盟链的私钥备份、挂失及恢复方法方法,所述方法包括:
基于联盟链的私钥备份、挂失及恢复方法,实施在相互通信的CA机构和用户之间,其中一部分用户作为联盟链成员,其中一部分用户作为User,各方均配有由CA机构颁发的密钥卡,所有密钥卡均存储有己方公钥以及私钥,所述联盟链成员包括Endorser,所述User根据己方私钥生成多个私钥分量,并将多个所述私钥分量分别发送至各Endorser的密钥卡中,所述Endorser的密钥卡中存储有与各User一一对应的私钥分量,多个所述私钥分量用于得到相应User的私钥,各User均配置有独立的用户名,在同一个用户名下的User配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有相应的密钥卡身份标识,己方私钥以及与私钥相对应的公钥;
所述私钥备份、挂失及恢复方法包括:基于联盟链实施私钥备份、挂失及恢复至少其中一者;
实施私钥备份时,User向Endorser提出交易,基于联盟链将新增密钥卡的密钥卡身份标识以及公钥存储在联盟链中;
实施挂失及恢复时,User向Endorser提出交易,基于联盟链将备用密钥卡替换为主密钥卡,并将该备用密钥卡的多个私钥分量分别发送至各Endorser的密钥卡中。
可选的,联盟链成员中还包括提供相应服务的Orderer及Committer,所述私钥备份、挂失及恢复方法具体包括:
User向Endorser提出交易;
Endorser收到User提出的交易并相应执行,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证。
可选的,实施私钥备份时,具体包括:
User向Endorser提出交易,交易内容包括需要备份的密钥卡的备份密钥卡身份标识、备份公钥以及私钥密文;
Endorser收到User提出的交易,经验证后,在交易应答中的读出操作集中写入User用户名下的所有密钥卡身份标识以及属性列表,在交易应答中的写入操作集中写入需要备份的密钥卡的备份密钥卡身份标识、备份公钥以及私钥密文,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成私钥备份。
可选的,若进行备份的为该用户第一次备份的密钥卡,则该密钥卡具有数字证书;
若不是该用户进行第一次备份的密钥卡,则该密钥卡不具有数字证书。
可选的,所述私钥密钥得到方法包括:
根据所述备份公钥对主密钥卡私钥进行加密,得到所述私钥密钥。
可选的,若主密钥卡丢失,则实施挂失及恢复时,具体包括:
User向Endorser提出交易,选择一个备用密钥卡作为新主密钥卡,在该备用密钥卡内根据己方私钥生成多个的私钥分量,并根据Endorser的公钥对私钥分量进行加密后写入交易中;
Endorser收到User提出的交易,经验证后,在交易应答中的写入操作集中写入丢失的主密钥卡的身份标识以及新主密钥卡的身份标识,以表示所述主密钥卡的身份标识为无效,新主密钥卡的身份标识为当前主密钥卡,再向User发送交易应答,并将所述私钥分量以及新主密钥卡的身份标识存储在Endorser的密钥卡中;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成挂失和恢复。
可选的,所述User向Endorser提出交易,选择一个备用密钥卡作为新主密钥卡,在该备用密钥卡内根据己方私钥生成多个的私钥分量,并根据Endorser的公钥对私钥分量进行加密后写入交易中还包括:
将所述私钥分量以及接收方Endorser的身份标识作为一组相关联的信息,存储在所述新主密钥卡中。
可选的,User与联盟链成员进行交互的过程中,消息发送方均利用各自的私钥进行签名,接收方相应进行解密。
本发明还提供了一种基于联盟链的私钥备份、挂失及恢复系统,包括实施在相互通信的CA机构和用户,其中一部分用户作为联盟链成员,其中一部分用户作为User,各方均配有由CA机构颁发的密钥卡,所有密钥卡均存储有己方公钥以及私钥,所述联盟链成员包括Endorser,所述User根据己方私钥生成多个私钥分量,并将多个所述私钥分量分别发送至各Endorser的密钥卡中,所述Endorser的密钥卡中存储有与各User一一对应的私钥分量,多个所述私钥分量用于得到相应User的私钥,各User均配置有独立的用户名,在同一个用户名下的User配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有相应的密钥卡身份标识,己方私钥以及与私钥相对应的公钥;
所述CA机构和用户均包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的基于联盟链的私钥备份、挂失及恢复方法。
上述基于联盟链的私钥备份、挂失及恢复方法及系统,通过将私钥使用秘密共享的方式通过区块链进行备份,可对用户私钥的安全进行有效的保护。针对现有的使用平台托管的方式备份私钥的方法,当用户密钥丢失时需要委托核心节点找回私钥,赋予了核心节点过大的权利,不能满足客户需求。被委托方能完全控制账户,甚至可以进行违背委托方意愿的操作。而本专利对私钥进行秘密共享,使得每个服务器均无法得知实际私钥,因此不存在拥有过大权利的核心节点,避免了私钥的泄露。
附图说明
图1为一个实施例中私钥备份、挂失及恢复系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在本实施例中,提供了一种基于联盟链的私钥备份、挂失及恢复方法,实施在相互通信的CA机构和用户之间,其中一部分用户作为联盟链成员,其中一部分用户作为User,各方均配有由CA机构颁发的密钥卡,所有密钥卡均存储有己方公钥以及私钥,所述联盟链成员包括Endorser,所述User根据己方私钥生成多个私钥分量,并将多个所述私钥分量分别发送至各Endorser的密钥卡中,所述Endorser的密钥卡中存储有与各User一一对应的私钥分量,多个所述私钥分量用于得到相应User的私钥,各User均配置有独立的用户名,在同一个用户名下的User配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有相应的密钥卡身份标识,己方私钥以及与私钥相对应的公钥。
如图1所示,用户、联盟链成员和CA都配备有密钥卡,密钥卡均由CA颁发,存储有用户公钥和私钥。
具体的,联盟链成员搭载有相应的区块链服务,每个服务有1个或多个公钥。区块链服务包括Peer服务,Order服务等。其中Peer服务分为Committer和Endorser;Order服务由多个Orderer组成。区块链服务均带有Committer功能;保存有区块链以及智能合约,智能合约运行于密钥卡外;(密钥卡外的)世界状态WorldState包含每个用户的密钥卡ID及其属性列表。
具体的,用户搭载有相应的区块链客户端,有1个或多个公钥,没有区块链服务。
在本实施例中,CA机构(也简称CA)与经典的CA系统类似。经典CA颁发数字证书,本实施例的CA不仅颁发数字证书,还颁发前文所述的密钥卡。所有用户的密钥卡可以用密钥卡ID来指代,CA维护关于各用户ID相关的信息。
下文设User,Endorser,Orderer,Committer的标记如下:
(1)各自的ID分别为IDU,IDE,IDO,IDC;
(2)各自的公钥分别为PKU,PKE,PKO,PKC;
(3)各自的私钥分别为SKU,SKE,SKO,SKC;
根据交易流程,其中一用户可称为User,有1个或多个区块链账户,每个账户对应1个公钥/私钥的组合。提供相应服务的联盟链成员可作为Endorser,Orderer或Committer。
进一步的,用户User将私钥SKU通过秘密共享进行分布式存储。User将私钥SKU利用(T,N)秘密共享的方式进行分组,N为私钥拆分共享秘密的碎片数,T为恢复私钥的最小碎片数,2≤T≤N。N个Endorser,每个Ej(j=1,2,…,N)得到的秘密为(xj,SKj)。用N个Endorser中的任意T个可以恢复User的私钥SKU。
在其他实施例中,在一种极端情况下对密钥卡进行恢复包括:假设用户丢失当前密钥卡且没有备份密钥卡,则可以通过人工操作,从多个Ej处获取多组(xj,SKj),并恢复SK。根据SK计算得到或从其他渠道得到PK作为公钥。其他渠道可以是数字证书或者区块链记录中。
在本实施例中,所述私钥备份、挂失及恢复方法包括:基于联盟链实施私钥备份、挂失及恢复至少其中一者;
实施私钥备份时,User向Endorser提出交易,基于联盟链将新增密钥卡的密钥卡身份标识以及公钥存储在联盟链中;
实施挂失及恢复时,User向Endorser提出交易,基于联盟链将备用密钥卡替换为主密钥卡,并将该备用密钥卡的多个私钥分量分别发送至各Endorser的密钥卡中。
具体的,联盟链成员中还包括提供相应服务的Orderer及Committer,所述私钥备份、挂失及恢复方法具体包括:
User向Endorser提出交易;
Endorser收到User提出的交易并相应执行,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证。
进一步的,实施私钥备份时,具体包括:
User向Endorser提出交易,交易内容包括需要备份的密钥卡的备份密钥卡身份标识、备份公钥以及私钥密文;Endorser收到User提出的交易,经验证后,在交易应答中的读出操作集中写入User用户名下的所有密钥卡身份标识以及属性列表,在交易应答中的写入操作集中写入需要备份的密钥卡的备份密钥卡身份标识、备份公钥以及私钥密文,再向User发送交易应答;User接收交易应答后,制作背书并将背书发送给Orderer;Orderer收到背书后,经排序再发送给Committer;Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User;User接收交易通知后相应验证,以完成私钥备份。
在本实施例中,若进行备份的为该用户第一次备份的密钥卡,则该密钥卡具有数字证书;若不是该用户进行第一次备份的密钥卡,则该密钥卡不具有数字证书。
在本实施例中,所述私钥密钥得到方法包括:根据所述备份公钥对主密钥卡私钥进行加密,得到所述私钥密钥。
进一步的,若主密钥卡丢失,则实施挂失及恢复时,具体包括:User向Endorser提出交易,选择一个备用密钥卡作为新主密钥卡,在该备用密钥卡内根据己方私钥生成多个的私钥分量,并根据Endorser的公钥对私钥分量进行加密后写入交易中;Endorser收到User提出的交易,经验证后,在交易应答中的写入操作集中写入丢失的主密钥卡的身份标识以及新主密钥卡的身份标识,以表示所述主密钥卡的身份标识为无效,新主密钥卡的身份标识为当前主密钥卡,再向User发送交易应答,并将所述私钥分量以及新主密钥卡的身份标识存储在Endorser的密钥卡中;User接收交易应答后,制作背书并将背书发送给Orderer;Orderer收到背书后,经排序再发送给Committer;Committer收到背书后,根据写入操作集进行相应执行,并将生成相应的交易通知发送给User;User接收交易通知后相应验证,以完成挂失和恢复。
具体的,所述User向Endorser提出交易,选择一个备用密钥卡作为新主密钥卡,在该备用密钥卡内根据己方私钥生成多个的私钥分量,并根据Endorser的公钥对私钥分量进行加密后写入交易中还包括:将所述私钥分量以及接收方Endorser的身份标识作为一组相关联的信息,存储在所述新主密钥卡中。
在本实施例中,User与联盟链成员进行交互的过程中,消息发送方均利用各自的私钥进行签名,接收方相应进行解密。
就各步骤细节进一步描述私钥备份、挂失及恢复方法的具体流程如下所示:
实施例1,私钥备份流程:
步骤1:User提出交易。
User的非对称密钥对为PKU/SKU。User的n个备份用密钥卡的非对称密钥对为PKUi/SKUi,1≤i≤n。
如果IDU为UserName第一次备份的身份,则身份为IDU的密钥卡具有数字证书CERT,其余密钥卡不具有数字证书。如果IDU不是UserName第一次备份的身份,则身份为IDU的密钥卡及其余密钥卡均不具有数字证书。
User使用PKUi对SKU加密得到SKUEi=ENC(SKU,PKUi)。ENC(m,PK)表示使用公钥PK对消息m进行加密,例如RSA/ECIES算法。
User向N个Endorser发送交易,交易tx可表示为{proposal,userSig}。
proposal可表示为{IDU,chaincodeID,txPayload,timestamp}。链码chaincodeID即使用智能合约函数的编号;txPayload即函数的参数,可表示为其中,UserName为用户名,每个密钥卡一个ID,每个用户一个UserName,该用户名下当前ID为IDU,备份ID为IDU1~IDUn;timestamp即时间戳。
userSig即User对proposal的签名,得到签名SIGN(proposal||xj||SKj,SKU)。SIGN(m,SK)表示对消息m使用私钥SK进行签名,例如RSA/ECDSA算法。
步骤2:Endorser执行交易。
如果IDU为UserName第一次备份的身份,则通过CERT获取PKU;如IDU不是UserName第一次备份的身份,则通过区块链记录搜索得到PKU。如找不到PKU,则交易失败,流程结束。
Endorser根据IDU找到本地存储的xj||SKj,将其与proposal进行拼接得到proposal||xj||SKj,使用PKU对userSig进行验证。验证通过后,查看proposal中的timestamp与本地时间的差异是否位于合理范围内。若判断通过,则认可该交易,若判断不通过,则不认可该交易。
验证通过后,对该交易进行处理,即根据chaincodeID执行chaincode,生成读写操作集readset和writeset。readset即UserName名下所有ID及其属性的列表,属性包括当前ID、备份ID、无效ID;writeset即需要新增的ID及其属性的列表,以及
步骤3:Endorser发送交易应答。
Endorser将包含读写操作集的交易应答rtx返回给User。交易应答rtx可表示为{tran-proposal,epSig}。
tran-proposal即申请应答可表示为{IDE,tid,chaincodeID,txPayload,readset,writeset}。包括交易的序号tid(一般为交易tx的哈希值,可表示为tid=HASH(proposal)),chaincodeID和txPayload,以及读写操作集readset和writeset。
epSig即使用Endorser的私钥SKE对tran-proposal签名,可表示为SIGN(tran-proposal,SKE)。
步骤4:User发送背书(Endorsement)etx到Orderer。
User收到交易应答后,筛选出被Endorser认可的交易,并使用公钥PKE对签名epSig进行验证。
User收到多个交易应答并分别验证通过后,将选择得到的rtx集合组成一个集合etx即背书,发送至Orderer。
步骤5:Orderer发送排序后的etx集合到Committer。
Orderer在积累到一定数量的etx后,Orderer对etx进行排序。Orderer生成排序后的背书集合即etxs,etxs包括序列号seqno以及上个联盟链区块的哈希值prevhash。背书集合etxs可表示为{seqno,prevhash,∑etx}。Orderer将etxs发送给Committer。
步骤6:每个Committer验证交易。
每个Committer收到排序后的背书集合后,Committer根据背书策略对etx集合进行验证,包括对读写操作集进行检查等。检查完成后,Committer对本地的联盟链数据库进行读写操作集的实际执行(读写操作集检查失败的交易除外),并记录每一笔交易的交易结果到区块链中。完成后即表示Committer执行完毕。
步骤7:Committer发送交易通知。
多个Committer执行完毕后,将交易结果(成功或失败)的通知发送至User。
Committer生成交易通知ntx,包括tid,result(即成功或失败)以及签名committerSig。committerSig即Committer使用私钥SKC对result的签名,可表示为SIGN(result,SKC)。
User收到后,使用C的公钥PKC并对签名SIGN(result,SKC)进行验证,通过后信任该交易通知。
实施例2,私钥挂失及恢复流程:
步骤1:User提出交易。
User的主密钥卡丢失,使用第i个密钥卡进行私钥挂失及私钥恢复。
User向N个Endorser发送交易,交易tx可表示为{proposal,txdata,userSig}。
proposal可表示为{IDUi,chaincodeID,txPayload,timestamp}。链码chaincodeID即使用智能合约函数的编号;txPayload即函数的参数,可表示为UserName||IDU||Msg,Msg表示挂失及恢复的消息指令;timestamp即时间戳。
对SK进行(T,N)的秘密共享,得到多组(xj||SKj)。使用PKE对xj||SKj进行加密得到txdata,可表示为ENC(xj||SKj,PKE)。
userSig即User对proposal以及txdata的签名,可表示为SIGN(proposal||txdata,SKUi)。
客户端将IDEj||xj||SKj保存于客户端密钥卡。
步骤2:Endorser执行交易。
Endorser根据IDUi,通过区块链记录搜索得到PKUi,使用PKUi验证userSig。验证通过后,查看proposal中的timestamp与本地时间的差异是否位于合理范围内。若判断通过,则认可该交易,若判断不通过,则不认可该交易。
验证通过后,对该交易进行处理,即根据chaincodeID执行chaincode,生成读写操作集readset和writeset。readset即UserName名下所有ID及其属性的列表,以及{IDUi||PKUi||SKUEi};writeset可表示为IDU||IDUi,表示IDU标记为无效ID,IDUi标记为当前ID。如不认可该交易,则readset/writeset为无效值。
Endorser使用SKE解密txdata得到xj||SKj。
Ej将IDUi||xj||SKj保存于Ej密钥卡。
步骤3:Endorser发送交易应答。
Endorser将交易应答rtx返回给User。交易应答rtx可表示为{tran-proposal,epSig}。
tran-proposal即申请应答可表示为{IDE,tid,chaincodeID,txPayload,readset,writeset}包括交易的序号tid(一般为交易tx的哈希值,可表示为tid=HASH(proposal)),chaincodeID和txPayload,以及读写操作集readset和writeset。
epSig即使用Endorser的私钥SKE对tran-proposal签名,可表示为SIGN(tran-proposal,SKE)。
步骤4:User发送背书(Endorsement)etx到Orderer。
User收到交易应答后,筛选出被Endorser认可的交易,并使用公钥PKE对签名epSig进行验证。
对验证成功的rtx,查看其readset是否一致。
User使用SKUi解密SKUEi,即执行DEC(SKUEi,SKUi)得到SKU,DEC可以是RSA/ECIES解密算法。然后将选择得到的rtx集合组成一个集合etx即背书,发送至Orderer。
步骤5:Orderer发送排序后的etx集合到Committer。
Orderer在积累到一定数量的etx后,Orderer对etx进行排序。Orderer生成排序后的背书集合即etxs,etxs包括序列号seqno以及上个联盟链区块的哈希值prevhash。背书集合etxs可表示为{seqno,prevhash,∑etx}。Orderer将etxs发送给Committer。
步骤6:每个Committer验证交易。
每个Committer收到排序后的背书集合后,Committer根据背书策略对etx集合进行验证,包括对读写操作集进行检查等。检查完成后,Committer对本地的联盟链数据库进行读写操作集的实际执行(读写操作集检查失败的交易除外),并记录每一笔交易的交易结果到区块链中。完成后即表示Committer执行完毕。
步骤7:Committer发送交易通知。
多个Committer执行完毕后,将交易结果(成功或失败)的通知发送至User。
Committer生成交易通知ntx,包括tid,result(即成功或失败)以及签名committerSig。committerSig即Committer使用私钥SKC对result的签名,可表示为SIGN(result,SKC)。
User收到后,使用C的公钥PKC并对签名SIGN(result,SKC)进行验证,通过后信任该交易通知。然后User使用SKU替换本地SKUi。根据SKU计算得到或从其他渠道得到PKU作为公钥。至此密钥卡的挂失及恢复完成。
后续正常交易中,User向Endorser提出交易时,交易tx可表示为{proposal,userSig},其中proposal可表示为{IDUi,chaincodeID,txPayload,timestamp};userSig可表示为SIGN(proposal||xj||SKj,SKU),此处对签名加入部分秘密xj||SKj。已挂失的密钥卡虽然拥有SK,且能获取公开的IDUi;但由于没有匹配的部分秘密,仍然无法签名并获得Endorser的认可,即已挂失的密钥卡被有效作废。
上述基于联盟链的私钥备份、挂失及恢复的方法及系统,使用的密钥卡是独立的硬件隔离设备。私钥存储在密钥卡中的数据安全区,被恶意软件或恶意操作窃取密钥的可能性大大降低,可抵御木马或黑客的攻击。
并将私钥使用秘密共享的方式通过区块链进行备份,可对用户私钥的安全进行有效的保护。针对现有的使用平台托管的方式备份私钥的方法,当用户密钥丢失时需要委托核心节点找回私钥,赋予了核心节点过大的权利,不能满足客户需求。被委托方能完全控制账户,甚至可以进行违背委托方意愿的操作。而本专利对私钥进行秘密共享,使得每个服务器均无法得知实际私钥,因此不存在拥有过大权利的核心节点,避免了私钥的泄露。同时,每个服务器获得的私钥分量还可以作为对密钥卡的认证密钥,每次交易均在密钥卡的签名中加入该认证密钥,而已挂失的密钥卡并不具备该认证密钥,使得已挂失的密钥卡无法生成签名并获得Endorser的认可,即已挂失的密钥卡被有效作废。
万一密钥卡丢失,如果没有备份密钥卡,则可以通过人工方式从多个服务器找回;如果有备份密钥卡,则可以直接使用备份密钥卡通过区块链交易进行挂失及恢复,原密钥卡同时被作废。备份密钥卡后,挂失及恢复的操作非常简单迅速,使得用户可以方便地进行密钥找回。另外通过备份密钥卡,其他权益将不会随着当前密钥卡的丢失而消失。
在一个实施例中,提供了一种计算机设备,即基于联盟链的私钥备份、挂失及恢复的系统,该计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述基于联盟链的私钥备份、挂失及恢复的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
其中一个实施例中,提供了一种基于联盟链的私钥备份、挂失及恢复系统,包括实施在相互通信的CA机构和用户,其中一部分用户作为联盟链成员,其中一部分用户作为User,各方均配有由CA机构颁发的密钥卡,所有密钥卡均存储有公钥池以及己方私钥,所述联盟链成员包括Endorser,所述User根据己方私钥生成多个私钥分量,并将多个所述私钥分量分别发送至各Endorser的密钥卡中,所述Endorser的密钥卡中存储有与各User一一对应的私钥分量,多个所述私钥分量用于得到相应User的私钥,各User均配置有独立的用户名,在同一个用户名下的User配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有相应的密钥卡身份标识,己方私钥以及与私钥相对应的公钥;
所述CA机构和用户均包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的基于联盟链的私钥备份、挂失及恢复方法。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.基于联盟链的私钥备份、挂失及恢复方法,实施在相互通信的CA机构和用户之间,其中一部分用户作为联盟链成员,其中一部分用户作为User,其特征在于,各方均配有由CA机构颁发的密钥卡,所有密钥卡均存储有己方公钥以及私钥,所述联盟链成员包括Endorser,所述User根据己方私钥生成多个私钥分量,并将多个所述私钥分量分别发送至各Endorser的密钥卡中,所述Endorser的密钥卡中存储有与各User一一对应的私钥分量,多个所述私钥分量用于得到相应User的私钥,各User均配置有独立的用户名,在同一个用户名下的User配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有相应的密钥卡身份标识,己方私钥以及与私钥相对应的公钥;
所述私钥备份、挂失及恢复方法包括:基于联盟链实施私钥备份、挂失及恢复至少其中一者;
实施私钥备份时,User向Endorser提出交易,基于联盟链将新增密钥卡的密钥卡身份标识以及公钥存储在联盟链中;
实施挂失及恢复时,User向Endorser提出交易,基于联盟链将备用密钥卡替换为主密钥卡,并将该备用密钥卡的多个私钥分量分别发送至各Endorser的密钥卡中。
2.根据权利要求1所述的私钥备份、挂失及恢复方法,其特征在于,联盟链成员中还包括提供相应服务的Orderer及Committer,所述私钥备份、挂失及恢复方法具体包括:
User向Endorser提出交易;
Endorser收到User提出的交易并相应执行,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证。
3.根据权利要求2所述的私钥备份、挂失及恢复方法,其特征在于,实施私钥备份时,具体包括:
User向Endorser提出交易,交易内容包括需要备份的密钥卡的备份密钥卡身份标识、备份公钥以及私钥密文;
Endorser收到User提出的交易,经验证后,在交易应答中的读出操作集中写入User用户名下的所有密钥卡身份标识以及属性列表,在交易应答中的写入操作集中写入需要备份的密钥卡的备份密钥卡身份标识、备份公钥以及私钥密文,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成私钥备份。
4.根据权利要求3所述的私钥备份、挂失及恢复方法,其特征在于,
若进行备份的为该用户第一次备份的密钥卡,则该密钥卡具有数字证书;
若不是该用户进行第一次备份的密钥卡,则该密钥卡不具有数字证书。
5.根据权利要求2所述的私钥备份、挂失及恢复方法,其特征在于,若主密钥卡丢失,则实施挂失及恢复时,具体包括:
User向Endorser提出交易,选择一个备用密钥卡作为新主密钥卡,在该备用密钥卡内根据己方私钥生成多个的私钥分量,并根据Endorser的公钥对私钥分量进行加密后写入交易中;
Endorser收到User提出的交易,经验证后,在交易应答中的写入操作集中写入丢失的主密钥卡的身份标识以及新主密钥卡的身份标识,以表示所述主密钥卡的身份标识为无效,新主密钥卡的身份标识为当前主密钥卡,再向User发送交易应答,并将所述私钥分量以及新主密钥卡的身份标识存储在Endorser的密钥卡中;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据写入操作集进行相应执行,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证,以完成挂失和恢复。
6.根据权利要求5所述的私钥备份、挂失及恢复方法,其特征在于,所述User向Endorser提出交易,选择一个备用密钥卡作为新主密钥卡,在该备用密钥卡内根据己方私钥生成多个的私钥分量,并根据Endorser的公钥对私钥分量进行加密后写入交易中还包括:
将所述私钥分量以及接收方Endorser的身份标识作为一组相关联的信息,存储在所述新主密钥卡中。
7.根据权利要求2所述的私钥备份、挂失及恢复方法,其特征在于,User与联盟链成员进行交互的过程中,消息发送方均利用各自的私钥进行签名,接收方相应进行解密。
8.基于联盟链的私钥备份、挂失及恢复系统,包括实施在相互通信的CA机构和用户,其中一部分用户作为联盟链成员,其中一部分用户作为User,其特征在于,各方均配有由CA机构颁发的密钥卡,所有密钥卡均存储有己方公钥以及私钥,所述联盟链成员包括Endorser,所述User根据己方私钥生成多个私钥分量,并将多个所述私钥分量分别发送至各Endorser的密钥卡中,所述Endorser的密钥卡中存储有与各User一一对应的私钥分量,多个所述私钥分量用于得到相应User的私钥,各User均配置有独立的用户名,在同一个用户名下的User配置有主密钥卡以及至少一个备用密钥卡,所述主密钥卡以及备用密钥卡中均存储有相应的密钥卡身份标识,己方私钥以及与私钥相对应的公钥;
所述CA机构和用户均包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权利要求1~7任一项所述的基于联盟链的私钥备份、挂失及恢复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910991411.4A CN111224776B (zh) | 2019-10-18 | 2019-10-18 | 基于联盟链的私钥备份、挂失及恢复方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910991411.4A CN111224776B (zh) | 2019-10-18 | 2019-10-18 | 基于联盟链的私钥备份、挂失及恢复方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111224776A CN111224776A (zh) | 2020-06-02 |
CN111224776B true CN111224776B (zh) | 2023-03-07 |
Family
ID=70832004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910991411.4A Active CN111224776B (zh) | 2019-10-18 | 2019-10-18 | 基于联盟链的私钥备份、挂失及恢复方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111224776B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623569A (zh) * | 2017-09-30 | 2018-01-23 | 矩阵元技术(深圳)有限公司 | 基于秘密共享技术的区块链密钥托管和恢复方法、装置 |
WO2018229608A1 (en) * | 2017-06-13 | 2018-12-20 | nChain Holdings Limited | Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets |
CN109687963A (zh) * | 2019-01-15 | 2019-04-26 | 如般量子科技有限公司 | 基于公钥池的抗量子计算联盟链交易方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10644885B2 (en) * | 2015-07-14 | 2020-05-05 | Fmr Llc | Firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems |
-
2019
- 2019-10-18 CN CN201910991411.4A patent/CN111224776B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018229608A1 (en) * | 2017-06-13 | 2018-12-20 | nChain Holdings Limited | Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets |
CN107623569A (zh) * | 2017-09-30 | 2018-01-23 | 矩阵元技术(深圳)有限公司 | 基于秘密共享技术的区块链密钥托管和恢复方法、装置 |
CN109687963A (zh) * | 2019-01-15 | 2019-04-26 | 如般量子科技有限公司 | 基于公钥池的抗量子计算联盟链交易方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111224776A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109687963B (zh) | 基于公钥池的抗量子计算联盟链交易方法和系统 | |
CN111062716B (zh) | 生成区块链签名数据的方法及装置、区块链交易发起系统 | |
CN110929290B (zh) | 基于联盟链的私钥门限备份、挂失及恢复系统及其方法 | |
CN110690957B (zh) | 抗量子计算私钥备份、挂失及恢复方法及系统 | |
JP4083218B2 (ja) | マルチステップディジタル署名方法およびそのシステム | |
CN111242617B (zh) | 用于执行交易正确性验证的方法及装置 | |
US8392708B2 (en) | Auditing data integrity | |
US20100083001A1 (en) | Auditor Assisted Extraction And Verification Of Client Data Returned From A Storage Provided While Hiding Client Data From The Auditor | |
CN110830244B (zh) | 基于身份秘密共享和联盟链的抗量子计算车联网方法及系统 | |
CN110868295B (zh) | 基于秘密共享的抗量子计算联盟链系统及通信方法 | |
CN110661613B (zh) | 基于联盟链的抗量子计算隐式证书颁发方法及系统 | |
CN109547218B (zh) | 一种改进bip协议的联盟链节点秘钥分配及备份系统 | |
CN110557248B (zh) | 基于无证书密码学的签密的密钥更新方法和系统 | |
Cha et al. | Blockchain based sensitive data management by using key escrow encryption system from the perspective of supply chain | |
CN111355591A (zh) | 一种基于实名认证技术的区块链账号安全的管理方法 | |
CN110737915A (zh) | 基于联盟链和隐式证书的抗量子计算匿名身份识别方法及系统 | |
CN110768781A (zh) | 基于联盟链且抗量子计算的公私钥颁发方法及系统 | |
CN110493005B (zh) | 基于联盟链的抗量子计算公钥池更新方法和系统 | |
CN111327419A (zh) | 基于秘密共享的抗量子计算区块链的方法及系统 | |
CN112463454B (zh) | 数据恢复方法、服务器、终端设备及存储介质 | |
CN110636050B (zh) | 基于联盟链且抗量子计算的匿名身份识别方法及系统 | |
CN110912688B (zh) | 基于联盟链的抗量子计算私钥备份、挂失及恢复方法及系统 | |
Uesugi et al. | Design and evaluation of a privacy-preserving supply chain system based on public permissionless blockchain | |
CN111224776B (zh) | 基于联盟链的私钥备份、挂失及恢复方法及系统 | |
CN110929872B (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 |