掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 19:40:14


一种数据处理方法、装置、设备及存储介质

技术领域

本申请涉及计算机技术领域,具体涉及一种数据处理方法、一种数据处理装置、一种计算机设备及一种计算机可读存储介质。

背景技术

随着计算机技术的不断发展,越来越多的数据被存储在计算机设备中。以票务数据为例,票务管理人员从网络中同步所需的票务数据(如与票务管理人员所在部门相关的票务数据)后,通常需要将这些票务数据在计算机设备中进行存证。实践发现,一个计算机设备可能会被多个对象使用,计算机设备中的数据存在泄漏和被篡改的风险,安全性较低。

发明内容

本申请实施例提供了一种数据处理方法、装置、设备及存储介质,能够提高数据的安全性。

一方面,本申请实施例提供了一种数据处理方法,该方法包括:

获取密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文;

在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并向密钥获取请求的请求方返回第一密钥的明文;

获取待验证数据,待验证数据是密钥获取请求的请求方采用第一密钥的明文对目标数据进行加密得到的;

对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。

一方面,本申请实施例提供了一种数据处理方法,该方法包括:

向可信执行环境发送密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文;

在目标账户的令牌验证通过的情况下,接收可信执行环境返回的第一密钥的明文,并采用第一密钥的明文对目标数据进行加密,得到待验证数据;

向可信执行环境提供待验证数据,以使可信执行环境对待验证数据进行完整性校验;

若待验证数据通过完整性校验,则接收可信执行环境返回的待验证数据的有效性证明,并对待验证数据和待验证数据的有效性证明进行关联存储。

一方面,本申请实施例提供了一种数据处理装置,该处理装置包括:

获取单元,用于获取密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文;

处理单元,用于在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并向密钥获取请求的请求方返回第一密钥的明文;

获取单元,还用于获取待验证数据,待验证数据是密钥获取请求的请求方采用第一密钥的明文对目标数据进行加密得到的;

处理单元,还用于对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。

在一种实施方式中,处理单元还用于:

获取登录信息,登录信息包括目标账户的标识和目标账户的令牌;

在目标账户的令牌验证通过的情况下,为目标账户分配密钥组,密钥组包括第一密钥和第二密钥;

向登录信息的提供方返回第一密钥的密文,第一密钥的密文是采用第二密钥对第一密钥的明文进行加密得到的。

在一种实施方式中,处理单元用于,根据第一密钥的密文确定第一密钥的明文,具体用于:

获取与第一密钥的密文关联的第二密钥;

采用第二密钥对第一密钥的密文进行解密处理,得到第一密钥的明文。

在一种实施方式中,数据处理方法在计算机设备中的可信执行环境中执行,处理单元用于,获取与第一密钥的密文关联的第二密钥,具体用于:

根据目标账户的标识和预设参数,生成与第一密钥的密文关联的第二密钥;

预设参数包括:可信执行环境中存储的计算机设备的序列号。

在一种实施方式中,处理单元用于,向密钥获取请求的请求方返回待验证数据的有效性证明,具体用于:

计算待验证数据的总和校验码;

对总和校验码进行签名,得到总和校验码关联的签名数据;

基于总和校验码和总和校验码关联的签名数据,生成待验证数据的有效性证明;

向密钥获取请求的请求方返回待验证数据的有效性证明,以使密钥获取请求的请求方对待验证数据和有效性证明进行关联存储。

在一种实施方式中,处理单元还用于:

检测当前时刻是否属于目标账户的令牌的有效周期;

若当前时刻不属于目标账户的令牌的有效周期,则向目标账户的密钥获取请求的请求方发送续期通知,以使目标账户的密钥获取请求的请求方提供新的令牌。

在一种实施方式中,目标数据是通过目标账户登录至区块链网络后,对区块链网络中的数据进行同步得到的;处理单元还用于:

获取目标账户的令牌,目标账户的令牌是目标账户的密钥获取请求的请求方检测到目标账户从区块链网络中退出登录时提供的;

对目标账户的令牌进行无效化处理。

一方面,本申请实施例提供了一种数据处理装置,该处理装置包括:

处理单元,用于向可信执行环境发送密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文;

接收单元,用于在目标账户的令牌验证通过的情况下,接收可信执行环境返回的第一密钥的明文,并采用第一密钥的明文对目标数据进行加密,得到待验证数据;

处理单元,还用于向可信执行环境提供待验证数据,以使可信执行环境对待验证数据进行完整性校验;

接收单元,还用于若待验证数据通过完整性校验,则接收可信执行环境返回的待验证数据的有效性证明;

处理单元,还用于对待验证数据和待验证数据的有效性证明进行关联存储。

在一种实施方式中,处理单元还用于:

通过待验证数据的有效性证明对待验证数据进行完整性校验;

若待验证数据通过完整性校验,则采用第一密钥的明文对待验证数据进行解密,得到目标数据。

在一种实施方式中,处理单元还用于:

向可信执行环境发送登录信息,登录信息包括目标账户的标识和目标账户的令牌;

接收可信执行环境返回的第一密钥的密文;

其中,第一密钥的密文是采用第二密钥对第一密钥的明文进行加密得到的,第一密钥和第二密钥是可信执行环境基于目标账户的标识生成的。

相应地,本申请提供了一种计算机设备,该设备包括:

处理器,用于加载并执行计算机程序;

计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时,实现上述数据处理方法。

相应地,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行上述数据处理方法。

相应地,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据处理方法。

本申请实施例中,获取密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文,在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并向密钥获取请求的请求方返回第一密钥的明文,获取待验证数据,待验证数据是密钥获取请求的请求方采用第一密钥的明文对目标数据进行加密得到的,对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。可见,通过第一密钥的明文对目标数据进行加密,可以降低目标数据泄露的风险;通过生成待验证数据的有效性证明,可以较好地保证目标数据的完整性和有效性,从而提高数据的安全性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a为本申请实施例提供的一种数据共享系统的架构示意图;

图1b为本申请实施例提供的一种区块链的结构示意图;

图1c为本申请实施例提供的一种生成区块的流程示意图;

图1d为本申请实施例提供的一种双层网络的架构示意图;

图1e为本申请实施例提供的一种基于双层网络的电子发票业务的场景架构图;

图1f为本申请实施例提供的一种数据处理流程示意图;

图1g为本申请实施例提供的一种数据处理的应用场景图;

图2为本申请实施例提供的一种数据处理方法的流程示意图;

