CN112364366B - 基于区块链的联盟数据共享访问控制方法及系统 - Google Patents
基于区块链的联盟数据共享访问控制方法及系统 Download PDFInfo
- Publication number
- CN112364366B CN112364366B CN202011356441.7A CN202011356441A CN112364366B CN 112364366 B CN112364366 B CN 112364366B CN 202011356441 A CN202011356441 A CN 202011356441A CN 112364366 B CN112364366 B CN 112364366B
- Authority
- CN
- China
- Prior art keywords
- access control
- data
- access
- user
- blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000003860 storage Methods 0.000 claims abstract description 44
- 230000008520 organization Effects 0.000 claims description 61
- 230000006870 function Effects 0.000 claims description 19
- 230000009191 jumping Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000008901 benefit Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 20
- 238000013475 authorization Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于区块链的联盟数据共享访问控制方法及系统,包括监管区块链接收来自存储系统的数据访问决策请求;监管区块链选择三个代表节点下发数据访问决策请求,三个代表节点读取目标数据对应的访问控制规则,以此为根据执行访问控制决策智能合约,进行访问控制决策得到的访问控制决策结果并进行签名背书;监管区块链在收到所有签名背书后,若访问控制决策结果全部相同,则将访问控制决策结果作为最终的访问控制决策结果返回给存储系统。本发明针对联盟组织之间审慎信任的特点,选取代表节点对访问控制决策进行背书,在不损失各方利益的前提下缩小背书节点执行范围,提高了安全管理的鲁棒性和安全决策效率性能,控制决策效率高。
Description
技术领域
本发明涉及多组织联盟间的数据共享访问控制技术,具体涉及一种基于区块链的联盟数据共享访问控制方法及系统。
背景技术
统计数据显示,一个组织通常仅存储与其业务相关的数据的15%,其余85%存储在其他组织中。因此,随着开放数据共享需求的增长,许多用户积极地向数据共享平台提供数据,也可以获取他人提供的数据。当所传播的信息高度敏感(例如医疗,军事等)时,数据访问应该被控制。特别是在联盟系统内部,不同组织之间同时存在合作与竞争。因此,准确描述各种用户的角色,授权系统中的适当权限以及有效地实现对数据的访问控制已成为必须解决的问题。区块链技术已被广泛研究以有效地解决数字社会信任问题。通过P2P网络,带时间戳的加密技术、分布式共识、经济激励等手段,可以实现基于分散信用的加密货币交易和用户协作。区块链技术由于其安全特性(例如防伪,防篡改和可追溯性),可以在没有权限中心或具有多个权限中心的分布式系统中成功建立信任。因此,区块链已被用于提供对数据访问的审计和访问控制,从而增强数据共享系统的不可抵赖性和可控性。
针对区块链监督下的联盟数据共享平台中数据资源的访问控制,在实际应用过程中需要解决以下挑战:首先,应基于该平台中的区块链系统准确描述用户授权与数据安全标记。需要在描述系统的主体(用户)与客体(数据)时加入其所属组织的信息,使得在联盟中进行数据访问时可以针对不用组织的用户与数据实施被相应组织认定的控制决策;其次,在访问控制机制设计中,在通过区块链的分散投票机制来避免传统分布式系统单点故障的基础上,还应针对联盟的参与组织之间审慎信任的特点,选取区块链中有代表性的节点对访问控制决策进行背书,在不损失各方利益的前提下缩小背书节点执行范围,提高安全决策效率。第三,随着访问控制规则数量的增加,访问控制决策的效率必须保持较高,这是保证访问控制性能的关键之一。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于区块链的联盟数据共享访问控制方法及系统,本发明在应用区块链解决传统分布式数据共享的集中式安全管理缺陷的基础上,针对联盟的各参与组织之间审慎信任的特点,选取区块链中有代表性的节点对访问控制决策进行背书,在不损失各方利益的前提下缩小背书节点执行范围,提高了安全管理的鲁棒性和安全决策效率性能,控制决策效率高。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于区块链的联盟数据共享访问控制方法,包括:
1)监管区块链接收来自存储系统的数据访问决策请求,所述数据访问决策请求包含发起数据访问的用户、访问的目标数据及操作类型信息;
2)监管区块链选择三个代表节点,第一个代表节点隶属于用户所属组织,第二个代表节点隶属于目标数据所属组织,第三个节点隶属于用户、数据所属组织外的第三方组织;
3)监管区块链将数据访问决策请求下发给三个代表节点,所述三个代表节点分别针对数据访问决策请求中的目标数据从监管区块链中读取对应的访问控制规则,以此为根据执行访问控制决策智能合约,进行访问控制决策得到的访问控制决策结果并进行签名背书;
4)监管区块链在收到三个代表节点的签名背书后,如果访问控制决策结果全部相同,则将访问控制决策结果作为最终的访问控制决策结果返回给存储系统;否则,跳转执行步骤2)或者结束退出。
可选地,步骤1)之前还包括监管区块链响应各个组织的授权中心AC的访问控制规则管理的步骤:
A1)判断发起智能合约调用的调用者是否为授权中心AC,若不是授权中心AC,则返回错误并退出;否则跳转执行下一步;
A2)判断智能合约调用的签名是否正确,若签名不正确,则返回错误并退出;否则跳转执行下一步;
A3)判断智能合约调用的操作类型op是否为读操作get,若为读操作get,则将该授权中心AC对应的访问控制规则返回给该授权中心AC,结束并退出;否则,跳转执行下一步;
A4)判断智能合约调用中的访问控制规则m的目标数据是否为该授权中心AC有权管理的数据,若非该授权中心AC有权管理的数据则返回错误并退出;否则跳转执行下一步;
A5)根据智能合约调用的操作类型op调用对应的操作函数,若操作类型op为增加add,则调用预设的增加操作函数AddPlocies将智能合约调用中的访问控制规则m增加到区块链中;若操作类型op为删除delete,则调用预设的删除操作函数DeletePlocies将智能合约调用中的访问控制规则m从区块链中删除;若操作类型op为更新update,则调用预设的更新操作函数UpdatePlocies将智能合约调用中的访问控制规则m更新替代区块链中的原访问控制规则。
可选地,步骤1)之前还包括存储系统发出数据访问决策请求的步骤:在收到任一组织的用户对存储系统中目标数据的访问时,生成包含用户、访问的目标数据及操作类型信息的数据访问决策请求,并将其转发给监管区块链,然后等待监管区块链返回最终的访问控制决策结果;步骤4)中将访问控制决策结果作为最终的访问控制决策结果返回给存储系统之后,还包括存储系统根据最终的访问控制决策结果执行访问控制的步骤:若最终的访问控制决策结果为允许,则执行用户对存储系统中目标数据的访问操作;若最终的访问控制决策结果为允许,则拒绝用户对存储系统中目标数据的访问,返回错误并退出。
可选地,所述用户对存储系统中目标数据的访问的交易数据包括:该交易的哈希值、用户、智能合约地址、目标数据以及访问操作类型。
可选地,步骤3)中进行访问控制决策得到的访问控制决策结果包括:
B1)获取监管区块链中记录的用户对应的安全属性令牌token_u、目标数据对应的安全属性标签label_f以及访问操作的操作类型;
B2)根据用户的安全属性令牌token_u、目标数据的安全属性标签label_f以及访问操作的操作类型遍历查询目标数据所隶属组织的访问控制规则库,若目标数据所隶属组织的访问控制规则库中存在匹配的访问控制规则,则返回对应访问控制决策结果为允许,否则返回访问控制决策结果为拒绝。
可选地,所述用户的权利通证token_u、目标数据的安全标签label_f均为一组包含多种维度的属性令牌类别的二进制字符串,每一种属性令牌类别的位数包括至少一位,每一条访问控制规则为键值对,所述键值对中的“键”为数据的安全标签label_f、“值”为允许访问该数据的规则条件集合,所述规则条件集合包含至少一个规则条件,每一个规则条件包含权利通证、操作操作权限集之间映射关系。
可选地,步骤B2)包括:
B2.1)判断目标数据所隶属组织的访问控制规则库是否为空,若为空则报错并退出,否则执行下一步;
B2.2)获取目标数据所隶属组织的访问控制规则库中的访问控制规则数量n,初始化返回结果为假;
B2.3)在目标数据所隶属组织的访问控制规则库中遍历选择一条访问控制规则作为当前访问控制规则fileAccessRules[i];
B2.4)判断目标数据的安全标签label_f、当前访问控制规则fileAccessRules[i]的“键”两者相等是否成立,若成立则跳转执行步骤B2.5);否则跳转执行步骤B2.6);
B2.5)将该访问操作的用户的权利通证token_u与当前访问控制规则fileAccessRules[i]的“值”中的权利通证进行匹配,若匹配成功则读取对应的操作操作权限集,判断该访问操作的操作类型在得到的操作操作权限集中是否被允许,若被允许则设置返回结果为真,则判定本组织的访问控制规则库中存在匹配的规则,返回访问控制决策结果为允许,退出;
B2.6)判断遍历选择的数量等于访问控制规则数量n是否成立,若成立则判断已经遍历选择完毕,判定本组织的访问控制规则库中不存在匹配的规则,返回访问控制决策结果为拒绝,退出;否则,跳转执行步骤B2.3)继续遍历。
可选地,步骤B2.5)中将该访问操作的用户的权利通证token_u与当前访问控制规则fileAccessRules[i]的“值”中的权利通证进行匹配是指针对每一个属性令牌类别分别进行对比,且针对每一个属性令牌类别,若当前访问控制规则fileAccessRules[i]的“值”中的权利通证包含通配符则基于通配符进行匹配,若规则条件中的属性令牌不包含通配符则直接进行字符串匹配,最终若所有属性令牌类别全部匹配才判定匹配成功,否则判定匹配失败。
此外,本发明还提供一种基于区块链的联盟数据共享访问控制系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于区块链的联盟数据共享访问控制方法的步骤,或者所述存储器中存储有被编程或配置以执行所述基于区块链的联盟数据共享访问控制方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于区块链的联盟数据共享访问控制方法的计算机程序。
和现有技术相比,本发明具有下述优点:
本发明实现了具有区块链监管的数据共享,能够有效解决分布式存储系统中的数据共享,并在区块链的基础上实现平台中数据流通的监管,可解决联盟情况下不同组织之间共享数据时的集中式安全管理的弱点,提高安全管理的鲁棒性和安全决策效率,以避免传统分布式系统中的单点故障,提高安全决策性能。本发明在应用区块链解决传统分布式数据共享的集中式安全管理缺陷的基础上,针对联盟的各参与组织之间审慎信任的特点,选取区块链中有代表性的节点对访问控制决策进行背书,在不损失各方利益的前提下缩小背书节点执行范围,提高了安全管理的鲁棒性和安全决策效率性能,控制决策效率高。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中三个代表节点进行访问控制决策的原理示意图。
图3为本发明实施例中监管区块链响应访问控制规则管理的流程图。
图4为本发明实施例中的系统拓扑结构示意图。
图5为本发明实施例中属性令牌种类示意图。
图6为本发明实施例中的联盟的结构示意图。
具体实施方式
与开放环境中的用户不同,联合数据共享系统的用户不是匿名的或完全不受信任的,他们具有由其所属组织验证的身份。联盟中的组织在数据共享过程中相互合作和竞争。因此,共享过程需要由联盟中的参与方通过区块链技术进行监督。数据是由用户上传的,但是数据的最终所有权属于用户的组织。因此,数据共享必须遵守组织之间的合作原则。本发明基于区块链的联盟数据共享访问控制方法及系统旨在控制这种情况下不同组织之间的数据共享行为。下文将以某医学联合会的联合数据共享系统为例,对本发明基于区块链的联盟数据共享访问控制方法及系统进行进一步的详细说明,该医学联合会实际上由多个医院(医院_1~医院n)组成的联盟,联盟成员之间共享数据,因此需要进行联盟数据共享访问控制。
如图1和图2所示,本实施例基于区块链的联盟数据共享访问控制方法包括:
1)监管区块链接收来自存储系统(例如本实施例中为分布式存储系统)的数据访问决策请求,所述数据访问决策请求包含发起数据访问的用户、访问的目标数据及操作类型信息;
2)监管区块链选择三个代表节点,第一个代表节点隶属于用户所属组织,第二个代表节点隶属于目标数据所属组织,第三个节点隶属于用户、数据所属组织外的第三方组织;
3)监管区块链将数据访问决策请求下发给三个代表节点,所述三个代表节点分别针对数据访问决策请求中的目标数据从监管区块链中读取对应的访问控制规则,以此为根据执行访问控制决策智能合约,进行访问控制决策得到的访问控制决策结果并进行签名背书;
4)监管区块链在收到三个代表节点的签名背书后,如果访问控制决策结果全部相同,则将访问控制决策结果作为最终的访问控制决策结果返回给存储系统;否则,跳转执行步骤2)或者结束退出。
如图1所示,本实施例中步骤1)之前还包括存储系统发出数据访问决策请求的步骤:在收到任一组织的用户对存储系统中目标数据的访问时,生成包含用户、访问的目标数据及操作类型信息的数据访问决策请求,并将其转发给监管区块链,然后等待监管区块链返回最终的访问控制决策结果;步骤4)中将访问控制决策结果作为最终的访问控制决策结果返回给存储系统之后,还包括存储系统根据最终的访问控制决策结果执行访问控制的步骤:若最终的访问控制决策结果为允许,则执行用户对存储系统中目标数据的访问操作;若最终的访问控制决策结果为允许,则拒绝用户对存储系统中目标数据的访问,返回错误并退出。
如图2所示,本实施例中用户对存储系统中目标数据的访问的交易数据包括:该交易的哈希值TxHash、用户From、智能合约地址To、目标数据以及访问操作类型Data。
如图3所示,步骤1)之前还包括监管区块链响应各个组织的授权中心AC的访问控制规则管理的步骤:
A1)判断发起智能合约调用的调用者是否为授权中心AC,若不是授权中心AC,则返回错误并退出;否则跳转执行下一步;
A2)判断智能合约调用的签名是否正确,若签名不正确,则返回错误并退出;否则跳转执行下一步;
A3)判断智能合约调用的操作类型op是否为读操作get,若为读操作get,则将该授权中心AC对应的访问控制规则返回给该授权中心AC,结束并退出;否则,跳转执行下一步;
A4)判断智能合约调用中的访问控制规则m的目标数据是否为该授权中心AC有权管理的数据,若非该授权中心AC有权管理的数据则返回错误并退出;否则跳转执行下一步;
A5)根据智能合约调用的操作类型op调用对应的操作函数,若操作类型op为增加add,则调用预设的增加操作函数AddPlocies将智能合约调用中的访问控制规则m增加到区块链中;若操作类型op为删除delete,则调用预设的删除操作函数DeletePlocies将智能合约调用中的访问控制规则m从区块链中删除;若操作类型op为更新update,则调用预设的更新操作函数UpdatePlocies将智能合约调用中的访问控制规则m更新替代区块链中的原访问控制规则。
参见图4,本实施例中,授权中心AC为一个组织的管理者,用于实现用户的授权,为本组织中的用户颁发用户通证、以及将针对本组织数据的访问控制规则上传到区块链。参与联盟的各组织就区块链中的用户通证与数据安全标记的发布格式进行协商,使得不同组织的用户及数据可以通过其通证或数据标识来识别其所属组织。
本实施例中,步骤3)中进行访问控制决策得到的访问控制决策结果包括:
B1)获取监管区块链中记录的用户对应的安全属性令牌token_u、目标数据对应的安全属性标签label_f以及访问操作的操作类型;
B2)根据用户的安全属性令牌token_u、目标数据的安全属性标签label_f以及访问操作的操作类型遍历查询目标数据所隶属组织的访问控制规则库,若目标数据所隶属组织的访问控制规则库中存在匹配的访问控制规则,则返回对应访问控制决策结果为允许,否则返回访问控制决策结果为拒绝。
本实施例中,用户的权利通证token_u、目标数据的安全标签label_f均为一组包含多种维度的属性令牌类别的二进制字符串,每一种属性令牌类别的位数包括至少一位,每一条访问控制规则为键值对,所述键值对中的“键”为数据的安全标签label_f、“值”为允许访问该数据的规则条件集合,所述规则条件集合包含至少一个规则条件,每一个规则条件包含权利通证、操作操作权限集之间映射关系,通过上述方式,可提高遍历查询预设的访问控制规则库时的匹配效率。
作为一种可选的实施方式,本实施例中多种维度的属性令牌类别包括用于表示用户隶属组织的授权中心AC的属性令牌类别、表示安全分类级别的属性令牌类别和表示用户在组织中角色分类的属性令牌类别,参见图5。在图5的示例中,医院_1中具有高安全级别的外科医生拥有的数据的安全标记被表示为:“100010100”。
如图6所示,多个医院(医院_1~医院_n)中,每个医院下又有很多个专业分类,比如外科、儿科、内科等;医院产生的数据又有不同的安全层级,以平衡安全性和可用性。图3所示为该某医学联合会的联合数据共享系统的结构示意图。以该联合数据共享系统为例,用于表示用户隶属组织的授权中心AC的属性令牌类别,即为所属医院的授权中心AC的属性令牌类别;用于表示安全分类级别的属性令牌类别,即为所属高中低级别;用于表示用户在组织中角色分类的属性令牌类别,即为所属专业分类(专业)。这种数据共享平台的用户将同时具有不同的角色。用户的授权将由每个组织的授权中心(AC)进行管理。所有这些授权的角色放在一起代表用户在系统中的数据访问权限。作为联盟数据共享平台,其基本假设是所有用户均由其各自的组织授权和认证。本实施例访问控制的目的是解决组织之间数据共享的合作与竞争问题。因此,该平台主要提供基于数据的强制访问控制(MAC)作为数据共享的基本原理。在组织之间就权限划分达成协议之后,访问控制规则由每个组织的AC制定,然后向联盟开放。允许用户遵循访问控制规则访问数据。他们还可以根据自身的安全要求在用户级别自定义个性化访问控制。但是,本实施例重点关注系统级别的MAC,而用户级别的访问控制不在本实施例讨论范围之内。在选择访问控制策略时,本实施例选择了基于角色的访问控制(RBAC)。近年来,出现了许多新的访问控制策略,例如基于属性的访问控制(ABAC),基于属性基加密(ABE)的访问控制。当主体具有不同类别的复杂属性时,基于属性的访问控制(ABAC)主要提供灵活的访问控制策略定义。ABAC中安全性属性的描述形式是非结构化的,并且每个安全性属性之间存在很大差异。ABAC策略的灵活性带来了更高的复杂性,当访问控制规则的大小增加时,会对策略匹配性能产生巨大影响,并且它更适合于主体强烈依赖于复杂因素诸如物联网的场景。尽管基于ABE的访问控制着重于隐私保护和访问控制的结合,但它也带来了更高的复杂性和性能影响。本实施例的工作集中在为联盟设计基本MAC访问控制机制,效率是关键。而主要权限主要是根据用户身份的属性确定的,它被描述为多维角色的组合。因此,这里选择简单有效的RBAC。
本实施例中三个组织为作为示例的三个医院;数据存储即为组织1~组织3三者共享的分布式数据存储,监管区块链即为本发明基于区块链的联盟数据共享访问控制方法及系统的执行主体,用于针对组织1~组织3三者中的用户对数据存储系统中的数据的访问权限控制。在平台上,共享数据存储在分布式存储中。数据共享是通过访问授权数据来实现的。有关用户,数据和访问行为的所有信息均在区块链上进行监控和审计。分布式数据存储负责在平台上存储和管理共享数据。它实现了上传数据的存储管理,并支持用户通过用户终端访问系统中的数据。在执行用户的数据访问请求之前,分布式存储将首先向监管区块链请求安全访问控制决策。如果允许,将执行访问。否则,将被拒绝。用户管理由用户身份和许可的管理组成,这两者均由每个组织的AC来完成。身份管理用于验证系统中用户的身份,并向通过验证的用户颁发证书和密钥。用户的权限管理通过从AC分发或撤消委派的权利通证来完成。在初始化阶段,所有参与组织的AC都首先就权利通证的分发问题相互协商,并就发行的权利通证的类型达成协议。然后,AC根据用户在组织中的角色将相应的权利通证分发给其管辖范围内的用户以进行授权,并为组织拥有的数据设置访问控制规则,以限制(具有不同权限的)主体的访问权限为指定客体。用户拥有的权利通证的组合是授权令牌,它确定了用户在系统中的访问权限。用户授权令牌将存储在区块链上以进行监督。用户通过用户终端访问共享数据。他们可以上传,浏览和下载数据。用户对数据的访问操作也记录在区块链中,以使其受到监管。监管区块链负责审核和控制系统中的访问行为。访问控制规则也存储在区块链上。发生访问时,将通过区块链上的智能合约来做出安全决策,以判断是否允许执行访问。根据先前的安全性假设,许可区块链更适合此平台。为了实现组织之间的互信,他们每个人都可以部署节点加入共识过程和监督区块链的合同执行。用户密钥,授权和访问控制规则的管理由数据共享平台上的各个AC完成。访问控制决策功能通过执行访问控制智能合约在区块链中完成。基于决策结果允许或拒绝访问行为,可以在分布式存储系统上实现强制访问控制。在区块链中,用户的权利通证token_u是一种数字资产证明,代表了用户在系统中的权利,从而反映了用户的内在和内在价值。用户的权利通证token_u是区块链系统中最独特的应用程序之一。区块链提供了验证和令牌流通的基础。因此,用户的权利通证token_u可以在基于区块链系统的应用程序管理中充当用户权限的自然代表,并在用户授权和访问控制中发挥重要作用。系统中主题(用户)和对象(数据)的安全属性应被设计为能够控制数据共享系统中的访问行为。我们采用RBAC的思想来为用户定义相应的安全属性,并为数据定义安全标签,作为访问控制规则的基础,以提高系统访问控制配置和决策的性能。
本实施例中,步骤B2)包括:
B2.1)判断目标数据所隶属组织的访问控制规则库是否为空,若为空则报错并退出,否则执行下一步;
B2.2)获取目标数据所隶属组织的访问控制规则库中的访问控制规则数量n,初始化返回结果为假;
B2.3)在目标数据所隶属组织的访问控制规则库中遍历选择一条访问控制规则作为当前访问控制规则fileAccessRules[i];
B2.4)判断目标数据的安全标签label_f、当前访问控制规则fileAccessRules[i]的“键”两者相等是否成立,若成立则跳转执行步骤B2.5);否则跳转执行步骤B2.6);
B2.5)将该访问操作的用户的权利通证token_u与当前访问控制规则fileAccessRules[i]的“值”中的权利通证进行匹配,若匹配成功则读取对应的操作操作权限集,判断该访问操作的操作类型在得到的操作操作权限集中是否被允许,若被允许则设置返回结果为真,则判定本组织的访问控制规则库中存在匹配的规则,返回访问控制决策结果为允许,退出;
B2.6)判断遍历选择的数量等于访问控制规则数量n是否成立,若成立则判断已经遍历选择完毕,判定本组织的访问控制规则库中不存在匹配的规则,返回访问控制决策结果为拒绝,退出;否则,跳转执行步骤B2.3)继续遍历。
本实施例中,步骤步骤B2.5)中将该访问操作的用户的权利通证token_u与当前访问控制规则fileAccessRules[i]的“值”中的权利通证进行匹配是指针对每一个属性令牌类别分别进行对比,且针对每一个属性令牌类别,若当前访问控制规则fileAccessRules[i]的“值”中的权利通证包含通配符则基于通配符进行匹配,若规则条件中的属性令牌不包含通配符则直接进行字符串匹配,最终若所有属性令牌类别全部匹配才判定匹配成功,否则判定匹配失败。
在数据共享系统中,访问控制决策主要取决于主体和对象的安全属性以及预定义的访问控制策略。访问发生时,系统将通过智能合约检查主体对客体的访问操作是否遵循访问控制规则。为了提高匹配效率,本实施例中访问控制规则库中存储的访问控制规则为键值对,所述键值对的“键”为数据的安全标签label_f,所键值对的“值”为允许访问该数据的规则条件集合,所述规则条件集合包含至少一个规则条件,每一个规则条件包含权利通证、操作操作权限集之间映射关系。本实施例中使用底层区块链提供的键/值数据库来存储访问控制规则,例如HyperLedger Fabric平台支持的LevelDB,CouchDB等都可以提供支持,通过简单明了的数据结构和接口,提高了访问控制规则的读写性能,并实现了可扩展性。而且,这种存储方式也使规则比区块链交易中的存储更易于修改。
在访问控制规则列表中,每个访问控制规则都表示为键值对(key-value对)。键采用数据安全属性标记的格式。对应的值是一组条件,必须在允许访问的位置进行匹配。
本实施例中,规则条件以析取范式形式连接为“condition1∨condition2∨......conditionm”,表示满足至少一个条件时将允许访问。每个条件都描述了用户的安全令牌必须拥有的权利通证,其后是一组允许的访问操作。因此,规则条件的通用格式如下:
{Attribute Token Category1}∧…∧{Attribute Token Categoryn}:{set ofpermitted access operations}
其中,{Attribute Token Category1}~{Attribute Token Categoryn}为权利通证token_u对应的可匹配的对象,{set of permitted access operations}为匹配结果。当条件中的属性标记与用户的安全属性标记匹配时,将检查该条件中的访问操作,以确定是否允许用户请求的访问操作。此处定义了一些通配符,以阐明访问控制规则的表达:无论哪种令牌都将匹配的条件表示为“*”,而“或”关系表示为“+”,单个位还可以使用问号字符进行匹配。在具体实现中,可以将与一组条件相对应的每个键在内部表示为二进制位串。每个条件分为两部分,以拼接二进制位串的形式表示,其中第一部分表示授权用户的权利通证,另一部分是一组允许的操作。例如,如果医院_1与医院_2具有手术数据共享协议,并且医院_1的所有医生都可以读取安全性较低的医院_1的手术数据,则访问控制规则可以定义为表1。
表1:访问控制规则示例。
表1中,Value[1]~Value[3]分别为针对数据的安全标签label_f“100010001”对应的三个值的示例。数据的安全标签label_f“100010001”对应编号为100的医院、编号为010的专业、安全级别为001的目标数据;以Value[1]为例,如果用户的权利通证token_u中携带的医院(用于表示用户隶属组织的授权中心AC的属性令牌类别)为100、专业(表示用户在组织中角色分类的属性令牌类别)为010,由于Value[1]中的安全级别为*,因此不论用户的权利通证token_u中的安全级别(表示安全分类级别的属性令牌类别)为什么,则都会匹配;如果匹配,则判定该用户对应的上传、读取、删除权限全部为允许。
智能合约是区块链系统上的自动计算机协议。部署后它将自动执行,并且人为干预可以确保控制过程的公平性。经典的区块链平台(例如以太坊,HyperLedger等)已支持完整的脚本语言和各种准确的智能合约,可以满足上层复杂应用程序对所有类型的灵活设计的要求。传统的访问控制在特定节点中实现集中式安全管理,这可能会导致出现单节点故障问题的风险。随着访问量的同时增加,访问控制决策的效率也将成为瓶颈。本实施例基于区块链的联盟数据共享访问控制方法通过分散访问控制决策实现高安全性和高性能,如图6所示。
智能合约分散在区块链的每个节点上,决策的监督和仲裁由所有用户共同确定。有效地解决了分布式系统中安全管理部分的单点故障问题。因此,成功地避免了由一个单一权限引起的安全性和公平性问题,并且极大地提高了鲁棒性。参见图1,当分布式存储系统向区块链平台发送请求以确认访问权限时,区块链将完成以下步骤:获取用户的权利通证和访问数据的安全标签;遍历系统中所有访问控制规则的键。如果当前操作中访问的数据的安全属性标记与某个规则的键匹配,检查用户的令牌和操作类型。当它们都匹配时返回“是”,否则返回“否”;分布式存储系统在返回结果为“是”时继续执行访问操作,在返回结果为“否”时终止访问操作。本实施例中,上述过程被编写为通用的访问控制决策accessControlDecision函数,在此基础上,定义了用于处理操作类型为上传数据的上传数据检查合约uploadDataChecking、用于处理操作类型为浏览数据的浏览数据检查合约browseDataChecking以及用于处理操作类型为删除数据的删除数据合约deleteDataChecking。这些合约将调用accessControlDecision函数,以确定在实际访问操作发生之前,具有token_u权利通证的用户是否可以对具有安全标签label_f的目标数据进行操作。
综上所述,本实施例基于区块链的联盟数据共享访问控制方法实现了具有区块链监管的数据共享,能够有效解决分布式存储系统中的数据共享,并在区块链的基础上实现平台中数据流通的监管,可解决联盟情况下不同组织之间共享数据时的集中式安全管理的弱点,提高安全管理的鲁棒性和安全决策效率,以避免传统分布式系统中的单点故障,提高安全决策性能,控制决策效率高。
此外,本实施例还提供一种基于区块链的联盟数据共享访问控制系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行前述基于区块链的联盟数据共享访问控制方法的步骤,或者所述存储器中存储有被编程或配置以执行前述基于区块链的联盟数据共享访问控制方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于区块链的联盟数据共享访问控制方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种基于区块链的联盟数据共享访问控制方法,其特征在于,包括:
1)监管区块链接收来自存储系统的数据访问决策请求,所述数据访问决策请求包含发起数据访问的用户、访问的目标数据及操作类型信息;
2)监管区块链选择三个代表节点,第一个代表节点隶属于用户所属组织,第二个代表节点隶属于目标数据所属组织,第三个节点隶属于用户、数据所属组织外的第三方组织;
3)监管区块链将数据访问决策请求下发给三个代表节点,所述三个代表节点分别针对数据访问决策请求中的目标数据从监管区块链中读取对应的访问控制规则,以此为根据执行访问控制决策智能合约,进行访问控制决策得到的访问控制决策结果并进行签名背书;
4)监管区块链在收到三个代表节点的签名背书后,如果访问控制决策结果全部相同,则将访问控制决策结果作为最终的访问控制决策结果返回给存储系统;否则,跳转执行步骤2)或者结束退出;
步骤1)之前还包括监管区块链响应各个组织的授权中心AC的访问控制规则管理的步骤:
A1)判断发起智能合约调用的调用者是否为授权中心AC,若不是授权中心AC,则返回错误并退出;否则跳转执行下一步;
A2)判断智能合约调用的签名是否正确,若签名不正确,则返回错误并退出;否则跳转执行下一步;
A3)判断智能合约调用的操作类型op是否为读操作get,若为读操作get,则将该授权中心AC对应的访问控制规则返回给该授权中心AC,结束并退出;否则,跳转执行下一步;
A4)判断智能合约调用中的访问控制规则m的目标数据是否为该授权中心AC有权管理的数据,若非该授权中心AC有权管理的数据则返回错误并退出;否则跳转执行下一步;
A5)根据智能合约调用的操作类型op调用对应的操作函数,若操作类型op为增加add,则调用预设的增加操作函数AddPlocies将智能合约调用中的访问控制规则m增加到区块链中;若操作类型op为删除delete,则调用预设的删除操作函数DeletePlocies将智能合约调用中的访问控制规则m从区块链中删除;若操作类型op为更新update,则调用预设的更新操作函数UpdatePlocies将智能合约调用中的访问控制规则m更新替代区块链中的原访问控制规则。
2.根据权利要求1所述的基于区块链的联盟数据共享访问控制方法,其特征在于,步骤1)之前还包括存储系统发出数据访问决策请求的步骤:在收到任一组织的用户对存储系统中目标数据的访问时,生成包含用户、访问的目标数据及操作类型信息的数据访问决策请求,并将其转发给监管区块链,然后等待监管区块链返回最终的访问控制决策结果;步骤4)中将访问控制决策结果作为最终的访问控制决策结果返回给存储系统之后,还包括存储系统根据最终的访问控制决策结果执行访问控制的步骤:若最终的访问控制决策结果为允许,则执行用户对存储系统中目标数据的访问操作;若最终的访问控制决策结果为允许,则拒绝用户对存储系统中目标数据的访问,返回错误并退出。
3.根据权利要求2所述的基于区块链的联盟数据共享访问控制方法,其特征在于,所述用户对存储系统中目标数据的访问的交易数据包括:该交易的哈希值、用户、智能合约地址、目标数据以及访问操作类型。
4.根据权利要求1所述的基于区块链的联盟数据共享访问控制方法,其特征在于,步骤3)中进行访问控制决策得到的访问控制决策结果包括:
B1)获取监管区块链中记录的用户对应的安全属性令牌token_u、目标数据对应的安全属性标签label_f以及访问操作的操作类型;
B2)根据用户的安全属性令牌token_u、目标数据的安全属性标签label_f以及访问操作的操作类型遍历查询目标数据所隶属组织的访问控制规则库,若目标数据所隶属组织的访问控制规则库中存在匹配的访问控制规则,则返回对应访问控制决策结果为允许,否则返回访问控制决策结果为拒绝。
5.根据权利要求4所述的基于区块链的联盟数据共享访问控制方法,其特征在于,所述用户的权利通证token_u、目标数据的安全标签label_f均为一组包含多种维度的属性令牌类别的二进制字符串,每一种属性令牌类别的位数包括至少一位,每一条访问控制规则为键值对,所述键值对中的“键”为数据的安全标签label_f、“值”为允许访问该数据的规则条件集合,所述规则条件集合包含至少一个规则条件,每一个规则条件包含权利通证、操作操作权限集之间映射关系。
6.根据权利要求5所述的基于区块链的联盟数据共享访问控制方法,其特征在于,步骤B2)包括:
B2.1)判断目标数据所隶属组织的访问控制规则库是否为空,若为空则报错并退出,否则执行下一步;
B2.2)获取目标数据所隶属组织的访问控制规则库中的访问控制规则数量n,初始化返回结果为假;
B2.3)在目标数据所隶属组织的访问控制规则库中遍历选择一条访问控制规则作为当前访问控制规则fileAccessRules[i];
B2.4)判断目标数据的安全标签label_f、当前访问控制规则fileAccessRules[i]的“键”两者相等是否成立,若成立则跳转执行步骤B2.5);否则跳转执行步骤B2.6);
B2.5)将该访问操作的用户的权利通证token_u与当前访问控制规则fileAccessRules[i]的“值”中的权利通证进行匹配,若匹配成功则读取对应的操作操作权限集,判断该访问操作的操作类型在得到的操作操作权限集中是否被允许,若被允许则设置返回结果为真,则判定本组织的访问控制规则库中存在匹配的规则,返回访问控制决策结果为允许,退出;
B2.6)判断遍历选择的数量等于访问控制规则数量n是否成立,若成立则判断已经遍历选择完毕,判定本组织的访问控制规则库中不存在匹配的规则,返回访问控制决策结果为拒绝,退出;否则,跳转执行步骤B2.3)继续遍历。
7.根据权利要求6所述的基于区块链的联盟数据共享访问控制方法,其特征在于,步骤B2.5)中将该访问操作的用户的权利通证token_u与当前访问控制规则fileAccessRules[i]的“值”中的权利通证进行匹配是指针对每一个属性令牌类别分别进行对比,且针对每一个属性令牌类别,若当前访问控制规则fileAccessRules[i]的“值”中的权利通证包含通配符则基于通配符进行匹配,若规则条件中的属性令牌不包含通配符则直接进行字符串匹配,最终若所有属性令牌类别全部匹配才判定匹配成功,否则判定匹配失败。
8.一种基于区块链的联盟数据共享访问控制系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~7中任意一项所述基于区块链的联盟数据共享访问控制方法的步骤,或者所述存储器中存储有被编程或配置以执行权利要求1~7中任意一项所述基于区块链的联盟数据共享访问控制方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~7中任意一项所述基于区块链的联盟数据共享访问控制方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011356441.7A CN112364366B (zh) | 2020-11-26 | 2020-11-26 | 基于区块链的联盟数据共享访问控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011356441.7A CN112364366B (zh) | 2020-11-26 | 2020-11-26 | 基于区块链的联盟数据共享访问控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112364366A CN112364366A (zh) | 2021-02-12 |
CN112364366B true CN112364366B (zh) | 2024-04-16 |
Family
ID=74536237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011356441.7A Active CN112364366B (zh) | 2020-11-26 | 2020-11-26 | 基于区块链的联盟数据共享访问控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112364366B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542117B (zh) * | 2021-07-09 | 2022-06-10 | 重庆邮电大学 | 一种基于分层区块链的物联网设备资源访问控制方法 |
CN114266574A (zh) * | 2021-09-30 | 2022-04-01 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 一种基于区块链平台的各业务系统间权限校验方法 |
CN114553487B (zh) * | 2022-01-22 | 2023-05-26 | 郑州工程技术学院 | 一种基于图谱的访问控制方法及系统 |
CN115694943B (zh) * | 2022-10-25 | 2024-05-14 | 中国人民解放军国防科技大学 | 基于行为的操作系统动态强制访问控制方法、系统及介质 |
CN117113425B (zh) * | 2023-10-25 | 2023-12-22 | 东北大学秦皇岛分校 | 一种面向湖仓一体数据分析的隐私合规方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103252A (zh) * | 2017-04-27 | 2017-08-29 | 电子科技大学 | 基于区块链的数据访问控制方法 |
CN108989357A (zh) * | 2018-09-12 | 2018-12-11 | 中国人民解放军国防科技大学 | 一种基于区块链的用户授权与数据共享访问控制方法 |
-
2020
- 2020-11-26 CN CN202011356441.7A patent/CN112364366B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103252A (zh) * | 2017-04-27 | 2017-08-29 | 电子科技大学 | 基于区块链的数据访问控制方法 |
CN108989357A (zh) * | 2018-09-12 | 2018-12-11 | 中国人民解放军国防科技大学 | 一种基于区块链的用户授权与数据共享访问控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112364366A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112364366B (zh) | 基于区块链的联盟数据共享访问控制方法及系统 | |
US11257073B2 (en) | Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment | |
US11899817B2 (en) | Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information | |
US11451530B2 (en) | Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment | |
US11611560B2 (en) | Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform | |
Fraga-Lamas et al. | Fake news, disinformation, and deepfakes: Leveraging distributed ledger technologies and blockchain to combat digital deception and counterfeit reality | |
CN106600405B (zh) | 基于区块链的数据权益保护方法 | |
CN108989357B (zh) | 一种基于区块链的用户授权与数据共享访问控制方法 | |
Ibáñez et al. | On blockchains and the general data protection regulation | |
US20200067697A1 (en) | Method for operating a blockchain | |
US6226745B1 (en) | Information sharing system and method with requester dependent sharing and security rules | |
CN110275891B (zh) | 人工智能软件市场 | |
CN104683362B (zh) | 一种细粒度隐私安全的访问控制系统及其访问控制方法 | |
Ouaddah et al. | Harnessing the power of blockchain technology to solve IoT security & privacy issues. | |
CN111357240A (zh) | 用于可重写区块链的区块链操作堆栈 | |
CN113039748B (zh) | 基于神经区块链的计算机实现的系统和方法 | |
KR102564106B1 (ko) | 개인정보 보호를 위해 개선된 스마트 컨트랙트 기반의 지능형 중개를 위한 장치 및 방법 | |
Ding et al. | Blockchain-based access control mechanism of federated data sharing system | |
CN114844702A (zh) | 基于策略审查和授权扩展的访问控制方法 | |
Menon et al. | A comparatıve analysis on three consensus algorithms: proof of burn, proof of elapsed time, proof of authority | |
Erhan et al. | A Conceptual Model for Blockchain-Based Software Project Information Sharing. | |
Xu et al. | CL‐BC: A Secure Data Storage Model for Social Networks | |
CN106067885A (zh) | 一种改进的网络访问控制方法和装置 | |
Bose et al. | Cryptoeconomics | |
Sarfaraz | Blockchain-Coordinated Frameworks for Scalable and Secure Supply Chain Networks |
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 |