基于区块链的版本授权控制方法、装置、设备及存储介质与流程

文档序号:26590259发布日期:2021-09-10 20:40阅读:78来源:国知局
基于区块链的版本授权控制方法、装置、设备及存储介质与流程

1.本发明实施例涉及计算机技术领域,特别涉及一种基于区块链的版本授权控制方法、装置、设备及存储介质。


背景技术:

2.近些年来,随着网络信息的发展,各种数据对象的版本迭代速度都非常快。比如,运行在终端设备上的操作系统、实现不同功能的软件、存储有用于进行入侵检测的规则特征库等。由于不同版本的数据对象可以授权给不同的用户端,因此这些数据对象都需要进行版本管理。
3.相关技术中,服务端会将用户端对应权限的数据对象加载到本地对应该用户端的存储位置上,并直接利用该存储位置上存储的数据对象为该用户端提供服务。


技术实现要素:

4.基于版本授权可控性较差的问题,本发明实施例提供了一种基于区块链的版本授权控制方法、装置、设备及存储介质,能够保证版本授权的可控性。
5.第一方面,本发明实施例提供了一种基于区块链的版本授权控制方法,所述区块链中部署有智能合约,所述方法应用于所述区块链中的节点,所述方法包括:
6.接收用户端发送的数据服务请求;
7.响应于所述数据服务请求,调用所述智能合约中声明的文件确定逻辑,确定所述用户端对应的授权文件;
8.基于所述授权文件调用所述智能合约中声明的数据获取逻辑,获取与所述用户端对应权限的目标版本数据对象;
9.利用所述目标版本数据对象为所述用户端提供服务。
10.优选地,所述数据服务请求携带加密后的所述授权文件;
11.在所述接收用户端发送的数据服务请求之前,还包括:接收所述用户端发送的授权请求;响应于所述授权请求,调用所述智能合约中声明的授权处理逻辑,生成与所述用户端对应的授权文件,并对所述授权文件进行加密,将加密后的所述授权文件发送给所述用户端,以及将用于解密所述授权文件的解密密钥存储到所述区块链上;
12.所述调用所述智能合约中声明的文件确定逻辑,确定所述用户端对应的授权文件,包括:通过所述文件确定逻辑从所述区块链上获取所述解密密钥,利用所述解密密钥对所述数据服务请求携带加密后的所述授权文件进行解密,得到所述授权文件。
13.优选地,所述授权文件中包括与所述用户端对应的授权信息;
14.所述基于所述授权文件调用所述智能合约中声明的数据获取逻辑,获取与所述用户端对应权限的目标版本数据对象,包括:
15.通过所述数据获取逻辑访问链外存储数据库,其中,所述链外存储数据库中存储有至少一个版本的数据对象;
16.根据所述授权信息从所述至少一个版本的数据对象中,获取与所述用户端对应权限的目标版本数据对象。
17.优选地,所述授权信息为授权过期时间;所述至少一个版本的数据对象分别对应有发布时间;
18.所述根据所述授权信息从所述至少一个版本的数据对象中,获取与所述用户端对应权限的目标版本数据对象,包括:
19.根据所述至少一个版本的数据对象中每一个版本数据对象的发布时间,确定发布时间早于所述授权过期时间、且距离所述授权过期时间最近的目标发布时间;
20.将所述目标发布时间对应版本的数据对象,确定为所述目标版本数据对象。
21.优选地,在所述通过所述数据获取逻辑访问链外存储数据库之前,还包括:
22.基于发布的新版本数据对象,调用所述智能合约中声明的版本加密逻辑,生成与所述新版本数据对象对应的版本密钥,利用所述版本密钥对所述新版本数据对象进行加密;
23.将所述版本密钥存储到所述区块链上;
24.将加密后的所述新版本数据对象存储至所述链外存储数据库中。
25.优选地,在所述将所述版本密钥存储到所述区块链上之后,还包括:
26.从所述区块链上获取与所述用户端对应的公钥;
27.基于所述公钥,调用所述智能合约中声明的密钥加密处理逻辑,对存储有至少一个版本密钥的密钥集合进行加密,得到与所述用户端对应的加密后的密钥集合;所述至少一个版本密钥与所述至少一个版本的数据对象一一对应;
28.将该与所述用户端对应的加密后的密钥集合存储到所述区块链上。
29.优选地,所述授权文件中还包括与所述用户端对应的私钥和与所述用户端对应的唯一标识;
30.在所述获取与所述用户端对应权限的目标版本数据对象之后,所述利用所述目标版本数据对象为所述用户端提供服务之前,还包括:
31.利用所述唯一标识在区块链中获取与所述用户端对应加密后的密钥集合;
32.利用所述私钥解密得到所述密钥集合中的至少一个版本密钥;
33.根据所述目标版本数据对象,从所述至少一个版本密钥中确定与所述目标版本数据对象对应的目标版本密钥;
34.根据所述目标版本密钥对所述目标版本数据对象进行解密,得到解密后的所述目标版本数据对象。
35.第二方面,本发明实施例还提供了一种基于区块链的版本授权控制装置,所述区块链中部署有智能合约,所述装置位于所述区块链中的节点,所述装置包括:
36.接收单元,用于接收用户端发送的数据服务请求;
37.文件确定单元,用于响应于所述数据服务请求,调用所述智能合约中声明的文件确定逻辑,确定所述用户端对应的授权文件;
38.数据对象获取单元,用于基于所述授权文件调用所述智能合约中声明的数据获取逻辑,获取与所述用户端对应权限的目标版本数据对象;
39.服务单元,用于利用所述目标版本数据对象为所述用户端提供服务。
40.第三方面,本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。
41.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。
42.本发明实施例提供了一种基于区块链的版本授权控制方法、装置、设备及存储介质,当区块链中的节点接收到用户端的数据服务请求后,不管本地与该用户端对应存储位置上是否加载有数据对象,均需要重新根据该数据服务请求获取到与用户端对应权限的目标版本数据对象,以保证为用户端提供服务时使用的数据对象的版本是该用户端具有权限的版本,以保证版本授权的可控性。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1是本发明一实施例提供的一种基于区块链的版本授权控制方法流程图;
45.图2是本发明一实施例提供的一种目标版本数据对象确定方法流程图;
46.图3是本发明一实施例提供的一种计算设备的硬件架构图;
47.图4是本发明一实施例提供的一种基于区块链的版本授权控制装置结构图;
48.图5是本发明一实施例提供的另一种基于区块链的版本授权控制装置结构图
49.图6是本发明一实施例提供的再一种基于区块链的版本授权控制装置结构图;
50.图7是本发明一实施例提供的又一种基于区块链的版本授权控制装置结构图;
51.图8是本发明另一实施例提供的一种基于区块链的版本授权控制装置结构图。
具体实施方式
52.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
53.如前所述,在相关技术中,服务端将用户端对应权限的数据对象加载到本地对应该用户端的存储位置上。服务端每当接收到用户端发起的加载请求时,确定对应该用户端的存储位置上是否存储有数据对象,如果有,则直接利用该存储位置上存储的数据对象为该用户端提供服务。然而,若用户端通过某种方式获取到未授权版本的数据对象,将该未授权版本的数据对象替换掉服务端对应该用户端的存储位置上存储的数据对象,此时该用户端是不具有服务端对应该用户端的存储位置上存储的数据对象的权限的。而服务端并未对存储位置上存储的数据对象的权限进行验证,从而导致版本授权的可控性较差。
54.当服务端对应用户端存储位置上的数据对象更换版本后,若需要更换后的版本生
效,需要用户端重新发送数据服务请求,因此,可考虑服务端每当收到用户端发送的数据服务请求后,均重新根据该数据服务请求获取与用户端对应权限的数据对象,以使为用户端提供服务时使用的数据对象的版本都是该用户端具有权限的版本。另外,可以考虑利用区块链技术实现对数据服务请求的响应,以保证响应过程中所涉及到的各参数的真实性。
55.在利用数据对象为用户端提供服务的整个过程中,涉及到的设备可以包括:发布并管理各版本数据对象的数据管理端、为用户端提供授权的授权服务器、为用户端提供服务的服务端。那么该区块链可以由发布并管理各版本数据对象的数据管理端、为用户端提供授权的授权服务器、为用户端提供服务的服务端作为区块链节点共同创建。
56.区块链一般被划分为三种类型:公有链(public blockchain),私有链(private blockchain)和联盟链(consortium blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
57.其中,去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者(即区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织:节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
58.基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
59.在区块链领域,有一个重要的概念就是账户(account);以以太坊为例,以太坊通常将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户,也称之为用户账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户,即智能合约(smart contract)。
60.在实际应用中,区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点,将这笔交易打包进区块,在区块链中进行持久化存证。
61.下面描述以上构思的具体实现方式。
62.请参考图1,本发明实施例提供了一种基于区块链的版本授权控制方法,该区块链中部署有智能合约,该方法应用于所述区块链中的节点,该方法包括:
63.步骤100,接收用户端发送的数据服务请求。
64.步骤102,响应于所述数据服务请求,调用所述智能合约中声明的文件确定逻辑,确定所述用户端对应的授权文件。
65.步骤104,基于所述授权文件调用所述智能合约中声明的数据获取逻辑,获取与所述用户端对应权限的目标版本数据对象。
66.步骤106,利用所述目标版本数据对象为所述用户端提供服务。
67.本发明实施例中,当区块链中的节点接收到用户端的数据服务请求后,不管本地与该用户端对应存储位置上是否加载有数据对象,均需要重新根据该数据服务请求获取到与用户端对应权限的目标版本数据对象,以保证为用户端提供服务时使用的数据对象的版本是该用户端具有权限的版本,以保证版本授权的可控性。
68.下面描述图1所示的各个步骤的执行方式。
69.首先,针对步骤100,接收用户端发送的数据服务请求。
70.在本发明实施例中,该数据服务请求用于向区块链中的节点请求其利用数据对象为用户端提供服务。该数据对象可以是规则库,也可以是包括软件功能的代码数据。
71.用户端发送数据服务请求的时机至少可以包括:1、用户端在获得数据对象的授权后,首次发送数据服务请求;2、节点在利用数据对象为用户端提供服务的过程中,用户端重新发送数据服务请求,以请求更换最新版本的数据对象。
72.然后,针对步骤102,响应于该数据服务请求,调用该智能合约中声明的文件确定逻辑,确定该用户端对应的授权文件。
73.在本发明一个实施例中,授权文件用于指示用户端针对数据对象所具有的权限。该授权文件由区块链上的节点生成。具体地:
74.在步骤100之前,还包括:接收该用户端发送的授权请求;响应于该授权请求,调用智能合约中声明的授权处理逻辑,生成与该用户端对应的授权文件,并对该授权文件进行加密,将加密后的该授权文件发送给该用户端,以及将用于解密该授权文件的解密密钥存储到区块链上。
75.在步骤100中,用户端发送的数据服务请求中携带该加密后的授权文件。
76.那么在本步骤102中,具体包括:通过该文件确定逻辑从区块链上获取该解密密钥,利用该解密密钥对该数据服务请求携带加密后的授权文件进行解密,得到该授权文件。
77.在本发明一个实施例中,当节点对授权文件进行加密时,针对不同用户端可以使用同一个加密密钥,相应地,不同用户端的授权文件可以使用同一个解密密钥解密,该加密密钥和解密密钥都可以存储在区块链上,每次使用时直接调用智能合约中声明的逻辑从区块链上获取到加密密钥或解密密钥,以对授权文件进行加密或解密。
78.通过将授权文件加密后发送给用户端,可以降低用户端对授权文件中的内容进行篡改的概率,从而提高授权文件的安全性。
79.在本发明一个实施例中,生成的该授权文件至少包括对应该用户端的授权信息;除此之外,该授权文件还可以包括:对应该用户端的随机密钥,和/或,对应该用户端的唯一标识。
80.在本发明一个实施例中,授权信息用于表征对该用户端授权的数据对象的版本,该授权信息可以是授权码、授权过期时间等。
81.在本发明一个实施例中,随机密钥用于解密出与该用户端对应版本的数据对象。其中,该随机密钥可以是使用任意可实现的加密算法生成的。优选地,使用非对称加密算法,生成包括由私钥和公钥的密钥对,将密钥对中的私钥放置到授权文件中,即授权文件中的随机密钥为私钥,将密钥对中的公钥存储到区块链中。
82.在本发明一个实施例中,由于不同用户端可能存在相同用户标识的情况,为了避
免该情况造成的管理混乱,可以针对用户端生成唯一标识,以保证每一个请求数据服务的用户端都对应有唯一标识。该唯一标识可以使用随机数或者随机字符串。比如,该唯一标识为“6b2224ae

5b55

488d

a18f

2d21958a2785”。
83.该授权文件中除上述几种数据以外,还可以根据实际需要在授权文件中添加其它所需字段,以实现该字段对应的目的。
84.需要说明的是,授权文件生成之后,除上述方式中将授权文件发送给用户端以由用户端将授权文件携带在数据服务请求以外,还可以使用其它方式实现本步骤102。比如,授权文件生成之后,可以将该授权文件与该用户端的用户标识的对应关系存储到区块链中,步骤100中数据服务请求携带有用户标识,利用该用户标识及区块链中存储的对应关系,可以从区块链上得到该用户端对应的授权文件。如此,授权文件存储在区块链上,且不会发送给用户端,从而可以降低授权文件被篡改的概率,提高授权文件的安全性。
85.接下来,针对步骤104,基于所述授权文件调用所述智能合约中声明的数据获取逻辑,获取与所述用户端对应权限的目标版本数据对象。
86.当步骤102中授权文件中包括与用户端对应的授权信息时,请参考图2,本步骤104可以包括:
87.步骤200,通过该数据获取逻辑访问链外存储数据库,其中,该链外存储数据库中存储有至少一个版本的数据对象。
88.在本发明一个实施例中,该至少一个版本的数据对象可以存储在区块链上,也可以存储在链外存储数据库中。由于数据对象的空间占用量较大,优选地,将该至少一个版本的数据对象存储到链外存储数据库中,以降低区块链上的存储压力。
89.由于数据对象会定期或不定期的更新,因此,数据对象可以对应至少一个版本。在本发明一个实施例中,在链外存储数据库中对该至少一个版本的数据对象的存储方式至少可以包括如下两种方式:
90.方式1、存储旧版本的数据对象,以及存储新版本相对于旧版本的更新信息。
91.在该种方式下,该旧版本的数据对象可以是基本版本的数据对象,当有新版本发布时,可以继续将新版本相对于该基本版本的数据对象的更新信息进行存储。比如,以数据对象为规则库为例,基本版本的数据对象是一个基本规则库,该基本规则库中包括有若干条规则,当有新版本发布时,可以存储的更新信息为:删除基本版本中的规则为
……
,新增规则为
……
。在该方式1下,存储的数据对象不重复,可以节省存储空间。
92.方式2、同时存储旧版本的数据对象和新版本的数据对象。
93.在该种方式下,每个版本的数据对象是独立的,便于不同版本的数据对象的查找与管理,且可以快速获取到所需版本的数据对象。
94.在本发明一个实施例中,每次发布新版本数据对象时,可以通过如下方式对新版本数据对象进行处理:在本步骤200之前,还包括:基于发布的新版本数据对象,调用智能合约中声明的版本加密逻辑,生成与该新版本数据对象对应的版本密钥,利用该版本密钥对该新版本数据对象进行加密;将该版本密钥存储到区块链上;将加密后的该新版本数据对象存储至该链外存储数据库中。
95.通过对新版本数据对象进行加密后存储,可以保证数据对象的安全性。另外,将轻量级的版本密钥存储到区块链上,不仅便于对版本密钥的管理,还可以防止版本密钥被篡
改。
96.在本发明一个实施例中,为了在响应数据服务请求过程中对该用户端的授权文件进行验证,在将该版本密钥存储到区块链上之后,还包括:从区块链上获取与该用户端对应的公钥;基于该公钥,调用智能合约中声明的密钥加密处理逻辑,对存储有至少一个版本密钥的密钥集合进行加密,得到与该用户端对应的加密后的密钥集合;该至少一个版本密钥与所述至少一个版本的数据对象一一对应;将该与该用户端对应的加密后的密钥集合存储到区块链上。
97.利用上述实施例,针对每一个用户端,均可以得到一个加密后的密钥集合,由于密钥集合是利用与用户端对应的公钥加密得到的,因此只有使用该用户端对应的私钥才能够对与该用户端对应的密钥集合进行解密,从而可以实现对用户端权限的进一步验证,提高版本授权的可控性。
98.下面以数据对象为规则库、且对至少一个版本的数据对象的存储方式采用上述方式2为例,对该至少一个版本的数据对象的处理过程进行说明。
99.假设从发布时间由近至远依次包括如下规则库:待发布的规则库m、本月发布的规则库m1、上月发布的规则库m2、上上月发布的规则库m3、
……
、基本规则库mn。
100.每发布一个版本的规则库时,同时生成用于加密该版本的规则库的版本密钥,该版本密钥可以使用任意的加密算法生成,以对称密钥为例,那么加密和解密使用的版本密钥相同,与上述规则库m至规则库mn分别一一对应的版本密钥为kp、kp1、kp2、kp3、
……
、kpn。
101.针对新版本规则库,使用对应的版本密钥kp将该新版本规则库进行加密,得到加密库e,将该加密库e存储至链外存储数据库。
102.基于新生成的版本密钥kp,可以得到新的密钥集合(kp、kp1、kp2、kp3、
……
、kpn),针对已经授权的各用户端,分别从区块链中获取每一个用户端对应的公钥,并利用每一个用户端的公钥将该密钥集合进行加密,针对每一个用户端,均得到一个加密后的密钥集合。比如用户1
……
用户n分别对应有加密后的密钥集合,其中,用户1对应的加密后的密钥集合是由该用户1的公钥进行加密的,用户n对应的加密后的密钥集合是由该用户n的公钥进行加密的。将得到的各用户端分别对应的加密后的密钥集合存储到区块链上。
103.步骤202,根据该授权信息从该至少一个版本的数据对象中,获取与该用户端对应权限的目标版本数据对象。
104.在本发明一个实施例中,该授权信息可以是授权码、授权过期时间等,当授权信息为授权码时,可以预先存储授权码与数据对象的版本的对应关系,利用该对应关系可以快速确定出与授权信息对应的目标版本数据对象。当授权信息是授权过期时间时,该至少一个版本的数据对象分别对应有发布时间,可以利用各版本的数据对象的发布时间确定目标版本数据对象,具体地,至少可以采用如下两种确定规则:
105.第一种确定规则:当前时间未达到授权过期时间,利用最新版本的数据对象为用户端提供服务;当前时间超过授权过期时间,不为用户端提供服务。
106.在该第一种确定规则下,本步骤202可以包括:确定当前时间与授权过期时间的关系,若当前时间未达到授权过期时间,则将至少一个版本的数据对象中发布时间距离当前时间最近的数据对象确定为目标版本数据对象。
107.利用该第一种确定规则,可以确保仅用户端在授权期间内才给用户端提供服务,从而可以保证版本授权的可控性。
108.第二种确定规则:利用早于授权过期时间发布的数据对象为用户端提供服务。
109.在该第二种确定规则下,即使当前时间超过授权过期时间,也依然为用户端提供服务。本步骤202可以包括:根据该至少一个版本的数据对象中每一个版本数据对象的发布时间,确定发布时间早于该授权过期时间、且距离该授权过期时间最近的目标发布时间;将该目标发布时间对应版本的数据对象,确定为该目标版本数据对象。
110.利用该第二种确定规则,可以确保使用该用户端具有权限的、且最新版本的数据对象为该用户端提供服务,从而可以保证版本授权的可控性。
111.在本发明一个实施例中,由于获取到的目标版本数据对象是加密的,在本步骤104之后,还需要对目标版本数据对象进行解密;其中,授权文件中还包括与该用户端对应的私钥和与该用户端对应的唯一标识,具体地:利用该唯一标识在区块链中获取与该用户端对应加密后的密钥集合;利用该私钥解密得到该密钥集合中的至少一个版本密钥;根据该目标版本数据对象,从所述至少一个版本密钥中确定与该目标版本数据对象对应的目标版本密钥;根据该目标版本密钥对该目标版本数据对象进行解密,得到解密后的该目标版本数据对象。
112.举例来说,该授权文件中包括的用户端的唯一标识比如为用户1,那么可以获取到与用户1对应的加密后的密钥集合,由于该密钥集合是由用户1对应的公钥加密得到的,因此,使用该授权文件中包括的对应该用户端的私钥可以对该加密的密钥集合进行解密,得到密钥集合中包括的至少一个版本密钥。假设加密的目标版本数据对象是加密规则库e2,那么可以使用与加密规则库e2对应的版本密钥解密该加密规则库e2,从而可以得到解密后的规则库m2。
113.本发明一个实施例中,在从至少一个版本密钥中确定目标版本密钥时,可以通过密钥信息来确定,该密钥信息可以包括:key名称id、key算法名称等。利用该密钥信息可以确定目标版本密钥。
114.需要说明的是,若授权文件中包括的用户端的唯一标识,节点未能查找到与该唯一标识对应的加密后的密钥集合,那么表明该用户端未得到授权,可以向用户端返回查找结果。若利用用户端的唯一标识对对应的加密的密钥集合进行解密时,无法解密得到密钥集合,也可以向用户返回解密结果。
115.本发明实施例中,通过私钥解密的方式可以实现对用户端的进一步验证,即当私钥能够解密得到密钥集合时,可以进一步确保该授权文件的可信性,从而实现对用户端的进一步验证。利用使用至少一个版本密钥对至少一个版本的数据对象进行加密,且解密时只对目标版本的数据对象解密即可,无需对其它版本的数据对象进行解密,不仅可以提高目标版本数据对象的获取效率,还可以保证其它版本数据对象的安全性。
116.最后,针对步骤106,利用该目标版本数据对象为该用户端提供服务。
117.当数据对象为规则库时,比如,规则库内包括用于检测威胁事件的规则,在利用目标版本数据对象为用户端提供服务时,可以利用目标版本规则库包括的规则进行威胁事件的检测,然后向用户端展示检测到的威胁事件。
118.当数据对象为软件功能的代码数据时,在利用目标版本数据对象为用户端提供服
务时,可以为用户端提供该目标版本数据对象能够实现的软件功能。
119.如图3、图4所示,本发明实施例提供了一种基于区块链的版本授权控制装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种基于区块链的版本授权控制装置所在计算设备的一种硬件架构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的计算设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在计算设备的cpu将非易失性存储器中对应的计算机程序读取到内存中运行形成的。本实施例提供的一种基于区块链的版本授权控制装置,所述区块链中部署有智能合约,所述装置位于所述区块链中的节点,所述装置可以包括:
120.接收单元401,用于接收用户端发送的数据服务请求;
121.文件确定单元402,用于响应于所述数据服务请求,调用所述智能合约中声明的文件确定逻辑,确定所述用户端对应的授权文件;
122.数据对象获取单元403,用于基于所述授权文件调用所述智能合约中声明的数据获取逻辑,获取与所述用户端对应权限的目标版本数据对象;
123.服务单元404,用于利用所述目标版本数据对象为所述用户端提供服务。
124.在本发明一个实施例中,所述数据服务请求携带加密后的所述授权文件;
125.请参考图5,所述装置还可以包括:授权单元405,用于接收所述用户端发送的授权请求;响应于所述授权请求,调用所述智能合约中声明的授权处理逻辑,生成与所述用户端对应的授权文件,并对所述授权文件进行加密,将加密后的所述授权文件发送给所述用户端,以及将用于解密所述授权文件的解密密钥存储到所述区块链上;
126.所述文件确定单元402,具体用于通过所述文件确定逻辑从所述区块链上获取所述解密密钥,利用所述解密密钥对所述数据服务请求携带加密后的所述授权文件进行解密,得到所述授权文件。
127.在本发明一个实施例中,所述授权文件中包括与所述用户端对应的授权信息;
128.所述数据对象获取单元403,具体用于通过所述数据获取逻辑访问链外存储数据库,其中,所述链外存储数据库中存储有至少一个版本的数据对象;根据所述授权信息从所述至少一个版本的数据对象中,获取与所述用户端对应权限的目标版本数据对象。
129.在本发明一个实施例中,所述授权信息为授权过期时间;所述至少一个版本的数据对象分别对应有发布时间;
130.所述数据对象获取单元403,在执行所述根据所述授权信息从所述至少一个版本的数据对象中获取与所述用户端对应权限的目标版本数据对象时,具体用于根据所述至少一个版本的数据对象中每一个版本数据对象的发布时间,确定发布时间早于所述授权过期时间、且距离所述授权过期时间最近的目标发布时间;将所述目标发布时间对应版本的数据对象,确定为所述目标版本数据对象。
131.在本发明一个实施例中,请参考图6,该装置还可以包括:
132.数据对象处理单元406,用于基于发布的新版本数据对象,调用所述智能合约中声明的版本加密逻辑,生成与所述新版本数据对象对应的版本密钥,利用所述版本密钥对所述新版本数据对象进行加密;将所述版本密钥存储到所述区块链上;将加密后的所述新版
本数据对象存储至所述链外存储数据库中。
133.在本发明一个实施例中,请参考图7,该装置还可以包括:
134.密钥处理单元407,用于从所述区块链上获取与所述用户端对应的公钥;基于所述公钥,调用所述智能合约中声明的密钥加密处理逻辑,对存储有至少一个版本密钥的密钥集合进行加密,得到与所述用户端对应的加密后的密钥集合;所述至少一个版本密钥与所述至少一个版本的数据对象一一对应;将该与所述用户端对应的加密后的密钥集合存储到所述区块链上。
135.在本发明一个实施例中,所述授权文件中还包括与所述用户端对应的私钥和与所述用户端对应的唯一标识;
136.请参考图8,该装置还可以包括:
137.数据对象解密单元408,用于利用所述唯一标识在区块链中获取与所述用户端对应加密后的密钥集合;利用所述私钥解密得到所述密钥集合中的至少一个版本密钥;根据所述目标版本数据对象,从所述至少一个版本密钥中确定与所述目标版本数据对象对应的目标版本密钥;根据所述目标版本密钥对所述目标版本数据对象进行解密,得到解密后的所述目标版本数据对象。
138.可以理解的是,本发明实施例示意的结构并不构成对一种基于区块链的版本授权控制装置的具体限定。在本发明的另一些实施例中,一种基于区块链的版本授权控制装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
139.上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
140.本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本发明任一实施例中的一种基于区块链的版本授权控制装置方法。
141.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时,使所述处理器执行本发明任一实施例中的一种基于区块链的版本授权控制装置方法。
142.具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
143.在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
144.用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd

rom、cd

r、cd

rw、dvd

rom、dvd

ram、dvd

rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
145.此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
146.此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板
中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
147.本发明各实施例至少具有如下有益效果:
148.1、在本发明一个实施例中,当区块链中的节点接收到用户端的数据服务请求后,不管本地与该用户端对应存储位置上是否加载有数据对象,均需要重新根据该数据服务请求获取到与用户端对应权限的目标版本数据对象,以保证为用户端提供服务时使用的数据对象的版本是该用户端具有权限的版本,以保证版本授权的可控性。
149.2、在本发明一个实施例中,通过将授权文件加密后发送给用户端,可以降低用户端对授权文件中的内容进行篡改的概率,从而提高授权文件的安全性。
150.3、在本发明一个实施例中,在针对用户端的授权请求进行响应时,可以针对用户端生成唯一标识,从而可以避免由于不同用户端可能存在相同用户标识的情况造成的管理混乱。
151.4、在本发明一个实施例中,授权文件生成之后,可以将该授权文件与该用户端的用户标识的对应关系存储到区块链中,且该授权文件不会发送给用户端,从而可以降低授权文件被篡改的概率,提高授权文件的安全性。
152.5、在本发明一个实施例中,由于数据对象的空间占用量较大,因此将该至少一个版本的数据对象存储到链外存储数据库中,从而可以降低区块链上的存储压力。
153.6、在本发明一个实施例中,在存储各版本的数据对象时,可以同时存储旧版本的数据对象和新版本的数据对象,如此每个版本的数据对象是独立的,便于不同版本的数据对象的查找与管理,且可以快速获取到所需版本的数据对象。
154.7、在本发明一个实施例中,通过对新版本数据对象进行加密后存储,可以保证数据对象的安全性。另外,将轻量级的版本密钥存储到区块链上,不仅便于对版本密钥的管理,还可以防止版本密钥被篡改。
155.8、在本发明一个实施例中,通过私钥解密的方式可以实现对用户端的进一步验证,即当私钥能够解密得到密钥集合时,可以进一步确保该授权文件的可信性,从而实现对用户端的进一步验证。利用使用至少一个版本密钥对至少一个版本的数据对象进行加密,且解密时只对目标版本的数据对象解密即可,无需对其它版本的数据对象进行解密,不仅可以提高目标版本数据对象的获取效率,还可以保证其它版本数据对象的安全性。
156.需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
157.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光
盘等各种可以存储程序代码的介质中。
158.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1