图3为本申请实施例提供的另一种数据处理方法的流程示意图;

图4为本申请实施例提供的再一种数据处理方法的流程示意图;

图5为本申请实施例提供的一种数据处理装置的结构示意图;

图6为本申请实施例提供的另一种数据处理装置的结构示意图;

图7为本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例涉及区块链技术,下面对区块链技术的相关术语及概念进行简要介绍:

区块链(Blockchain),是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于校验其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

区块链网络可以理解为一个数据共享系统100,数据共享系统100可是指用于进行节点与节点之间数据共享的系统,该数据共享系统100的一种示例性结构可参见图1a;如图1a所示,数据共享系统100是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点101,多个节点101可以是指数据共享系统中各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其它节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。

对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其它节点的节点标识,以便后续根据其它节点的节点标识,将生成的区块广播至数据共享系统中的其它节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其它任一种能够用于标识该节点的信息;例如,节点的标识还可以是二进制序列码(如110001110),表1中仅以IP地址为例进行说明:

表1

数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。

在生成区块链中的各个区块时,参见图1c,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:

SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))

其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。

这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其它节点的节点标识,将新生成的区块广播给其所在的数据共享系统中的其它节点,由其它节点对新生成的区块进行共识校验,并在完成共识校验后将新生成的区块添加至其存储的区块链中。其中,节点可通过共识算法对新生成的区块进行共识校验,共识算法可包括但不限于:

1)Pow(Proof-of-Work,工作量证明):

工作量证明是指系统(如前述的数据共享系统)为达到某一目标而设置的度量方法。简单理解就是一份证明,用来确认工作量。本质是谁做的工作多,谁就更有机会获得额外奖励。工作量证明是由区块链网络中的节点通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,区块链网络中的其他节点校验后一起存储。这使得工作量证明具有如下优势:完全去中心化,节点自由进出。

2)Pos(proof-of-stake,权益证明):

Pos权益证明是Pow工作量证明的一种升级共识机制;具体地,谁持有电子资源的时间越长(持有电子资源的时间长度=持有电子资源的数量*持有电子资源的时间),谁更有机会获取区块的记账权,其中,电子资源可以是指以电子形式存储于电子账户中、且能够通过互联网进行流通的资源;根据每个节点所占电子资源的比例和时间;等比例的降低工作量证明的获取难度,从而加快找随机数的速度。Pos权益证明在一定程度上缩短了共识达成的时间,但仍然需要计算随机数。

3)DPos(Delegated Proof of Stake,委托权益证明)股份授权证明机制:

DPos股份授权证明机制类似于董事会投票,持有电子资源的人投出一定数量的节点,代理他们进行校验和记账。为了激励更多人参与竞选,系统会生成少量电子资源作为奖励。DPos股份授权证明机制是让每一个持有比特股的人进行投票,由此产生101位代表,我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。如果选出的代表不能履行他们的职责(当轮到他们时,没能生成区块),那么这些代表会被除名,网络会选出新的超级节点来取代他们。这使得DPos股份授权证明机制能够大幅缩小参与校验和记账节点的数量,可以达到秒级的共识校验,但整个共识机制还是依赖于电子资源。

4)pbft(Practical Byzantine Fault Tolerance,拜占庭容错算法):

pbft拜占庭容错算法是一种基于消息传递的一致性算法,算法经过三个阶段达成一致性,这些阶段可能因为失败而重复进行。具体地,假设节点总数为3f+1,f为拜赞庭错误节点,首先,当节点发现leader(如代表节点、记账节点或超级节点)作恶时,通过算法选举其他的replica(节点)为leader。其次,leader通过pre-prepare(预准备)消息把它选择的value(值)广播给其他replica节点,其他的replica节点如果接受则发送 prepare(准备)消息,如果不接受则不发送。其次,一旦2f个节点接受prepare消息,则节点发送commit(确认)消息。最后,当2f+1个节点接受commit消息后,代表该value值被确定。上述过程使得pbft拜占庭容错算法能够共识各节点由业务的业务方或者监管方组成,安全性与稳定性由业务相关方保证;并且,共识的时延大约在2~5秒钟,基本达到商用实时处理的要求,提高共识效率,可满足高频交易量的需求。

5)Paxos(一种分布式算法)算法:

Paxos算法是一种两阶段算法,主要有三类角色,proposer(提议者)、acceptor(接受者)、learner(学习者)。proposer提出议案,acceptor同意或拒绝,learner则是获取达成共识后的最终值。Paxos算法包括两个阶段,分别为:①准备阶段:proposer 选择一个提案编号 n 并将 prepare (准备)请求发送给 acceptors 中的一个多数派;acceptor 收到prepare请示后,如果提案的编号大于它已经回复的所有 prepare请示,则 acceptor 将自己上次接受的提案回复给 proposer,并承诺不再回复小于 n 的提案。②批准阶段:当一个proposer收到了多数 acceptors 对 prepare请示的回复后,就进入批准阶段;它要向回复prepare 请求的 acceptors 发送 accept(接受)请求,包括编号 n 和value(如果没有已经接受的 value,那么它可以自由决定 value);在不违背自己向其他 proposer 的承诺的前提下,acceptor 收到 accept 请求后即接受这个请求。

Paxos算法适用于简单容错模型,即系统中只可能存在失效或故障节点,不存在恶意节点,如果失效节点数为x(x为正整数),则只需要未失效节点数为x+1就能维持系统的正常工作。

6)Raft(一种分布式共识算法)算法:

Raft算法包含三种角色,分别是:跟随者(follower),候选人(candidate)和领导者(leader)。一个节点在某一时刻只能是这三种状态的其中一种,这三种角色是可以随着时间和条件的变化而互相转换的。所有的节点初始状态都为follower,超时未收到心跳包的follower将变身candidate并广播投票请求,获得多数投票的节点将化身leader,这一轮投票的过程是谁先发出谁有利,每个节点只会给出一次投票。leader节点周期性给其他节点发送心跳包,leader节点失效将会引发新一轮的投票过程。

实际应用中,当区块链被应用于一些场景中时,例如:票据业务场景,商业机构等的数据存储场景等等;在这些场景下,区块链网络中并非所有的节点都有足够的资源和必要性成为参与区块链共识的节点。为了适应业务需求(如内外网,业务网,办公网分隔等),并进一步提高数据的安全性和保密性,本申请实施例提供了一种双层链,通过P2P(Peer toPeer,点对点)网络形成“见证子网络-共识子网络”的双层网络架构,其中,P2P网络是一种点对点连接的网络,点对点连接的各个节点称为对等节点。P2P网络基于一类特定的网络协议,使得对等节点之间不需要一个中心节点来维护网络状态,每个节点通过和相邻节点之间的广播交互,来维护全网的节点状态及其与相邻节点的连接状态。

