CN117014176A - 基于区块链的数据处理方法、装置、设备及可读存储介质 - Google Patents
基于区块链的数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN117014176A CN117014176A CN202211422900.6A CN202211422900A CN117014176A CN 117014176 A CN117014176 A CN 117014176A CN 202211422900 A CN202211422900 A CN 202211422900A CN 117014176 A CN117014176 A CN 117014176A
- Authority
- CN
- China
- Prior art keywords
- remote authentication
- report
- application
- trusted
- authentication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000012795 verification Methods 0.000 claims abstract description 142
- 238000000034 method Methods 0.000 claims abstract description 76
- 238000004891 communication Methods 0.000 claims description 67
- 238000011161 development Methods 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 25
- 238000002955 isolation Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 17
- 230000007613 environmental effect Effects 0.000 claims description 12
- 238000012552 review Methods 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 abstract description 23
- 238000005516 engineering process Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 15
- 230000009286 beneficial effect Effects 0.000 description 10
- 230000003993 interaction Effects 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,方法包括:在到达应用认证时刻时,目标区块链节点向应用设备发送远程认证请求;应用设备包括可信应用程序;可信应用程序运行于应用设备的第一可信执行环境中,第一可信执行环境与应用设备的操作系统相互隔离;远程认证请求用于请求验证可信应用程序的安全性;接收应用设备基于远程认证请求所返回的远程认证报告,对远程认证报告进行有效性验证;在确定远程认证报告为有效认证报告时,将远程认证报告上链至目标区块链节点所属的区块链中。采用本申请,可以在数据传输业务中,提升数据的传输效率与安全性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。
背景技术
可信执行环境(Trusted Execution Environment,TEE)是一种为了保护数据安全性与完整性而提出的技术,其是计算平台上由软硬件方法所构建的一个安全区域,可保证在安全区域内加载的相关数据在机密性和完整性方面得到保护。可信执行环境的目标是确保一个任务按照预期执行,且保证初始状态的安全性、完整性,以及运行时状态的安全性、完整性。
对于应用程序,为了提升应用程序中数据的安全性与完整性,可将其部署于可信执行环境进行运行。然而,对于某个应用程序,当数据提供方期望向其提供数据时,无法确保该应用程序的执行环境是否是可信的,在不确定应用程序的执行环境是可信的情况下,若继续向应用程序传输数据,那么所传输的数据存在被恶意获取的可能,数据安全性并不高;同时,也会降低数据提供方传输数据的积极性,从而影响数据传输效率。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、装置、设备及可读存储介质,可以在数据传输业务中,提升数据的传输效率与安全性。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
在到达应用认证时刻时,目标区块链节点向应用设备发送远程认证请求;应用设备包括可信应用程序;可信应用程序运行于应用设备的第一可信执行环境中,第一可信执行环境与应用设备的操作系统相互隔离;远程认证请求用于请求验证可信应用程序的安全性;
接收应用设备基于远程认证请求所返回的远程认证报告,对远程认证报告进行有效性验证;
在确定远程认证报告为有效认证报告时,将远程认证报告上链至目标区块链节点所属的区块链中;上链至区块链的远程认证报告,用于服务提供对象从区块链中获取远程认证报告,并基于远程认证报告为可信应用程序提供服务。
本申请实施例一方面提供了一种数据处理装置,包括:
请求发送模块,用于在到达应用认证时刻时,目标区块链节点向应用设备发送远程认证请求;应用设备包括可信应用程序;可信应用程序运行于应用设备的第一可信执行环境中,第一可信执行环境与应用设备的操作系统相互隔离;远程认证请求用于请求验证可信应用程序的安全性;
报告接收模块,用于接收应用设备基于远程认证请求所返回的远程认证报告;
报告验证模块,用于对远程认证报告进行有效性验证;
报告上链模块,用于在确定远程认证报告为有效认证报告时,将远程认证报告上链至目标区块链节点所属的区块链中;上链至区块链的远程认证报告,用于服务提供对象从区块链中获取远程认证报告,并基于远程认证报告为可信应用程序提供服务。
在一个实施例中,该基于区块链的数据处理装置还可以包括:
区块获取模块,用于在应用认证时刻时,目标区块链节点在区块链中获取目标区块;目标区块是指区块链中,具有最大生成时间戳的区块;
请求生成模块,用于将目标区块的区块头信息确定为请求参数,生成包含请求参数的远程认证请求。
在一个实施例中,区块获取模块可以包括:
高度获取单元,用于在应用认证时刻时,目标区块链节点获取区块链节点集合中,每个区块链节点分别对应的区块高度;区块链节点集合中的每个区块链节点均属于区块链;
节点确定单元,用于将区块链节点集合中,区块高度为最大区块高度的区块链节点确定为同步节点;
目标区块确定单元,用于将同步节点所存储的区块确定为参考区块,将目标区块链节点所存储的区块确定为本地区块;
目标区块确定单元,还用于确定参考区块与本地区块之间的差异区块,将差异区块中具有最大生成时间戳的区块确定为目标区块。
在一个实施例中,远程认证报告是由远程认证签名组件基于应用开发对象的公钥,对本地认证报告中的第一签名信息进行验签,且在验签通过后对本地认证报告进行封装后所得到的;本地认证报告是由可信应用程序基于远程认证请求所生成的认证报告;第一签名信息是由可信应用程序基于应用开发对象的私钥,对本地认证报告进行签名后所得到的;应用开发对象是指开发可信应用程序的对象;远程认证报告包含第二签名信息;第二签名信息是由远程认证签名组件基于签名密钥,对远程认证报告进行签名后所得到的;远程认证签名组件运行于第二可信执行环境中,运行于第二可信执行环境中的远程认证签名组件用于为可信应用程序的认证报告提供远程认证签名服务。
在一个实施例中,远程认证报告包含第二签名信息,第二签名信息是由远程认证签名组件基于签名密钥,对远程认证报告进行签名后所得到的;远程认证签名组件运行于应用设备的第二可信执行环境中,运行于第二可信执行环境中的远程认证签名组件,用于为可信应用程序的认证报告提供远程认证签名服务;
报告验证模块可以包括:
报告发送单元,用于将远程认证报告发送至远程认证服务器;远程认证服务器是指用于为第一可信执行环境提供远程认证服务的服务器;
结果接收单元,用于接收远程认证服务器所返回的报告认证结果;报告认证结果包含远程认证服务器基于第二签名信息,对远程认证报告进行验证后的验证结果;
可信验证单元,用于根据报告认证结果对远程认证报告进行可信性验证;
有效验证单元,用于若确定远程认证报告为可信认证报告,则获取远程认证报告中所包含的待验证区块头信息,根据待验证区块头信息对远程认证报告进行有效性验证;
无效报告确定单元,用于若确定远程认证报告为不可信认证报告,则确定远程认证报告为无效认证报告。
在一个实施例中,报告认证结果包含第三签名信息;第三签名信息是由远程认证服务器基于远程认证服务器的私钥,对报告认证结果进行签名后所得到的;
可信验证单元可以包括:
第一验签子单元,用于获取远程认证服务器的公钥,基于远程认证服务器的公钥对第三签名信息进行验签,得到针对第三签名信息的验签结果;
身份验证子单元,用于若针对第三签名信息的验签结果为验签通过结果,则获取远程认证服务器的数字证书,根据远程认证服务器的数字证书对远程认证服务器进行身份验证,得到远程认证服务器的身份验证结果;
可信验证子单元,用于根据远程认证服务器的身份验证结果对远程认证报告进行可信性验证;
不可信报告确定子单元,用于若针对第三签名信息的验签结果为验签未通过结果,则确定远程认证报告为不可信认证报告。
在一个实施例中,第一可信执行环境与第二可信执行环境均基于应用程序隔离平台所创建;远程认证服务器属于应用程序隔离平台,远程认证服务器的数字证书,由应用程序隔离平台中的可信服务器为远程认证服务器所颁发;
身份验证子单元,还具体用于获取远程认证服务器的数字证书中所包含的第四签名信息;第四签名信息是由可信服务器,基于可信服务器的私钥对数字证书进行签名后所得到的;
身份验证子单元,还具体用于获取可信服务器的公钥,基于可信服务器的公钥对第四签名信息进行验签;
身份验证子单元,还具体用于若第四签名信息的验签结果为验签通过结果,则将远程认证服务器的身份验证结果确定为合法身份结果;
身份验证子单元,还具体用于若第四签名信息的验签结果为验签未通过结果,则将远程认证服务器的身份验证结果确定为异常身份结果。
在一个实施例中,可信验证子单元,还具体用于若环境属性为环境可信属性,则确定远程认证报告为可信认证报告;
可信验证子单元,还具体用于若环境属性为环境不可信属性,则确定远程认证报告为不可信认证报告。
在一个实施例中,远程认证请求中包含目标区块的区块头信息;目标区块是指在应用认证时刻时,区块链中具有最大生成时间戳的区块;
有效验证单元可以包括:
哈希确定子单元,用于将目标区块的区块头信息中,所包含的目标区块的区块哈希值,确定为目标区块哈希值;
哈希确定子单元,还用于将待验证区块头信息中,所包含的区块哈希值确定为待验证区块哈希值;
哈希匹配子单元,用于将目标区块哈希值与待验证区块哈希值进行匹配;
第一报告确定子单元,用于若目标区块哈希值与待验证区块哈希值匹配成功,则确定远程认证报告为有效认证报告;
第二报告确定子单元,用于若目标区块哈希值与待验证区块哈希值匹配失败,则确定远程认证报告为无效认证报告。
在一个实施例中,远程认证报告中包含通信密钥对中的第一通信密钥;通信密钥对是由可信应用程序基于远程认证请求所生成的密钥对;通信密钥对还包含第二通信密钥,第二通信密钥具备加密数据的解密权限;加密数据是指基于第一通信密钥进行加密的数据;
该基于区块链的数据处理装置还可以包括:
查阅请求接收模块,用于接收服务提供对象发送的查阅请求;查阅请求用于请求查阅远程认证报告;
报告返回模块,用于将远程认证报告返回至服务提供对象;
加密信息接收模块,用于接收服务提供对象基于远程认证报告所返回的目标加密信息;目标加密信息包括目标加密数据与目标加密密钥;目标加密密钥是指采用第一通信密钥对数据密钥进行加密后所得到的加密密钥;目标加密数据是指由服务提供对象基于数据密钥将服务数据进行加密后所得到的数据;数据密钥为服务提供对象所生成的用于为服务数据进行加密的密钥;
加密信息上链模块,用于将目标加密信息上链至区块链中。
在一个实施例中,该基于区块链的数据处理装置还可以包括:
加密信息发送模块,用于将目标加密信息发送至应用设备的可信应用程序,以使可信应用程序基于第二通信密钥对目标加密密钥进行解密,得到数据密钥,并基于数据密钥对目标加密数据进行解密,得到服务数据。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中的方法。
本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例中一方面提供的方法。
在本申请实施例中,可以引入区块链来对可信应用程序进行远程认证,通过区块链节点定期对应用设备的可信应用程序(运行于应用设备的可信执行环境中)进行远程认证(如,每到达一个应用认证时刻时,就向应用设备发送一个远程认证请求,以请求对可信应用程序进行远程认证),通过区块链可实现对远程认证过程全流程上链,整个流程公开透明,可信度极高;同时,在得到可信应用程序返回的远程认证报告后,可以对该远程认证报告进行有效性验证,在确定该远程认证报告为有效认证报告时,区块链节点可以将该远程认证报告上链。那么对于服务提供对象而言,其在向可信应用程序提供服务(如提供数据)前,可以先从区块链中获取到该远程认证报告,从而可以在确定该可信应用程序具备安全性的情况下,再向可信应用程序提供服务(如传输数据),有利于提升所传输的数据的安全性。此外,对于区块链中所存储的远程认证报告,可重复利用,不同的服务提供对象均能重复使用该远程认证报告,无需在某个服务提供对象在存在远程认证需求时,才进行远程认证,可以实现即需即得到,由此可以很好地提升远程认证效率,进而提升数据传输效率。综上,本申请可以在数据传输业务中,提升数据的传输效率与安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图3是本申请实施例提供的一种应用设备生成远程认证报告的示意图;
图4是本申请实施例提供的一种对远程认证报告进行有效性验证的流程示意图;
图5是本申请实施例提供的一种系统架构图;
图6是本申请实施例提供的一种将应用开发对象的信息进行上链的交互流程图;
图7是本申请实施例提供的一种将远程认证服务器的证书上链的交互流程图;
图8是本申请实施例提供一种区块链节点进行远程认证的交互流程图;
图9是本申请实施例提供的一种数据传输的交互流程图;
图10是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例所提供的方法涉及到可信执行环境、区块链等相关技术,为便于理解,以下将优先对可信执行环境、区块链及其相关技术进行阐述。
1、可信执行环境(Trusted Execution Environment,TEE):可信执行环境是计算平台上由软硬件方法构建的一个安全区域,可保证在安全区域内加载的代码和数据在机密性和完整性方面得到保护。其目标是确保一个任务按照预期执行,保证初始状态的安全性、完整性,以及运行时状态的安全性、完整性。实际上,可信执行环境可以理解为是基于硬件保护数据和算法的一项技术,是一个处理器和内存的隔离环境,只有中央处理器(CentralProcessing Unit,CPU)可以访问可信执行环境中的应用程序,其它层(如其它硬件、内核、其它应用程序等等)对可信执行环境的访问,均会被CPU所阻拦。
2、区块链:狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前获取的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;广义上,区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。区块链的目标是实现一个分布的数据记录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中的交易)是否合法,可通过计算哈希值的方式进行快速检验。若网络中的节点提议添加一个新的区块,必须经过共识机制对区块达成共识确认。
3、区块链节点:区块链网络将节点区分为共识节点(也可以称作核心节点)、数据节点或轻节点。其中,共识节点负责区块链全网的共识业务;数据节点或轻节点负责同步共识节点的账本信息,即同步最新的区块数据。无论是共识节点还是数据节点(或轻节点),其内部构造都包括网络通信组件,因为区块链网络本质是一个点对点(Peer to Peer,P2P)网络,需通过P2P组件与区块链网络中的其他节点进行通信。区块链网络中的资源和服务都分散在各个节点上,信息的传输和服务的实现都直接在节点之间进行,无需中间环节或中心化的服务器(第三方)介入。
4、公钥(public key)与私钥(private key):公钥与私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密数据、验证数字签名等。通过这种算法能够确保得到的密钥对是唯一的,使用这种密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密,例如,用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
5、哈希值:也称作信息特征值或特征值,哈希值是通过哈希算法将任意长度的输入数据转换为密码并进行固定输出而生成的,不能通过解密哈希值来检索原始输入数据,它是一个单向的加密函数。在区块链中,每个区块(除了初始区块)都包含前继区块的哈希值,前继区块被称为当前区块的父区块。哈希值是区块链技术中的潜力核心基础和最重要的方面,它保留了记录和查看数据的真实性,以及区块链作为一个整体的完整性。
6、智能合约(Smart Contract):是一种旨在以信息化方式传播、验证或执行合同的计算机协议。在区块链系统当中,智能合约(简称合约)是一种区块链各节点可以理解并执行的代码,可以执行任意逻辑并得到结果。在实际应用中,智能合约通过区块链上的交易来管理与试用。每条交易相当于对区块链系统的一个远程过程调用(Remote ProcedureCall,RPC)请求。如果说智能合约相当于可执行程序,区块链就相当于提供运行环境的操作系统。区块链可以包含多个合约,以合约账号(Identity,ID)、标识号或名称来区分。例如,智能合约中可以包含治理共识委员会合约,其主要用于管理共识节点,可以包括记录共识节点的节点状态,动态地加入共识节点,剔除异常共识节点等。
请参见图1,图1是本申请实施例提供的一种网络架构图。如图1所示,本申请所提供的基于区块链的数据处理方法可应用于区块链网络。区块链网络包括对区块链上的数据区块进行记录和查询的相关节点构成的网络,区块链网络中的每个节点即为区块链节点,是能够对数据区块进行查询或记录的计算机设备。其中,区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链,区块链网络将节点区分为核心节点、数据节点以及轻节点,其中核心节点负责区块链全网的共识,也就是说核心节点为区块链网络中的共识节点。对于区块链网络中交易数据被写入账本的过程可以为,客户端发送交易数据至数据节点或轻节点,随后该交易数据以接力棒的方式在区块链网络中的数据节点或轻节点之间传递,直到共识节点收到该交易数据,共识节点再将该交易数据打包进区块,与其他共识节点之间进行共识,在共识通过后,将携带该交易数据的区块写入账本。
如图1所示,该网络架构可以包括终端设备集群10以及区块链网络,而区块链网络中可以包括核心节点(共识节点)集群1000、数据节点或轻节点集群100。该核心节点集群1000可以包括至少两个核心节点,数据节点集群100可以包括至少两个数据节点。如图1所示,该核心节点集群1000可以包括核心节点1000a、核心节点1000b、…、核心节点1000n,该数据节点集群100具体可以包括数据节点100a、数据节点100b、…、数据节点100n,该终端设备集群10具体可以包括终端设备10a、终端设备10b、…、终端设备10n。
如图1所示,终端设备10a、终端设备10b、…、终端设备10n可以分别与数据节点100a、数据节点100b、…、数据节点100n进行网络连接,以便于终端设备可以通过该网络连接与数据节点进行数据交互;数据节点100a、数据节点100b、…、数据节点100n可以分别与核心节点1000a、核心节点1000b、…、核心节点1000n进行网络连接,以便于数据节点可以通过该网络连接与核心节点进行数据交互;数据节点100a、数据节点100b、…、数据节点100n互相连接,以便于数据节点之间可以进行数据交互,核心节点1000a、核心节点1000b、…、核心节点1000n互相连接,以便于核心节点之间可以进行数据交互。
以终端设备10a、数据节点100a以及核心节点1000a为例,数据节点100a可以接收到终端设备10a发送的交易业务请求(该交易业务请求中携带智能合约的ID或名称),随后,数据节点100a可以通过数据节点集群100将该交易业务请求发送至核心节点1000a;而核心节点1000a可以运行该智能合约,并通过该智能合约执行该交易业务,得到执行结果后,可以将该执行结果存储至内存池(如交易池)中,并根据该执行结果生成新的区块;随后,核心节点1000a可以根据区块链网络中其他核心节点(即共识节点)的节点标识,将上述新生成的区块分别发送给其所在的区块链网络中的其他核心节点,由其他核心节点对新生成的区块进行校验(即进行共识),并在完成校验后将上述新生成的区块添加至其存储的区块链中(也就是说,在共识通过后将执行结果存储至区块链中)。其中,区块链网络中的每个核心节点,均具有与其对应的节点标识,而且区块链网络中的每个核心节点均可以存储有区块链网络中其他核心节点的节点标识,以便后续根据其他核心节点的节点标识,将生成的区块广播至区块链网络中的其他核心节点,使得区块链网络中全部核心节点上存储的数据均一致。
其中,如图1所示的终端设备具体可以是产生交易信息的业务方所使用的台式终端或移动终端,具体可以为智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、智能音箱、台式计算机、智能手表、智能车载终端等携带数据处理功能的智能终端,但并不局限于此。终端设备所产生的交易信息(交易数据)在经过用户授权后,可以经数据节点或轻节点传递至共识节点,共识节点可以将终端设备产生的交易信息(交易数据)记录至区块链上。数据节点集群100中的任一数据节点可以用独立的服务器或者是多个服务器组成的服务器集群来实现,核心节点集群1000中的任一核心节点可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
以终端设备10a、数据节点100a以及核心节点1000a为例,数据节点100a可以接收到终端设备10a发送的交易业务请求(该交易业务请求中携带智能合约的ID或名称),随后,数据节点100a可以通过数据节点集群100将该交易业务请求发送至核心节点1000a;而核心节点1000a可以运行该智能合约,并通过该智能合约执行该交易业务,得到执行结果后,可以将该执行结果存储至内存池(如交易池)中,并根据该执行结果生成新的区块;随后,核心节点1000a可以根据区块链网络中其他核心节点(即共识节点)的节点标识,将上述新生成的区块分别发送给其所在的区块链网络中的其他核心节点,由其他核心节点对新生成的区块进行校验(即进行共识),并在完成校验后将上述新生成的区块添加至其存储的区块链中(也就是说,在共识通过后将执行结果存储至区块链中)。其中,区块链网络中的每个核心节点,均具有与其对应的节点标识,而且区块链网络中的每个核心节点均可以存储有区块链网络中其他核心节点的节点标识,以便后续根据其他核心节点的节点标识,将生成的区块广播至区块链网络中的其他核心节点,使得区块链网络中全部核心节点上存储的数据均一致。
应当理解,如图1所示的每个终端设备均可以安装有目标应用,当该目标应用运行于各终端设备中时,可以分别与图1所示的数据节点之间进行数据交互,使得数据节点可以接收来自于每个终端设备的业务数据。其中,该目标应用可以包括具有显示文字、图像、音频以及视频等数据信息功能的应用,该应用可以为可为视频应用、直播应用、社交应用、即时通信应用、游戏应用、音乐应用、购物应用、小说应用、浏览器、数字资产应用、数字资源应用,等等,在此不再进行一一举例。其中,该应用可以为独立的应用,也可以为集成在某应用(例如,社交应用、教育应用以及多媒体应用等)中的嵌入式子应用,在此不做限定。
本申请实施例中的目标应用(或目标应用程序)可以部署于可信执行环境中,以提升目标应用的运行安全性以及数据安全性,而对于部署于可信执行环境中的应用,可称其为可信应用(可信应用程序)。对于可信应用,若可信应用向某个对象请求服务(或数据)时,该被请求的对象可称之为数据提供方或服务提供方(本申请可称之为服务提供对象),若该数据提供方(或服务提供方,可称之为服务提供对象)同意向该可信应用提供数据或服务,那么该数据提供方即可向该可信应用提供数据或服务。而本申请中,为了提升服务提供对象与可信应用之间数据的安全性,提供一种对可信应用程序进行远程认证的方法,远程认证主要用于对可信应用程序的身份进行验证、对可信应用程序对应的运行环境进行认证,确保可信应用程序是在安全可信的环境下进行运行的,由此可使得服务提供对象是在确保可信应用程序具备安全性的前提下,再向其提供数据或服务,由此可以很好地提升数据安全性,也可以提升服务提供对象对应传输数据的积极性;此外,在远程认证流程中,本申请通过引入区块链的方式,来实现对远程认证过程的公开透明,所得到的远程认证结果也具备较高的可靠性。
具体的,在本申请实施例中,对于某个可信应用程序,可以由某个区块链节点(如某个数据节点,可称之为目标区块链节点)定期对其进行远程认证,并将远程认证得到的远程认证报告进行上链。具体的,每到一个应用认证时刻(用于对可信应用程序进行远程认证的时刻)时,目标区块链节点即可向应用设备(运行可信应用程序的终端设备)发送远程认证请求(用于请求对应用设备中的可信应用程序进行远程认证);随后,应用设备可基于该远程认证请求返回远程认证报告;而区块链节点可以对该远程认证报告进行有效性验证,并在确定该远程认证报告为有效认证报告时,将该远程认证报告上链至区块链中。而当某个服务提供对象期望向该可信应用程序提供服务或数据时,该服务提供对象即可在传输数据前,先从区块链中获取该远程认证报告,在基于该远程认证报告确定该可信应用程序具备安全性与可信性时,该服务提供对象即可向该可信应用程序提供服务或数据。
应当理解,通过区块链节点定期对可信应用程序进行验证,并将有效的远程认证报告进行上链的方式,可以使得服务提供对象高效且快速的基于区块链中所存储的有效的远程认证报告,确定可信应用程序的身份以及运行环境的可信性,从而可以及时高效的进行数据传输,提升数据传输效率;同时,对于服务提供对象,其是在确保可信应用程序的身份以及运行环境的可信性的前提下,才进行数据传输的,由此也可以提升数据传输的安全性。
可以理解的是,本申请实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于是区块链节点。其中,区块链节点可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,终端设备以及区块链节点可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
需要说明的是,在本申请的具体实施方式中,若存在涉及到用户信息、用户数据等用户相关的数据,均需在获取到用户授予的权限之后才进行获取并处理的。也就是说,当本申请的实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
进一步地,请参见图2,图2是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。其中,该方法可以由区块链节点(例如,上述图1所对应实施例中的核心节点)执行,也可以由区块链节点与终端设备(例如,上述图1所对应实施例中的终端设备)共同执行。以下将以本方法由区块链节点执行为例进行说明,如图2所示,该基于区块链的数据处理方法至少可以包括以下步骤S101-步骤S103:
步骤S101,在到达应用认证时刻时,目标区块链节点向应用设备发送远程认证请求;应用设备包括可信应用程序;可信应用程序运行于应用设备的第一可信执行环境中,第一可信执行环境与应用设备的操作系统相互隔离;远程认证请求用于请求验证可信应用程序的安全性。
本申请中,区块链节点可以定期对可信应用程序进行远程认证,而应用认证时刻可以是指对可信应用程序进行远程认证的时刻。如,以每隔5s便对可信应用程序进行远程认证为例,那么第5s、第10s、第15s……均可以称为一个应用认证时刻。可信应用程序可以是指运行于可信执行环境的应用程序,这里的第一可信执行环境,可以是指可信应用程序所运行的可信执行环境,而这里的应用设备可以是指运行可信应用程序的终端设备。为便于理解可信执行环境,以下将对可信执行环境进行详细说明。
可信执行环境(TEE)是基于CPU硬件的安全扩展,且与外部完全隔离的具备可信性的执行环境。TEE主要用于解决移动设备(如终端设备)上资源的安全隔离,其主要用途是为应用程序提供可信安全的执行环境,其完全平行于移动设备上的操作系统。其中,可信执行环境可以是指基于应用隔离技术所创建的一个区域,可以将功能程序(如密钥协商功能程序)封装于该区域中,那么该区域即可作为一个实现该功能程序所指示功能(密钥协商)的可信执行环境(TEE)。以应用隔离技术为软件保护扩展技术(software guard extensions,SGX)技术为例,相关设备(如SGX服务设备)可以基于SGX技术创建enclave(围圈或飞地),该enclave可以作为用于实现某种功能的可信执行环境。具体的,相关设备可以利用CPU中新增的处理器指令,在内存中可以分配一部分区域作为围圈页面缓存或飞地页面缓存(Enclave Page Cache,EPC),该区域可以用于驻留上述的enclave。CPU可以同时创建一个或多个可信执行环境,不同可信执行环境所运行的代码可以相同或不同,这取决于相应可信执行环境的用途。例如,本申请中可以将某个应用程序的代码封装于所创建的可信执行环境中,从而即可得到实现该应用程序所对应功能的可信执行环境(可以理解为,将该应用程序运行于该可信执行环境中)。
可以理解的是,上述EPC对应的内存区域会被CPU内部的内存加密引擎(MemoryEncryption Engine,MEE)加密,那么该内存区域中的内容(可信执行环境中所运行的代码和数据)只有在CPU内核中才能够被解密,且用于加解密的密钥只有在EPC启动时生成并存储在CPU中。可见,可信执行环境的安全边界只包含其自身和CPU,其与所在的设备上的操作系统是相互隔离的,无论是特权或非特权软件都无法访问到可信执行环境,因而具有极高的安全性,所以通过TEE所运行的应用程序,具备极高的安全性,可以将其称为可信应用程序。
应当理解,对于可信应用程序,在向其提供某种数据前,为了提升数据的安全性与可靠性,可以先对可信应用程序进行远程认证,该远程认证用于对该可信应用程序的身份进行验证、也用于对该可信应用程序的运行环境进行验证(验证其究竟是否运行在可信运行环境中),在明确可信应用程序的身份、也确定该可信应用程序确实在某个可信运行环境(TEE)中安全运行后,可以再向其传输数据,由此即可提升数据的安全性,减少所传输的数据被恶意攻击者所获取的情况。也就是说,通过远程认证,可以验证该可信应用程序的安全性。而本申请中,可以由区块链节点定期对可信应用程序进行远程认证,当到达应用认证时刻时,区块链节点即可向可信应用程序所在的应用设备发送针对可信应用程序的远程认证请求。
进一步地,可以理解的是,在区块链节点向应用设备发送针对可信应用程序的远程认证请求后,该应用设备可以向区块链节点返回一个针对可信应用程序的远程认证报告(该远程认证报告用于反馈并证明可信应用程序的身份、所运行的执行环境为可信的环境等内容),而区块链节点可以对该远程认证报告进行验证,在确定该远程认证报告具备有效性时,即可确定该可信应用程序的身份是正确可信的、执行环境也是可信安全的。而为了进一步提升对远程认证报告验证结果的准确性,本申请还可以利用区块链中区块的特性,来对远程认证报告的时效性进行验证。具体的,区块链节点在应用认证时刻时,即可从区块链中下载最新区块的区块信息(如区块头信息),该区块头信息中包含有该最新区块的区块哈希值,而该区块哈希值即可作为远程认证请求中的挑战者参数(可理解为请求参数),由于每个区块哈希值在区块出块前是具备不可预见性的,那么通过此即可确定该远程认证报告是否是最新生成的报告,而不是历史远程认证报告。例如,当远程认证报告中包含有最新区块的区块哈希值时,即可确定该远程认证报告是在接收到该远程认证请求后,才生成的一个新的认证报告,而不是在此之前就生成好了的历史远程认证报告。
也就是说,通过上述可知,区块链节点向应用设备所发送的远程认证请求中可以携带有区块链中,某个区块(如最新区块)的区块头信息(具体可以为区块头信息中的区块哈希值)。即对于生成远程认证请求的具体实现方式可为:在应用认证时刻时,目标区块链节点可以在区块链中获取目标区块;其中,目标区块是指区块链中,具有最大生成时间戳的区块;随后,可以将目标区块的区块头信息确定为请求参数,随后即可生成包含请求参数的远程认证请求。
其中,对于在区块链中获取目标区块的具体实现方式可为:在应用认证时刻时,目标区块链节点可以获取区块链节点集合中,每个区块链节点分别对应的区块高度;其中,区块链节点集合中的每个区块链节点均属于区块链;随后,可以将区块链节点集合中,区块高度为最大区块高度的区块链节点确定为同步节点;进一步地,可以将同步节点所存储的区块确定为参考区块,将目标区块链节点所存储的区块确定为本地区块;随后,可以确定参考区块与本地区块之间的差异区块,随后即可将差异区块中具有最大生成时间戳的区块确定为目标区块。
应当理解,区块高度可以是指一个区块链节点所存储的区块的高度(或数量),在区块链中,每个区块链节点同步区块的速度是不一致的,那么所存储的区块的数量也可能不一致,而具有最大区块高度的区块链节点,即可认为其存储有最新的区块。那么对于目标区块链节点而言,在应用认证时刻时,可以在区块链所包含的区块链节点集合中,获取到具有最大区块高度的区块链节点,该区块链节点即可作为目标区块链节点的同步节点(向其同步区块的节点),该同步节点所存储的区块,与目标区块链节点所存储的区块之间的差异区块,即为目标区块链节点的同步区块,当该目标区块链节点将同步区块同步至本地后,该同步区块中具有最大生成时间戳的区块即可确定为最新区块,并将之确定为目标区块。随后,可以将该目标区块的区块头信息(具体可以为目标区块的区块哈希值)作为请求参数,生成包含该请求参数的远程认证请求,在后续接收到应用设备基于远程认证请求所返回的远程认证报告后,即可基于该目标区块的区块头信息对该远程认证报告的时效性进行验证,进而基于时效性的验证结果对远程认证报告的有效性进行验证,其具体验证方式可参见后续步骤的描述。
步骤S102,接收应用设备基于远程认证请求所返回的远程认证报告,对远程认证报告进行有效性验证。
本申请中,应用设备在接收到远程认证请求后,会生成一个针对可信应用程序的远程认证报告,并向区块链节点返回一个远程认证报告。具体的,应用设备中可以包含可信应用程序,也可以包含普通应用程序,可信应用程序是指运行于可信执行环境中的应用程序,而普通应用程序则可以是指运行于应用设备的操作系统中的应用程序(可以理解为,不是运行于可信执行环境的应用程序),该可信应用程序的相关数据可以由普通应用程序进行传递。为便于理解应用设备生成远程认证报告的方式,请一并参见图3,图3是本申请实施例提供的一种应用设备生成远程认证报告的示意图。其中,如图3所示的区块链节点4000a可以为上述图1所对应实施例中的某个区块链节点,如图3所示的应用设备可以为上述图1所对应实施例中的任一终端设备。
如图3所示,该应用设备中可以包含可信应用程序(即可信部分)、普通应用程序(即不可信部分)以及远程认证签名组件。为便于理解,以下将对应用设备中的各个部分进行阐述。可以理解的是,以应用隔离技术为SGX技术为例,本申请实施例中,可以基于SGX技术创建一个enclave作为某个应用程序的可信执行环境(TEE),运行于该可信执行环境中的应用程序可称为可信应用程序,而运行于普通执行环境(如操作系统)中的应用程序可称为普通应用程序(或不可信应用程序)。针对SGX技术,对于可信应用程序的远程认证过程,还涉及到一个特殊的enclave,该enclave为quoting enclave(简称QE,该enclave主要用于在远程认证过程中对某个内容进行签名处理,本申请实施例可将其称为远程认证签名组件),具体的,QE具体可以是指一个架构型enclave(Architectural Enclave)。在远程认证流程中,区块链节点4000a可以向普通应用程序发送一个远程认证请求,随后该普通应用程序可以将该远程认证请求发送至可信应用程序,而可信应用程序在接收到该远程认证请求后,可以先生成通信密钥对(该通信密钥对可以包含通信公钥与通信私钥),并生成一个用于本地认证的REPORT(报告)结构,其中,该REPORT报告可称之为本地认证报告,该本地认证报告中可以包含enclave的属性、度量、签名者身份(如开发该可信应用程序的对象的签名信息)和一些可以与其他enclave之间进行共享的数据,为了在可信应用程序和服务提供对象之间建立经过身份验证的安全通道,可信应用程序可以将新生成的临时公钥(如上述通信密钥对中的通信公钥)添加到REPORT(本地认证报告)的用户数据字段中。也就是说,该本地认证报告可以包含可信应用程序所添加的通信公钥、应用开发对象(开发该可信应用程序的对象)的签名信息。随后,可信应用程序可以将该本地认证报告返回至普通应用程序,而普通应用程序可以将该本地认证报告转发至远程认证签名组件(QE),随后,远程认证签名组件(QE)可以基于该本地认证报告验证该可信应用程序的可信执行环境是否与自身处于同一平台上,同时还可以该本地认证报告的签名信息进行验签;若验证其与自身处于同一平台上,且对本地认证报告的签名信息验签通过,那么远程认证签名组件可以将该本地认证报告(REPORT结构)封装为一个结构体QUOTE(为便于区别,本申请可将该封装后的结构体称为远程认证报告,也就是说,远程认证报告是指对本地认证报告进行验证且进行封装后所得到的一个认证报告);进一步地,远程认证签名组件(QE)可以使用签名密钥(enhancedprivacy identification,EPID)对该远程认证报告进行签名。其中,可以理解的是,这里的EPID密钥不仅可以代表应用设备这一平台,还代表应用设备的底层硬件的可信度,其可以绑定处理器固件的版本等信息,在SGX技术中,只有QE才能访问到EPID密钥,以用于对上述的结构体QUOTE(远程认证报告)进行签名。随后,远程认证签名组件可以将该带有签名信息的远程认证报告返回至普通应用程序,而普通应用程序可以将该带有签名信息的远程认证报告返回至区块链节点4000a,区块链节点4000a即可对该远程认证报告进行有效性验证。
其中,在本申请中,应用开发对象(开发该可信应用程序的对象)的签名信息可以是指基于应用开发对象的私钥对本地认证报告进行签名所得到的签名信息,对该签名信息进行验证可以是指基于应用开发对象的公钥对该签名信息进行验签。也就是说,本申请实施例中,可以将远程认证签名组件的enclave(可信执行环境)称为第二可信执行环境,那么远程认证签名组件是运行于第二可信执行环境中,且运行于第二可信执行环境中的远程认证签名组件是用于为可信应用程序的认证报告提供远程认证签名服务的,而本申请实施例中的远程认证报告是由远程认证签名组件基于应用开发对象的公钥,对本地认证报告中的第一签名信息进行验签,且在验签通过后对本地认证报告进行封装后所得到的;其中,本地认证报告是由可信应用程序基于远程认证请求所生成的认证报告;第一签名信息是由可信应用程序基于应用开发对象的私钥,对本地认证报告进行签名后所得到的;应用开发对象是指开发可信应用程序的对象;且远程认证报告可以包含第二签名信息;第二签名信息是由远程认证签名组件基于签名密钥(如上述EPID密钥),对远程认证报告进行签名后所得到的。
进一步地,区块链节点在接收到应用设备所返回的远程认证报告后,可以对该远程认证报告进行有效性验证,得到有效性验证结果,该有效性验证结果可以包括远程认证报告具备有效性的结果(即,确定远程认证报告为有效认证报告),以及远程认证报告具备无效性的结果(即,确定远程认证报告为无效认证报告)。对于区块链节点对该远程认证报告进行有效性验证,得到有效性验证结果的具体实现方式,可以参见后续图4所对应实施例中的描述。
步骤S103,在确定远程认证报告为有效认证报告时,将远程认证报告上链至目标区块链节点所属的区块链中;上链至区块链的远程认证报告,用于服务提供对象从区块链中获取远程认证报告,并基于远程认证报告为可信应用程序提供服务。
本申请中,在确定远程认证报告为有效认证报告时,即可确定该可信应用程序具备可信性,可以将远程认证报告上链至目标区块链节点所属的区块链中。可以理解的是,将具备有效性的远程认证报告上链至区块链后,对于向可信应用程序提供数据或服务的对象(可称之为服务提供对象)而言,在存在向可信应用程序传输数据的需求时,其无需再次对可信应用程序进行远程认证以验证可信应用程序是否可信,服务提供对象可直接从区块链下载该可信应用程序的远程认证报告即可确定该可信应用程序具备可信性,服务提供对象可高效的在确保可信应用程序可信的情况下向可信应用程序传输数据,由此可以提高数据传输的效率与安全性。此外,对于可信应用程序而言,通常向其提供数据或服务的对象并不仅限于一个,那么对于每个数据提供对象(也可称之为服务提供对象),在向可信应用程序传输数据或提供服务之前,若均对可信应用程序进行远程认证,这将消耗大量时间,远程认证的流程也较为繁琐,会大大降低数据传输效率,通过区块链节点定期对可信应用程序进行远程认证,并将远程认证报告进行上链的方式,可以大大减少远程认证的时间,提升数据传输效率。
具体的,对于某个服务提供对象而言,其可以向区块链节点(如目标区块链节点)发送针对该远程认证报告的查阅请求,而该目标区块链节点可查阅请求将该远程认证报告返回至服务提供对象。其中,通过上述可知,远程认证报告是对本地认证报告进行封装后所得到的认证报告,而本地认证报告中又包含有可信应用程序所生成的通信密钥对中的通信公钥,那么服务提供对象在获取到该远程认证报告后,可以获取到该通信公钥,服务提供对象可以基于该通信公钥对数据密钥(可由服务提供对象基于某种密钥生成算法所生成,以密钥生成算法为对称密钥算法为例,该数据密钥可以是指一个对称密钥)进行加密,那么在向可信应用程序传输服务数据时,服务提供对象可以先基于数据密钥对服务数据进行加密,得到加密后的服务数据;随后,服务提供对象可以基于通信公钥对该数据密钥进行加密,得到加密后的数据密钥,由此,只有可信应用程序能够通过通信密钥对中的另一个密钥(如通信私钥)来对加密后的数据密钥进行解密,得到数据密钥,然后再基于数据密钥对加密后的服务数据进行解密,得到服务数据。由此可以通过通信密钥对以及数据密钥,多层次的保护所传输的服务数据的安全性。
具体的,对于服务提供对象所期望传输的服务数据,还可以将其加密后上链至区块链中,可信应用程序可以从区块链中进行获取。以远程认证报告中包含通信密钥对中的第一通信密钥(如上述通信公钥);其中,通信密钥对是由可信应用程序基于远程认证请求所生成的密钥对;通信密钥对还包含第二通信密钥(如上述通信私钥),第二通信密钥是具备加密数据(加密数据是指基于第一通信密钥进行加密的数据)的解密权限的为例,目标区块链节点可以接收服务提供对象发送的查阅请求;其中,查阅请求用于请求查阅远程认证报告;随后,目标区块链节点可以将远程认证报告返回至服务提供对象;接收服务提供对象基于远程认证报告所返回的目标加密信息;目标加密信息包括目标加密数据(目标加密数据是指由服务提供对象基于数据密钥将服务数据进行加密后所得到的数据)与目标加密密钥;目标加密密钥是指采用第一通信密钥对数据密钥(数据密钥为服务提供对象所生成的用于为服务数据进行加密的密钥)进行加密后所得到的加密密钥;随后,目标区块链节点可以将目标加密信息上链至区块链中。
进一步地,目标区块链节点可以将区块链中所存储的目标加密信息发送至应用设备的可信应用程序,由此可信应用程序即可基于第二通信密钥对目标加密密钥进行解密,得到数据密钥,并基于数据密钥对目标加密数据进行解密,得到服务数据。
需要说明的是,服务提供对象可以将目标加密信息先上链至区块链后,由可信应用程序从区块链中所获取得到;服务提供对象也可以将目标加密信息直接发送至可信应用程序,对于服务提供对象将目标加密信息发送至可信应用程序的具体方式,可为直接方式也可为间接方式,本申请对其不进行限制。
可选的,可以理解的是,区块链节点在对远程认证报告进行有效性验证后,若确定远程认证报告为无效认证报告,那么可以确定该可信应用程序不具备可信性,此时区块链节点也可以将远程认证报告上链至目标区块链节点所属的区块链中。将具备无效性的远程认证报告上链至区块链后,对于向可信应用程序提供数据或服务的对象(可称之为服务提供对象)而言,在存在向可信应用程序传输数据的需求时,其无需再次对可信应用程序进行远程认证以验证可信应用程序是否可信,服务提供对象可直接从区块链下载该可信应用程序的远程认证报告即可确定该可信应用程序并不具备可信性,服务提供对象此时可拒绝向可信应用程序传输数据,由此减少数据被恶意获取的可能性,从而可以提升数据的安全性。
在本申请实施例中,可以引入区块链来对可信应用程序进行远程认证,通过区块链节点定期对应用设备的可信应用程序(运行于应用设备的可信执行环境中)进行远程认证(如,每到达一个应用认证时刻时,就向应用设备发送一个远程认证请求,以请求对可信应用程序进行远程认证),通过区块链可实现对远程认证过程全流程上链,整个流程公开透明,可信度极高;同时,在得到可信应用程序返回的远程认证报告后,可以对该远程认证报告进行有效性验证,在确定该远程认证报告为有效认证报告时,区块链节点可以将该远程认证报告上链。那么对于服务提供对象而言,其在向可信应用程序提供服务(如提供数据)前,可以先从区块链中获取到该远程认证报告,从而可以在确定该可信应用程序具备安全性的情况下,再向可信应用程序提供服务(如传输数据),有利于提升所传输的数据的安全性。此外,对于区块链中所存储的远程认证报告,可重复利用,不同的服务提供对象均能重复使用该远程认证报告,无需在某个服务提供对象在存在远程认证需求时,才进行远程认证,可以实现即需即得到,由此可以很好地提升远程认证效率,进而提升数据传输效率。
进一步地,请参见图4,图4是本申请实施例提供的一种对远程认证报告进行有效性验证的流程示意图。该流程可以对应于上述图2所对应实施例中,对远程认证报告进行有效性验证的流程,其中,该流程是以远程认证报告包含第二签名信息为例进行说明的流程,其中,通过上述可知,第二签名信息是由远程认证签名组件基于签名密钥,对远程认证报告进行签名后所得到的;远程认证签名组件运行于应用设备的第二可信执行环境中,运行于第二可信执行环境中的远程认证签名组件,用于为可信应用程序的认证报告提供远程认证签名服务。如图4所示,该流程至少可以包括以下步骤S401-步骤S406:
步骤S401,将远程认证报告发送至远程认证服务器;远程认证服务器是指用于为第一可信执行环境提供远程认证服务的服务器。
具体的,本申请中的远程认证服务器可以是指应用隔离技术所指定的,用于为可信执行环境(如第一可信执行环境)提供远程认证服务的服务器,该远程认证服务器属于应用隔离技术所属的应用隔离平台,而上述第一可信执行环境与第二可信执行环境均基于该应用隔离平台所创建(基于该应用隔离技术所创建)。以应用隔离技术为SGX技术为例,该应用隔离平台可以是指SGX技术所属的平台(可称之为SGX平台),在SGX技术中,上述的远程认证服务器可以为SGX平台所提供的认证服务器(Attestation Service,AS),区块链节点可以向AS服务器发送携带第二签名信息的远程认证报告等内容,使得AS服务器可以据此验证上述第一可信执行环境或可信应用程序是否可信,并向目标区块链节点返回相应的报告认证结果。其中,该报告认证结果可以包括第一可信执行环境具备可信性的结果(即确定第一可信执行环境的环境属性为环境可信属性),以及第一可信执行环境不具备可信性的结果(即确定第一可信执行环境的环境属性为环境不可信属性)。
步骤S402,接收远程认证服务器所返回的报告认证结果;报告认证结果包含远程认证服务器基于第二签名信息,对远程认证报告进行验证后的验证结果。
具体的,通过上述可知,远程认证服务其可以对远程认证报告进行验证,其中,验证的内容可以包括基于第二签名信息,对远程认证报告进行验证的验证结果(例如,以SGX技术为例,远程认证报告为封装后的结构体QUOTE,第二签名信息为基于EPID密钥进行签名后得到的签名信息,而AS服务器可以根据QUOTE的签名验证其EPID证明,从而来检查QUOTE)。
步骤S403,根据报告认证结果对远程认证报告进行可信性验证。
具体的,目标区块链节点可以基于报告认证结果对远程认证报告进行可信性验证。而为了减少目标区块链节点接收到的报告认证结果被攻击者所篡改,远程认证服务器可以对该报告认证结果进行签名(如,基于远程认证服务器的私钥对该报告认证结果进行签名),其所得到的签名信息可称为第三签名信息。也就是说,报告认证结果可以包含第三签名信息(第三签名信息是由远程认证服务器基于远程认证服务器的私钥,对报告认证结果进行签名后所得到的),而目标区块链节点对远程认证报告进行可信性验证的内容,可以包括对该第三签名信息进行验签的内容。即在报告认证结果包含第三签名信息时,对于根据报告认证结果对远程认证报告进行可信性验证的具体实现方式可为:可以获取远程认证服务器的公钥,基于远程认证服务器的公钥可以对第三签名信息进行验签,得到针对第三签名信息的验签结果;若针对第三签名信息的验签结果为验签通过结果,则可以获取远程认证服务器的数字证书,根据远程认证服务器的数字证书可以对远程认证服务器进行身份验证,得到远程认证服务器的身份验证结果,随后即可根据远程认证服务器的身份验证结果对远程认证报告进行可信性验证;而若针对第三签名信息的验签结果为验签未通过结果,则可以直接确定远程认证报告为不可信认证报告。
其中,通过上述可知,第一可信执行环境与第二可信执行环境均基于应用程序隔离平台所创建,远程认证服务器是属于应用程序隔离平台的,那么远程认证服务器的数字证书,也可以是由应用程序隔离平台中的可信服务器为远程认证服务器所颁发;这里的可信服务器可以是指应用程序隔离平台中的权威认证机构。如,以应用隔离平台为SGX平台为例,该可信服务器可以是指SGC平台中具备权威性的用于颁发证书的机构(或服务器)。而对于远程认证服务器的数字证书,会包含有可信服务器的签名信息(基于可信服务器的私钥对数字证书进行签名所得到的信息,为便于区别,可将其称为第四签名信息),对于远程认证服务器的身份验证,可以基于该第四签名信息来进行。即,对于根据远程认证服务器的数字证书可以对远程认证服务器进行身份验证,得到远程认证服务器的身份验证结果的具体实现方式可为:可以获取远程认证服务器的数字证书中所包含的第四签名信息;其中,第四签名信息是由可信服务器,基于可信服务器的私钥对数字证书进行签名后所得到的;随后,可以获取可信服务器的公钥,基于可信服务器的公钥可以对第四签名信息进行验签;若第四签名信息的验签结果为验签通过结果,则可以将远程认证服务器的身份验证结果确定为合法身份结果;而若第四签名信息的验签结果为验签未通过结果,则可以将远程认证服务器的身份验证结果确定为异常身份结果(可以理解为不合法身份结果)。
进一步地,在确定远程认证服务器的身份验证结果后,对于根据远程认证服务器的身份验证结果对远程认证报告进行可信性验证的具体实现方式可为:若身份验证结果为合法身份结果,则可以获取报告认证结果所指示的环境属性,根据报告认证结果所指示的环境属性,对远程认证报告进行可信性验证;环境属性是指第一可信执行环境的属性;而若身份验证结果为异常身份结果,则可以直接确定远程认证报告为无效认证报告。其中,报告认证结果所指示的环境属性也就是基于上述远程认证服务器的报告认证结果所确定,若报告认证结果为第一可信执行环境具备可信性的结果(即确定第一可信执行环境的环境属性为环境可信属性),那么该报告认证结果所指示的环境属性即可为环境可信属性;而若报告认证结果为第一可信执行环境不具备可信性的结果(即确定第一可信执行环境的环境属性为环境不可信属性),那么该报告认证结果所指示的环境属性即可为环境不可信属性。
步骤S404,确定远程认证报告是否为可信认证报告。
具体的,在确定远程认证服务器为合法身份,且报告认证结果也为环境可信属性的结果时,即可将该远程认证报告确定为可信认证报告;而若确定远程认证服务器为合法身份,但报告认证结果为环境不可信属性的结果,那么由于远程认证服务器为合法身份,此时可确定该报告认证结果是正确的结果,可以将该远程认证报告确定为不可信认证报告;同理,若确定远程认证服务器为不合法身份,那么无论报告认证结果为环境可信属性还是环境不可信属性的结果,由于远程认证服务器为不合法身份,此时并不能确定该报告认证结果是否为正确的结果,那么此时均可以将该远程认证报告确定为不可信认证报告。
应当理解,若确定远程认证报告是为可信认证报告,则可执行后续步骤S405;而若确定远程认证报告不是可信认证报告(为不可信认证报告),则可执行后续步骤S406。
步骤S405,若确定远程认证报告为可信认证报告,则获取远程认证报告中所包含的待验证区块头信息,根据待验证区块头信息对远程认证报告进行有效性验证。
具体的,在确定远程认证报告为可信认证报告时,为了进一步提升验证结果的准确性,可以对远程认证报告进行时效性验证,在确定远程认证报告具备时效性时,再确定该远程认证报告是具备有效性的(即确定远程认证报告为有效认证报告);而若通过上述方式确定该远程认证报告为可信认证报告,但该远程认证报告并不具备时效性,那么此时仍然可以确定该远程认证报告并不具备有效性(即确定远程认证报告为无效认证报告)。
其中,对远程认证报告进行时效性验证的具体方式,本申请可以基于区块链的区块特性来进行,主要利用了区块链中区块哈希值在出块前的不可预知性。具体的,通过上述图2所对应实施例中所述可知,本申请可以将区块链中最新区块(如上述目标区块)的区块头信息作为请求参数,来生成远程认证请求,后续即可基于该区块头信息来验证远程认证报告的时效性。也就是说,远程认证请求中包含目标区块(目标区块是指在应用认证时刻时,区块链中具有最大生成时间戳的区块)的区块头信息,此时,对于根据待验证区块头信息(也就是远程认证报告中所包含的区块头信息)对远程认证报告进行有效性验证的具体实现方式可为:可以将目标区块的区块头信息中,所包含的目标区块的区块哈希值,确定为目标区块哈希值;可以将待验证区块头信息中,所包含的区块哈希值确定为待验证区块哈希值;随后,可以将目标区块哈希值与待验证区块哈希值进行匹配;若目标区块哈希值与待验证区块哈希值匹配成功,则可以确定远程认证报告为有效认证报告;而若目标区块哈希值与待验证区块哈希值匹配失败,则可以确定远程认证报告为无效认证报告。
其中,判断目标区块哈希值与待验证区块哈希值是否匹配成功,可以是指确定目标区块哈希值与待验证区块哈希值是否一致,由于区块链中,对于某个区块的区块哈希值,其在出块前是具备不可预知性的,那么若匹配成功,即可确定该远程认证报告是基于该远程认证请求后才生成的认证报告,而不是在应用认证时刻前就已经生成的历史远程认证报告,该远程认证报告是具备时效性的;而若匹配不成功,那么即可确定该远程认证报告并不是基于该远程认证请求后才生成的认证报告,很可能是在应用认证时刻前就已经生成的历史远程认证报告,该远程认证报告并不具备时效性。在远程认证报告并不具备时效性时,可将该远程认证报告确定为无效认证报告。
步骤S406,若确定远程认证报告为不可信认证报告,则确定远程认证报告为无效认证报告。
具体的,在确定远程认证报告为不可信认证报告时,可以直接将远程认证报告确定为无效认证报告。
在本申请实施例中,可以引入区块链来对可信应用程序进行远程认证,通过区块链节点定期对应用设备的可信应用程序(运行于应用设备的可信执行环境中)进行远程认证(如,每到达一个应用认证时刻时,就向应用设备发送一个远程认证请求,以请求对可信应用程序进行远程认证),通过区块链可实现对远程认证过程全流程上链,整个流程公开透明,可信度极高;同时,在得到可信应用程序返回的远程认证报告后,可以对该远程认证报告进行有效性验证,在确定该远程认证报告为有效认证报告时,区块链节点可以将该远程认证报告上链。那么对于服务提供对象而言,其在向可信应用程序提供服务(如提供数据)前,可以先从区块链中获取到该远程认证报告,从而可以在确定该可信应用程序具备安全性的情况下,再向可信应用程序提供服务(如传输数据),有利于提升所传输的数据的安全性。此外,对于区块链中所存储的远程认证报告,可重复利用,不同的服务提供对象均能重复使用该远程认证报告,无需在某个服务提供对象在存在远程认证需求时,才进行远程认证,可以实现即需即得到,由此可以很好地提升远程认证效率,进而提升数据传输效率。
进一步地,请参见图5,图5是本申请实施例提供的一种系统架构图。如图5所示,该系统架构中可以包括区块链节点、区块链、应用隔离平台的认证服务、数据使用方(具体可以是指可信应用程序或TEE)以及数据提供方(向数据使用方提供数据的对象,如上述服务提供对象)。为便于理解,以下将对该系统架构中的各个部分进行阐述。
区块链节点:区块链节点可以用于提供区块头同步服务、远程认证代理服务以及远程认证上链服务。其中,区块头同步服务具体可以是指区块链节点的常规服务,其可以从其他区块同步较快的节点处,同步区块以及区块的去块头信息。远程认证代理服务具体可以是指对数据使用方进行远程认证;而远程认证上链服务具体是指区块链节点可以连接区块链网络,对于从数据使用方处所获取到的远程认证报告,区块链节点可以验证报告的有效性,具体可以验证可信应用程序的环境安全性、验证应用开发对象的身份、确保数据完整未被篡改、校验远程认证报告的时效性等等,并可将远程认证报告进行上链存证。
区块链:区块链可以用于提供远程认证报告存证服务以及常规服务。对于远程认证报告存证服务,区块链可以将远程认证报告的验证结果存在智能合约中,以供数据提供方验证、数据使用方使用。对于常规服务而言,区块链可以对区块链应用提供基础帐本、智能合约、交易上链、交易查询、区块查询、合约执行、合约查询等服务。
数据使用方:数据使用方可以包括数据获取模块、业务处理模块以及远程认证模块,其中,数据获取模块可以用于接收并存储数据提供方所提供的业务数据(或服务数据);业务处理模块可以用于接收业务请求,并基于业务请求进行相关业务处理;远程认证模块可以用于调用TEE生成远程认证报告。具体的,数据使用方可以提供可信执行环境,基于其硬件技术,可以使生成密钥不流出可信执行环境,确保密钥安全。此外,对于数据提供方所提供的数据,数据使用方可以在TEE中进行安全运算,确保业务数据运行环境的安全性。
数据提供方:数据提供方可以包括报告获取模块以及数据提供模块。报告获取模块主要用于从区块链下载远程认证报告,并验证报告的有效性;数据提供模块主要用于从数据库中获取将对外提供的业务数据,将该业务数据进行加密后传输至数据使用方。具体的,数据提供方主要用于验证数据使用方的环境安全、应用安全,数据提供方可以生成数据密钥,并基于该数据密钥加密业务数据,再向数据使用方传输加密后的业务数据。
应用隔离平台的认证服务:该应用隔离平台的认证服务可以用于对数据使用方的远程认证报告进行验证,以验证其是否具备可信性。例如,该应用隔离平台的认证服务中可以包括远程认证服务器,可基于该远程认证服务器对数据使用方的远程认证报告进行验证。
具体的,对于各个部分的具体实现方式,可以参见上述图2以及图4所对应实施例中的描述,这里将不再进行赘述,对于其所带来的有益效果,这里也将不再进行赘述。
进一步地,请参见图6,图6是本申请实施例提供的一种将应用开发对象的信息进行上链的交互流程图。如图6所示,该流程至少可以包括以下步骤S61-步骤S62:
步骤S61,应用开发对象向证书颁发机构申请证书。
具体的,可信应用程序的开发对象(应用开发对象)可以将相关信息(如所属企业信息)、公钥、地址等作为参数从证书颁发机构(证书颁发机构Certificate Authority,CA)处申请证书(数字证书),证书颁发机构若认可应用开发对象的身份,则可为其颁发证书。其中,这里的证书颁发机构可以是指颁发数字证书的机构,其是负责发放和管理数字证书的权威机构,可以作为电子交易中受信任的第三方,证书颁发机构承担公钥体系中公钥的合法性检验的责任。
步骤S62,应用开发对象将证书上链。
具体的,应用开发对象可以将该证书上链(即将数字证书添加到区块链中)。可选的,可以理解的是,数字证书中的地址在后续会作为可信应用程序的开发者参数保存在远程认证报告中,后续可以对比这个开发者地址是否与链上证书中的地址一致,如一致则可以说明可信应用程序确实为符合预期的开发者所开发。当然,也可以基于应用开发对象的签名信息,来对应用开发对象的身份进行验证,以验证该可信应用程序是否为符合预期的开发者所开发的。
应当理解,本申请实施例中,应用开发对象将数字证书上链后,有利于区块链节点高效的对该应用开发对象的身份进行验证,从而可以高效的对可信应用程序的远程认证报告进行有效性验证。
进一步地,请参见图7,图7是本申请实施例提供的一种将远程认证服务器的证书上链的交互流程图。如图7所示,该流程至少可以包括以下步骤S71-步骤S72:
步骤S71,区块链节点从应用隔离平台的认证服务处获取认证证书。
具体的,这里的应用隔离平台的认证服务可以包括远程认证服务器,该认证证书可以是指远程认证服务器的数字证书。
步骤S72,区块链节点将证书上链。
具体的,区块链节点可以将该证书上链(即将数字证书添加到区块链中)。该证书中的公钥可用于验证远程认证报告的有效性,证实远程认证报告确实为可信应用程序生成,并非伪造。
应当理解,本申请实施例中,区块链将远程认证服务的数字证书上链后,有利于区块链节点基于链上数据,高效的对可信应用程序的远程认证报告进行有效性验证。
进一步地,请参见图8,图8是本申请实施例提供一种区块链节点进行远程认证的交互流程图。如图8所示,该流程可以至少包括以下步骤S81-步骤S810:
步骤S81,区块链节点定期以区块哈希值作为请求参数生成远程认证请求,向可信应用程序发送远程认证请求。
具体的,对于区块链节点定期获取区块哈希值以及生成远程认证请求的具体实现方式,可以参见上述图2所对应实施例中步骤S101中的描述,这里将不再进行赘述。
步骤S82,可信应用程序生成通信密钥对。
步骤S83,可信应用程序将通信密钥对中的通信公钥作为参数,生成远程认证报告。
具体的,对于生成远程认证报告的具体实现方式,可以参见上述图2所对应实施例中的描述,这里将不再进行赘述。
步骤S84,可信应用程序向区块链节点返回远程认证报告。
步骤S85,区块链节点验证远程认证报告的报告完整性。
具体的,区块链节点可以将该远程认证报告发送至远程认证服务器,而远程认证服务器可基于远程认证报告中所携带的签名信息来验签,并验证远程认证报告的报告完整性。
步骤S86,区块链节点校验开发者签名。
具体的,区块链节点可基于区块链中所存储的应用开发对象的证书,来校验开发者的签名信息。
步骤S87,区块链节点验证环境的安全性。
具体的,远程认证服务器对远程认证报告进行验证后,可得到一个报告认证结果,远程认证服务器可对该远程认证报告进行签名,而区块链节点可以基于链上所存储的远程认证服务器的数字证书,对该签名信息进行验证(基于远程认证服务器的公钥对该签名信息进行验证)。
步骤S88,基于区块哈希值验证报告的时效性。
具体的,对于验证报告的时效性的具体实现方式,可以参见上述图4所对应实施例中的描述,这里将不进行赘述。
步骤S89,基于认证证书验证报告是由可信应用程序所生成。
具体的,远程认证服务器可以对远程认证服务器的数字证书进行验证,以确定该报告是否确实由可信应用程序所生成。
步骤S810,区块链节点将远程认证报告进行上链。
具体的,在确定远程认证报告具备有效性时,区块链节点可将该远程认证报告添加到区块链中。
对于步骤S81-步骤S810的具体实现方式,可以参见上述图2以及图4所对应实施例中的描述,这里将不进行再进行赘述。其所带来的有益效果,也不再进行过于赘述。
进一步地,请参见图9,图9是本申请实施例提供的一种数据传输的交互流程图。该流程可以是指数据提供方与数据使用方之间传输数据的流程图。如图9所示,该流程至少可以包括以下步骤S91-步骤S96:
步骤S91,数据提供方从区块链获取最近的远程认证报告以及远程认证服务器的认证证书。
步骤S92,数据提供方基于认证证书确认报告由可信应用程序锁生成。
步骤S93,数据提供方基于报告的区块哈希值确定报告的时效性。
具体的,在可行的实施例中,由于区块链节点已经验证了远程认证报告的有效性(该验证过程可以包含上述步骤S92以及步骤S93),再将远程认证报告上链的,那么对于步骤S92以及步骤S93,数据提供方实际上可以不用再执行;当然,为了提升报告验证的可靠性,在获取到远程认证报告后,对于步骤S92以及步骤S93,数据提供方可以执行。
步骤S94,数据提供方生成数据密钥,并使用通信公钥加密该数据密钥。
具体的,在确定远程认证报告具备有效性时,数据提供方可以生成数据密钥,并使用远程认证报告中数据使用方所提供的通信公钥来加密该数据密钥。
步骤S95,数据提供方使用数据密钥加密业务数据。
具体的,业务数据可以是指期望传输至数据使用方的数据,也可以立即为数据使用方所请求获取的服务数据。数据提供方可以使用数据密钥加密业务数据。
步骤S96,数据提供方向数据使用方发送加密后的数据密钥以及加密后的业务数据。
在本申请实施例中,可以引入区块链来对可信应用程序进行远程认证,通过区块链节点定期对应用设备的可信应用程序(运行于应用设备的可信执行环境中)进行远程认证(如,每到达一个应用认证时刻时,就向应用设备发送一个远程认证请求,以请求对可信应用程序进行远程认证),通过区块链可实现对远程认证过程全流程上链,整个流程公开透明,可信度极高;同时,在得到可信应用程序返回的远程认证报告后,可以对该远程认证报告进行有效性验证,在确定该远程认证报告为有效认证报告时,区块链节点可以将该远程认证报告上链。那么对于服务提供对象而言,其在向可信应用程序提供服务(如提供数据)前,可以先从区块链中获取到该远程认证报告,从而可以在确定该可信应用程序具备安全性的情况下,再向可信应用程序提供服务(如传输数据),有利于提升所传输的数据的安全性。此外,对于区块链中所存储的远程认证报告,可重复利用,不同的服务提供对象均能重复使用该远程认证报告,无需在某个服务提供对象在存在远程认证需求时,才进行远程认证,可以实现即需即得到,由此可以很好地提升远程认证效率,进而提升数据传输效率。
进一步地,请参见图10,图10是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置为一个应用软件;该基于区块链的数据处理装置1可以用于执行图2所示的方法。如图10所示,该基于区块链的数据处理装置1可以包括:请求发送模块11、报告接收模块12、报告验证模块13以及报告上链模块14。
请求发送模块11,用于在到达应用认证时刻时,目标区块链节点向应用设备发送远程认证请求;应用设备包括可信应用程序;可信应用程序运行于应用设备的第一可信执行环境中,第一可信执行环境与应用设备的操作系统相互隔离;远程认证请求用于请求验证可信应用程序的安全性;
报告接收模块12,用于接收应用设备基于远程认证请求所返回的远程认证报告;
报告验证模块13,用于对远程认证报告进行有效性验证;
报告上链模块14,用于在确定远程认证报告为有效认证报告时,将远程认证报告上链至目标区块链节点所属的区块链中;上链至区块链的远程认证报告,用于服务提供对象从区块链中获取远程认证报告,并基于远程认证报告为可信应用程序提供服务。
其中,请求发送模块11、报告接收模块12、报告验证模块13以及报告上链模块14的具体实现方式,可以参见上述图2所对应实施例中步骤S101-步骤S103的描述,这里将不再进行赘述。
在一个实施例中,该基于区块链的数据处理装置1还可以包括:区块获取模块15以及请求生成模块16。
区块获取模块15,用于在应用认证时刻时,目标区块链节点在区块链中获取目标区块;目标区块是指区块链中,具有最大生成时间戳的区块;
请求生成模块16,用于将目标区块的区块头信息确定为请求参数,生成包含请求参数的远程认证请求。
其中,区块获取模块15以及请求生成模块16的具体实现方式,可以参见上述图2所对应实施例中步骤S101的描述,这里将不再进行赘述。
在一个实施例中,区块获取模块15可以包括:高度获取单元151、节点确定单元152以及目标区块确定单元153。
高度获取单元151,用于在应用认证时刻时,目标区块链节点获取区块链节点集合中,每个区块链节点分别对应的区块高度;区块链节点集合中的每个区块链节点均属于区块链;
节点确定单元152,用于将区块链节点集合中,区块高度为最大区块高度的区块链节点确定为同步节点;
目标区块确定单元153,用于将同步节点所存储的区块确定为参考区块,将目标区块链节点所存储的区块确定为本地区块;
目标区块确定单元153,还用于确定参考区块与本地区块之间的差异区块,将差异区块中具有最大生成时间戳的区块确定为目标区块。
其中,高度获取单元151、节点确定单元152以及目标区块确定单元153的具体实现方式,可以参见上述图2所对应实施例中步骤S101中的描述,这里将不再进行赘述。
在一个实施例中,远程认证报告是由远程认证签名组件基于应用开发对象的公钥,对本地认证报告中的第一签名信息进行验签,且在验签通过后对本地认证报告进行封装后所得到的;本地认证报告是由可信应用程序基于远程认证请求所生成的认证报告;第一签名信息是由可信应用程序基于应用开发对象的私钥,对本地认证报告进行签名后所得到的;应用开发对象是指开发可信应用程序的对象;远程认证报告包含第二签名信息;第二签名信息是由远程认证签名组件基于签名密钥,对远程认证报告进行签名后所得到的;远程认证签名组件运行于第二可信执行环境中,运行于第二可信执行环境中的远程认证签名组件用于为可信应用程序的认证报告提供远程认证签名服务。
在一个实施例中,远程认证报告包含第二签名信息,第二签名信息是由远程认证签名组件基于签名密钥,对远程认证报告进行签名后所得到的;远程认证签名组件运行于应用设备的第二可信执行环境中,运行于第二可信执行环境中的远程认证签名组件,用于为可信应用程序的认证报告提供远程认证签名服务;
报告验证模块13可以包括:报告发送单元131、结果接收单元132、可信验证单元133、有效验证单元134以及无效报告确定单元135。
报告发送单元131,用于将远程认证报告发送至远程认证服务器;远程认证服务器是指用于为第一可信执行环境提供远程认证服务的服务器;
结果接收单元132,用于接收远程认证服务器所返回的报告认证结果;报告认证结果包含远程认证服务器基于第二签名信息,对远程认证报告进行验证后的验证结果;
可信验证单元133,用于根据报告认证结果对远程认证报告进行可信性验证;
有效验证单元134,用于若确定远程认证报告为可信认证报告,则获取远程认证报告中所包含的待验证区块头信息,根据待验证区块头信息对远程认证报告进行有效性验证;
无效报告确定单元135,用于若确定远程认证报告为不可信认证报告,则确定远程认证报告为无效认证报告。
其中,报告发送单元131、结果接收单元132、可信验证单元133、有效验证单元134以及无效报告确定单元135的具体实现方式,可以参见上述图4所对应实施例中步骤S401-步骤S406的描述,这里将不再进行赘述。
在一个实施例中,报告认证结果包含第三签名信息;第三签名信息是由远程认证服务器基于远程认证服务器的私钥,对报告认证结果进行签名后所得到的;
可信验证单元133可以包括:第一验签子单元1331、身份验证子单元1332、可信验证子单元1333以及不可信报告确定子单元1334。
第一验签子单元1331,用于获取远程认证服务器的公钥,基于远程认证服务器的公钥对第三签名信息进行验签,得到针对第三签名信息的验签结果;
身份验证子单元1332,用于若针对第三签名信息的验签结果为验签通过结果,则获取远程认证服务器的数字证书,根据远程认证服务器的数字证书对远程认证服务器进行身份验证,得到远程认证服务器的身份验证结果;
可信验证子单元1333,用于根据远程认证服务器的身份验证结果对远程认证报告进行可信性验证;
不可信报告确定子单元1334,用于若针对第三签名信息的验签结果为验签未通过结果,则确定远程认证报告为不可信认证报告。
其中,第一验签子单元1331、身份验证子单元1332、可信验证子单元1333以及不可信报告确定子单元1334的具体实现方式,可以参见上述图4所对应实施例中步骤S403的描述,这里将不再进行赘述。
在一个实施例中,第一可信执行环境与第二可信执行环境均基于应用程序隔离平台所创建;远程认证服务器属于应用程序隔离平台,远程认证服务器的数字证书,由应用程序隔离平台中的可信服务器为远程认证服务器所颁发;
身份验证子单元1332,还具体用于获取远程认证服务器的数字证书中所包含的第四签名信息;第四签名信息是由可信服务器,基于可信服务器的私钥对数字证书进行签名后所得到的;
身份验证子单元1332,还具体用于获取可信服务器的公钥,基于可信服务器的公钥对第四签名信息进行验签;
身份验证子单元1332,还具体用于若第四签名信息的验签结果为验签通过结果,则将远程认证服务器的身份验证结果确定为合法身份结果;
身份验证子单元1332,还具体用于若第四签名信息的验签结果为验签未通过结果,则将远程认证服务器的身份验证结果确定为异常身份结果。
在一个实施例中,可信验证子单元1333,还具体用于若环境属性为环境可信属性,则确定远程认证报告为可信认证报告;
可信验证子单元1333,还具体用于若环境属性为环境不可信属性,则确定远程认证报告为不可信认证报告。
在一个实施例中,远程认证请求中包含目标区块的区块头信息;目标区块是指在应用认证时刻时,区块链中具有最大生成时间戳的区块;
有效验证单元134可以包括:哈希确定子单元1341、哈希匹配子单元1342、第一报告确定子单元1343以及第二报告确定子单元1344。
哈希确定子单元1341,用于将目标区块的区块头信息中,所包含的目标区块的区块哈希值,确定为目标区块哈希值;
哈希确定子单元1341,还用于将待验证区块头信息中,所包含的区块哈希值确定为待验证区块哈希值;
哈希匹配子单元1342,用于将目标区块哈希值与待验证区块哈希值进行匹配;
第一报告确定子单元1343,用于若目标区块哈希值与待验证区块哈希值匹配成功,则确定远程认证报告为有效认证报告;
第二报告确定子单元1344,用于若目标区块哈希值与待验证区块哈希值匹配失败,则确定远程认证报告为无效认证报告。
其中,哈希确定子单元1341、哈希匹配子单元1342、第一报告确定子单元1343以及第二报告确定子单元1344的具体实现方式,可以参见上述图4所对应实施例中步骤S405的描述,这里将不再进行赘述。
在一个实施例中,远程认证报告中包含通信密钥对中的第一通信密钥;通信密钥对是由可信应用程序基于远程认证请求所生成的密钥对;通信密钥对还包含第二通信密钥,第二通信密钥具备加密数据的解密权限;加密数据是指基于第一通信密钥进行加密的数据;
该基于区块链的数据处理装置1还可以包括:查阅请求接收模块17、报告返回模块18、加密信息接收模块19以及加密信息上链模块20。
查阅请求接收模块17,用于接收服务提供对象发送的查阅请求;查阅请求用于请求查阅远程认证报告;
报告返回模块18,用于将远程认证报告返回至服务提供对象;
加密信息接收模块19,用于接收服务提供对象基于远程认证报告所返回的目标加密信息;目标加密信息包括目标加密数据与目标加密密钥;目标加密密钥是指采用第一通信密钥对数据密钥进行加密后所得到的加密密钥;目标加密数据是指由服务提供对象基于数据密钥将服务数据进行加密后所得到的数据;数据密钥为服务提供对象所生成的用于为服务数据进行加密的密钥;
加密信息上链模块20,用于将目标加密信息上链至区块链中。
其中,查阅请求接收模块17、报告返回模块18、加密信息接收模块19以及加密信息上链模块20的具体实现方式,可以参见上述图2所对应实施例中步骤S103的描述,这里将不再进行赘述。
在一个实施例中,该基于区块链的数据处理装置1还可以包括:加密信息发送模块21。
加密信息发送模块21,用于将目标加密信息发送至应用设备的可信应用程序,以使可信应用程序基于第二通信密钥对目标加密密钥进行解密,得到数据密钥,并基于数据密钥对目标加密数据进行解密,得到服务数据。
其中,加密信息发送模块21的具体实现方式,可以参见上述图2所对应实施例中步骤S103中的描述,这里将不再进行赘述。
在本申请实施例中,可以引入区块链来对可信应用程序进行远程认证,通过区块链节点定期对应用设备的可信应用程序(运行于应用设备的可信执行环境中)进行远程认证(如,每到达一个应用认证时刻时,就向应用设备发送一个远程认证请求,以请求对可信应用程序进行远程认证),通过区块链可实现对远程认证过程全流程上链,整个流程公开透明,可信度极高;同时,在得到可信应用程序返回的远程认证报告后,可以对该远程认证报告进行有效性验证,在确定该远程认证报告为有效认证报告时,区块链节点可以将该远程认证报告上链。那么对于服务提供对象而言,其在向可信应用程序提供服务(如提供数据)前,可以先从区块链中获取到该远程认证报告,从而可以在确定该可信应用程序具备安全性的情况下,再向可信应用程序提供服务(如传输数据),有利于提升所传输的数据的安全性。此外,对于区块链中所存储的远程认证报告,可重复利用,不同的服务提供对象均能重复使用该远程认证报告,无需在某个服务提供对象在存在远程认证需求时,才进行远程认证,可以实现即需即得到,由此可以很好地提升远程认证效率,进而提升数据传输效率。
进一步地,请参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图。如图11所示,上述图10所对应实施例中的基于区块链的数据处理装置1可以应用于上述计算机设备8000,上述计算机设备8000可以包括:处理器8001,网络接口8004和存储器8005,此外,上述计算机设备8000还包括:用户接口8003,和至少一个通信总线8002。其中,通信总线8002用于实现这些组件之间的连接通信。其中,用户接口8003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口8003还可以包括标准的有线接口、无线接口。网络接口8004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器8005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器8005可选的还可以是至少一个位于远离前述处理器8001的存储装置。如图11所示,作为一种计算机可读存储介质的存储器8005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图11所示的计算机设备8000中,网络接口8004可提供网络通讯功能;而用户接口8003主要用于为用户提供输入的接口;而处理器8001可以用于调用存储器8005中存储的设备控制应用程序,以实现:
在到达应用认证时刻时,目标区块链节点向应用设备发送远程认证请求;应用设备包括可信应用程序;可信应用程序运行于应用设备的第一可信执行环境中,第一可信执行环境与应用设备的操作系统相互隔离;远程认证请求用于请求验证可信应用程序的安全性;
接收应用设备基于远程认证请求所返回的远程认证报告,对远程认证报告进行有效性验证;
在确定远程认证报告为有效认证报告时,将远程认证报告上链至目标区块链节点所属的区块链中;上链至区块链的远程认证报告,用于服务提供对象从区块链中获取远程认证报告,并基于远程认证报告为可信应用程序提供服务。
应当理解,本申请实施例中所描述的计算机设备8000可执行前文图2到图4所对应实施例中对该基于区块链的数据处理方法的描述,也可执行前文图10所对应实施例中对该基于区块链的数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理的计算机设备8000所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图2到图4所对应实施例中对上述基于区块链的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (16)
1.一种基于区块链的数据处理方法,其特征在于,包括:
在到达应用认证时刻时,目标区块链节点向应用设备发送远程认证请求;所述应用设备包括可信应用程序;所述可信应用程序运行于所述应用设备的第一可信执行环境中,所述第一可信执行环境与所述应用设备的操作系统相互隔离;所述远程认证请求用于请求验证所述可信应用程序的安全性;
接收所述应用设备基于所述远程认证请求所返回的远程认证报告,对所述远程认证报告进行有效性验证;
在确定所述远程认证报告为有效认证报告时,将所述远程认证报告上链至所述目标区块链节点所属的区块链中;上链至所述区块链的所述远程认证报告,用于服务提供对象从所述区块链中获取所述远程认证报告,并基于所述远程认证报告为所述可信应用程序提供服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述应用认证时刻时,所述目标区块链节点在所述区块链中获取目标区块;所述目标区块是指所述区块链中,具有最大生成时间戳的区块;
将所述目标区块的区块头信息确定为请求参数,生成包含所述请求参数的所述远程认证请求。
3.根据权利要求2所述的方法,其特征在于,在所述应用认证时刻时,所述目标区块链节点在所述区块链中获取目标区块,包括:
在所述应用认证时刻时,所述目标区块链节点获取区块链节点集合中,每个区块链节点分别对应的区块高度;所述区块链节点集合中的每个区块链节点均属于所述区块链;
将所述区块链节点集合中,区块高度为最大区块高度的区块链节点确定为同步节点;
将所述同步节点所存储的区块确定为参考区块,将所述目标区块链节点所存储的区块确定为本地区块;
确定所述参考区块与所述本地区块之间的差异区块,将所述差异区块中具有最大生成时间戳的区块确定为所述目标区块。
4.根据权利要求1所述的方法,其特征在于,所述远程认证报告是由远程认证签名组件基于应用开发对象的公钥,对本地认证报告中的第一签名信息进行验签,且在验签通过后对所述本地认证报告进行封装后所得到的;所述本地认证报告是由所述可信应用程序基于所述远程认证请求所生成的认证报告;所述第一签名信息是由所述可信应用程序基于所述应用开发对象的私钥,对所述本地认证报告进行签名后所得到的;所述应用开发对象是指开发所述可信应用程序的对象;所述远程认证报告包含第二签名信息;所述第二签名信息是由所述远程认证签名组件基于签名密钥,对所述远程认证报告进行签名后所得到的;所述远程认证签名组件运行于第二可信执行环境中,运行于所述第二可信执行环境中的所述远程认证签名组件用于为所述可信应用程序的认证报告提供远程认证签名服务。
5.根据权利要求1所述的方法,其特征在于,所述远程认证报告包含第二签名信息,所述第二签名信息是由远程认证签名组件基于签名密钥,对所述远程认证报告进行签名后所得到的;所述远程认证签名组件运行于所述应用设备的第二可信执行环境中,运行于所述第二可信执行环境中的所述远程认证签名组件,用于为所述可信应用程序的认证报告提供远程认证签名服务;
所述对所述远程认证报告进行有效性验证,包括:
将所述远程认证报告发送至所述远程认证服务器;所述远程认证服务器是指用于为所述第一可信执行环境提供远程认证服务的服务器;
接收所述远程认证服务器所返回的报告认证结果;所述报告认证结果包含所述远程认证服务器基于所述第二签名信息,对所述远程认证报告进行验证后的验证结果;
根据所述报告认证结果对所述远程认证报告进行可信性验证;
若确定所述远程认证报告为可信认证报告,则获取所述远程认证报告中所包含的待验证区块头信息,根据所述待验证区块头信息对所述远程认证报告进行有效性验证;
若确定所述远程认证报告为不可信认证报告,则确定所述远程认证报告为无效认证报告。
6.根据权利要求5所述的方法,其特征在于,所述报告认证结果包含第三签名信息;所述第三签名信息是由所述远程认证服务器基于所述远程认证服务器的私钥,对所述报告认证结果进行签名后所得到的;
所述根据所述报告认证结果对所述远程认证报告进行可信性验证,包括:
获取所述远程认证服务器的公钥,基于所述远程认证服务器的公钥对所述第三签名信息进行验签,得到针对所述第三签名信息的验签结果;
若针对所述第三签名信息的验签结果为验签通过结果,则获取所述远程认证服务器的数字证书,根据所述远程认证服务器的数字证书对所述远程认证服务器进行身份验证,得到所述远程认证服务器的身份验证结果,根据所述远程认证服务器的身份验证结果对所述远程认证报告进行可信性验证;
若针对所述第三签名信息的验签结果为验签未通过结果,则确定所述远程认证报告为不可信认证报告。
7.根据权利要求6所述的方法,其特征在于,所述第一可信执行环境与所述第二可信执行环境均基于应用程序隔离平台所创建;所述远程认证服务器属于所述应用程序隔离平台,所述远程认证服务器的数字证书,由所述应用程序隔离平台中的可信服务器为所述远程认证服务器所颁发;
所述根据所述远程认证服务器的数字证书对所述远程认证服务器进行身份验证,得到所述远程认证服务器的身份验证结果,包括:
获取所述远程认证服务器的数字证书中所包含的第四签名信息;所述第四签名信息是由所述可信服务器,基于所述可信服务器的私钥对所述数字证书进行签名后所得到的;
获取所述可信服务器的公钥,基于所述可信服务器的公钥对所述第四签名信息进行验签;
若所述第四签名信息的验签结果为验签通过结果,则将所述远程认证服务器的身份验证结果确定为合法身份结果;
若所述第四签名信息的验签结果为验签未通过结果,则将所述远程认证服务器的身份验证结果确定为异常身份结果。
8.根据权利要求6所述的方法,其特征在于,所述根据所述远程认证服务器的身份验证结果对所述远程认证报告进行可信性验证,包括:
若所述身份验证结果为合法身份结果,则获取所述报告认证结果所指示的环境属性,根据所述报告认证结果所指示的环境属性,对所述远程认证报告进行可信性验证;所述环境属性是指所述第一可信执行环境的属性;
若所述身份验证结果为异常身份结果,则确定所述远程认证报告为无效认证报告。
9.根据权利要求8所述的方法,其特征在于,所述根据所述报告认证结果所指示的环境属性,对所述远程认证报告进行可信性验证,包括:
若所述环境属性为环境可信属性,则确定所述远程认证报告为可信认证报告;
若所述环境属性为环境不可信属性,则确定所述远程认证报告为不可信认证报告。
10.根据权利要求5所述的方法,其特征在于,所述远程认证请求中包含目标区块的区块头信息;所述目标区块是指在所述应用认证时刻时,所述区块链中具有最大生成时间戳的区块;
所述根据所述待验证区块头信息对所述远程认证报告进行有效性验证,包括:
将所述目标区块的区块头信息中,所包含的所述目标区块的区块哈希值,确定为目标区块哈希值;
将所述待验证区块头信息中,所包含的区块哈希值确定为待验证区块哈希值;
将所述目标区块哈希值与所述待验证区块哈希值进行匹配;
若所述目标区块哈希值与所述待验证区块哈希值匹配成功,则确定所述远程认证报告为有效认证报告;
若所述目标区块哈希值与所述待验证区块哈希值匹配失败,则确定所述远程认证报告为无效认证报告。
11.根据权利要求1所述的方法,其特征在于,所述远程认证报告中包含通信密钥对中的第一通信密钥;所述通信密钥对是由所述可信应用程序基于所述远程认证请求所生成的密钥对;所述通信密钥对还包含第二通信密钥,所述第二通信密钥具备加密数据的解密权限;所述加密数据是指基于所述第一通信密钥进行加密的数据;
所述方法还包括:
接收所述服务提供对象发送的查阅请求;所述查阅请求用于请求查阅所述远程认证报告;
将所述远程认证报告返回至所述服务提供对象;
接收所述服务提供对象基于所述远程认证报告所返回的目标加密信息;所述目标加密信息包括目标加密数据与目标加密密钥;所述目标加密密钥是指采用所述第一通信密钥对数据密钥进行加密后所得到的加密密钥;所述目标加密数据是指由所述服务提供对象基于所述数据密钥将服务数据进行加密后所得到的数据;所述数据密钥为所述服务提供对象所生成的用于为所述服务数据进行加密的密钥;
将所述目标加密信息上链至所述区块链中。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
将所述目标加密信息发送至所述应用设备的可信应用程序,以使所述可信应用程序基于所述第二通信密钥对所述目标加密密钥进行解密,得到所述数据密钥,并基于所述数据密钥对所述目标加密数据进行解密,得到所述服务数据。
13.一种基于区块链的数据处理装置,其特征在于,包括:
请求发送模块,用于在到达应用认证时刻时,目标区块链节点向应用设备发送远程认证请求;所述应用设备包括可信应用程序;所述可信应用程序运行于所述应用设备的第一可信执行环境中,所述第一可信执行环境与所述应用设备的操作系统相互隔离;所述远程认证请求用于请求验证所述可信应用程序的安全性;
报告接收模块,用于接收所述应用设备基于所述远程认证请求所返回的远程认证报告;
报告验证模块,用于对所述远程认证报告进行有效性验证;
报告上链模块,用于在确定所述远程认证报告为有效认证报告时,将所述远程认证报告上链至所述目标区块链节点所属的区块链中;上链至所述区块链的所述远程认证报告,用于服务提供对象从所述区块链中获取所述远程认证报告,并基于所述远程认证报告为所述可信应用程序提供服务。
14.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供网络通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使所述计算机设备执行权利要求1-12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行权利要求1-12任一项所述的方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,所述计算机程序适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211422900.6A CN117014176A (zh) | 2022-11-14 | 2022-11-14 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211422900.6A CN117014176A (zh) | 2022-11-14 | 2022-11-14 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117014176A true CN117014176A (zh) | 2023-11-07 |
Family
ID=88560718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211422900.6A Pending CN117014176A (zh) | 2022-11-14 | 2022-11-14 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117014176A (zh) |
-
2022
- 2022-11-14 CN CN202211422900.6A patent/CN117014176A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110933108B (zh) | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 | |
CN112214780B (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
CN111541785B (zh) | 基于云计算的区块链数据处理方法及装置 | |
US10284376B2 (en) | Code signing system with machine to machine interaction | |
US10657293B1 (en) | Field-programmable gate array based trusted execution environment for use in a blockchain network | |
CN113691597B (zh) | 区块链合约部署方法、装置、设备以及存储介质 | |
CN112422532B (zh) | 业务通信方法、系统、装置及电子设备 | |
US10284374B2 (en) | Code signing system with machine to machine interaction | |
KR101744747B1 (ko) | 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법 | |
CN116490868A (zh) | 用于可信执行环境中的安全快速机器学习推理的系统和方法 | |
CN112035895A (zh) | 一种基于交易方式的电子合同取证方法及系统 | |
CN112035863B (zh) | 一种基于智能合约方式的电子合同取证方法及系统 | |
CN114861144A (zh) | 基于区块链的数据权限处理方法 | |
CN114372245A (zh) | 基于区块链的物联网终端认证方法、系统、设备及介质 | |
CN117014176A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117040766B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
US20230155842A1 (en) | Method and apparatus for certifying an application-specific key and for requesting such certification | |
CN116781268A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN116980155A (zh) | 区块链网络的数据处理方法、装置、产品、设备和介质 | |
CN117294753A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN117454359A (zh) | 数据处理方法、装置、设备以及介质 | |
CN116707813A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN116996226A (zh) | 区块链中的虚拟资产处理方法、装置、设备以及介质 | |
CN116226932A (zh) | 业务数据校验方法、装置、计算机介质及电子设备 | |
CN118075285A (zh) | 区块链数据处理方法、装置、计算机设备、介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |