System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种基于区块链技术和访问控制的数据共享方法。
技术介绍
1、传统数据共享过程中,数据所有者缺乏对数据共享方式的控制权,无法对数据请求者的行为进行有效的监控和控制,这可能导致恶意方通过已经安装的后门来访问用户的敏感和机密数据。数据访问控制作为一种安全措施,旨在确保只有经过授权的用户或实体能够访问特定的数据资源。传统的访问控制技术通过中心化方法来解决,如自主访问控制、基于身份的访问控制和强制访问控制。自主访问控制和基于身份的访问控制依赖于为系统上的每个人创建访问控制列表,而强制访问控制通常由中央管理员强制执行,无法避免单点故障。集中式方法还存在扩展项差、吞吐量低和可靠性低的缺点。由此可知,寻找一种适合多方分散场景下的数据共享方法,实现保护用户隐私、实现分散粒度访问控制,保证数据共享的扩展性与吞吐量,是当前亟需解决的技术问题。
技术实现思路
1、本专利技术的目的在于,提供一种基于区块链和访问控制的数据共享方法,有效解决了在保证数据隐私的前提下,对分散细粒度访问控制,访问过程透明、可审计。
2、本专利技术提供一种基于区块链和访问控制的数据共享方法,应用于基于区块链的数据共享系统,解决上述技术问题采用的技术方案如下:
3、s1、定义区块链网络上的访问控制组件,构建区块链数据访问模型;
4、s2、基于区块链数据访问模型,使用初始化算法进行系统初始化;
5、s3、数据拥有者和数据请求者向证书颁发机构注册,获得相应的身份
6、s4、数据拥有者通过文件共享系统发布数据;
7、s5、数据访问者通过访问管理合约发出资源访问请求,获得密文数据;
8、s6、数据访问者通过区块链获取解密密钥,解密密文数据得到明文数据。
9、本专利技术的特点还在于,
10、所述访问控制组件包括以下内容:资源、私有数据分发、用户属性、资源属性、访问控制策略;
11、所述资源表征为,任何可以存储在区块链上的都被称之为资源;
12、所述私有数据分发表征为,私有数据通过gossip协议将用户数据分发到特定组织的节点,并使用区块链技术保证数据的安全性和完整性,在私有数据集合中,资源的数据结构是json对象;
13、所述用户属性表征为,将用户属msk性划分为公共属性(uapub)和私有属性(uapriv),uapriv中的属性存储在成员服务提供商(msp)在注册期间生成的客户端x.509证书中,x.509证书包含客户端id、mspid、公钥和其他相关信息,客户端id在msp中唯一,rapub属性以json格式存储在通道状态中,包含一个公共密钥字段,用于解决多个msp时歧义问题;
14、所述资源属性表征为,划分为公共资源属性(rapub)和私有资源属性(rapriv),rapub中的属性以json格式存储在通道状态中,data有一个data字段,每个实体都有一个公钥字段;
15、所述访问控制策略表征为,用于在用户请求访问资源时,根据一组规则来授予所需的访问权限,规则以json格式存储在账本中,管理员负责在需要时添加、删除和修改这些规则。
16、所述数据访问模型以分布式方式进行访问决策,并且需要多数节点达成一致才能执行访问控制,可以根据当前情况通过添加或删除属性来更改策略,实现细粒度的访问控制;系统初始化包括:向系统输入安全参数λ,系统初始化生成系统公钥pk(主密钥)和主私钥(节点密钥);对区块链参数进行初始化以及部署智能合约。
17、所述初始化的表达式为:
18、setup(λ)→gp(pk,msk),
19、在区块链系统中,该函数由区块链证书颁发机构运行,它以λ为安全参数,生成公共参数gp,输出系统公钥pk和主私钥msk,调用智能合约将公共参数存在区块链中,以便在访问控制阶段使用。
20、步骤s4具体需要经过如下步骤:
21、s41、数据拥有者从密钥空间中随机选取一个对称密钥k来加密共享数据data,生成密文ct1;
22、s42、在本地制定数据资源访问策略,为密文数据资源设置解密令牌token,同时利用函数加密函数对对称密钥k进行加密,生成密文ct2,加密函数的格式为:
23、encrypt(gp,m,p(a,p),{pki})→ct2,
24、该函数输入包括公共参数gp,要加密的对称密钥k,数据拥有者设置的访问策略p(a,ρ)与相关的公钥{pki};
25、s43、将密文数据上传到星际文件系统;
26、s44、获取星际文件系统返回的密文资源地址,即
27、s45、将解密令牌token与密文数据资源地址进行加密形成密文令牌secrettokeni,以交易的形式,调用相应的资源管理合约和策略管理合约,将星际文件系统返回的密文资源密文令牌secrettokeni,访问策略p(a,ρ)上传至区块链账本中。
28、步骤s5具体需要经过以下步骤:
29、s51、数据请求者发出访问数据资源的请求,触发相应的访问控制合约,验证其属性是否满足访问数据资源相应的访问策略,如果得到满足,则将满足数据请求者属性的密文资源地址和子策略p(a,ρ)返回给数据请求者;
30、s52、收到密文资源地址与子访问策略后,在星际文件系统中查询并获取密文数据资源。
31、步骤s6具体需要经过以下步骤:
32、s61、通过区块链的访问控制合约发起解密请求;
33、s62、根据子策略中所包含的属性,访问控制合约找到相应的密文令牌并将其返回给数据请求者;
34、s63、在接收到密文令牌后,数据请求者对密文资源地址进行解密获取解密令牌,根据令牌私钥在本地执行解密算法,获取密文的解密密钥,获取明文数据。
35、一种基于属性和区块链数据共享机制,该机制用于执行上述基于区块链和访问控制的数据共享方法,该机制包括:身份和属性管理模块、数据安全存储模块、访问策略管理和访问控制实现模块、密钥管理模块;
36、所述身份和属性管理模块,负责管理普通用户、验证用户的身份和属性,并向证书颁发机构注册新用户;
37、所述数据安全存储模块,负责用户数据隐私保护,包括使用加密算法对本地数据资源进行加密,形成密文并上传到星际文件系统,调用资源管理合约,将星际文件系统返回的存储在区块链上,调用链码函数将数据资源信息添加到区块链上作为凭证,输入格式为:
38、(resid,ownerid,resname,hashct);
39、所述访问策略管理和访问控制实现模块,由数据拥有者、数据请求者与区块链网络的交互实现,数据拥有者调用策略管理合约的函数,上传访问策略到区块链,数据请求者调用访问管理合约中的方法,向数据拥有者发出基于属性的本文档来自技高网...
【技术保护点】
1.一种基于区块链和访问控制的数据共享方法,其特征在于,其方法包括:
2.根据权利要求1所述的一种基于区块链和访问控制的数据共享方法,其特征在于,所述访问控制组件包括以下内容:资源、私有数据分发、用户属性、资源属性、访问控制策略;
3.根据权利要求1所述的一种基于区块链和访问控制的数据共享方法,其特征在于,所述数据访问模型以分布式方式进行访问决策,并且需要多数节点达成一致才能执行访问控制,可以根据当前情况通过添加或删除属性来更改策略,实现细粒度的访问控制;系统初始化包括:向系统输入安全参数λ,系统初始化生成系统公钥PK(主密钥)和主私钥MSK(节点密钥);对区块链参数进行初始化以及部署智能合约。
4.根据权利要求2所述的一种基于区块链和访问控制的数据共享方法,其特征在于,所述初始化的表达式为:
5.根据权利要求1所述的一种基于区块链和访问控制的数据共享方法,其特征在于,所述步骤S4需要经过如下步骤:
6.根据权利要求1所述的一种基于区块链和访问控制的数据共享方法,其特征在于,所述步骤S5需要经过以下步骤:
7
8.一种基于属性和区块链数据共享机制,该机制用于执行上述基于区块链和访问控制的数据共享方法,该机制包括:身份和属性管理模块、数据安全存储模块、访问策略管理和访问控制实现模块、密钥管理模块;
...【技术特征摘要】
1.一种基于区块链和访问控制的数据共享方法,其特征在于,其方法包括:
2.根据权利要求1所述的一种基于区块链和访问控制的数据共享方法,其特征在于,所述访问控制组件包括以下内容:资源、私有数据分发、用户属性、资源属性、访问控制策略;
3.根据权利要求1所述的一种基于区块链和访问控制的数据共享方法,其特征在于,所述数据访问模型以分布式方式进行访问决策,并且需要多数节点达成一致才能执行访问控制,可以根据当前情况通过添加或删除属性来更改策略,实现细粒度的访问控制;系统初始化包括:向系统输入安全参数λ,系统初始化生成系统公钥pk(主密钥)和主私钥msk(节点密钥);对区块链参数进行初始化以及部署智能合约。
4.根据权...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。