CN117978438A - 基于区块链的数据访问系统、方法、设备及存储介质 - Google Patents
基于区块链的数据访问系统、方法、设备及存储介质 Download PDFInfo
- Publication number
- CN117978438A CN117978438A CN202311795530.5A CN202311795530A CN117978438A CN 117978438 A CN117978438 A CN 117978438A CN 202311795530 A CN202311795530 A CN 202311795530A CN 117978438 A CN117978438 A CN 117978438A
- Authority
- CN
- China
- Prior art keywords
- user
- data processing
- blockchain
- processing request
- identity
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 113
- 238000011217 control strategy Methods 0.000 claims abstract description 20
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 7
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 46
- 238000013475 authorization Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 10
- 238000002474 experimental method Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 3
- GCSZJMUFYOAHFY-SDQBBNPISA-N (1z)-1-(3-ethyl-5-hydroxy-1,3-benzothiazol-2-ylidene)propan-2-one Chemical compound C1=C(O)C=C2N(CC)\C(=C\C(C)=O)SC2=C1 GCSZJMUFYOAHFY-SDQBBNPISA-N 0.000 description 2
- YSCNMFDFYJUPEF-OWOJBTEDSA-N 4,4'-diisothiocyano-trans-stilbene-2,2'-disulfonic acid Chemical compound OS(=O)(=O)C1=CC(N=C=S)=CC=C1\C=C\C1=CC=C(N=C=S)C=C1S(O)(=O)=O YSCNMFDFYJUPEF-OWOJBTEDSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013068 supply chain management Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于区块链的数据访问系统、方法、设备及存储介质,基于区块链的数据访问系统包括:认证服务器对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥;客户端根据私钥对数据处理请求进行加密处理,获得加密后的数据处理请求;接入管理服务器根据身份DID和用户可识别凭证对用户分配角色信息,将角色信息和加密后的数据处理请求发送至区块链;区块链根据公钥解密加密后的数据处理请求,获得解密后的数据处理请求,根据角色信息和解密后的数据处理请求确定访问控制策略,根据访问控制策略进行数据处理。本发明运用隐私保护自主身份识别技术和区块链技术,保护用户的隐私的同时有效降低了中心化系统的单点故障风险。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于区块链的数据访问系统、方法、设备及存储介质。
背景技术
在当今数字化时代,数据已经成为了各个领域的核心资产。数据的重要性无处不在,涵盖了从企业经营到医疗保健、金融、教育和政府等各个层面。与此同时,随着云计算和边缘计算等新兴技术的迅猛发展,数据的生成、存储和传输变得更加复杂和分散。这种数据的分散和多样化给数据访问控制提出了巨大的挑战。由于云计算的特点,如多租户、分布式性质和广泛的数据存储,数据访问权限控制成为了保护数据安全、隐私和合规性的不可或缺的一环。
传统的数据访问控制方法通常采用集中式的方式,即将所有数据集中存储在中央数据库或云服务器上,并通过一套中央授权机制来管理数据的访问权限。然而,这种方法存在一些明显的问题。首先,中心化风险是一个关键问题。集中式的数据存储和授权系统容易成为攻击者的目标。一旦中央系统遭到攻击或故障,将导致大规模的数据泄露或访问中断。其次,隐私泄露也是一个不容忽视的问题。集中式数据存储可能会暴露用户的敏感信息,甚至可能被不法分子滥用。此外,效率问题也备受关注。数据在集中式系统中的存储和检索可能会导致瓶颈,降低数据访问的效率。最后,可追溯性和审计方面也存在困难,因为在集中式系统中,数据访问历史往往难以有效记录和审计,这可能引发合规性和监管方面的问题。因此,如何实现对数据访问权限的精确控制成为一个亟待解决的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种基于区块链的数据访问系统、方法、设备及存储介质,旨在解决如何实现对数据访问权限的精确控制的问题。
为实现上述目的,本发明提供了一种基于区块链的数据访问系统,所述基于区块链的数据访问系统包括认证服务器、客户端、接入管理服务器及区块链;
所述认证服务器,用于在接收到所述客户端发送的认证请求时,对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥,并将所述身份DID、所述用户可识别凭证及所述私钥发送至所述客户端,将所述公钥发送至所述区块链;
所述客户端,用于根据所述私钥对数据处理请求进行加密处理,获得加密后的数据处理请求,并将所述身份DID、所述用户可识别凭证及所述加密后的数据处理请求发送至所述接入管理服务器;
所述接入管理服务器,用于根据所述身份DID和所述用户可识别凭证对所述用户分配角色信息,并将所述角色信息和所述加密后的数据处理请求发送至所述区块链;
所述区块链,用于根据所述公钥解密所述加密后的数据处理请求,获得解密后的数据处理请求,并根据所述角色信息和所述解密后的数据处理请求确定访问控制策略,以使所述客户端根据所述访问控制策略进行数据处理。
可选地,所述认证服务器,还用于在接收到所述客户端发送的认证请求时,根据所述认证确定用户信息;
所述认证服务器,还用于根据所述用户信息对用户进行身份认证,在身份认证完成时,获得身份DID、用户可识别凭证、私钥及公钥。
可选地,所述接入管理服务器还包括基于角色的分布式访问控制模块;
所述接入管理服务器,还用于检测当前网络状态信息,若所述当前网络状态信息正常,则将所述身份DID和所述用户可识别凭证发送至所述基于角色的分布式访问控制模块;
所述基于角色的分布式访问控制模块,用于根据所述身份DID和所述用户可识别凭证对所述用户分配角色信息,并将所述角色信息发送至所述接入管理服务器,以使所述接入管理服务器将所述角色信息和所述加密后的数据处理请求发送至所述区块链。
可选地,所述接入管理服务器还包括基于属性的分布式访问控制模块;
所述接入管理服务器,还用于若所述当前网络状态信息异常,则将所述身份DID和所述用户可识别凭证发送至所述基于属性的分布式访问控制模块;
所述属性的分布式访问控制模块,用于根据所述身份DID和所述用户可识别凭证确定用户属性信息和环境特征信息;
所述属性的分布式访问控制模块,还用于根据所述用户属性信息和环境特征信息确定当前需求情况,并根据所述当前需求情况对所述用户分配角色信息,并将所述角色信息发送至所述接入管理服务器,以使所述接入管理服务器将所述角色信息和所述加密后的数据处理请求发送至所述区块链。
可选地,所述区块链,还用于根据所述公钥解密所述加密后的数据处理请求,获得解密后的数据处理请求,并根据所述角色信息确定对应的角色策略决策智能合同;
所述区块链,还用于根据所述角色策略决策智能合同和所述解密后的数据处理请求确定访问控制策略,以使所述客户端根据所述访问控制策略进行数据处理。
此外,为实现上述目的,本发明还提出一种基于区块链的数据访问系统,所述基于区块链的数据访问方法包括以下步骤:
认证服务器在接收到客户端发送的认证请求时,对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥,并将所述身份DID、所述用户可识别凭证和所述私钥发送至所述客户端,将所述公钥发送至区块链;
所述客户端根据所述私钥对数据处理请求进行加密处理,获得加密后的数据处理请求,并将所述身份DID、所述用户可识别凭证及所述加密后的数据处理请求发送至接入管理服务器;
所述接入管理服务器根据所述身份DID和所述用户可识别凭证对所述用户分配角色信息,并将所述角色信息和所述加密后的数据处理请求发送至所述区块链;
所述区块链根据所述公钥解密所述加密后的数据处理请求,获得解密后的数据处理请求,并根据所述角色信息和所述解密后的数据处理请求确定访问控制策略,以使所述客户端根据所述访问控制策略进行数据处理。
此外,为实现上述目的,本发明还提出一种基于区块链的数据访问设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于区块链的数据访问程序,所述基于区块链的数据访问程序配置为实现如上文所述的基于区块链的数据访问系统的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于区块链的数据访问程序,所述基于区块链的数据访问程序被处理器执行时实现如上文所述的基于区块链的数据访问系统的步骤。
本发明基于区块链的数据访问系统包括认证服务器、客户端、接入管理服务器及区块链,首先认证服务器在接收到客户端发送的认证请求时,对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥,并将身份DID、用户可识别凭证及私钥发送至客户端,将公钥发送至区块链,然后客户端根据私钥对数据处理请求进行加密处理,获得加密后的数据处理请求,并将身份DID、用户可识别凭证及加密后的数据处理请求发送至接入管理服务器,之后接入管理服务器根据身份DID和用户可识别凭证对用户分配角色信息,并将角色信息和加密后的数据处理请求发送至区块链,最后区块链根据公钥解密加密后的数据处理请求,获得解密后的数据处理请求,并根据角色信息和解密后的数据处理请求确定访问控制策略,以使客户端根据访问控制策略进行数据处理。相较于现有技术中将所有数据集中存储在中央数据库或云服务器上,并通过一套中央授权机制来管理数据的访问权限,一旦中央系统遭到攻击或故障,将导致大规模的数据泄露或访问中断,暴露用户的敏感信息,本发明运用区块链技术,将数据分散式地存储在多个节点上,有效降低了中心化系统的单点故障风险,同时将用户的身份和隐私信息加密存储在区块链上,只有得到明确授权的用户才能解密这些信息,有效地保护了用户的隐私。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于区块链的数据访问设备的结构示意图;
图2为本发明基于区块链的数据访问系统第一实施例的结构框图;
图3为本发明基于区块链的数据访问系统第一实施例的数据交互流程示意图;
图4为本发明基于区块链的数据访问方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于区块链的数据访问设备结构示意图。
如图1所示,该基于区块链的数据访问设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入模块比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储系统。
本领域技术人员可以理解,图1中示出的结构并不构成对基于区块链的数据访问设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于区块链的数据访问程序。
在图1所示的基于区块链的数据访问设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明基于区块链的数据访问设备中的处理器1001、存储器1005可以设置在基于区块链的数据访问设备中,所述基于区块链的数据访问设备通过处理器1001调用存储器1005中存储的基于区块链的数据访问程序,并执行本发明实施例提供的基于区块链的数据访问系统。
本发明实施例提供了一种基于区块链的数据访问系统,参照图2,图2为本发明基于区块链的数据访问系统第一实施例的结构框图。
本实施例中,所述基于区块链的数据访问系统包括认证服务器2001、客户端2002、接入管理服务器2003及区块链2004。
在本实施例中,参考图3,图3为本发明基于区块链的数据访问系统第一实施例的数据交互流程示意图,图中接入管理服务器包括基于角色的分布式访问控制模块和基于属性的分布式访问控制模块,认证服务器用于完成用户的身份验证,接入管理服务器用于分配角色信息,区块链用于开放用户可访问的数据信息等。图中(1)用户数据采集;(2)生成用户分布式ID;(3)用户数据聚合和加密;(4)用户数据存储和分析;(5)分布式ID和可认证凭证管理;(6)认证请求;(7)数据访问请求;(8)证明和许可请求;(9)发送允许访问许可;(10)授权数据访问者访问权限。
所述认证服务器2001,用于在接收到所述客户端发送的认证请求时,对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥,并将所述身份DID、所述用户可识别凭证及所述私钥发送至所述客户端2002,将所述公钥发送至所述区块链2004。
进一步地,认证服务器在接收到客户端发送的认证请求时,根据认证请求确定用户信息;根据用户信息对用户进行身份认证,在身份认证完成时,通过数字钱包获得身份DID、用户可识别凭证、私钥及公钥。
还需要说明的是,认证请求为用户需要完成身份认证的请求,客户端在发起身份认证请求时,通过数字钱包获取该用户的用户身份信息,认证服务器根据用户信息对用户进行身份认证,在身份认证完成时,通过数字钱包获得身份DID、用户可识别凭证、私钥及公钥。
身份DID为每个用户的唯一标识,用户信息为数据处理请求中所包含的用户登录信息及用户相关信息等。
用户可识别凭证为认证服务器经过身份识别成功后,所发给客户端的可识别凭证。
在具体实现中,认证服务器改善用户身份验证和授权机制,增强访问权限控制系统与用户之间的互操作性,增加了访问控制系统的安全性。
还需要说明的是,身份DID还可以是由数据所有者以及数据访问者(即客户端)从公钥/私钥对生成的,并使用用户各自的私钥签名。将系统中标识DID的方法标识为是"dac"(去中心化访问控制),这将产生一个形如"did:dac:namespace"的字符串标识符。所有DID必须以以下前缀开头:"did:dac:"。在前缀之后,DID的其余部分是特定标识符。
每个用户(包括数据所有者和数据访问者)都拥有一个至少带有他的DID、可识别凭证和用于签署交易和访问请求的私钥的数字钱包。但是,公钥将记录在区块链中以供访问。
具体而言,用户的数字钱包将执行以下功能:
1)生成DID和密钥(公钥和私钥)。
2)请求发行可验证凭证,接受已发行的凭证并存储它们。
3)接收来自验证者的一个或多个凭证的证明请求。
4)数据汇总、加密和签名。
还需要说明的是,当数据访问者(即客户端)使用他的DID请求身份验证时,作为验证者的认证服务器会向他发送一个证明请求以验证他的身份。数据访问者处理证明请求并根据零知识证明技术确定满足证明的必要凭证,然后将响应发送给认证服务器。然后,认证服务器使用数据所有者的DID和在证明响应中指定的凭证定义来验证响应。如果验证响应成功,那么基于令牌的身份验证(即用户可识别凭证)将提交给数据访问者。
所述客户端2002,用于根据所述私钥对数据处理请求进行加密处理,获得加密后的数据处理请求,并将所述身份DID、所述用户可识别凭证及所述加密后的数据处理请求发送至所述接入管理服务器2003。
所述接入管理服务器2003,用于根据所述身份DID和所述用户可识别凭证对所述用户分配角色信息,并将所述角色信息和所述加密后的数据处理请求发送至所述区块链2004。
需要说明的是,数据处理请求可以为用户访问数据请求,还可以为用户处理数据请求等。
进一步地,接入管理服务器还包括基于角色的分布式访问控制模块;接入管理服务器检测当前网络状态信息,若当前网络状态信息正常,则将身份DID和用户可识别凭证发送至基于角色的分布式访问控制模块;基于角色的分布式访问控制模块根据身份DID和用户可识别凭证对用户分配角色信息,并将角色信息发送至接入管理服务器,以使接入管理服务器将角色信息和加密后的数据处理请求发送至区块链。
角色信息可以为用户自定义设置的角色,例如访问者或管理者等。
还需要说明的是,若当前网络状态不稳定,则无法正常访问区块链内部信息,因此需要检测当前网络状态信息。
在具体实现中,基于角色的分布式访问控制模块(RDAC)模型,将RBAC模型与区块链相结合。RDAC方法的关键思想是根据用户的可识别凭证分配角色,然后定义包含数据访问者在访问或更新数据时必须遵循的规则的策略。每个用户可以分配给一个或多个角色。角色与默认权限相关联。
进一步地,接入管理服务器还包括基于属性的分布式访问控制模块;接入管理服务器若当前网络状态信息异常,则将身份DID和所述用户可识别凭证发送至基于属性的分布式访问控制模块;属性的分布式访问控制模块根据身份DID和用户可识别凭证确定用户属性信息和环境特征信息;属性的分布式访问控制模块根据用户属性信息和环境特征信息确定当前需求情况,并根据当前需求情况对用户分配角色信息,并将角色信息发送至接入管理服务器,以使接入管理服务器将角色信息和加密后的数据处理请求发送至所述区块链。
还需要说明的是,用户属性信息包括用户年龄、性别、职位、地理位置以及其身份或角色相关的其它属性。
环境特征信息包括日期、时间、位置和网络健康状态等。
当前需要情况包括紧急情况、严重危机情况及正常情况。
本实施例基于属性的分布式访问控制模块,以解决传统ABAC存在的隐私泄露风险并增强其应对特殊极端情况(如数据所有者失联)的能力。因此,可以实现在紧急情况和意外情况下进行本地决策和调整。
所述区块链2004,用于根据所述公钥解密所述加密后的数据处理请求,获得解密后的数据处理请求,并根据所述角色信息和所述解密后的数据处理请求确定访问控制策略,以使所述客户端2002根据所述访问控制策略进行数据处理。
还需要说明的是,区块链确定访问控制策略后,发送允许访问许可至接入管理服务器,接入管理服务器授权客户端权限,以使客户端根据访问控制策略进行数据访问或处理。
应理解的是,区块链根据公钥解密加密后的数据处理请求,获得解密后的数据处理请求,并根据角色信息确定对应的角色策略决策智能合同;区块链根据角色策略决策智能合同和解密后的数据处理请求确定访问控制策略,以使客户端根据访问控制策略进行数据处理。
角色策略决策智能合同中包含该角色对应的所有访问控制策略。访问控制策略可以为根据数据处理请求确定该角色所能访问的信息内容等。
为了提高和增强安全性和数据隐私,区块链技术被整合到分布式访问控制模型中。然后,数字钱包将用户信息、数据上传记录、数据访问记录、数据修改记录、数据权限设定、允许访问设定等作为交易信息广播到网络;随后区块链网络进行网络验证、验证交易步骤,并将其添加到区块链中。区块链的引入,使得数据所有者可以通过更改数据交易的上下文信息来快速修改其数据所对应的访问权限。
具体来说,将服务上下文、身份验证机制、用户的数字签名和服务定义等都加入到分布式用户识别信息中,用于表征访问控制策略。访问策略包含以下信息:
·用户-指示接受的用户DID列表:
“user”:[“did:dac:alice”],
·角色-指示授权角色的列表:
“role”:[“数据所有者”],
·规则-由以下项目组成:
“grant”:[“read”,“write”,“update”],
·由-指定要授予访问权限的用户的名称和角色:
“by”:[“alice_u:数据访问者”],
·何时-指定策略授予权限的情况:
“When”:[“time=08pm-10am”,“status=emergency”],
·URL-包括适用于操作的健康记录的URL,
“url”:[“fog.storage.patient1.emg_data”]
根据包含在授权请求中的身份DID,区块链返回由数据所有者管理的相应授权。
还需要说明的是,使用Hyperledger Indy(许可区块链的开源版本)来创建和评估去中心化访问控制机制,并在Docker容器中对系统进行了构建。在本案例中,专注于通过两个实验来评估系统的性能:
·实验1:通过提交和执行的交易数量以及用户数量来评估基于角色的分散访问控制(RDAC)模型的性能。
·实验2:使用用户分布式身份识别信息来评估基于属性的分散访问控制(ADAC)模型的性能。
展示了方案在提交和执行时间方面的性能,这意味着不同的访问控制操作可以多快地执行。执行时间是我们架构模型中最重要的关键参数。此外,方案的性能重点关注了两个实验的交易吞吐量和交易延迟。吞吐量被描述为每秒成功交易的数量(transactionsper second,tps)。延迟被定义为交易初始化和实际执行之间的平均时间间隔。
表1:用户数量与交易吞吐量(fps)之间的关系
用户设置 | ADAC | RDAC |
1 | 13 | 9 |
100 | 17 | 105 |
200 | 26 | 196 |
300 | 45 | 283 |
400 | 53 | 368 |
500 | 79 | 447 |
表2:用户数量与交易延迟(s)之间的关系
实验结果表明,方案在执行时间以及事务吞吐量和延迟方面给出了更好的结果。此外,为数据提供者的数据访问权限提供了强有力的安全和隐私保障。实验结果证明了本技术方案在数据访问控制的有效性和安全性。
还需要说明的是,确保所有数据访问事件都被详细记录在区块链上,实现了数据的不可篡改和可追溯性。这一特性有助于监管、合规性和审计,提升了数据访问的透明度和可信度。由于区块链的去中心化特性和智能合约的灵活性,这一方法具有广泛的适用性,可满足各种领域对数据访问控制的不同需求,包括金融、医疗保健、供应链管理、物联网等行业。
在本实施例中,首先认证服务器在接收到客户端发送的认证请求时,对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥,并将身份DID、用户可识别凭证及私钥发送至客户端,将公钥发送至区块链,然后客户端根据私钥对数据处理请求进行加密处理,获得加密后的数据处理请求,并将身份DID、用户可识别凭证及加密后的数据处理请求发送至接入管理服务器,之后接入管理服务器根据身份DID和用户可识别凭证对用户分配角色信息,并将角色信息和加密后的数据处理请求发送至区块链,最后区块链根据公钥解密加密后的数据处理请求,获得解密后的数据处理请求,并根据角色信息和解密后的数据处理请求确定访问控制策略,以使客户端根据访问控制策略进行数据处理。相较于现有技术中将所有数据集中存储在中央数据库或云服务器上,并通过一套中央授权机制来管理数据的访问权限,一旦中央系统遭到攻击或故障,将导致大规模的数据泄露或访问中断,暴露用户的敏感信息,本发明运用区块链技术,将数据分散式地存储在多个节点上,有效降低了中心化系统的单点故障风险,同时将用户的身份和隐私信息加密存储在区块链上,只有得到明确授权的用户才能解密这些信息,有效地保护了用户的隐私。
参照图4,图4为本发明基于区块链的数据访问方法第一实施例的流程示意图。
如图4所示,本发明实施例提出的基于区块链的数据访问方法包括以下步骤:
步骤S10:认证服务器在接收到客户端发送的认证请求时,对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥,并将所述身份DID、所述用户可识别凭证和所述私钥发送至所述客户端,将所述公钥发送至区块链。
进一步地,认证服务器在接收到客户端发送的认证请求时,根据认证请求确定用户信息;根据用户信息对用户进行身份认证,在身份认证完成时,通过数字钱包获得身份DID、用户可识别凭证、私钥及公钥。
还需要说明的是,认证请求为用户需要完成身份认证的请求,客户端在发起身份认证请求时,通过数字钱包获取该用户的用户身份信息,认证服务器根据用户信息对用户进行身份认证,在身份认证完成时,通过数字钱包获得身份DID、用户可识别凭证、私钥及公钥。
身份DID为每个用户的唯一标识,用户信息为数据处理请求中所包含的用户登录信息及用户相关信息等。
用户可识别凭证为认证服务器经过身份识别成功后,所发给客户端的可识别凭证。
在具体实现中,认证服务器改善用户身份验证和授权机制,增强访问权限控制系统与用户之间的互操作性,增加了访问控制系统的安全性。
还需要说明的是,身份DID还可以是由数据所有者以及数据访问者(即客户端)从公钥/私钥对生成的,并使用用户各自的私钥签名。将系统中标识DID的方法标识为是"dac"(去中心化访问控制),这将产生一个形如"did:dac:namespace"的字符串标识符。所有DID必须以以下前缀开头:"did:dac:"。在前缀之后,DID的其余部分是特定标识符。
每个用户(包括数据所有者和数据访问者)都拥有一个至少带有他的DID、可识别凭证和用于签署交易和访问请求的私钥的数字钱包。但是,公钥将记录在区块链中以供访问。
具体而言,用户的数字钱包将执行以下功能:
1)生成DID和密钥(公钥和私钥)。
2)请求发行可验证凭证,接受已发行的凭证并存储它们。
3)接收来自验证者的一个或多个凭证的证明请求。
4)数据汇总、加密和签名。
还需要说明的是,当数据访问者(即客户端)使用他的DID请求身份验证时,作为验证者的认证服务器会向他发送一个证明请求以验证他的身份。数据访问者处理证明请求并根据零知识证明技术确定满足证明的必要凭证,然后将响应发送给认证服务器。然后,认证服务器使用数据所有者的DID和在证明响应中指定的凭证定义来验证响应。如果验证响应成功,那么基于令牌的身份验证(即用户可识别凭证)将提交给数据访问者。
步骤S20:所述客户端根据所述私钥对数据处理请求进行加密处理,获得加密后的数据处理请求,并将所述身份DID、所述用户可识别凭证及所述加密后的数据处理请求发送至接入管理服务器。
步骤S30:所述接入管理服务器根据所述身份DID和所述用户可识别凭证对所述用户分配角色信息,并将所述角色信息和所述加密后的数据处理请求发送至所述区块链。
需要说明的是,数据处理请求可以为用户访问数据请求,还可以为用户处理数据请求等。
进一步地,接入管理服务器还包括基于角色的分布式访问控制模块;接入管理服务器检测当前网络状态信息,若当前网络状态信息正常,则将身份DID和用户可识别凭证发送至基于角色的分布式访问控制模块;基于角色的分布式访问控制模块根据身份DID和用户可识别凭证对用户分配角色信息,并将角色信息发送至接入管理服务器,以使接入管理服务器将角色信息和加密后的数据处理请求发送至区块链。
角色信息可以为用户自定义设置的角色,例如访问者或管理者等。
还需要说明的是,若当前网络状态不稳定,则无法正常访问区块链内部信息,因此需要检测当前网络状态信息。
在具体实现中,基于角色的分布式访问控制模块(RDAC)模型,将RBAC模型与区块链相结合。RDAC方法的关键思想是根据用户的可识别凭证分配角色,然后定义包含数据访问者在访问或更新数据时必须遵循的规则的策略。每个用户可以分配给一个或多个角色。角色与默认权限相关联。
进一步地,接入管理服务器还包括基于属性的分布式访问控制模块;接入管理服务器若当前网络状态信息异常,则将身份DID和所述用户可识别凭证发送至基于属性的分布式访问控制模块;属性的分布式访问控制模块根据身份DID和用户可识别凭证确定用户属性信息和环境特征信息;属性的分布式访问控制模块根据用户属性信息和环境特征信息确定当前需求情况,并根据当前需求情况对用户分配角色信息,并将角色信息发送至接入管理服务器,以使接入管理服务器将角色信息和加密后的数据处理请求发送至所述区块链。
还需要说明的是,用户属性信息包括用户年龄、性别、职位、地理位置以及其身份或角色相关的其它属性。
环境特征信息包括日期、时间、位置和网络健康状态等。
当前需要情况包括紧急情况、严重危机情况及正常情况。
本实施例基于属性的分布式访问控制模块,以解决传统ABAC存在的隐私泄露风险并增强其应对特殊极端情况(如数据所有者失联)的能力。因此,可以实现在紧急情况和意外情况下进行本地决策和调整。
步骤S40:所述区块链根据所述公钥解密所述加密后的数据处理请求,获得解密后的数据处理请求,并根据所述角色信息和所述解密后的数据处理请求确定访问控制策略,以使所述客户端根据所述访问控制策略进行数据处理。
应理解的是,区块链根据公钥解密加密后的数据处理请求,获得解密后的数据处理请求,并根据角色信息确定对应的角色策略决策智能合同;区块链根据角色策略决策智能合同和解密后的数据处理请求确定访问控制策略,以使客户端根据访问控制策略进行数据处理。
角色策略决策智能合同中包含该角色对应的所有访问控制策略。
为了提高和增强安全性和数据隐私,区块链技术被整合到分布式访问控制模型中。然后,数字钱包将用户信息、数据上传记录、数据访问记录、数据修改记录、数据权限设定、允许访问设定等作为交易信息广播到网络;随后区块链网络进行网络验证、验证交易步骤,并将其添加到区块链中。区块链的引入,使得数据所有者可以通过更改数据交易的上下文信息来快速修改其数据所对应的访问权限。
具体来说,将服务上下文、身份验证机制、用户的数字签名和服务定义等都加入到分布式用户识别信息中,用于表征访问控制策略。访问策略包含以下信息:
·用户-指示接受的用户DID列表:
“user”:[“did:dac:alice”],
·角色-指示授权角色的列表:
“role”:[“数据所有者”],
·规则-由以下项目组成:
“grant”:[“read”,“write”,“update”],
·由-指定要授予访问权限的用户的名称和角色:
“by”:[“alice_u:数据访问者”],
·何时-指定策略授予权限的情况:
“When”:[“time=08pm-10am”,“status=emergency”],
·URL-包括适用于操作的健康记录的URL,
“url”:[“fog.storage.patient1.emg_data”]
根据包含在授权请求中的身份DID,区块链返回由数据所有者管理的相应授权。
还需要说明的是,使用Hyperledger Indy(许可区块链的开源版本)来创建和评估去中心化访问控制机制,并在Docker容器中对系统进行了构建。在本案例中,专注于通过两个实验来评估系统的性能:
·实验1:通过提交和执行的交易数量以及用户数量来评估基于角色的分散访问控制(RDAC)模型的性能。
·实验2:使用用户分布式身份识别信息来评估基于属性的分散访问控制(ADAC)模型的性能。
展示了方案在提交和执行时间方面的性能,这意味着不同的访问控制操作可以多快地执行。执行时间是我们架构模型中最重要的关键参数。此外,方案的性能重点关注了两个实验的交易吞吐量和交易延迟。吞吐量被描述为每秒成功交易的数量(transactionsper second,tps)。延迟被定义为交易初始化和实际执行之间的平均时间间隔。
表1:用户数量与交易吞吐量(fps)之间的关系
/>
表2:用户数量与交易延迟(s)之间的关系
用户设置 | ADAC | RDAC |
1 | 3.28 | 15.04 |
50 | 9.84 | 152.70 |
100 | 16.40 | 263.47 |
150 | 28.01 | 483.48 |
200 | 29.53 | 500.12 |
250 | 39.45 | 626.01 |
300 | 59.46 | 647.70 |
350 | 57.62 | 671.07 |
400 | 65.86 | 650.74 |
450 | 97.64 | 650.58 |
500 | 119.33 | 710.92 |
实验结果表明,方案在执行时间以及事务吞吐量和延迟方面给出了更好的结果。此外,为数据提供者的数据访问权限提供了强有力的安全和隐私保障。实验结果证明了本技术方案在数据访问控制的有效性和安全性。
还需要说明的是,确保所有数据访问事件都被详细记录在区块链上,实现了数据的不可篡改和可追溯性。这一特性有助于监管、合规性和审计,提升了数据访问的透明度和可信度。由于区块链的去中心化特性和智能合约的灵活性,这一方法具有广泛的适用性,可满足各种领域对数据访问控制的不同需求,包括金融、医疗保健、供应链管理、物联网等行业。
在本实施例中,首先认证服务器在接收到客户端发送的认证请求时,对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥,并将身份DID、用户可识别凭证及私钥发送至客户端,将公钥发送至区块链,然后客户端根据私钥对数据处理请求进行加密处理,获得加密后的数据处理请求,并将身份DID、用户可识别凭证及加密后的数据处理请求发送至接入管理服务器,之后接入管理服务器根据身份DID和用户可识别凭证对用户分配角色信息,并将角色信息和加密后的数据处理请求发送至区块链,最后区块链根据公钥解密加密后的数据处理请求,获得解密后的数据处理请求,并根据角色信息和解密后的数据处理请求确定访问控制策略,以使客户端根据访问控制策略进行数据处理。相较于现有技术中将所有数据集中存储在中央数据库或云服务器上,并通过一套中央授权机制来管理数据的访问权限,一旦中央系统遭到攻击或故障,将导致大规模的数据泄露或访问中断,暴露用户的敏感信息,本发明运用区块链技术,将数据分散式地存储在多个节点上,有效降低了中心化系统的单点故障风险,同时将用户的身份和隐私信息加密存储在区块链上,只有得到明确授权的用户才能解密这些信息,有效地保护了用户的隐私。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种基于区块链的数据访问系统,其特征在于,所述基于区块链的数据访问系统包括认证服务器、客户端、接入管理服务器及区块链;
所述认证服务器,用于在接收到所述客户端发送的认证请求时,对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥,并将所述身份DID、所述用户可识别凭证及所述私钥发送至所述客户端,将所述公钥发送至所述区块链;
所述客户端,用于根据所述私钥对数据处理请求进行加密处理,获得加密后的数据处理请求,并将所述身份DID、所述用户可识别凭证及所述加密后的数据处理请求发送至所述接入管理服务器;
所述接入管理服务器,用于根据所述身份DID和所述用户可识别凭证对所述用户分配角色信息,并将所述角色信息和所述加密后的数据处理请求发送至所述区块链;
所述区块链,用于根据所述公钥解密所述加密后的数据处理请求,获得解密后的数据处理请求,并根据所述角色信息和所述解密后的数据处理请求确定访问控制策略,以使所述客户端根据所述访问控制策略进行数据处理。
2.如权利要求1所述的系统,其特征在于,所述认证服务器,还用于在接收到所述客户端发送的认证请求时,根据所述认证请求确定用户信息;
所述认证服务器,还用于根据所述用户信息对用户进行身份认证,在身份认证完成时,获得身份DID、用户可识别凭证、私钥及公钥。
3.如权利要求1所述的系统,其特征在于,所述接入管理服务器还包括基于角色的分布式访问控制模块;
所述接入管理服务器,还用于检测当前网络状态信息,若所述当前网络状态信息正常,则将所述身份DID和所述用户可识别凭证发送至所述基于角色的分布式访问控制模块;
所述基于角色的分布式访问控制模块,用于根据所述身份DID和所述用户可识别凭证对所述用户分配角色信息,并将所述角色信息发送至所述接入管理服务器,以使所述接入管理服务器将所述角色信息和所述加密后的数据处理请求发送至所述区块链。
4.如权利要求3所述的系统,其特征在于,所述接入管理服务器还包括基于属性的分布式访问控制模块;
所述接入管理服务器,还用于若所述当前网络状态信息异常,则将所述身份DID和所述用户可识别凭证发送至所述基于属性的分布式访问控制模块;
所述属性的分布式访问控制模块,用于根据所述身份DID和所述用户可识别凭证确定用户属性信息和环境特征信息;
所述属性的分布式访问控制模块,还用于根据所述用户属性信息和环境特征信息确定当前需求情况,并根据所述当前需求情况对所述用户分配角色信息,并将所述角色信息发送至所述接入管理服务器,以使所述接入管理服务器将所述角色信息和所述加密后的数据处理请求发送至所述区块链。
5.如权利要求1-4任一项所述的系统,其特征在于,所述区块链,还用于根据所述公钥解密所述加密后的数据处理请求,获得解密后的数据处理请求,并根据所述角色信息确定对应的角色策略决策智能合同;
所述区块链,还用于根据所述角色策略决策智能合同和所述解密后的数据处理请求确定访问控制策略,以使所述客户端根据所述访问控制策略进行数据处理。
6.一种基于区块链的数据访问方法,其特征在于,所述基于区块链的数据访问方法包括以下步骤:
认证服务器在接收到客户端发送的认证请求时,对用户进行身份识别,获得身份DID、用户可识别凭证、私钥及公钥,并将所述身份DID、所述用户可识别凭证和所述私钥发送至所述客户端,将所述公钥发送至区块链;
所述客户端根据所述私钥对数据处理请求进行加密处理,获得加密后的数据处理请求,并将所述身份DID、所述用户可识别凭证及所述加密后的数据处理请求发送至接入管理服务器;
所述接入管理服务器根据所述身份DID和所述用户可识别凭证对所述用户分配角色信息,并将所述角色信息和所述加密后的数据处理请求发送至所述区块链;
所述区块链根据所述公钥解密所述加密后的数据处理请求,获得解密后的数据处理请求,并根据所述角色信息和所述解密后的数据处理请求确定访问控制策略,以使所述客户端根据所述访问控制策略进行数据处理。
7.一种基于区块链的数据访问设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于区块链的数据访问程序,所述基于区块链的数据访问程序配置为实现如权利要求1至5中任一项所述的基于区块链的数据访问系统的步骤。
8.一种存储介质,其特征在于,所述存储介质上存储有基于区块链的数据访问程序,所述基于区块链的数据访问程序被处理器执行时实现如权利要求1至5任一项所述的基于区块链的数据访问系统的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311795530.5A CN117978438A (zh) | 2023-12-24 | 2023-12-24 | 基于区块链的数据访问系统、方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311795530.5A CN117978438A (zh) | 2023-12-24 | 2023-12-24 | 基于区块链的数据访问系统、方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117978438A true CN117978438A (zh) | 2024-05-03 |
Family
ID=90856525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311795530.5A Pending CN117978438A (zh) | 2023-12-24 | 2023-12-24 | 基于区块链的数据访问系统、方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117978438A (zh) |
-
2023
- 2023-12-24 CN CN202311795530.5A patent/CN117978438A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11314891B2 (en) | Method and system for managing access to personal data by means of a smart contract | |
US11128471B2 (en) | Accessibility controls in distributed data systems | |
CN111783075B (zh) | 基于密钥的权限管理方法、装置、介质及电子设备 | |
US11290446B2 (en) | Access to data stored in a cloud | |
WO2018076761A1 (zh) | 基于区块链交易的权限管制方法、系统、电子装置及存储介质 | |
US8572372B2 (en) | Method for selectively enabling access to file systems of mobile terminals | |
US8726342B1 (en) | Keystore access control system | |
EP1452941A2 (en) | Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (DRM) system | |
EP3477891A1 (en) | Methods for recording and sharing a digital identity of a user using distributed ledgers | |
WO2014207554A2 (en) | Method and apparatus for providing database access authorization | |
CN111914293B (zh) | 一种数据访问权限验证方法、装置、计算机设备及存储介质 | |
US11483147B2 (en) | Intelligent encryption based on user and data properties | |
US9137014B2 (en) | Systems and methods for controlling electronic document use | |
US11425143B2 (en) | Sleeper keys | |
Chai et al. | BHE-AC: A blockchain-based high-efficiency access control framework for Internet of Things | |
US8611544B1 (en) | Systems and methods for controlling electronic document use | |
Verma et al. | Secure document sharing model based on blockchain technology and attribute-based encryption | |
US11102005B2 (en) | Intelligent decryption based on user and data profiling | |
Kirkman et al. | Bridging the cloud trust gap: Using orcon policy to manage consumer trust between different clouds | |
CN115022039A (zh) | 信息处理方法、装置、设备、存储介质和计算机程序产品 | |
CN114253660A (zh) | 授权用户数据处理器访问用户数据的容器的系统和方法 | |
CN117978438A (zh) | 基于区块链的数据访问系统、方法、设备及存储介质 | |
JP7477907B2 (ja) | 情報提供システム、情報提供方法及び情報提供プログラム | |
KR102375616B1 (ko) | 엔드 유저 인증을 위한 키 관리 방법 및 시스템 | |
US10015018B2 (en) | Signing key log management |
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 |