图1d为本申请实施例提供的一种双层网络的架构图;如图1d所示,区块链网络包括见证子网络和共识子网络,业务节点部署在处于公网的见证子网络中,共识子网络中部署有运行区块链共识协议的记账节点;见证子网络和共识子网络通过路由边界进行交互。其中,见证子网络中的业务节点主要进行业务执行,不参与记账共识,并通过身份认证的方式从共识子网络中获得区块头数据和部分授权可见的区块数据。共识子网络是区块链网络中的核心网络,用于对区块链网络进行记账共识。通常来说,见证子网络和共识子网络处在不同网络环境下,见证子网络处于公有网络中,而共识子网络处于私有网络中。由于共识子网络处于相对安全的私有网络中,其互相访问本就有共识机制保证安全,不需要额外加入身份管理和网络控制。而业务节点处于公共网络中,可能会被其它不确定的网络终端访问,因此业务节点以及其它可能的节点接入共识子网络中的行为需要被严格控制。

以区块链网络是为电子发票提供共识服务的网络为例,本申请实施例提出的双层网络的场景架构示意图可参见图1e。如图1e所示,区块链网络包括:业务层、路由代理层以及核心共识网络层,业务层、路由代理层以及核心共识网络层组成了整个完整区块链业务体系;其中,①业务层处于见证子网络中,业务层包括至少一个业务节点,该业务节点具体可以是SPV节点,SPV节点维持正常的无结构P2P网络,业务节点可以处理(地方税局)税务、票据(企业开票)、支付(企业资金流动)等业务。②核心共识网络层处于共识子网络中,核心共识网络层包括各个共识集群,如共识集群102、共识集群103、……、等等,每个共识集群维护本集群内的区块链子链,例如,共识集群104维护本集群内的核心链1,共识集群105维护本集群内的核心链2。③路由代理层中包括至少一个代理节点,代理节点可以提供路由服务、认证服务、证书缓存服务、点对点(P2P)服务等;其中,证书缓存服务涉及证书体系(PKI, Public Key Infrastructure),在证书体系中,证书是一个公钥拥有者的身份证明,由权威机构进行颁发(CA)。基于公钥证书体系可以实现非对称加密和对于信息的数字签名。业务层和核心共识网络层之间通过路由代理层进行信息交互,即业务层通过路由代理层向核心共识网络层提交业务操作交互,这样路由代理层对于业务层和核心共识网络层起到了隔离的作用。

基于上述对本申请实施例涉及的双层网络的基本结构的相关介绍,下面简单介绍本申请实施例基于上述双层网络结构提出的基于区块链的数据处理方案,能够提高跨链业务的校验效率。该方案可以由图1e所示的业务层中的任一个业务节点执行。业务节点具体可以是携带有可信执行环境的终端设备或者服务器。其中,终端设备可以包括但不限于:智能手机(如Android手机、IOS手机等)、平板电脑、便携式个人计算机、移动互联网设备(MobileInternetDevices,简称MID)等设备,本申请实施例对此不做限定。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请实施例对此不做限定。

可以理解的是,在本申请的具体实施方式中,涉及到目标数据(如票务数据)的同步,当本申请以上实施例运用到具体产品或技术中时,需要获得相应地数据获取权限(如计算机设备中当前登录的账户具有数据同步权限),且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

图1f为本申请实施例提供的一种数据处理流程示意图。如图1f所示,在具体实现中,数据处理方案的大致原理如下:

(1)当数据管理员需要对目标数据进行加密存储时,向计算机设备中的可信执行环境发送密钥获取请求,密钥获取请求包括第一密钥的密文和目标账户的令牌。其中,目标账户是数据管理员所使用的账户,第一密钥的密文是数据管理员通过目标账户首次在计算机设备中登录时,可信执行环境对为目标账户分配的第一密钥的明文进行加密得到的。在一种实施方式中,当数据管理员通过目标账户首次在计算机设备中登录时,可信执行环境为目标账户分配密钥组(即一个账户对应一个密钥组),密钥组包括第一密钥和第二密钥,第一密钥的密文是采用第二密钥对第一密钥的明文进行加密后得到的,在为目标账户分配完密钥组后,可信执行环境输出第一密钥的密文,以使计算机设备对目标账户和目标账户对应的第一密钥的密文进行关联存储。

(2)可信执行环境在获取密钥获取请求后,对目标账户的令牌进行验证,若目标账户的令牌通过验证,则可信执行环境根据第一密钥的密文确定第一密钥的明文;例如,通过第二密钥对第一密钥的密文进行解密,得到第一密钥的明文。在确定第一密钥的明文后,可信执行环境向密钥获取请求的请求方(如计算机设备中的内存)返回第一密钥的明文。

(3)计算机设备在获取第一密钥的明文后,采用第一密钥的明文对目标数据进行加密,得到待验证数据。并在待验证数据满足校验条件(例如,目标数据的数量达到数量阈值,检测到目标账户的退出操作,当前时刻与待验证数据的校验周期匹配,目标数据加密完成等)时,向可信执行环境提供待验证数据。

(4)可信执行环境在获取待验证数据后,对待验证数据进行完整性校验;例如,采用第一密钥的明文对待验证数据进行解密得到解密数据,并检验解密数据与目标数据是否匹配;若匹配则判定待验证数据通过完整性校验,若不匹配则判定待验证数据未通过完整性校验。在待验证数据通过完整性校验的情况下,可信执行环境生成待验证数据的有效性证明,并向密钥请求的请求方返回待验证数据的有效性证明。在一个实施例中,可信执行环境计算待验证数据的总和校验码,并对总和校验码进行签名;将总和校验码和总和校验码的签名打包为待验证数据的有效性证明,并向密钥请求的请求方返回有效性证明,以使密钥请求的请求方对待验证数据和待验证数据的有效性证明进行关联存储。

图1g为本申请实施例提供的一种数据处理的应用场景图。如图1g所示,计算机设备为区块链网络中的业务节点,目标数据是业务节点从共识子网络中同步的票务数据,下面结合图1g对本申请提供的数据处理方案进行详细说明:

