CN116112187A - 一种远程证明方法、装置、设备及可读存储介质 - Google Patents
一种远程证明方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116112187A CN116112187A CN202310370388.3A CN202310370388A CN116112187A CN 116112187 A CN116112187 A CN 116112187A CN 202310370388 A CN202310370388 A CN 202310370388A CN 116112187 A CN116112187 A CN 116112187A
- Authority
- CN
- China
- Prior art keywords
- node
- challenge
- proving
- nodes
- trusted
- 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.)
- Granted
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/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
-
- 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/3271—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 challenge-response
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及区块链技术领域,公开了一种远程证明方法、装置、设备及可读存储介质,方法应用于权威区块链中的任一节点,包括:向业务区块链中多个挑战节点发起远程证明挑战;接收多个挑战节点发送的可验证随机数,将多个挑战节点的可验证随机数聚合,生成聚合挑战;利用聚合挑战向业务区块链中证明节点发起验证会话请求;接收证明节点发送的度量值信息,对度量值信息进行检验;若通过检验将其写入权威区块链。本申请公开的技术方案,利用独立于业务区块链的权威区块链中的节点对业务区块链中的节点进行远程证明,以降低远程证明复杂度和通信量,提高证明效率。且挑战随机数由业务区块链中的多个挑战节点产生可提高证明过程的随机性和证明的可靠性。
Description
技术领域
本申请涉及区块链技术领域,更具体地说,涉及一种远程证明方法、装置、设备及可读存储介质。
背景技术
近年来,区块链技术凭借广阔的应用前景和技术特点受到了广泛关注,但由于所有共享的信息都记录在区块链上,因此,很难确保用户的隐私。TEE(Trusted ExecutionEnvironment,可信执行环境)与区块链的结合可以更好地满足区块链对数据安全性和隐私性的要求,并且提供尽可能高的执行效率,提高系统可用性。而机密计算指的是通过在基于硬件的可信执行环境中执行计算过程的方式,为使用中的数据提供保护的计算模式。
为了保证区块链节点的安全运行,需要证明区块链组件真实地运行在机密计算的可信执行环境中。目前,在区块链中,是其所包含的区块链节点之间两两进行远程身份认证,证明区块链的相应组件运行在可信执行环境中,但是,单个区块链系统中包含有众多的分布式节点,两两节点之间进行远程证明会导致证明过程复杂,通信量大,证明效率低。
综上所述,如何降低远程证明的复杂度,提高证明效率,是目前本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请的目的是提供一种远程证明方法、装置、设备及可读存储介质,用于降低远程证明的复杂度,提高证明效率。
为了实现上述目的,本申请提供如下技术方案:
一种远程证明方法,应用于权威区块链中的任一节点,包括:
向业务区块链中的多个挑战节点发起远程证明挑战,由所述挑战节点根据所述远程证明挑战中的信息生成可验证随机数并发送至所述节点;
接收多个所述挑战节点发送的可验证随机数,将多个所述挑战节点的可验证随机数进行聚合,生成聚合挑战;
利用所述聚合挑战向所述业务区块链中的证明节点发起验证会话请求,由所述证明节点响应所述验证会话请求,以获取自身的可信执行环境中运行程序的度量值信息并发送至所述节点;
接收所述证明节点发送的度量值信息,对所述度量值信息进行检验;
若所述度量值信息通过检验,则将所述度量值信息写入所述权威区块链中。
优选的,所述可验证随机数由所述挑战节点根据自身的私钥及所述远程证明挑战中的信息生成,在接收多个所述挑战节点发送的可验证随机数时,还包括:
接收多个所述挑战节点发送的与所述挑战节点自身的私钥对应的公钥,利用所述公钥对所述可验证随机数进行验证;
若所述可验证随机数通过验证,则执行所述将多个所述挑战节点的可验证随机数进行聚合,生成聚合挑战的步骤。
优选的,在接收多个所述挑战节点发送的可验证随机数之后,还包括:
判断接收到的所述可验证随机数的数量是否达到阈值;其中,所述阈值小于所述节点发起的所述远程证明挑战的数量;
若是,则执行所述利用所述公钥对所述可验证随机数进行验证的步骤。
优选的,在接收多个所述挑战节点发送的可验证随机数之后,还包括:
判断接收到的所述可验证随机数的数量是否等于所述节点发起的所述远程证明挑战的数量;
若是,则执行所述利用所述公钥对所述可验证随机数进行验证的步骤。
优选的,在将多个所述挑战节点的可验证随机数进行聚合,生成聚合挑战之后,还包括:
将所述聚合挑战写入所述权威区块链中。
优选的,接收所述证明节点发送的度量值信息,对所述度量值信息进行检验,包括:
接收所述证明节点发送的签名后的所述度量值信息;签名后的所述度量值信息由所述证明节点利用所述可信执行环境的硬件私钥对所述度量值信息进行签名得到;
利用所述可信执行环境的硬件私钥对应的公钥对签名后的所述度量值信息进行验证;
若签名后的所述度量值信息通过验证,则对所述度量值信息进行检验。
优选的,利用所述可信执行环境的硬件私钥对应的公钥对签名后的所述度量值信息进行验证,包括:
将签名后的所述度量值信息发送至所述可信执行环境对应的芯片产商证明服务,由所述芯片产商证明服务利用所述可信执行环境的硬件私钥对应的公钥对签名后的所述度量值信息进行验证,得到验证结果并将所述验证结果发送至所述节点;
接收所述芯片产商证明服务发送的所述验证结果。
优选的,接收所述芯片产商证明服务发送的所述验证结果,包括:
接收所述芯片产商证明服务发送的签名后的所述验证结果;签名后的所述验证结果由所述芯片产商证明服务利用自身的私钥对所述验证结果进行签名得到;
利用所述芯片产商证明服务自身的私钥对应的公钥对签名后的所述验证结果进行验证;
若签名后的所述验证结果通过验证且所述验证结果为签名后的所述度量值信息通过验证,则执行所述对所述度量值信息进行检验的步骤。
优选的,还包括:
当有新业务节点加入所述业务区块链中时,则将所述新业务节点作为所述证明节点,执行所述向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
优选的,对所述度量值信息进行检验,包括:
利用预先存储在所述权威区块链中的参考程序的度量值参考值对所述度量值信息检验;
所述参考程序为运行在所述证明节点的可行执行环境中的程序。
优选的,对所述度量值信息进行检验,包括:
利用远程仓库获取参考程序的度量值参考值;所述参考程序为运行在所述证明节点的可行执行环境中的程序;
利用所述参考程序的度量值参考值对所述度量值信息检验。
优选的,对所述度量值信息进行检验,包括:
链上计算参考程序的度量值参考值;所述参考程序为运行在所述证明节点的可行执行环境中的程序;
利用所述参考程序的度量值参考值对所述度量值信息检验。
优选的,还包括:
接收客户端发送的第一可信性会话;所述第一可信性会话中包括所述业务区块链中的第一目标节点的信息;
根据所述权威区块链中记录的信息判断所述第一目标节点中的可信执行环境是否可信;
若是,则确定所述第一目标节点中的可信执行环境可信,并向所述客户端返回可信消息,以使所述客户端与所述第一目标节点建立安全通道并进行通信。
优选的,若无法确定所述第一目标节点中的可信执行环境是否可信,则还包括:
向所述客户端返回无法确定所述第一目标节点中的可信执行环境是否可信的消息。
优选的,若无法确定所述第一目标节点中的可信执行环境是否可信,则还包括:
将所述第一目标节点作为所述证明节点,执行所述向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
优选的,还包括:
接收所述业务区块链中的第二目标节点发送的第二可信性会话;所述第二可信性会话中包括所述业务区块链中的第三目标节点的信息;
根据所述权威区块链中记录的信息判断所述第三目标节点中的可信执行环境是否可信;
若是,则向所述第二目标节点返回可信消息,以使所述第二目标节点与所述第三目标节点建立安全通道并进行通信。
优选的,若无法确定所述第三目标节点中的可信执行环境是否可信,则还包括:
将所述第三目标节点作为所述证明节点,执行所述向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
一种远程证明装置,应用于权威区块链中的任一节点,包括:
发起挑战模块,用于向业务区块链中的多个挑战节点发起远程证明挑战,由所述挑战节点根据所述远程证明挑战中的信息生成可验证随机数并发送至所述节点;
聚合模块,用于接收多个所述挑战节点发送的可验证随机数,将多个所述挑战节点的可验证随机数进行聚合,生成聚合挑战;
发起请求模块,用于利用所述聚合挑战向所述业务区块链中的证明节点发起验证会话请求,由所述证明节点响应所述验证会话请求,以获取自身的可信执行环境中运行程序的度量值信息并发送至所述节点;
检验模块,用于接收所述证明节点发送的度量值信息,对所述度量值信息进行检验;
第一写入模块,用于若所述度量值信息通过检验,则将所述度量值信息写入所述权威区块链中。
一种远程证明设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的远程证明方法的步骤。
一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的远程证明方法的步骤。
本申请提供了一种远程证明方法、装置、设备及可读存储介质,其中,该方法应用于权威区块链中的任一节点,包括:向业务区块链中的多个挑战节点发起远程证明挑战,由挑战节点根据远程证明挑战中的信息生成可验证随机数并发送至节点;接收多个挑战节点发送的可验证随机数,将多个挑战节点的可验证随机数进行聚合,生成聚合挑战;利用聚合挑战向业务区块链中的证明节点发起验证会话请求,由证明节点响应验证会话请求,以获取自身的可信执行环境中运行程序的度量值信息并发送至节点;接收证明节点发送的度量值信息,对度量值信息进行检验;若度量值信息通过检验,则将度量值信息写入权威区块链中。
本申请的有益效果在于,利用独立于业务区块链的权威区块链作为可信的远程证明中心,具体利用权威区块链中的节点向业务区块链中的多个挑战节点发起远程证明挑战,由挑战节点生成可验证随机数并发送至节点,且权威区块链中的节点将多个挑战节点的可验证随机数进行聚合,以生成聚合挑战,并利用聚合挑战向业务区块链中的证明节点发起验证会话请求而获取证明节点的可信执行环境中运行程序的度量值信息,并对度量值信息进行检验,以验证证明节点可行执行环境中运行程序的完整性,即利用权威区块链中的节点实现对业务区块链中节点的可信执行环境的远程证明,以降低对业务区块链中节点进行远程证明的复杂度和通信量,提高远程证明的效率。并且,在度量值信息通过验证后将其写入权威区块链中可以保证证明过程的可追溯、不可篡改、可验证。另外,本申请在进行远程证明时将挑战节点和证明节点分离,挑战的随机数由业务区块链中的多个挑战节点产生,权威区块链只作为证明中心验证可信执行环境的可靠性并进行记录,因此,可提高证明过程的随机性和证明的可靠性,使得对证明节点的证明可以被业务区块链中的其他节点所信,且可减少对权威区块链节点的依赖。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种远程证明方法的流程图;
图2为本申请实施例提供的远程证明框图;
图3为本申请实施例提供的另一种远程证明方法的流程图;
图4为本申请实施例提供的一种远程证明装置的结构示意图;
图5为本申请实施例提供的一种远程证明设备的结构示意图。
具体实施方式
安全是区块链发展和应用的基石,因此,需要证明区块链组件(智能合约、可信共识)真实地运行在机密计算的可信执行环境中,以保证区块链节点的安全运行。目前,在区块链中,是其所包含的区块链节点之间两两进行远程身份认证,证明区块链的相应组件运行在可信执行环境中,但是,单个区块链中包含有众多的分布式节点,两两节点之间进行远程证明需要建立大量的可信通道,通信量大,结构复杂且证明过程复杂,证明效率低。
为此,本申请提供一种远程证明方法、装置、设备及可读存储介质,用于降低远程证明的复杂度,提高证明效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1至图3,其中,图1示出了本申请实施例提供的一种远程证明方法的流程图,图2示出了本申请实施例提供的远程证明框图,图3示出了本申请实施例提供的另一种远程证明方法的流程图。本申请实施例提供的一种远程证明方法,应用于权威区块链中的任一节点,可以包括:
S11:向业务区块链中的多个挑战节点发起远程证明挑战,由挑战节点根据远程证明挑战中的信息生成可验证随机数并发送至节点。
本申请采用权威区块链作为可信的远程证明中心,实现对业务区块链的可信执行环境的去中心化远程证明,可以为区块链的虚拟机迁移、智能合约框架、共识算法提供信任支撑,保证分布式计算和执行。权威区块链是独立于业务区块链之外的一条区块链,其作为证明中心验证业务区块链中可信执行环境的可靠性。其中,权威区块链一般是联盟链,权威区块链中的节点可以由业务区块链中高可信的参与方组成,也可以由可信第三方单独组成,本申请具体可以利用权威区块链中的任一节点进行远程证明,也即利用权威区块链节点进行远程证明。为了将权威区块链中用于进行远程证明的节点和权威区块链中的其他节点进行区分,则用于进行远程证明的节点可以称为认证节点。
在进行远程证明之前,可以先建立权威区块链网络。并且,组建业务区块链网络,以对业务区块链中的节点上的可信执行环境进行真实性度量,并将度量值记录在权威区块链节点上。
在进行远程证明时,权威区块链中的认证节点可以先向业务区块链中除证明节点外的多个挑战节点发起远程证明挑战。业务区块链中的证明节点即为业务区块链中需要证明的节点,具体可以为一开始进行业务区块链组网时业务区块链中需要证明的节点。远程证明挑战中可包括证明节点的信息(如证明节点的名称、标识等)以及可信执行环境中的运行程序的信息(如程序版本、ID、哈希值等信息)。其中,在向多个挑战节点发起远程证明挑战时可以随机地向业务区块链中的多个挑战节点发送远程证明挑战,具体地,可以按照规则策略(规则策略具体可以指明挑战节点的数量等)随机地向业务区块链中的多个挑战节点发送远程证明挑战。需要说明的是,挑战节点和证明节点均是业务区块链中的同构节点,只是在证明不同时刻充当的角色不一样。
业务区块链中的挑战节点在接收到权威区块链中的认证节点发送的远程证明挑战后,利用远程证明挑战中包含的信息(即为证明节点的信息及可信执行环境中的运行程序的信息)产生可验证随机数。然后,挑战节点可以将所生成的可验证随机数发送给认证节点。
S12:接收多个挑战节点发送的可验证随机数,将多个挑战节点的可验证随机数进行聚合,生成聚合挑战。
在步骤S11的基础上,权威区块链中的认证节点即可接收多个挑战节点发送的可验证随机数,并将多个挑战节点的可验证随机数进行聚合,以生成聚合挑战。其中,步骤S12中“接收多个挑战节点发送的可验证随机数”中的“多个”与步骤S11中“向业务区块链中的多个挑战节点发起远程证明挑战”中的“多个”可以不等,也可以相等。
在对接收到的多个挑战节点发送的可验证随机数进行聚合时,具体可以将接收到的多个挑战节点发送的可验证随机数构成一个集合,该集合中包含接收到的各挑战节点发送的可验证随机数,该聚合即为聚合生成的聚合挑战。
S13:利用聚合挑战向业务区块链中的证明节点发起验证会话请求,由证明节点响应验证会话请求,以获取自身的可信执行环境中运行程序的度量值信息并发送至节点。
在步骤S12的基础上,权威区块链中的认证节点可以利用所生成的聚合挑战向证明节点发起验证会话请求。其中,验证会话请求中包含有聚合挑战,也即包含有多个挑战节点发送的可验证随机数。如图2所示,权威区块链中的认证节点可以包括认证模块和参考值模块(也即认证模块及参考值模块均是运行在权威区块链中的服务),认证模块负责整个流程的调度,完成证明过程,参考值模块用于对度量值信息进行检验。认证模块及参考值模块实际是权威区块链的智能合约。
业务区块链中的证明节点在接收到验证会话请求后,对验证会话请求进行响应,以获取自身的可信执行环境中运行程序的度量值信息(度量值信息包含有与验证会话请求中包含的可验证随机数对应的信息)并将度量值信息发送至认证节点。如图2所示,证明节点中具体可以包括有可信执行环境证明模块和通用应用程序,其中,可信执行环境证明模块运行在可信执行环境中,作用是获取可信执行环境中运行程序的度量值信息,通用应用程序负责转发可信执行环境证明模块与其他模块的消息。相应地,认证节点所发起的验证会话请求会被证明节点中的通用应用程序接收,并将验证会话请求转发给可信执行环境证明模块,由可信环境证明模块根据验证会话请求获取可信执行环境的度量值信息,并将度量值信息通过通用程序返回给认证节点。
S14:接收证明节点发送的度量值信息,对度量值信息进行检验。
相应地,权威区块链中的认证节点接收业务区块链中的证明节点发送的度量值信息,并对度量值信息进行检验(具体是对度量值信息内容进行检验,如检验度量值信息的哈希值等),以通过对度量值信息的检验来验证可信执行环境中的运行程序是否是符合预期的或没有被篡改过的,从而便于保证证明节点上的运行程序运行在可信执行环境中。具体地,是认证节点中的认证模块向参考值模块发起度量值信息内容的验证会话,由参考值模块对度量值信息的内容进行校验。
S15:若度量值信息通过检验,则将度量值信息写入权威区块链中。
若度量值信息通过检验,则表明可信执行环境中的运行程序是符合预期的且没有被篡改过的,即表明证明节点上的运行程序是运行在可信执行环境中,也表明可信执行环境是处于预期的工作状态的,可信执行环境的通信对端是可以与可信执行环境进行涉及敏感数据的交互的,因此,可以将度量值信息写入权威区块链中,以表明该证明节点的可信执行环境是可信的,也即表明该证明节点是可信的。具体地,如果度量值信息通过检验,则参考值模块可以将检验结果发送至认证模块,由认证模块将度量值信息写入权威区块链中。如果度量值信息未通过检验,则不将度量值信息写入权威区块链中。其中,在度量值信息通过检验时将其记录在权威区块链中可以保证证明过程的可追溯、不可篡改、可验证。
当然,如果度量值信息通过检验,则权威区块链中的认证节点不仅可以将该度量值信息写入权威区块链中,还可以将证明节点对应的可信结果(即证明节点中的可信执行环境是可信的)写入权威区块链中,以便于客户端和/或业务区块链中的其他节点可以通过查询权威区块链而确定业务区块链中的相关节点是否可信。如果度量值信息未通过检验,则权威区块链中的认证节点可以将证明节点对应的不可信结果(即证明节点中的可信执行环境是不可信的)写入权威区块链中,以便于客户端和/或业务区块链中的其他节点可以通过查询权威区块链而确定业务区块链中的相关节点是否可信。
通过上述可知,本申请利用独立于业务区块链之外的权威区块链实现对业务区块链节点的可信执行环境的去中心化远程证明,无需业务区块链中两两节点之间互相证明,可有效降低远程证明的复杂性和通信量,证明简洁可靠,且证明效率高。在本申请中可以将业务区块链中的某些组件,例如智能合约、共识机制、加解密算法运行在可信执行环境中,保证业务区块链的机密性和安全性。而且,通过上述过程实现将业务区块链中除证明节点外的多个节点参与对证明节点可信执行环境的远程证明,也即实现将挑战节点和证明节点分离,挑战的随机数由业务区块链中的多个挑战节点产生,权威区块链只作为证明中心验证可信执行环境的可靠性并进行记录。其中,挑战过程由业务区块链中的多个节点产生可以提高证明过程的随机性和证明的可靠性,使得对证明节点的证明可以被业务区块链中的其他节点所信,且可减少对权威区块链节点的依赖。
本申请公开的上述技术方案,利用独立于业务区块链的权威区块链作为可信的远程证明中心,具体利用权威区块链中的节点向业务区块链中的证明节点发起验证会话请求而获取证明节点的可信执行环境中运行程序的度量值信息,并对度量值信息进行检验,以验证证明节点可行执行环境中运行程序的完整性,即利用权威区块链中的节点实现对业务区块链中节点的可信执行环境的远程证明,以降低对业务区块链中节点进行远程证明的复杂度和通信量,提高远程证明的效率。并且,在度量值信息通过验证后将其写入权威区块链中可以保证证明过程的可追溯、不可篡改、可验证。另外,本申请在进行远程证明时将挑战节点和证明节点分离,挑战的随机数由业务区块链中的多个挑战节点产生,权威区块链只作为证明中心验证可信执行环境的可靠性并进行记录,因此,可提高证明过程的随机性和证明的可靠性,使得对证明节点的证明可以被业务区块链中的其他节点所信,且可减少对权威区块链节点的依赖。
本申请实施例提供的一种远程证明方法,可验证随机数由挑战节点根据自身的私钥及远程证明挑战中的信息生成,在接收多个挑战节点发送的可验证随机数时,还可以包括:
接收多个挑战节点发送的与挑战节点自身的私钥对应的公钥,利用公钥对可验证随机数进行验证;
若可验证随机数通过验证,则执行将多个挑战节点的可验证随机数进行聚合,生成聚合挑战的步骤。
在本申请中,业务区块链中的挑战节点在接收到认证节点发送的远程证明挑战后,可利用远程证明挑战中包含的信息(即为证明节点的信息及可信执行环境中的运行程序的信息)和自己的私钥产生可验证随机数,具体地,可利用远程证明挑战中的信息生成可验证随机数,并利用自身的私钥对可验证随机数进行签名。然后,挑战节点将可验证随机数以及与自身的私钥对应的公钥发送给认证节点。相应地,权威区块链中的认证节点在接收多个挑战节点发送的可验证随机数时还可接收多个挑战节点发送的与挑战节点自身的私钥对应的公钥,然后,权威区块链中的认证节点利用接收到的挑战节点自身的私钥对应的公钥对相应的可验证随机数进行验证,具体验证可验证随机数的真实性和合法性。若可验证随机数通过验证,则执行将多个挑战节点的可验证随机数进行聚合,生成聚合挑战的步骤,从而保证聚合挑战的真实性和合法性,进而便于提高远程证明的可靠性。
本申请实施例提供的一种远程证明方法,在接收多个挑战节点发送的可验证随机数之后,还可以包括:
判断接收到的可验证随机数的数量是否达到阈值;其中,阈值小于节点发起的远程证明挑战的数量;
若是,则执行利用公钥对可验证随机数进行验证的步骤。
在本申请中,认证节点在接收到多个挑战节点发送的可验证随机数及与挑战节点自身的私钥对应的公钥之后,可以判断接收到的可验证随机数的数量是否达到阈值,其中,阈值小于权威区块链中的认证节点发起的远程证明挑战的数量,且阈值大于等于2,具体大小可以根据实际需求进行设置。在本申请中,一个远程证明挑战对应一个挑战节点,一个挑战节点产生一个可验证随机数。
若认证节点判定接收到的可验证随机数的数量尚未达到阈值,则进行等待,直至接收到的可验证随机数的数量达到阈值。若认证节点判定接收到的可验证随机数的数量达到阈值,则可以执行利用挑战节点自身的私钥对应的公钥对相应的可验证随机数进行验证的步骤。
通过上述可以实现认证节点无需等待所有挑战节点均返回可验证随机数之后才进行验证和生成聚合挑战,因此,可便于缩短远程证明所花费的时间,提高远程证明效率。
本申请实施例提供的一种远程证明方法,在接收多个挑战节点发送的可验证随机数之后,还可以包括:
判断接收到的可验证随机数的数量是否等于节点发起的远程证明挑战的数量;
若是,则执行利用公钥对可验证随机数进行验证的步骤。
在本申请中,认证节点在接收到多个挑战节点发送的可验证随机数及与挑战节点自身的私钥对应的公钥之后,可以判断接收到的可验证随机数的数量是否等于认证节点发起的远程证明挑战的数量。其中,一个远程证明挑战对应一个挑战节点,一个挑战节点产生一个可验证随机数。
若认证节点判定接收到的可验证随机数的数量不等于认证节点发起的远程证明挑战的数量,也即若认证节点确定未接收到所有挑战节点返回的可验证随机数,则进行等待,直至接收到的可验证随机数的数量等于认证节点发起的远程证明挑战的数量。若认证节点判定接收到的可验证随机数的数量等于认证节点发起的远程证明挑战的数量,也即若认证节点确认接收到所有挑战节点返回的可验证随机数,则可以执行利用挑战节点自身的私钥对应的公钥对相应的可验证随机数进行验证的步骤。
通过上述实现认证节点等待所有挑战节点均返回可验证随机数之后才进行验证和生成聚合挑战,以提高远程证明的可靠性,增强可信度。
本申请实施例提供的一种远程证明方法,在将多个挑战节点的可验证随机数进行聚合,生成聚合挑战之后,还可以包括:
将聚合挑战写入权威区块链中。
在本申请中,在将多个挑战节点的可验证随机数进行聚合,生成聚合挑战之后,可以将聚合挑战写入权威区块链中,以便于从权威区块链中进行聚合挑战、挑战节点生成的可验证随机数的查询和验证等。
本申请实施例提供的一种远程证明方法,接收证明节点发送的度量值信息,对度量值信息进行检验,可以包括:
接收证明节点发送的签名后的度量值信息;签名后的度量值信息由证明节点利用可信执行环境的硬件私钥对度量值信息进行签名得到;
利用可信执行环境的硬件私钥对应的公钥对签名后的度量值信息进行验证;
若签名后的度量值信息通过验证,则对度量值信息进行检验。
在本申请中,业务区块链中的证明节点在接收到认证节点发送的验证会话请求后,在对验证会话请求进行响应而获取自身的可信执行环境中运行程序的度量值信息后,可以利用可信执行环境的硬件私钥对度量值信息进行签名,并将签名后的度量值信息发送至认证节点,相应地,认证节点则接收证明节点发送的签名后的度量值信息。具体地,可以由证明节点中的可信执行环境证明模块利用可信执行环境的硬件私钥对度量值信息进行签名,以得到签名后的度量值信息,并将签名后的度量值信息通过证明节点中的通用应用程序返回给认证节点。
认证节点在接收到证明节点发送的签名后的度量值信息后,可以利用可信执行环境的硬件私钥对应的公钥对签名后的度量值信息进行验证,即利用可信执行环境的硬件私钥进行验签,以防止黑客伪造一个可信执行环境来骗取用户的信任。
若签名后的度量值信息通过上述验证,则表明是证明节点中的可信执行环境,而非是黑客伪造的可信执行环境,此时,则可以对度量值信息进行校验,以保证远程证明的可靠性。而且通过上述过程可以实现以下特性:1)可伪造性:如果可信硬件组件从未对该消息签名,则对手无法在链接到可信硬件组件签名的消息上生成签名;2)撤销:如果受信任的硬件组件受损,则不再接受来自受损密钥的签名;3)匿名性:对手无法从签名中透露受信任硬件组件的身份。
本申请实施例提供的一种远程证明方法,利用可信执行环境的硬件私钥对应的公钥对签名后的度量值信息进行验证,可以包括:
将签名后的度量值信息发送至可信执行环境对应的芯片产商证明服务,由芯片产商证明服务利用可信执行环境的硬件私钥对应的公钥对签名后的度量值信息进行验证,得到验证结果并将验证结果发送至节点;
接收芯片产商证明服务发送的验证结果。
在本申请中,考虑到可信执行环境的硬件私钥对应的公钥一般保存在芯片产商证明服务中,因此,为了顺利且可靠地实现对签名后的度量值信息的验证,则认证节点在利用可信执行环境的硬件私钥对应的公钥对签名后的度量值信息进行验证时,可以将签名后的度量值信息发送至可信执行环境对应的芯片产商证明服务,由芯片产商证明服务验证证明节点的可信硬件签名的合法性。其中,芯片产商证明服务运行在公有网络中,是由芯片厂商提供的服务,作用是验证度量值信息的签名,以确定度量值信息确实是由真实可信执行环境生成的。
具体地,认证节点中的认证模块接收到证明节点发送的签名后的度量值信息后,可以发起度量值信息的签名验证会话(该会话中包含有签名后的度量值信息),并将该会话发送至芯片产商证明服务来检查度量值信息的签名,以验证生的度量值信息的可信执行环境是一个真实的可信执行环境,也即认证节点中的认证模块可以负责调用芯片产商证明服务。芯片产商证明服务在接收到度量值信息的签名验证会话后,可以利用保存的可信执行环境的硬件私钥对应的公钥来对签名后的度量值信息进行验证,以有效验证可信执行环境的签名是否是由硬件私钥签名,并得到验证结果(验证结果具体为度量值信息的签名是/否由硬件私钥签名)。芯片产商证明服务在得到验证结果后,还可以将验证结果发送至认证节点。相应地,认证节点可以接收芯片产商证明服务发送的验证结果,以根据验证结果决定是否对度量值信息进行检验。
本申请实施例提供的一种远程证明方法,接收芯片产商证明服务发送的验证结果,可以包括:
接收芯片产商证明服务发送的签名后的验证结果;签名后的验证结果由芯片产商证明服务利用自身的私钥对验证结果进行签名得到;
利用芯片产商证明服务自身的私钥对应的公钥对签名后的验证结果进行验证;
若签名后的验证结果通过验证且验证结果为签名后的度量值信息通过验证,则执行对度量值信息进行检验的步骤。
在本申请中,芯片厂商证明服务在生成验证结果后,可以利用芯片产商证明服务自身的私钥对验证结果进行签名,以得到签名后的验证结果,并将签名后的验证结果发送至认证节点。相应地,认证节点即接收芯片厂商证明服务发送的签名后的验证结果,并利用芯片厂商证明服务自身的私钥对应的公钥对签名后的验证结果进行验证,以验证签名后的验证结果的合法性。
如果签名后的验证结果通过验证,也即如果确定签名后的验证结果是合法的,则可以验证签名后的度量值信息是否合法,也即按照上述过程验证签名后的度量值信息是否合法,如果签名后的度量值信息是合法的,则对度量值信息进行检验,以确定度量值信息的内容是否符合预期。
由芯片厂商证明对验证结果进行签名可以实现对验证结果的保护,由认证节点进行验签可以实现验证芯片厂商证明服务的身份,防止中间人攻击等,以提高远程证明的可靠性。
本申请实施例提供的一种远程证明方法,还可以包括:
当有新业务节点加入业务区块链中时,则将新业务节点作为证明节点,执行向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
在本申请中,若有新业务节点加入到业务区块链中,则将新业务节点作为业务区块链中的证明节点而执行向业务区块链中的多个挑战节点发起远程证明挑战的步骤,以实现对新业务节点的远程证明,从而验证新业务节点中的可信执行环境中的运行程序是否是符合预期的、没有被篡改过的。
本申请实施例提供的一种远程证明方法,对度量值信息进行检验,可以包括:
利用预先存储在权威区块链中的参考程序的度量值参考值对度量值信息检验;
参考程序为运行在证明节点的可行执行环境中的程序。
在本申请中,认证节点可以预先在权威区块链中存储参考程序的度量值参考值,其中,参考程序为运行在证明节点的可行执行环境中的程序,预先存储在权威区块链中的参考程序的度量值参考值表明运行在证明节点的可信执行环境中的程序是符合预期的、没有被篡改过的。
认证节点在对度量值信息进行检验时,可以利用预先存储在所述权威区块链中的参考程序的度量值参考值对度量值信息检验,以判定证明节点的可信执行环境中的运行程序是否是符合预期的。具体地,参考值模块可以预先生成参考程序的度量值参考值,并对参考程序的度量值参考值进行存储,在进行检验时利用预先存储的参考程序的度量值参考值对度量值信息的内容进行校验。
通过预先存储参考程序的度量值参考值并利用此对度量值信息进行检验不仅可以提高检验的可靠性,而且可以提高远程证明效率。
本申请实施例提供的一种远程证明方法,对度量值信息进行检验,可以包括:
利用远程仓库获取参考程序的度量值参考值;参考程序为运行在证明节点的可行执行环境中的程序;
利用参考程序的度量值参考值对度量值信息检验。
在本申请中,在对度量值信息进行校验时,首先可以利用远程仓库获取参考程序的度量值参考值,其中,参考程序为运行在证明节点的可行执行环境中的程序,参考程序的度量值参考值表明运行在证明节点的可信执行环境中的程序是符合预期的、没有被篡改过的。
在获取参考程序的度量值参考值之后,可以利用参考程序的度量值参考值对度量值信息检验,以判定证明节点的可信执行环境中的运行程序是否是符合预期的。
通过利用远程仓库获取参考程序的度量值参考值并利用参考程序的度量值参考值对度量值信息进行检验可以无需权威区块链进行度量值参考值的计算,以减少权威区块链计算资源的浪费,并可以提高检验的可靠性。
本申请实施例提供的一种远程证明方法,对度量值信息进行检验,可以包括:
链上计算参考程序的度量值参考值;参考程序为运行在证明节点的可行执行环境中的程序;
利用参考程序的度量值参考值对度量值信息检验。
在本申请中,在对度量值信息进行校验时,认证节点首先可以链上计算参考程序的度量值参考值,即在权威区块链上计算参考程序的度量值参考值,其中,参考程序为运行在证明节点的可行执行环境中的程序,所计算出的参考程序的度量值参考值表明运行在证明节点的可信执行环境中的程序是符合预期的、没有被篡改过的。之后,可以利用计算出的参考程序的度量值参考值对度量值信息检验,以提高检验的可靠性,从而提高远程证明的可靠性。
本申请实施例提供的一种远程证明方法,还可以包括:
接收客户端发送的第一可信性会话;第一可信性会话中可以包括业务区块链中的第一目标节点的信息;
根据权威区块链中记录的信息判断第一目标节点中的可信执行环境是否可信;
若是,则向客户端返回可信消息,以使客户端与第一目标节点建立安全通道并进行通信。
在本申请中,如果客户端要验证业务区块链中的某个业务节点(即第一目标节点)的证明信息并建立安全通信通道,则客户端可以向权威区块链中的认证节点发起第一可信性会话,其中,第一可信性会话中包括第一目标节点的信息(例如名称、编号等)。认证节点在接收到客户端发送的第一可信性会话后,可以根据第一可信性会话中包含的第一目标节点的信息以及权威区块链中记录的信息判断第一目标节点中的可信执行环境是否可信。具体地,如果是权威区块链中的认证节点在对业务区块链中的节点进行远程证明时相应节点对应的度量值信息通过检验时将对应的度量值信息写入权威区块链中,相应节点对应的度量值信息未通过检验时其对应的度量值信息未写入权威区块链中,则可以查询权威区块链中是否存在与第一目标节点对应的度量值信息,若是,则确定第一目标节点中的可信执行环境可信,若否,则无法确定第一目标节点中的可信执行环境是否可信(可能是因不可信而未写入权威区块链中,也可能是还未对第一目标节点进行远程证明)。如果权威区块链中的认证节点在对业务区块链中的节点进行远程证明时相应节点对应的度量值信息通过检验时将对应的度量值信息及可信结果写入权威区块链中,相应节点对应的度量值信息未通过检验时将相应节点不可信结果写入权威区块链时,则可以查询权威区块链中是否存在与第一目标节点对应的度量值信息和/或可信结果,若存在与第一目标节点对应的度量值信息和/或可信结果,则确定第一目标节点中的可信执行环境可信,若存在与第一目标节点对应的不可信结果,则确定第一目标节点中的可信执行环境不可信,若既不存在与第一目标节点对应的度量值信息、可信结果也不存在与第一目标节点对应的不可信结果,则无法确定第一目标节点中的可信执行环境是否可信。
若确定第一目标节点中的可信执行环境是可信的,此时,可以向客户端返回可信消息,该可信消息具体可以包含第一目标节点对应的可信结果和/或第一目标节点中的可信执行环境的度量值信息。客户端在接收到认证节点返回的可信消息后,可以确定第一目标节点的可信执行环境是一个真实的可信执行环境,并且运行在可信执行环境中的程序满足:是用户自己部署的程序,并且该程序没有被黑客篡改;或者是第三方部署的程序,但这些程序是符合预期的,比如这些程序是经过代码审核并确定是没有漏洞的。之后,客户端可以与第一目标节点建立安全通道,并通过安全通道与第一目标节点进行通信,具体地,可在安全通道中发送机密数据,以保证数据安全性和隐私性。
通过上述方式可以提高客户端获取远程证明结果的效率,无需客户端自己向业务区块链中需要进行通信的节点进行远程证明。
本申请实施例提供的一种远程证明方法,若无法确定第一目标节点中的可信执行环境是否可信,则还可以包括:
向客户端返回无法确定第一目标节点中的可信执行环境是否可信的消息。
在本申请中,权威区块链中的认证节点在根据权威区块链中记录的信息判断第一目标节点中的可信执行环境是否可信时,若无法确定第一目标节点中的可信执行环境是否可信,则可以向客户端返回无法确定第一目标节点中的可信执行环境是否可信的消息,以使得客户端可以及时获知该消息,从而便于客户端根据该消息采取相应措施(如进行等待或更换成业务区块链中的其他节点进行通信等),以提高用户体验度。另外,若确定第一目标节点中的可信执行环境不可信,则可以向客户端返回第一目标节点中的可信执行环境不可信的消息,以使得客户端可以及时获知该消息而采取相应措施(如更换成业务区块链中的其他节点等),从而便于提高用户体验度。
本申请实施例提供的一种远程证明方法,若无法确定第一目标节点中的可信执行环境是否可信,则还可以包括:
将第一目标节点作为证明节点,执行向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
在本申请中,权威区块链中的认证节点在根据权威区块链中记录的信息判断第一目标节点中的可信执行环境是否可信时,若无法确定第一目标节点中的可信执行环境是否可信,则可能是第一目标节点还未进行远程证明因此尚未在权威区块链中记录有对应的信息,因此,认证节点可以将第一目标节点作为证明节点,并执行向业务区块链中的多个挑战节点发起远程证明挑战的步骤,以实现对第一目标节点的远程证明,从而证明第一目标节点是否可信(也即证明第一目标节点对应的可信执行环境是否可信)。如果证明第一目标节点可信,则权威区块链中的认证节点不仅可以将第一目标节点对应的度量值信息(或者和可信结果一起)写入权威区块链中,而且还可以向客户端返回可信消息,以使客户端与第一目标节点建立安全通道并进行通信;如果证明第一目标节点不可信,则可以向客户端返回第一目标节点不可信消息(还可以在权威区块链中写入第一目标节点对应的不可信结果)。
本申请实施例提供的一种远程证明方法,还可以包括:
接收业务区块链中的第二目标节点发送的第二可信性会话;第二可信性会话中可以包括业务区块链中的第三目标节点的信息;
根据权威区块链中记录的信息判断第三目标节点中的可信执行环境是否可信;
若是,则向第二目标节点返回可信消息,以使第二目标节点与第三目标节点建立安全通道并进行通信。
在本申请中,如果业务区块链中的某个业务节点(即第二目标节点)要验证业务区块链中其他业务节点(即第三业务节点)的证明信息并建立安全通信通道,则第二目标节点可以先第三目标节点发送第二可信性会话,第二可信性会话中可以包括业务区块链中的第三目标节点的信息(例如名称、编号等)。认证节点在接收到第二目标节点发送的第二可信性会话后,可以根据第二可信性会话中包含的第三目标节点的信息以及权威区块链中记录的信息判断第三目标节点中的可信执行环境是否可信。具体地,如果是权威区块链中的认证节点在对业务区块链中的节点进行远程证明时相应节点对应的度量值信息通过检验时将对应的度量值信息写入权威区块链中,相应节点对应的度量值信息未通过检验时其对应的度量值信息未写入权威区块链中,则可以查询权威区块链中是否存在与第三目标节点对应的度量值信息,若是,则确定第三目标节点中的可信执行环境可信,若否,则无法确定第三目标节点中的可信执行环境是否可信(可能是因不可信而未写入权威区块链中,也可能是还未对第三目标节点进行远程证明)。如果权威区块链中的认证节点在对业务区块链中的节点进行远程证明时相应节点对应的度量值信息通过检验时将对应的度量值信息及可信结果写入权威区块链中,相应节点对应的度量值信息未通过检验时将相应节点不可信结果写入权威区块链时,则可以查询权威区块链中是否存在与第一目标节点对应的度量值信息和/或可信结果,若存在与第三目标节点对应的度量值信息和/或可信结果,则确定第三目标节点中的可信执行环境可信,若存在与第三目标节点对应的不可信结果,则确定第三目标节点中的可信执行环境不可信,若既不存在与第三目标节点对应的度量值信息、可信结果也不存在与第三目标节点对应的不可信结果,则无法确定第三目标节点中的可信执行环境是否可信。
若确定第三目标节点中的可信执行环境是可信的,此时,可以向第二目标节点返回可信消息,该可信消息具体可以包含第三目标节点对应的可信结果和/或第三目标节点中的可信执行环境的度量值信息。
第二目标节点在接收到认证节点返回的可信消息后,可以确定第三目标节点的可信执行环境是一个真实的可信执行环境,并且运行在可信执行环境中的程序满足:是用户自己部署的程序,并且该程序没有被黑客篡改;或者是第三方部署的程序,但这些程序是符合预期的,比如这些程序是经过代码审核并确定是没有漏洞的。第二目标节点在接收到可信消息后,可以与第三目标节点建立安全通道,并通过安全通道与第三目标节点进行通信,具体地,可在安全通道中发送机密数据,以保证数据安全性和隐私性。
本申请实施例提供的一种远程证明方法,若无法确定第三目标节点中的可信执行环境是否可信,则还可以包括:
将第三目标节点作为证明节点,执行向业务区块链中的证明节点发起验证会话请求的步骤。
在本申请中,权威区块链中的认证节点在根据权威区块链中记录的信息判断第一目标节点中的可信执行环境是否可信时,若无法确定第三目标节点中的可信执行环境是否可信,则可能是第三目标节点还未进行远程证明因此尚未在权威区块链中记录有对应的信息,因此,认证节点可以将第三目标节点作为证明节点,并执行向业务区块链中的多个挑战节点发起远程证明挑战的步骤,以实现对第三目标节点的远程证明,从而证明第三目标节点是否可信(也即证明第三目标节点对应的可信执行环境是否可信)。如果证明第三目目标节点可信,则权威区块链中的认证节点不仅可以将第三目目标节点对应的度量值信息(或者和可信结果一起)写入权威区块链中,而且还可以向第二目标节点返回可信消息,以使第二目标节点与第三目标节点建立安全通道并进行通信;如果证明第三目标节点不可信,则可以向第二目标节点返回第三目标节点不可信消息(还可以在权威区块链中写入第三目标节点对应的不可信结果)。
另外,权威区块链中的认证节点在根据权威区块链中记录的信息判断第一目标节点中的可信执行环境是否可信时,若无法确定第三目标节点中的可信执行环境是否可信,则还可以向第二目标节点返回无法确定第三目标节点中的可信执行环境是否可信的消息,以使得第二目标节点可以及时获知该消息,从而便于第二目标节点根据该消息采取相应措施(如进行等待或更换成业务区块链中的其他节点进行通信等),以提高用户体验度。并且,权威区块链中的认证节点在根据权威区块链中记录的信息判断第一目标节点中的可信执行环境是否可信时,若确定第三目标节点中的可信执行环境不可信,则可以向第二目标节点返回第三目标节点中的可信执行环境不可信的消息,以使得第二目标节点可以及时获知该消息而采取相应措施(如更换成业务区块链中的其他节点等),从而便于提高用户体验度。
本申请实施例还提供了一种远程证明装置,应用于权威区块链中的任一节点,参见图4,其示出了本申请实施例提供的一种远程证明装置的结构示意图,可以包括:
发起挑战模块41,用于向业务区块链中的多个挑战节点发起远程证明挑战,由挑战节点根据远程证明挑战中的信息生成可验证随机数并发送至节点;
聚合模块42,用于接收多个挑战节点发送的可验证随机数,将多个挑战节点的可验证随机数进行聚合,生成聚合挑战;
发起请求模块43,用于利用聚合挑战向业务区块链中的证明节点发起验证会话请求,由证明节点响应验证会话请求,以获取自身的可信执行环境中运行程序的度量值信息并发送至节点;
检验模块44,用于接收证明节点发送的度量值信息,对度量值信息进行检验;
第一写入模块45,用于若度量值信息通过检验,则将度量值信息写入权威区块链中。
本申请实施例提供的一种远程证明装置,可验证随机数由挑战节点根据自身的私钥及远程证明挑战中的信息生成,远程证明装置还可以包括:
第一接收模块,用于在接收多个挑战节点发送的可验证随机数时,接收多个挑战节点发送的与挑战节点自身的私钥对应的公钥,利用公钥对可验证随机数进行验证;
第一执行模块,用于若可验证随机数通过验证,则执行将多个挑战节点的可验证随机数进行聚合,生成聚合挑战的步骤。
本申请实施例提供的一种远程证明装置,还可以包括:
第一判断模块,用于在接收多个挑战节点发送的可验证随机数之后,判断接收到的可验证随机数的数量是否达到阈值;其中,阈值小于节点发起的远程证明挑战的数量;
第二执行模块,用于若接收到的可验证随机数的数量达到阈值,则执行利用公钥对可验证随机数进行验证的步骤。
本申请实施例提供的一种远程证明装置,还可以包括:
第二判断模块,用于在接收多个挑战节点发送的可验证随机数之后,判断接收到的可验证随机数的数量是否等于节点发起的远程证明挑战的数量;
第三执行模块,用于若接收到的可验证随机数的数量等于节点发起的远程证明挑战的数量,则执行利用公钥对可验证随机数进行验证的步骤。
本申请实施例提供的一种远程证明装置,还可以包括:
第二写入模块,用于在将多个挑战节点的可验证随机数进行聚合,生成聚合挑战之后,将聚合挑战写入权威区块链中。
本申请实施例提供的一种远程证明装置,检验模块44可以包括:
接收单元,用于接收证明节点发送的签名后的度量值信息;签名后的度量值信息由证明节点利用可信执行环境的硬件私钥对度量值信息进行签名得到;
验证单元,用于利用可信执行环境的硬件私钥对应的公钥对签名后的度量值信息进行验证;
第一检验单元,用于若签名后的度量值信息通过验证,则对度量值信息进行检验。
本申请实施例提供的一种远程证明装置,验证单元可以包括:
第一发送子单元,用于将签名后的度量值信息发送至可信执行环境对应的芯片产商证明服务,由芯片产商证明服务利用可信执行环境的硬件私钥对应的公钥对签名后的度量值信息进行验证,得到验证结果并将验证结果发送至节点;
第一接收子单元,用于接收芯片产商证明服务发送的验证结果。
本申请实施例提供的一种远程证明装置,第一接收子单元可以包括:
第二接收子单元,用于接收芯片产商证明服务发送的签名后的验证结果;签名后的验证结果由芯片产商证明服务利用自身的私钥对验证结果进行签名得到;
验证子单元,用于利用芯片产商证明服务自身的私钥对应的公钥对签名后的验证结果进行验证;
执行子单元,用于若签名后的验证结果通过验证且验证结果为签名后的度量值信息通过验证,则执行对度量值信息进行检验的步骤。
本申请实施例提供的一种远程证明装置,还可以包括:
第四执行模块,用于当有新业务节点加入业务区块链中时,则将新业务节点作为证明节点,执行向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
本申请实施例提供的一种远程证明装置,检验模块44可以包括:
第二检验单元,用于利用预先存储在权威区块链中的参考程序的度量值参考值对度量值信息检验;
参考程序为运行在证明节点的可行执行环境中的程序。
本申请实施例提供的一种远程证明装置,检验模块44可以包括:
获取单元,用于利用远程仓库获取参考程序的度量值参考值;参考程序为运行在证明节点的可行执行环境中的程序;
第三检验单元,用于利用参考程序的度量值参考值对度量值信息检验。
本申请实施例提供的一种远程证明装置,检验模块44可以包括:
计算单元,用于链上计算参考程序的度量值参考值;参考程序为运行在证明节点的可行执行环境中的程序;
第四检验单元,用于利用参考程序的度量值参考值对度量值信息检验。
本申请实施例提供的一种远程证明装置,还可以包括:
第二接收模块,用于接收客户端发送的第一可信性会话;第一可信性会话中可以包括业务区块链中的第一目标节点的信息;
第三判断模块,用于根据权威区块链中记录的信息判断第一目标节点中的可信执行环境是否可信;
第一返回模块,用于若第一目标节点中的可信执行环境可信,则向客户端返回可信消息,以使客户端与第一目标节点建立安全通道并进行通信。
本申请实施例提供的一种远程证明装置,还可以包括:
第二返回模块,用于若无法确定第一目标节点中的可信执行环境是否可信,则向客户端返回无法确定第一目标节点中的可信执行环境是否可信的消息。
本申请实施例提供的一种远程证明装置,还可以包括:
第五执行模块,用于若无法确定第一目标节点中的可信执行环境是否可信,则将第一目标节点作为证明节点,执行向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
本申请实施例提供的一种远程证明装置,还可以包括:
第三接收模块,用于接收业务区块链中的第二目标节点发送的第二可信性会话;第二可信性会话中可以包括业务区块链中的第三目标节点的信息;
第四判断模块,用于根据权威区块链中记录的信息判断第三目标节点中的可信执行环境是否可信;
第三返回模块,用于若第三目标节点中的可信执行环境可信,则向第二目标节点返回可信消息,以使第二目标节点与第三目标节点建立安全通道并进行通信。
本申请实施例提供的一种远程证明装置,还可以包括:
第六执行模块,用于若无法确定第三目标节点中的可信执行环境是否可信,则将第三目标节点作为证明节点,执行向业务区块链中的证明节点发起验证会话请求的步骤。
本申请实施例还提供了一种远程证明设备,参见图5,其示出了本申请实施例提供的一种远程证明设备的结构示意图,可以包括:
存储器51,用于存储计算机程序;
处理器52,用于执行存储器51存储的计算机程序时可实现如下步骤:
向业务区块链中的多个挑战节点发起远程证明挑战,由挑战节点根据远程证明挑战中的信息生成可验证随机数并发送至节点;接收多个挑战节点发送的可验证随机数,将多个挑战节点的可验证随机数进行聚合,生成聚合挑战;利用聚合挑战向业务区块链中的证明节点发起验证会话请求,由证明节点响应验证会话请求,以获取自身的可信执行环境中运行程序的度量值信息并发送至节点;接收证明节点发送的度量值信息,对度量值信息进行检验;若度量值信息通过检验,则将度量值信息写入权威区块链中。
本申请实施例还提供了一种可读存储介质,可读存储介质中存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
向业务区块链中的多个挑战节点发起远程证明挑战,由挑战节点根据远程证明挑战中的信息生成可验证随机数并发送至节点;接收多个挑战节点发送的可验证随机数,将多个挑战节点的可验证随机数进行聚合,生成聚合挑战;利用聚合挑战向业务区块链中的证明节点发起验证会话请求,由证明节点响应验证会话请求,以获取自身的可信执行环境中运行程序的度量值信息并发送至节点;接收证明节点发送的度量值信息,对度量值信息进行检验;若度量值信息通过检验,则将度量值信息写入权威区块链中。
该可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请提供的一种远程证明装置、设备及可读存储介质中相关部分的说明可以参见本申请实施例提供的一种远程证明方法中对应部分的详细说明,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、 “包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种远程证明方法,其特征在于,应用于权威区块链中的任一节点,包括:
向业务区块链中的多个挑战节点发起远程证明挑战,由所述挑战节点根据所述远程证明挑战中的信息生成可验证随机数并发送至所述节点;
接收多个所述挑战节点发送的可验证随机数,将多个所述挑战节点的可验证随机数进行聚合,生成聚合挑战;
利用所述聚合挑战向所述业务区块链中的证明节点发起验证会话请求,由所述证明节点响应所述验证会话请求,以获取自身的可信执行环境中运行程序的度量值信息并发送至所述节点;
接收所述证明节点发送的度量值信息,对所述度量值信息进行检验;
若所述度量值信息通过检验,则将所述度量值信息写入所述权威区块链中。
2.根据权利要求1所述的远程证明方法,其特征在于,所述可验证随机数由所述挑战节点根据自身的私钥及所述远程证明挑战中的信息生成,在接收多个所述挑战节点发送的可验证随机数时,还包括:
接收多个所述挑战节点发送的与所述挑战节点自身的私钥对应的公钥,利用所述公钥对所述可验证随机数进行验证;
若所述可验证随机数通过验证,则执行所述将多个所述挑战节点的可验证随机数进行聚合,生成聚合挑战的步骤。
3.根据权利要求2所述的远程证明方法,其特征在于,在接收多个所述挑战节点发送的可验证随机数之后,还包括:
判断接收到的所述可验证随机数的数量是否达到阈值;其中,所述阈值小于所述节点发起的所述远程证明挑战的数量;
若是,则执行所述利用所述公钥对所述可验证随机数进行验证的步骤。
4.根据权利要求2所述的远程证明方法,其特征在于,在接收多个所述挑战节点发送的可验证随机数之后,还包括:
判断接收到的所述可验证随机数的数量是否等于所述节点发起的所述远程证明挑战的数量;
若是,则执行所述利用所述公钥对所述可验证随机数进行验证的步骤。
5.根据权利要求2所述的远程证明方法,其特征在于,在将多个所述挑战节点的可验证随机数进行聚合,生成聚合挑战之后,还包括:
将所述聚合挑战写入所述权威区块链中。
6.根据权利要求1所述的远程证明方法,其特征在于,接收所述证明节点发送的度量值信息,对所述度量值信息进行检验,包括:
接收所述证明节点发送的签名后的所述度量值信息;签名后的所述度量值信息由所述证明节点利用所述可信执行环境的硬件私钥对所述度量值信息进行签名得到;
利用所述可信执行环境的硬件私钥对应的公钥对签名后的所述度量值信息进行验证;
若签名后的所述度量值信息通过验证,则对所述度量值信息进行检验。
7.根据权利要求6所述的远程证明方法,其特征在于,利用所述可信执行环境的硬件私钥对应的公钥对签名后的所述度量值信息进行验证,包括:
将签名后的所述度量值信息发送至所述可信执行环境对应的芯片产商证明服务,由所述芯片产商证明服务利用所述可信执行环境的硬件私钥对应的公钥对签名后的所述度量值信息进行验证,得到验证结果并将所述验证结果发送至所述节点;
接收所述芯片产商证明服务发送的所述验证结果。
8.根据权利要求7所述的远程证明方法,其特征在于,接收所述芯片产商证明服务发送的所述验证结果,包括:
接收所述芯片产商证明服务发送的签名后的所述验证结果;签名后的所述验证结果由所述芯片产商证明服务利用自身的私钥对所述验证结果进行签名得到;
利用所述芯片产商证明服务自身的私钥对应的公钥对签名后的所述验证结果进行验证;
若签名后的所述验证结果通过验证且所述验证结果为签名后的所述度量值信息通过验证,则执行所述对所述度量值信息进行检验的步骤。
9.根据权利要求1所述的远程证明方法,其特征在于,还包括:
当有新业务节点加入所述业务区块链中时,则将所述新业务节点作为所述证明节点,执行所述向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
10.根据权利要求1所述的远程证明方法,其特征在于,对所述度量值信息进行检验,包括:
利用预先存储在所述权威区块链中的参考程序的度量值参考值对所述度量值信息检验;
所述参考程序为运行在所述证明节点的可行执行环境中的程序。
11.根据权利要求1所述的远程证明方法,其特征在于,对所述度量值信息进行检验,包括:
利用远程仓库获取参考程序的度量值参考值;所述参考程序为运行在所述证明节点的可行执行环境中的程序;
利用所述参考程序的度量值参考值对所述度量值信息检验。
12.根据权利要求1所述的远程证明方法,其特征在于,对所述度量值信息进行检验,包括:
链上计算参考程序的度量值参考值;所述参考程序为运行在所述证明节点的可行执行环境中的程序;
利用所述参考程序的度量值参考值对所述度量值信息检验。
13.根据权利要求1所述的远程证明方法,其特征在于,还包括:
接收客户端发送的第一可信性会话;所述第一可信性会话中包括所述业务区块链中的第一目标节点的信息;
根据所述权威区块链中记录的信息判断所述第一目标节点中的可信执行环境是否可信;
若是,则向所述客户端返回可信消息,以使所述客户端与所述第一目标节点建立安全通道并进行通信。
14.根据权利要求13所述的远程证明方法,其特征在于,若无法确定所述第一目标节点中的可信执行环境是否可信,则还包括:
向所述客户端返回无法确定所述第一目标节点中的可信执行环境是否可信的消息。
15.根据权利要求13所述的远程证明方法,其特征在于,若无法确定所述第一目标节点中的可信执行环境是否可信,则还包括:
将所述第一目标节点作为所述证明节点,执行所述向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
16.根据权利要求1所述的远程证明方法,其特征在于,还包括:
接收所述业务区块链中的第二目标节点发送的第二可信性会话;所述第二可信性会话中包括所述业务区块链中的第三目标节点的信息;
根据所述权威区块链中记录的信息判断所述第三目标节点中的可信执行环境是否可信;
若是,则向所述第二目标节点返回可信消息,以使所述第二目标节点与所述第三目标节点建立安全通道并进行通信。
17.根据权利要求16所述的远程证明方法,其特征在于,若无法确定所述第三目标节点中的可信执行环境是否可信,则还包括:
将所述第三目标节点作为所述证明节点,执行所述向业务区块链中的多个挑战节点发起远程证明挑战的步骤。
18.一种远程证明装置,其特征在于,应用于权威区块链中的任一节点,包括:
发起挑战模块,用于向业务区块链中的多个挑战节点发起远程证明挑战,由所述挑战节点根据所述远程证明挑战中的信息生成可验证随机数并发送至所述节点;
聚合模块,用于接收多个所述挑战节点发送的可验证随机数,将多个所述挑战节点的可验证随机数进行聚合,生成聚合挑战;
发起请求模块,用于利用所述聚合挑战向所述业务区块链中的证明节点发起验证会话请求,由所述证明节点响应所述验证会话请求,以获取自身的可信执行环境中运行程序的度量值信息并发送至所述节点;
检验模块,用于接收所述证明节点发送的度量值信息,对所述度量值信息进行检验;
第一写入模块,用于若所述度量值信息通过检验,则将所述度量值信息写入所述权威区块链中。
19.一种远程证明设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至17任一项所述的远程证明方法的步骤。
20.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的远程证明方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310370388.3A CN116112187B (zh) | 2023-04-10 | 2023-04-10 | 一种远程证明方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310370388.3A CN116112187B (zh) | 2023-04-10 | 2023-04-10 | 一种远程证明方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116112187A true CN116112187A (zh) | 2023-05-12 |
CN116112187B CN116112187B (zh) | 2023-07-14 |
Family
ID=86267557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310370388.3A Active CN116112187B (zh) | 2023-04-10 | 2023-04-10 | 一种远程证明方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116112187B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116846682A (zh) * | 2023-08-29 | 2023-10-03 | 山东海量信息技术研究院 | 通信信道建立方法、装置、设备及介质 |
CN117235693A (zh) * | 2023-11-14 | 2023-12-15 | 杭州安恒信息技术股份有限公司 | 一种可信执行环境的可信认证和安全通道建立方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107079037A (zh) * | 2016-09-18 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的身份认证方法、装置、节点及系统 |
CN110011801A (zh) * | 2018-11-16 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 可信应用程序的远程证明方法及装置、电子设备 |
CN110998581A (zh) * | 2019-03-26 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 使用多重密钥对签名的程序执行和数据证明方案 |
CN111694895A (zh) * | 2020-04-26 | 2020-09-22 | 西安电子科技大学 | 区块链远程数据审计方法、系统 |
CN114679284A (zh) * | 2020-12-24 | 2022-06-28 | 中国移动通信有限公司研究院 | 可信远程证明系统及其存储、验证方法、存储介质 |
-
2023
- 2023-04-10 CN CN202310370388.3A patent/CN116112187B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107079037A (zh) * | 2016-09-18 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的身份认证方法、装置、节点及系统 |
US20190288854A1 (en) * | 2016-09-18 | 2019-09-19 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Blockchain-based identity authentication method, device, node and system |
CN110011801A (zh) * | 2018-11-16 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 可信应用程序的远程证明方法及装置、电子设备 |
WO2020098377A1 (zh) * | 2018-11-16 | 2020-05-22 | 阿里巴巴集团控股有限公司 | 可信应用程序的远程证明方法及装置、电子设备 |
CN110998581A (zh) * | 2019-03-26 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 使用多重密钥对签名的程序执行和数据证明方案 |
US10762197B1 (en) * | 2019-03-26 | 2020-09-01 | Alibaba Group Holding Limited | Program execution and data proof scheme using multiple key pair signatures |
CN111694895A (zh) * | 2020-04-26 | 2020-09-22 | 西安电子科技大学 | 区块链远程数据审计方法、系统 |
CN114679284A (zh) * | 2020-12-24 | 2022-06-28 | 中国移动通信有限公司研究院 | 可信远程证明系统及其存储、验证方法、存储介质 |
Non-Patent Citations (1)
Title |
---|
刘明达,拾以娟: "《基于区块链的远程证明模型》", 《计算机科学》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116846682A (zh) * | 2023-08-29 | 2023-10-03 | 山东海量信息技术研究院 | 通信信道建立方法、装置、设备及介质 |
CN116846682B (zh) * | 2023-08-29 | 2024-01-23 | 山东海量信息技术研究院 | 通信信道建立方法、装置、设备及介质 |
CN117235693A (zh) * | 2023-11-14 | 2023-12-15 | 杭州安恒信息技术股份有限公司 | 一种可信执行环境的可信认证和安全通道建立方法 |
CN117235693B (zh) * | 2023-11-14 | 2024-02-02 | 杭州安恒信息技术股份有限公司 | 一种可信执行环境的可信认证和安全通道建立方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116112187B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10790976B1 (en) | System and method of blockchain wallet recovery | |
Ambrosin et al. | SANA: Secure and scalable aggregate network attestation | |
US20210367753A1 (en) | Trusted measurement and control network authentication method based on double cryptographic values and chaotic encryption | |
CN109889497B (zh) | 一种去信任的数据完整性验证方法 | |
Zhang et al. | A privacy-aware PUFs-based multiserver authentication protocol in cloud-edge IoT systems using blockchain | |
CN116112187B (zh) | 一种远程证明方法、装置、设备及可读存储介质 | |
Tsai et al. | New dynamic ID authentication scheme using smart cards | |
CN102647461B (zh) | 基于超文本传输协议的通信方法、服务器、终端 | |
CN109963282B (zh) | 在ip支持的无线传感网络中的隐私保护访问控制方法 | |
EP4066434B1 (en) | Password-authenticated public key establishment | |
Gong et al. | A remote attestation mechanism for the sensing layer nodes of the Internet of Things | |
Wu et al. | A provably secure authentication and key exchange protocol in vehicular ad hoc networks | |
CN106330838B (zh) | 一种动态签名方法及应用该方法的客户端和服务器 | |
Gambs et al. | Prover anonymous and deniable distance-bounding authentication | |
CN101241528A (zh) | 终端接入可信pda的方法和接入系统 | |
CN112651037A (zh) | 区块链系统的链外数据访问方法和系统 | |
CN111815321A (zh) | 交易提案的处理方法、装置、系统、存储介质和电子装置 | |
CN105610872B (zh) | 物联网终端加密方法和物联网终端加密装置 | |
Yu et al. | Identity‐Based Proxy Signcryption Protocol with Universal Composability | |
CN113708935A (zh) | 基于区块链和puf的物联网设备统一认证方法及系统 | |
Walker et al. | Key exchange with anonymous authentication using DAA-SIGMA protocol | |
Gouda et al. | SPP: An anti-phishing single password protocol | |
US8954728B1 (en) | Generation of exfiltration-resilient cryptographic keys | |
Hussain et al. | An improved authentication scheme for digital rights management system | |
CN112733129B (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 |