一种基于区块链的策略隐藏型数据访问控制方法与流程

文档序号:24346157发布日期:2021-03-19 12:29阅读:209来源:国知局
一种基于区块链的策略隐藏型数据访问控制方法与流程

本发明属于云计算、访问控制技术领域,具体涉及基于区块链的策略隐藏型数据访问控制方法,该方法利用区块链的去中心化、透明性及提出基于双线性映射的策略隐藏技术,既保证了用户对数据的绝对控制权,又可防止访问控制策略带来隐私泄露。



背景技术:

随着云计算技术的蓬勃发展和应用,用户数据外包存储,数据安全和隐私保护问题成为了人们关注的热点。访问控制作为保护数据安全及不被未授权者访问使用的重要技术,一直都是用户保护数据的重要技术,但随着用户数据的爆炸式增长以及云存储技术的发展,越来越多的用户选择把数据存放于云中,并把访问控制权限委托给第三方服务商,以减少保护数据所带来的成本开销。但是第三方服务商并不是完全可信的,存在非法执行访问控制策略、故意泄露用户隐私数据的风险,会给用户带来诸多不良后果。因此如何保证第三方服务商真实正确执行访问控制策略成为了云计算存储服务持续发展及广泛应用的关键。

当前,由于区块链具有去中心化、透明性、不可篡改性等特点,一些研究工作引入其透明性、不可篡改性等特点用于减少对第三方服务商的信任依赖,确保访问控制日志不被随意篡改,同时利用智能合约及分布式协商机制,确保访问控制策略的自动正确执行,引入区块链技术实现访问控制,以解决云计算、大数据等场景下用户把数据存储于云中及把访问控制权委托给第三方服务商实施所带来的安全风险。另外,由于区块链的去中心化、透明性等特点导致存储于区块链中的访问控制策略可以被随意查看,访问控制策略是实现合法用户获取有效访问权限的一组约束条件,访问控制策略中往往包含身份属性等敏感信息,用户随意查看策略会造成泄露数据拥有者的隐私信息的风险。因此本发明提出基于区块链的策略安全型访问控制方法。



技术实现要素:

针对第三发服务商不完全可信以及区块链中的访问控制策略给用户带来的隐私泄露的问题,本发明提出一种基于区块链的策略隐藏型数据访问控制方法,引入区块链技术及提出基于双线性映射的策略隐藏技术,保证用户对数据的绝对控制权,同时防止访问控制策略带来隐私泄露。

本发明提出的一种基于区块链的策略隐藏型数据访问控制方法,实现该方法的系统包括数据拥有者、数据访问者、区块链平台和云存储服务四个部分,这四部分之间相互协作,共同完成对数据的安全访问控制。其中:

①数据拥有者:是数据的拥有者,对数据拥有绝对的管理权限。其主要负责把数据上传至云服务存储记录下存储地址,同时制定相应的访问控制策略并转换成访问控制结构树,以及相关参数上传至区块链中,以供智能合约执行访问控制。

②数据访问者:共享数据的访问者。其在区块链中根据数据拥有者发布的参数以及自身属性信息构造属于自己的私钥,并携带私钥发起访问请求。

③区块链平台:用于记录访问控制。存储访问控制结构树,负责检查数据访问者发起访问携带的私钥是否合法可用,以及执行存储访问控制过程。

④云存储服务:用于存储用户数据。

本发明提出的方法具体流程如图1所示。具体流程如下,

step1:区块链平台运行群生成算法m(λ)获得(p,g,gt,e),同时对于区块链平台所有属性att中的每个属性值随机选择计算属性分量区块链平台发布公共参数为:

step2:数据拥有者首先随机选择ω,β,然后根据区块链平台发布的pk,计算:x=gβ,y=e(g,g)ω,数据拥有者在区块链中发布用户个人公共参数:

step3:数据拥有者把数据加密存放至云服务器中并记录地址add。随机选择作为访问控制树t的共享值,执行秘密共享算法,使得t中的每个末端内部节点α得到一个q的共享值qα。然后,在α下为区块链平台中所有属性值计算密文分量值:

①如果属性vi(1≤i≤n)未出现在节点α下的叶子节点所代表的表达式中,或者该属性和属性值都出现,则计算

②如果属性vi(1≤i≤n)出现在节点α下的叶子节点所代表的表达式中,但是属性值没有出现在叶子节点中,则随机选择计算即如下:

计算节点α下的密文组件则节点α下的密文为:

计算c0=xq=gβq,c1=myq=me(g,g)ωq,m是数据拥有者签名的数据拥有凭证。将访问控制树t去掉叶子节点形成访问控制树t',则最终数据拥有者密文为:

c=(c0,c1,{cα}α∈leaf(t),t')(5)

数据拥有者选定一个访问者属性集范围attu,并在区块链中发布密文、attu以及数据地址:

dateu={c,attu,add}(6)

step4:数据访问者根据区块链平台发布的pk以及数据拥有者发布的pku、dateu构造属性集对应的私钥。对于属性集atts中的每个属性表达式atti(1≤i≤k),其中k是属性集atts的阶:从pk中选择对应的属性分量并对其进行签名,确保属性真实性;根据pku计算访问者的私钥:

step5:访问者携带私钥向区块链中的数据发起访问请求。对于t'的末端内部节点α的秘密之为:

其中k是访问者私钥的属性集阶。对于t'中的内部节点δ的秘密值计算如:

其中num(δ)代表节点δ的子节点数量,k(δ)为节点δ的门限值。

根据t'中末端节点的秘密值重构出t'的根节点秘密值,进而计算得到m,然后区块链进行验证共识,并把访问者的访问请求转至地址add云服务器,返回请求数据。

在step5中区块链对访问者进行访问控制需要分为五步:一是验证访问者私钥的合法性及正确性;二是计算并验证t'的末端节点α的秘密值;三是通过末端秘密值计算访问控制树根节点的秘密值;四根据根节点的秘密值计算数据拥有者签名的数据拥有凭证m;五是把访问请求转至服务器。

计算并验证t'的末端节点α的秘密值:区块链根据访问者私钥中的di(1≤i≤k)取出节点α下与之对应的属性值密文分量计算即有:

如果访问者的私钥满足节点α下的所有属性表达式,则可计算出α正确的秘密值:

检验秘密值是否正确:

其中1表示群gt的单位元,当前私钥满足α下的访问控制策略,得到正确的秘密值,否则得出φα为随机值,即当前私钥不满足α下的访问控制策略。计算并验证完t'下所有的末端节点后,结合访问控制树判断是否可以重构t'的根节点秘密值。

如果访问者的私钥属性集满足访问控制树t的访问控制策略,则可根据秘密重构算法得到根节点的秘密值eroot=e(g,g)kq,计算m:

区块链平台经过解密验证,如果访问者的访问私钥满足访问控制策略,则区块链平台和云存储服务交互,返回访问者请求数据,反之拒绝访问。

访问控制策略隐藏:

数据拥有者制定好访问控制结构树后,首先去掉叶子节点构成结构树t',如图2。

数据拥有者会结合访问树t和t',为t'中的每一个叶子节计算区块链平台中所有属性的秘钥分量具体见公式2和3。数据拥有者把构造好的新的t'上传至区块链中,由于t'叶子节点包含区块链平台中每一个属性的密文分量,所以无法具体得知哪些属性是真实有用的策略属性。另外,区块链中的智能合约在计算末端内部节点的秘密值时,需将请求者的所有私钥分量带入计算,并验证秘密值是否正确,因此只可判断请求者的私钥是否满足该末端节点的属性表达式,不可以得出末端节点具体包括哪些属性表达式,本发明以此达到策略隐藏的目的。

与现有技术相比,本发明具有以下优点:

1.针对现有方法中存在访问控制策略被随意查看,带来隐私泄露的风险,本发明利用属性基加密及双线性映射等方法,保证只有拥有权限访问数据资源的合法用户才能在策略隐藏的情况下实现访问控制,无权限用户则不满足访问控制策略,进而达到访问控制的目的,同时避免了恶意者通过访问控制策略分析数据资源拥有者的隐私信息。

2.现有访问控制由不完全可信第三方服务商提供,损害到用户对数据的控制权。因此,本发明把区块链技术与cp-abe模型相结合,用户制定访问控制策略,并发布至区块链中,同时把访问控制逻辑和智能合约逻辑分开,确保用户及时更新访问控制策略。另外,访问控制策略是由智能合约执行及决定是经过分布式节点协商一致性达成并存储的,其拥有不可篡改性和透明性等特点,让用户可以把访问控制权真正掌握在自己手中。

3.由于利用属性基加密和双线性映射等方法,所以在本发明提出的方法中数据访问者的私钥可以自己构造,在发起访问时,秘钥合约会验证私钥的正确性、可用性,以此减少属性基加密时构造用户私钥的计算开销。

附图说明

图1为基于区块链的策略隐藏型数据访问控制方法;

图2访问树t和t'。

图3为基于区块链的策略隐藏型数据访问控制方法交互示意图;

具体实施方式

下面结合附图和具体实施方式对本发明做进一步说明。

本发明所述基于区块链的策略隐藏型数据访问控制方法的具体实施过程如图2所示,包括以下步骤:

步骤1:准备阶段。

步骤1.1:区块链平台执行群生成算法生成相关公共参数,具体见公式(1)。

1)为平台中每个属性分配相应的属性分量。

2)发布公共参数至区块链平台。

步骤1.2:数据拥有者构造访问控制树以及相对应的用户参数,具体见公式(2-6)。

1)根据把数据加密存储至云服务器中。

2)根据区块链平台发布的公参数,选取随机数生自己的用户参数。

3)根据区块链平台公共参数以及用户参数构造访问控制策略树。

4)发布自己的用户参数及访问控制策略树至区块链。

步骤1.3:数据访问者构造私钥并发起访问,具体见公式(7)。

1)根据区块链平台公共参数及数据拥有者发布的用户参数构造个人私钥。

2)为自己构造的私钥进行签名。

3)携带私钥向区块链发起访问请求。

步骤2:策略执行阶段。

区块链平台收到访问者的访问请求,进行检测以及策略匹配,具体见公式(8-13)。

步骤2.1:私钥合法性正确性验证及访问控制。

1)区块链平台对访问者的私钥签名进行合法性正确性验证。

2)私钥验证通过后,通过私钥计算访问控制策略树的秘密值。

3)通过访问控制策略树的各节点秘密值,重构根节点秘密值。

步骤2.2:数据交互。

1)区块链平台验证访问者私钥,并确定其拥有对数据的访问权限,转至云服务器。

2)云服务器返回数据至访问者客户端。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1