当票务管理人员通过目标账户获取到共识子网络的数据同步权限后,业务节点启动数据同步服务,调用数据同步服务获取存储器中存储的与目标账户相对应的第一密钥的密文,并向业务节点中搭载的可信执行环境请求第一密钥的明文。在一种实施方式中,业务节点调用数据同步服务向可信执行环境发送密钥获取请求,该密钥获取请求包括第一密钥的密文和目标账户的令牌;可信执行环境在接收密钥获取请求后,对目标账户的令牌进行验证,在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并将第一密钥的明文返回至数据同步服务所属的服务内存中。

在获取到第一密钥的明文后,业务节点通过数据同步服务从区块链网络中同步与目标账户相关联的票务数据(即目标数据),并采用第一密钥的明文对同步的与目标账户相关联的票务数据进行加密,得到待验证数据。在满足校验条件时(例如,同步的票务数据的数量达到数量阈值,检测到目标账户的退出操作,当前时刻与待验证数据的校验周期匹配,当前区块同步完成等),向可信执行环境提供待验证数据。可信执行环境在获取待验证数据后,对待验证数据进行完整性校验;在一种实施方式中,可信执行环境计算待验证数据的总和校验码,并对总和校验码进行签名;将总和校验码和总和校验码的签名打包为待验证数据的有效性证明,并向数据同步服务返回有效性证明。在获取到待验证数据的有效性证明后,业务节点将待验证数据、待验证数据的有效性证明与第一密钥的密文进行关联存储,以便于票务管理员在后续使用中,可以通过待验证数据的有效性证明对待验证数据进行校验;通过第一密钥的密文获取第一密钥的明文,再通过第一密钥的明文对校验通过的待验证数据进行解密得到票务数据。

需要说明的是,在区块链的场景下,目标账户具体可以是SPVID,SPVID是票务管理人员在区块链网络中注册的ID,在区块链网络中可以通过SPVID来验证票务管理人员的身份。此外,通过SPVID可以从区块链网络中查找与其相关的交易记录,可信执行环境在对待验证数据进行验证时,包括:检验待验证数据与区块链网络中的交易记录是否匹配;若匹配,则可以判定同步的待验证数据是区块链网络中通过共识的票务数据。

本申请实施例中,获取密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文,在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并向密钥获取请求的请求方返回第一密钥的明文,获取待验证数据,待验证数据是密钥获取请求的请求方采用第一密钥的明文对目标数据进行加密得到的,对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。可见,通过第一密钥的明文对目标数据进行加密,可以降低目标数据泄露的风险;通过生成待验证数据的有效性证明,可以较好地保证目标数据的完整性和有效性,从而提高数据的安全性。

基于上述描述的数据处理方案,本申请实施例提出更为详细的基于区块链的数据处理方法,下面将结合附图对本申请实施例提出的数据处理方法进行详细介绍。

图2为本申请实施例提供的一种数据处理方法的流程示意图。该数据处理方法可以由图1e所示的业务层中的任一个业务节点中的可信执行环境执行。如图2所示,该数据处理方法可包括但不限于步骤S201-S204:

S201、获取密钥获取请求。

密钥获取请求包括第一密钥的密文和目标账户的令牌。其中,目标账户是数据管理员所使用的账户,第一密钥的密文是数据管理员通过目标账户首次在计算机设备中登录时,可信执行环境对为目标账户分配的第一密钥的明文进行加密得到的。在得到第一密钥的密文后,可信执行环境输出第一密钥的密文,以使业务节点(即计算机设备)将第一密钥的密文和目标账户进行关联存储,以便于登录有目标账户的业务节点在需要使用第一密钥的明文时(如需要使用第一密钥的明文对目标数据进行加密,或者需要使用第一密钥的明文对待验证数据进行解密时),向可信执行环境提供第一密钥的密文来获取第一密钥的明文。

在一种实施方式中,当数据管理员通过目标账户首次在计算机设备中登录时,可信执行环境为目标账户分配密钥组,可以理解的是,在可信执行环境中一个账户对应一个密钥组,密钥组包括第一密钥和第二密钥。在一个实施例中,第一密钥的密文是采用第二密钥对第一密钥的明文进行加密后得到的。

S202、在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并向密钥获取请求的请求方返回第一密钥的明文。

可信执行环境在获取密钥获取请求后,对目标账户的令牌进行验证;例如,验证当前时刻是否属于目标账户的令牌的有效期。若目标账户的令牌通过验证,则可信执行环境根据第一密钥的密文确定第一密钥的明文;例如,通过第二密钥对第一密钥的密文进行解密,得到第一密钥的明文。在确定第一密钥的明文后,可信执行环境向密钥获取请求的请求方(如计算机设备中的内存)返回第一密钥的明文;又例如,第一密钥的密文和第一密钥的明文可以关联存储在可信执行环境中,可信执行环境获取第一密钥的密文后,可以查找并确认与第一密钥的密文对应的第一密钥的明文。相应地,若目标账户的令牌未通过验证,则可信执行环境输出令牌提示信息,令牌提示信息用于提示目标账户的令牌无效,若需要获取第一密钥的明文,则需要提供新的令牌进行验证。

在一种实施方式中,可信执行环境返回的第一密钥的明文存放于目标服务(如用于同步目标数据的数据同步服务,即密钥获取请求的请求方为数据同步服务)所属的内存中,仅用于对目标数据进行加密,并不会对外暴露,也就是说目标账户的数据管理员无法从业务节点中获取到第一密钥的明文。因此,在每次需要使用第一密钥的明文时(如对目标数据进行加密,或者对待验证数据进行解密),均需要从可信执行环境中获取,进一步降低了目标数据泄露的风险,提高了目标数据的安全性。

S203、获取待验证数据。

待验证数据是密钥获取请求的请求方(如业务节点)采用第一密钥的明文对目标数据进行加密得到的。在一种实施方式中,计算机设备在获取第一密钥的明文后,采用第一密钥的明文对目标数据进行加密,得到待验证数据;其中,目标数据可以是数据管理员输入的数据,也可以是数据管理员从网络中(如区块链中)同步的数据。计算机设备在待验证数据满足校验条件(例如,目标数据的数量达到数量阈值,检测到目标账户的退出操作,当前时刻与待验证数据的校验周期匹配,目标数据加密完成等)时,向可信执行环境提供待验证数据。

S204、对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。

可信执行环境在获取待验证数据后,对待验证数据进行完整性校验;例如,采用第一密钥的明文对待验证数据进行解密得到解密数据,并检验解密数据与目标数据是否匹配;若匹配则判定待验证数据通过完整性校验,若不匹配则判定待验证数据未通过完整性校验。

在待验证数据通过完整性校验的情况下,可信执行环境生成待验证数据的有效性证明,并向密钥请求的请求方返回待验证数据的有效性证明。在一种实施方式中,可信执行环境计算待验证数据的总和校验码,并对总和校验码进行签名;将总和校验码和总和校验码的签名打包为待验证数据的有效性证明,并向密钥请求的请求方返回有效性证明,以使密钥请求的请求方对待验证数据和待验证数据的有效性证明进行关联存储。

本申请实施例中,获取密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文,在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并向密钥获取请求的请求方返回第一密钥的明文,获取待验证数据,待验证数据是密钥获取请求的请求方采用第一密钥的明文对目标数据进行加密得到的,对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。可见,通过第一密钥的明文对目标数据进行加密,可以降低目标数据泄露的风险;通过生成待验证数据的有效性证明,可以较好地保证目标数据的完整性和有效性,从而提高数据的安全性。

图3为本申请实施例提供的另一种数据处理方法的流程示意图。该数据处理方法可以由图1e所示的业务层中的任一个业务节点中的可信执行环境执行。如图3所示,该数据处理方法可包括但不限于步骤S301-S307:

S301、获取登录信息。

登录信息包括目标账户的标识和目标账户的令牌。在一种实施方式中,登录信息用于登录至区块链网络;在一个实施例中,票务管理员通过已在区块链网络上注册的ID(如SPVID),以及有限时间内的SPVID的登录授权码(即目标账户的令牌)登录至区块链网络。其中,区块链网络具体可以是指图1d所示的双层网络中的共识子网络。

在上述登录过程中,登录信息还会提供给业务节点中的可信执行环境;例如,通过数据同步服务向可信执行环境提供登录信息。

S302、在目标账户的令牌验证通过的情况下,为目标账户分配密钥组。

可信执行环境在获取登录信息后,对目标账户的令牌进行验证。在一种实施方式中,可信执行环境中内置有身份验证服务,身份验证服务可以对目标账户的令牌进行非对称密钥验证。身份验证服务可以对目标账户的令牌进行非对称密钥验证包括:通过非对称密钥检测当前时刻是否属于目标账户的令牌的有效周期;若当时时刻属于目标账户的令牌的有效周期,则判定目标账户的令牌通过验证;若当前时刻不属于目标账户的令牌的有效周期,则判定目标账户的令牌未通过验证。

在目标账户的令牌验证通过的情况下,为目标账户分配密钥组。可以理解的是,在可信执行环境中,每个账户对应一个密钥组。在一种实施方式中,密钥组包括第一密钥和第二密钥,可信执行环境采用第二密钥对第一密钥的明文进行加密,得到第一密钥的密文。在一个实施例中,第一密钥关联的加密算法可以是SM4算法。

S303、向登录信息的提供方返回第一密钥的密文。

可信执行环境在得到第一密钥的密文后,输出第一密钥的密文,以使业务节点对目标账户和第一密钥的密文进行关联存储,以便于登录有目标账户的业务节点在需要使用第一密钥的明文时(如需要使用第一密钥的明文对目标数据进行加密,或者需要使用第一密钥的明文对待验证数据进行解密时),向可信执行环境提供第一密钥的密文来获取第一密钥的明文。

S304、获取密钥获取请求。

步骤S304的具体实施方式可参考图2中步骤S201的实施方式,在此不再赘述。

S305、在目标账户的令牌验证通过的情况下,获取与第一密钥的密文关联的第二密钥,并采用第二密钥对第一密钥的密文进行解密处理,得到第一密钥的明文。

可信执行环境在获取密钥获取请求后,对目标账户的令牌进行验证。对目标账户的令牌进行验证的具体实施方式,可参考步骤S302中对目标账户的令牌进行非对称密钥验证的实施方式,在此不再赘述。

在目标账户的令牌验证通过的情况下,可信执行环境获取与第一密钥的密文关联的第二密钥。在一种实施方式中,可信执行环境根据目标账户的标识和预设参数(如可信执行环境中存储的计算机设备的内存的序列号,可信执行环境的证书编号等内部特定参数),生成与第一密钥的密文关联的第二密钥。也就是说,可信执行环境中无需存储与第一密钥的密文关联的第二密钥,可以较好地节省存储空间。

在获取与第一密钥的密文关联的第二密钥后,可信执行环境采用与第一密钥的密文关联的第二密钥对第一密钥的密文进行解密处理,得到第一密钥的明文,并向密钥获取请求的提供方返回第一密钥的明文。

S306、获取待验证数据。

步骤S306的具体实施方式可参考图2中步骤S203的实施方式,在此不再赘述。

在一个实施例中,在密钥获取请求的提供方生成待验证数据的过程中,可信执行环境可以周期性地对目标账户的令牌进行验证。具体地,检测当前时刻是否属于目标账户的令牌的有效周期;若当前时刻属于目标账户的令牌的有效周期,则获取待验证数据,并继续执行后续步骤S307;若当前时刻不属于目标账户的令牌的有效周期,则向目标账户的密钥获取请求的请求方发送续期通知,以使目标账户的密钥获取请求的请求方提供新的令牌;进一步地,若目标账户的密钥获取请求的请求方无法提供新的有效令牌,则结束本次操作。

S307、对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。

待验证数据是密钥获取请求的请求方采用第一密钥的明文对目标数据进行加密得到的。

在一种实施方式中,目标数据是密钥获取请求的请求方从区块链网络中同步的与自身相关联的数据(如票务数据、交易数据等),也就是目标数据是对区块链网络中的数据进行同步得到的。待验证数据是密钥获取请求的请求方检测到目标账户的退出操作时,向可信执行环境发送的。

一方面,可信执行环境采用第一密钥的明文对待验证数据进行解密处理,得到目标数据;将目标数据与区块链中与密钥获取请求的请求方相关联的数据进行比对,以确定待验证数据的完整性。具体地,若目标数据与区块链中与密钥获取请求的请求方相关联的数据匹配,则判定待验证数据通过完整性校验;若目标数据与区块链中与密钥获取请求的请求方相关联的数据不匹配,则判定待验证数据未通过完整性校验。

在待验证数据通过完整性校验的情况下,可信执行环境计算待验证数据的总和校验码;并对总和校验码进行签名,得到总和校验码关联的签名数据。可信执行环境基于总和校验码和总和校验码关联的签名数据,生成待验证数据的有效性证明;例如,将总和校验码和总和校验码关联的签名数据打包为待验证数据的有效性证明。此外,有效性证明还可以包括生成时间等相关信息。在得到待验证数据的有效性证明后,可信执行环境向密钥获取请求的请求方返回待验证数据的有效性证明,以使密钥获取请求的请求方对待验证数据和有效性证明进行关联存储。

另一方面,当目标账户的密钥获取请求的请求方检测到目标账户从区块链网络中退出登录时,向可信执行环境提供目标账户的令牌,可信执行环境获取目标账户的令牌,并对目标账户的令牌进行无效化处理,即将目标账户当前的令牌设置为无效。也就是说,在同步区块链数据的场景下,同一个对象每次登录区块链网络所使用的令牌是不同的。可见,通过动态变化的令牌对对象进行身份验证,可以进一步提高数据的安全性。

下面以目标数据为区块链网络中的税务数据为例对本申请提供的数据处理方法进行详细说明:

(1)开票员通过目标账户(SPVID)和目标账户的令牌(Auth Token)在SPV节点(税务管理端)进行登录。其中,SPVID是开票员独有的已在区块链上注册的ID;Auth Token是有限时间内的登录授权码。

(2)登录完成后,SPV节点通过数据同步服务将SPVID和AuthToken传入可信执行环境(TEE)的秘钥生成服务中,TEE内置了对于Auth Token的非对称秘钥验证,能够对AuthToken进行验证。Auth Token通过验证后,TEE为SPVID初始化一组秘钥,分别为数据加密秘钥(Key1),秘钥加密秘钥(Key2)。其中,Key1用于对从区块链网络中同步的发票数据进行加密,Key2用于加密Key1, Key2是有TEE内部特定参数结合SPVID共同生成的,不会存放在TEE外部, Key1由Key2加密后,存放在SPV节点的本地磁盘中。

(3)在后续SPV节点启动过程中,首先使用AuthToken向TEE获取到Key1的明文,存储在数据同步服务所属的内存中,在同步到和自身有关的链上发票数据后,通过Key1对发票数据进行数据加密后再存储。

(4)AuthToken在使用过程中会出现过期;例如,AuthToken的有效时长为2小时;又例如,AuthToken在目标账户退出时过期。因此,AuthToken需要定时续期。

(5)当SPV节点检测到当前登录的SPVID的退出操作时,首先在内存中销毁Key1。完成退出前的准备工作后,将AuthToken发送给TEE中的退出程序,此时TEE退出程序执行以下几个步骤:

(5.1)将AuthToken设置为在其有效期内对TEE不再有效,即对AuthToken进行无效化处理。

(5.2)对待验证数据进行完整性校验,并在完整性校验通过后计算待验证数据(采用Key1的明文对发票数据进行加密得到)的总和校验码(checksum)。TEE提供对于checksum的签名,并将checksum和签名组合成有效性证明,以文件的形式存储在SPV节点中。

(5.3)检查待验证数据是否已存储在SPV节点中。

(6)步骤(5)完成后,当前开票员可退出,待验证数据被安全加密后存储在SPV节点中,此外SPV节点中还包括待验证数据的完整性证明,Key1的密文等。当前开票员在下次登录时,在AuthToken通过TEE验证后,就可以在检查完这部分数据的完整性后,重新使用待验证数据。

(7)新的开票员,则通过步骤(1)-(5)的过程,通过TEE初始化,并使用自身账户所对应的加密数据空间。

本申请实施例中,获取密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文,在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并向密钥获取请求的请求方返回第一密钥的明文,获取待验证数据,待验证数据是密钥获取请求的请求方采用第一密钥的明文对目标数据进行加密得到的,对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。可见,通过第一密钥的明文对目标数据进行加密,可以降低目标数据泄露的风险;通过生成待验证数据的有效性证明,可以较好地保证目标数据的完整性和有效性,从而提高数据的安全性。

图4为本申请实施例提供的再一种数据处理方法的流程示意图。该数据处理方法可以由图1e所示的业务层中的任一个业务节点中的内存执行。如图4所示,该数据处理方法可包括但不限于步骤S401-S406:

S401、向可信执行环境发送登录信息。

登录信息包括目标账户的标识和目标账户的令牌。在一种实施方式中,登录信息用于登录至区块链网络,以获取区块链网络中数据的数据同步权限。

S402、接收可信执行环境返回的第一密钥的密文。

第一密钥的密文是采用第二密钥对第一密钥的明文进行加密得到的,第一密钥和第二密钥是可信执行环境基于目标账户的标识生成的。可信执行环境基于目标账户的标识为目标账户分配第一密钥和第二密钥的具体实施方式可参考图3中步骤S302的实施方式,在此不再赘述。

在一种实施方式中,业务节点在接收第一密钥的密文后,将目标账户的标识与第一密钥的密文进行关联存储。

S403、向可信执行环境发送密钥获取请求。

当需要使用第一密钥的明文时(例如,需要对目标数据进行加密存储时,或者需要对待验证数据进行解密时),向可信执行环境发送密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文。

S404、接收可信执行环境返回的第一密钥的明文,并采用第一密钥的明文对目标数据进行加密,得到待验证数据。

第一密钥的明文是在目标账户的令牌验证通过的情况下,由可信执行环境返回至业务节点的内存中的。目标数据的加密算法可以包括但不限于:SM4算法、DES算法、RSA算法等加密算法,本申请对此不作限制。

S405、向可信执行环境发送待验证数据。

在满足校验条件时,向可信执行环境提供待验证数据,以使可信执行环境对待验证数据进行校验。其中,满足校验条件可以包括:从区块链网络中同步的票务数据的数量达到数量阈值、检测到目标账户的退出操作、当前时刻与待验证数据的校验周期匹配、当前区块同步完成。

在一种实施方式中,当业务节点检测到目标账户的退出操作时,业务节点还会向可信执行环境提供目标账户的令牌,以使可信执行环境对目标账户进行无效化处理。

S406、若待验证数据通过完整性校验,则接收可信执行环境返回的待验证数据的有效性证明,并对待验证数据和待验证数据的有效性证明进行关联存储。

待验证数据的有效性证明是待验证数据通过完整性校验后,由可信执行环境返回至业务节点的内存中的。业务节点在接收可信执行环境返回的待验证数据的有效性证明后,对待验证数据和待验证数据的有效性证明进行关联存储。

进一步地,在后续需要使用目标数据时,通过待验证数据的有效性证明对待验证数据进行完整性校验。具体地,有效性证明中包括待验证数据的第一总和校验码,以及可信执行环境的签名;首先通过可信执行环境的签名验证第一总和校验码的可信性;若第一总和校验码可信,则比较第一总和校验码与由待验证数据计算得到的第二总和校验码是否匹配,若第一总和校验码与第二总和校验码匹配,则判定待验证数据通过完整性校验。相应地,若第一总和校验码不可信,或者第一总和校验码与第二总和校验码不匹配,则判定待验证数据未通过完整性校验;若目标数据是从区块链网络中同步得到的,则可以提示对象重新从区块链网络中同步所需数据。

在待验证数据通过完整性校验的情况下,获取第一密钥的明文,具体的获取方式可参考步骤S403和步骤S404中获取第一密钥的明文的获取方式,在此不再赘述。采用第一密钥的明文对待验证数据进行解密,得到目标数据。

本申请实施例中,向可信执行环境发送密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文,在目标账户的令牌验证通过的情况下,接收可信执行环境返回的第一密钥的明文,并采用第一密钥的明文对目标数据进行加密,得到待验证数据,向可信执行环境提供待验证数据,以使可信执行环境对待验证数据进行完整性校验,若待验证数据通过完整性校验,则接收可信执行环境返回的待验证数据的有效性证明,并对待验证数据和待验证数据的有效性证明进行关联存储。可见,通过第一密钥的明文对目标数据进行加密,可以降低目标数据泄露的风险;通过生成待验证数据的有效性证明对待验证数据进行验证,可以较好地保证目标数据的完整性和有效性。

上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。

请参见图5,图5为本申请实施例提供的一种数据处理装置的结构示意图,该装置可以搭载在计算机设备上,该计算机设备可以是区块链网络中的业务节点。图5所示的数据处理装置可以用于执行上述图2和图3所描述的方法实施例中的部分或全部功能。请参见图5,各个单元的详细描述如下:

获取单元501,用于获取密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文;

处理单元502,用于在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并向密钥获取请求的请求方返回第一密钥的明文;

获取单元501,还用于获取待验证数据,待验证数据是密钥获取请求的请求方采用第一密钥的明文对目标数据进行加密得到的;

处理单元502,还用于对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。

在一种实施方式中,处理单元502还用于:

获取登录信息,登录信息包括目标账户的标识和目标账户的令牌;

在目标账户的令牌验证通过的情况下,为目标账户分配密钥组,密钥组包括第一密钥和第二密钥;

向登录信息的提供方返回第一密钥的密文,第一密钥的密文是采用第二密钥对第一密钥的明文进行加密得到的。

在一种实施方式中,处理单元502用于,根据第一密钥的密文确定第一密钥的明文,具体用于:

获取与第一密钥的密文关联的第二密钥;

采用第二密钥对第一密钥的密文进行解密处理,得到第一密钥的明文。

在一种实施方式中,数据处理方法在计算机设备中的可信执行环境中执行,处理单元502用于,获取与第一密钥的密文关联的第二密钥,具体用于:

根据目标账户的标识和预设参数,生成与第一密钥的密文关联的第二密钥;

预设参数包括:可信执行环境中存储的计算机设备的序列号。

在一种实施方式中,处理单元502用于,向密钥获取请求的请求方返回待验证数据的有效性证明,具体用于:

计算待验证数据的总和校验码;

对总和校验码进行签名,得到总和校验码关联的签名数据;

基于总和校验码和总和校验码关联的签名数据,生成待验证数据的有效性证明;

向密钥获取请求的请求方返回待验证数据的有效性证明,以使密钥获取请求的请求方对待验证数据和有效性证明进行关联存储。

在一种实施方式中,处理单元502还用于:

检测当前时刻是否属于目标账户的令牌的有效周期;

若当前时刻不属于目标账户的令牌的有效周期,则向目标账户的密钥获取请求的请求方发送续期通知,以使目标账户的密钥获取请求的请求方提供新的令牌。

在一种实施方式中,目标数据是通过目标账户登录至区块链网络后,对区块链网络中的数据进行同步得到的;处理单元502还用于:

获取目标账户的令牌,目标账户的令牌是目标账户的密钥获取请求的请求方检测到目标账户从区块链网络中退出登录时提供的;

对目标账户的令牌进行无效化处理。

根据本申请的一个实施例,图2和图3所示的数据处理方法所涉及的部分步骤可由图5所示的数据处理装置中的各个单元来执行。例如,图2中所示的步骤S201和步骤S203可由图5所示的获取单元501执行,步骤S202和步骤S204可由图5所示的处理单元502执行;图3中所示的步骤S301,步骤S304和步骤S306可由图5所示的获取单元501执行,步骤S302,步骤S303,步骤S305和步骤S307可由图5所示的处理单元502执行。图5所示的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。

根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图2和图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图5中所示的数据处理装置,以及来实现本申请实施例的数据处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。

基于同一发明构思,本申请实施例中提供的数据处理装置解决问题的原理与有益效果与本申请方法实施例中数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

请参见图6,图6为本申请实施例提供的另一种数据处理装置的结构示意图,该装置可以搭载在计算机设备上,该计算机设备可以是区块链网络中的业务节点。图6所示的数据处理装置可以用于执行上述图4所描述的方法实施例中的部分或全部功能。请参见图6,各个单元的详细描述如下:

处理单元601,用于向可信执行环境发送密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文;

接收单元602,用于在目标账户的令牌验证通过的情况下,接收可信执行环境返回的第一密钥的明文,并采用第一密钥的明文对目标数据进行加密,得到待验证数据;

处理单元601,还用于向可信执行环境提供待验证数据,以使可信执行环境对待验证数据进行完整性校验;

接收单元602,还用于若待验证数据通过完整性校验,则接收可信执行环境返回的待验证数据的有效性证明;

处理单元601,还用于对待验证数据和待验证数据的有效性证明进行关联存储。

在一种实施方式中,处理单元601还用于:

通过待验证数据的有效性证明对待验证数据进行完整性校验;

若待验证数据通过完整性校验,则采用第一密钥的明文对待验证数据进行解密,得到目标数据。

在一种实施方式中,处理单元601还用于:

向可信执行环境发送登录信息,登录信息包括目标账户的标识和目标账户的令牌;

接收可信执行环境返回的第一密钥的密文;

其中,第一密钥的密文是采用第二密钥对第一密钥的明文进行加密得到的,第一密钥和第二密钥是可信执行环境基于目标账户的标识生成的。

根据本申请的一个实施例,图4所示的数据处理方法所涉及的部分步骤可由图6所示的数据处理装置中的各个单元来执行。例如,图4中所示的步骤S401,步骤S403和步骤S405可由图6所示的处理单元601执行,步骤S402可由图6所示的接收单元602执行,步骤S404和步骤S406可由图6所示的处理单元601和接收单元602协作执行。图6所示的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。

根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图4中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6中所示的数据处理装置,以及来实现本申请实施例的数据处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。

基于同一发明构思,本申请实施例中提供的数据处理装置解决问题的原理与有益效果与本申请方法实施例中数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

请参阅图7,图7为本申请实施例提供的一种计算机设备的结构示意图,如图7所示,计算机设备至少包括处理器701、通信接口702和存储器703。其中,处理器701、通信接口702和存储器703可通过总线或其他方式连接。其中,处理器701(或称中央处理器(CentralProcessing Unit,CPU))是终端的计算核心以及控制核心,其可以解析终端内的各类指令以及处理终端的各类数据,例如:CPU可以用于解析对象向终端所发送的开关机指令,并控制终端进行开关机操作;再如:CPU可以在终端内部结构之间传输各类交互数据,等等。通信接口702可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器701的控制可以用于收发数据;通信接口702还可以用于终端内部数据的传输以及交互。存储器703(Memory)是终端中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器703既可以包括终端的内置存储器,当然也可以包括终端所支持的扩展存储器。存储器703提供存储空间,该存储空间存储了终端的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。

本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是终端中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的处理系统。并且,在该存储空间中还存放了适于被处理器701加载并执行的一条或多条的指令,这些指令可以是一个或多个的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机可读存储介质。

在一个实施例中,处理器701通过运行存储器703中的可执行程序代码,执行如下操作:

获取密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文;

在目标账户的令牌验证通过的情况下,根据第一密钥的密文确定第一密钥的明文,并向密钥获取请求的请求方返回第一密钥的明文;

获取待验证数据,待验证数据是密钥获取请求的请求方采用第一密钥的明文对目标数据进行加密得到的;

对待验证数据进行完整性校验,若待验证数据通过完整性校验,则向密钥获取请求的请求方返回待验证数据的有效性证明。

作为一种可选的实施例,处理器701通过运行存储器703中的可执行程序代码,还执行如下操作:

获取登录信息,登录信息包括目标账户的标识和目标账户的令牌;

在目标账户的令牌验证通过的情况下,为目标账户分配密钥组,密钥组包括第一密钥和第二密钥;

向登录信息的提供方返回第一密钥的密文,第一密钥的密文是采用第二密钥对第一密钥的明文进行加密得到的。

作为一种可选的实施例,处理器701根据第一密钥的密文确定第一密钥的明文的具体实施例为:

获取与第一密钥的密文关联的第二密钥;

采用第二密钥对第一密钥的密文进行解密处理,得到第一密钥的明文。

作为一种可选的实施例,数据处理方法在计算机设备中的可信执行环境中执行,处理器701获取与第一密钥的密文关联的第二密钥的具体实施例为:

根据目标账户的标识和预设参数,生成与第一密钥的密文关联的第二密钥;

预设参数包括:可信执行环境中存储的计算机设备的序列号。

作为一种可选的实施例,处理器701向密钥获取请求的请求方返回待验证数据的有效性证明的具体实施例为:

计算待验证数据的总和校验码;

对总和校验码进行签名,得到总和校验码关联的签名数据;

基于总和校验码和总和校验码关联的签名数据,生成待验证数据的有效性证明;

向密钥获取请求的请求方返回待验证数据的有效性证明,以使密钥获取请求的请求方对待验证数据和有效性证明进行关联存储。

作为一种可选的实施例,处理器701通过运行存储器703中的可执行程序代码,还执行如下操作:

检测当前时刻是否属于目标账户的令牌的有效周期;

若当前时刻不属于目标账户的令牌的有效周期,则向目标账户的密钥获取请求的请求方发送续期通知,以使目标账户的密钥获取请求的请求方提供新的令牌。

作为一种可选的实施例,目标数据是通过目标账户登录至区块链网络后,对区块链网络中的数据进行同步得到的;处理器701通过运行存储器703中的可执行程序代码,还执行如下操作:

获取目标账户的令牌,目标账户的令牌是目标账户的密钥获取请求的请求方检测到目标账户从区块链网络中退出登录时提供的;

对目标账户的令牌进行无效化处理。

在另一个实施例中,处理器801通过运行存储器803中的可执行程序代码,执行如下操作:

向可信执行环境发送密钥获取请求,密钥获取请求包括目标账户的令牌和目标账户的第一密钥的密文;

在目标账户的令牌验证通过的情况下,接收可信执行环境返回的第一密钥的明文,并采用第一密钥的明文对目标数据进行加密,得到待验证数据;

向可信执行环境提供待验证数据,以使可信执行环境对待验证数据进行完整性校验;

若待验证数据通过完整性校验,则接收可信执行环境返回的待验证数据的有效性证明,并对待验证数据和待验证数据的有效性证明进行关联存储。

作为一种可选的实施例,处理器801通过运行存储器803中的可执行程序代码,还执行如下操作:

通过待验证数据的有效性证明对待验证数据进行完整性校验;

若待验证数据通过完整性校验,则采用第一密钥的明文对待验证数据进行解密,得到目标数据。

作为一种可选的实施例,处理器801通过运行存储器803中的可执行程序代码,还执行如下操作:

向可信执行环境发送登录信息,登录信息包括目标账户的标识和目标账户的令牌;

接收可信执行环境返回的第一密钥的密文;

其中,第一密钥的密文是采用第二密钥对第一密钥的明文进行加密得到的,第一密钥和第二密钥是可信执行环境基于目标账户的标识生成的。

基于同一发明构思,本申请实施例中提供的计算机设备解决问题的原理与有益效果与本申请方法实施例中数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有一条或多条指令,一条或多条指令适于由处理器加载并执行上述方法实施例的数据处理方法。

本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例的数据处理方法。

本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的数据处理方法。

本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read-Only Memory ,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。

以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。

技术分类

06120115989435