基于区块链的数据要素资源共享及访问控制方案
2023-02-17冯景丽石竹玉朴桂荣
王 栋 李 达 冯景丽 石竹玉 朴桂荣
(国网数字科技控股有限公司(国网雄安金融科技集团有限公司) 北京 100053) (国家电网有限公司区块链技术实验室 北京 100053) (国网区块链科技(北京)有限公司 北京 100053)
构建安全高效的现代产业链是“十四五”规划的重要任务之一.在数字经济的作用下,激烈的市场竞争促使各企业之间密切合作,共享产业链各环节产生的数据,从而减少不确定性风险,优化生产服务流程,提升企业的经济价值[1-2].打通产业链中各企业不同主体之间以及不同主体内部的数据流是激活数据要素价值潜力的关键[3].然而,产业链内共享的数据涉及核心业务时,数据安全和隐私问题将阻碍企业间的合作和共享意愿.近年来,访问控制技术被引入各行业来解决数据安全问题[4-6].该技术通过监控数据要素的共享活动,确保只有经过授权的企业才能在一定条件下访问数据资源.
属性基加密(attribute-based encryption, ABE)[5]是实现细粒度访问控制的一种有效解决方案,其中基于密钥策略的属性基加密(key-policy attribute-based encryption, KP-ABE)[6]与基于密文策略的属性基加密(ciphertext-policy attribute-based encryption, CP-ABE)[7]受到了广泛关注.在KP-ABE中密钥是根据访问策略生成的而密文是根据属性集生成的,这些属性决定了可以访问数据的群体.与之相反的是在CP-ABE中,密钥是基于属性集生成的而密文是由访问策略生成的,只有数据需求方的属性适合满足访问策略时可以成功地访问数据.传统的基于CP-ABE的访问控制方案如图1所示.数据拥有方将加密后的数据资源和访问策略托管至云服务器,数据需求方向一个可信的权威机构提交属性信息以证明自己的身份并获得相应私钥.最后,数据需求方通过私钥访问相应云服务器中的密文.与KP-ABE方案相比,CP-ABE方案允许拥有数据的企业自定义访问策略,更适用于产业链中分布式自治的访问控制模式.
图1 基于CP-ABE的访问控制方案
然而,产业链是企业内部和企业之间创造和转移价值的动态协作网络,涉及跨部门、跨企业、跨产业之间的协作,同时包含供应商、制造商、运营商、零售商和客户等多个实体,这种跨领域、多中心、动态性特征使得传统的方案无法满足产业链中复杂的访问控制场景需求.首先,很难通过单一的权威机构对所有企业的属性进行认证和监视,而属性的多样性与可信性将直接影响数据要素共享的安全性.其次,由于权威机构负责管理所有企业的解密密钥,存在密钥滥用的风险,进而可能导致产业链中的数据资源泄露.此外,考虑到产业链的动态性特征,需要保证系统的前向安全与后向安全,即新加入到产业链的企业可以访问系统中已共享的数据资源,而退出的企业无法再访问之前的数据资源.为减轻单一权威机构的负担,Chase[8]首次提出了多授权中心的属性基加密(multi-authority ABE, MA-ABE)方案.但是该方案需要一个可信的授权中心(central authority, CA)管理属性机构并且不支持属性更新和用户撤销,具有较高的信任成本,难以保证系统的后向安全.
此外,现有的CP-ABE解决方案大多难以保证上传至云端数据的完整性,且存在单点故障的风险.为了解决这一问题,文献[9-10]提出了基于区块链的访问控制方案.该方案将数据的哈希值和访问策略上传至区块链网络,利用区块链的公开透明性和不可篡改等特性保证数据资源的完整性和可信性.虽然已有方案研究了区块链与CP-ABE的结合,但对于多授权中心的CP-ABE(multi-authority CP-ABE, MA-CP-ABE)讨论较少.区块链的防篡改、防伪造、可追溯、可审计等特性,可以有效提高企业属性集的可信性,降低属性机构的管理成本.通过密码学、共识协议、分布式存储、智能合约等多种技术的有效组合,使得在没有CA的参与下可以建立节点之间的信任关系.
为了解决上述数据要素安全共享、细粒度访问控制、可信属性管理、访问可撤销、数据资源完整性等挑战,本文提出了基于区块链的产业链数据要素共享及访问控制方案.
主要研究工作如下:
1) 提出了安全可信的基于区块链的数据要素共享及访问控制模型,缓解产业链中数据孤岛问题.产业链中的企业通过区块链网络共享加密后的数据资源,所有访问记录都留存在区块链中方便日后审计.企业获得分布式属性机构的认证后,根据访问策略访问相应数据要素.
2) 设计了访问可撤销的MA-CP-ABE算法,提升了访问控制的安全性和灵活性.该算法支持无可信中心的分布式属性管理,依据属性细粒度地控制企业访问.
3) 分析证明了本文方案的安全性并与现有方案进行了综合比较.
1 相关工作
基于CP-ABE的访问控制方案因其较强的表达能力和可扩展性而受到广泛关注.
然而,现有的方案大多依赖于一个可信的权威机构管理所有用户的属性和密钥,使得权威机构可以解密系统中的任何密文,存在较高的安全风险.为缓解这一问题,Chase[8]将传统方案扩展为具有1个CA和多个属性机构(attribute authority, AA)的多属性权威方案.CA负责为AA生成“种子”,AA负责根据“种子”生成用户的属性密钥.为进一步移除CA,Chase等人[11]在初始化阶段引入了伪随机函数共享“种子”.该方案只能抵御na-2个AA的共谋攻击,其中na为系统中AA的数量[12].Lewko等人[13]提出一种分布式MA-CP-ABE解决方案,该方案不需要AA协作,只需要创建1组初始的公共参数.该方案采用线性秘密共享(linear secret sharing scheme, LSSS)矩阵描述访问策略,相比于AND门具有更强的表达能力.但是,该方案无法保障系统的后向安全.
此外,为了提升MA-CP-ABE中属性这一关键组件的可信性,Guo等人[14]通过智能合约定义了数据拥有方、数据需求方和多个AA之间的交互.其中,数据拥有方采用对称加密生成密文会造成巨大的密钥管理开销.Qin等人[15]在云数据共享中设计的基于区块链的MA-CP-ABE方案通过区块链建立AA之间的信任关系,实现CA与多个AA对属性的联合管理并防止单点失效.但是,该方案中存在CA并且无法保障系统的后向安全.Xiao等人[16]提出了基于区块链的可撤销的MA-KP-ABE访问控制方案,区块链为数据拥有方提供发布数据服务,主要作为支付平台使用.总体而言,现有的访问控制方案不适用于具有跨领域、多中心、动态性特征的产业链系统.
2 基础知识
本节简单介绍相关的基础知识,包括访问策略的定义、双线性映射和MA-CP-ABE.
2.1 访问策略
设A={att1,att2,…,attn}是系统的属性集合,定义访问策略P是A的一类非空子集的集合,即P⊆2A∅.对于任意2个集合B和C,当且仅当B⊂P并且B⊆C时,使得C⊂P成立,则称访问策略P是单调的.对于任意企业k的属性集合Sk,当且仅当Sk∈P时称Sk为授权集合,即企业k可以访问数据,否则称之为非授权集合.本文采用的访问策略都是单调的.
2.2 双线性映射
设G和GT是2个p阶乘法循环群,g是G的生成元.双线性映射e:G×G→GT具有以下性质:
1) 双线性性.对于∀g1,g2,g3∈G,∀a,b∈p,有
2) 非退化性.e(g,g)≠1.
3) 可计算性.对于∀g4,g5∈G,能够在多项式时间内计算e(g4,g5).
2.3 MA-CP-ABE
MA-CP-ABE包含以下5个算法[13].
1)GlobalSetup(1δ)→(GP):系统初始化时以安全参数δ作为输入,输出系统参数GP.
2)AuthoritySetup(GP)→(SK,PK):授权中心以参数GP作为输入,生成自己的公钥PK和私钥SK.
3)Encrypt(Message,(M,ρ),GP,PK)→(CT):加密算法以消息Message、访问策略(M,ρ)、系统参数GP和公钥PK作为输入,输出消息的密文CT.
4)KeyGen(GID,GP,i,SK)→(Ki,GID):密钥生成算法以身份信息GID、全局参数GP、属性i和私钥SK作为输入,输入用户的密钥Ki,GID.
5)Decrypt(CT,GP,Ki,GID)→Message:解密算法以密文CT、系统参数GP以及与属性身份对应的密钥Ki,GID作为输入.当属性集合i满足密文对应的访问矩阵M时,输出消息Message.否则,解密失败.
3 系统架构
3.1 系统模型
系统模型如图2所示,参与实体包括产业链中的各个企业、属性管理机构和数据池.根据业务场景需求将企业划分为2类,分别是数据拥有方和数据需求方.
图2 系统模型
1) 数据拥有方.为实现安全的数据共享,数据拥有方负责制定访问策略并加密数据资源.在此之后,通过共享合约将密文存储地址、哈希值、访问策略等发布到区块链上,方便其他企业访问,也可以作为数据权属的依据.
2) 数据需求方.当企业缺失与产业链相关部分数据时,数据需求方通过授权合约访问相关数据资源.为获取优质的数据资源,这些企业会积极配合授权访问的过程,也可能会支付一定报酬.
3) 属性机构.属性机构是预先设定的区块链认证节点,负责认证和管理企业的属性集合.属性包含多种类型,由不同的机构分别管理.数据拥有方根据不同属性机构管理的属性制定访问策略以实现安全的细粒度访问控制.当业务发生变化导致需要更改属性时,属性机构通过认证合约更新企业的属性集合.
4) 数据池.数据池为数据要素共享提供充足的存储空间,方便企业快速存取数据资源.数据拥有方将共享数据加密后上传至数据池,任何产业链企业都可以从数据池中下载相应密文数据.
3.2 算法定义
本文提出的RM-CP-ABE算法由系统初始化(Setup)、属性机构初始化(ASetup)、密钥生成(KeyGen)、密钥撤销(KeyRev)、加密(Encrypt)、重加密(ReEnctypt)、解密(Decrypt)算法组成.
1)Setup(1δ)→(GP):系统初始化算法以安全参数δ作为输入,输出系统参数GP.
2)ASetup(GP)→({APKj,ASKj}j∈A):属性机构初始化算法以GP作为输入,输出属性机构j的公钥APKj和私钥ASKj.
3)KeyGen(GP,UID,{IUID,j,ASKj}j∈A)→({UKI,j}j∈A):密钥生成算法以GP、企业的身份信息UID、属性集IUID,j和ASKj作为输入,输出企业的密钥UKI,j.
5)Encrypt(key,(M,ρ),GP,{APKj}j∈A)→(CT):加密算法以对称密钥key、访问策略(M,ρ)、GP和APKj作为输入,输出对称密钥的密文CT.
6)ReEncrypt(CT,(M,ρ),{ASKj}j∈A)→(CT*):重加密算法以CT,(M,ρ),ASKj作为输入,输出新密文CT*.
7)Decrypt(CT,GP,UID,{UKI,j}j∈A)→(key):解密算法以CT,GP,UID,UKI,j作为输入,输出key.
3.3 系统流程
访问控制涉及区块链上和区块链下的操作.在区块链网络中,属性机构之间通过提前部署的智能合约进行交互并管理产业链上企业的属性,从而降低参与实体之间的信任成本,提升属性机构的权威性和访问控制的安全性.每个加入区块链的节点都将获得唯一的身份标识、公钥和私钥.属性机构会为每个注册成功的企业生成1个属性列表并采用椭圆曲线数字签名算法为其认证的属性签名背书.数据拥有方通过共享合约发布共享数据资源的信息,而数据需求方通过授权合约请求访问相应数据资源.在链下,产业链企业之间以属性机构背书的属性为基础实现细粒度的访问控制.首先,数据拥有方制定访问策略并运行加密算法,将共享数据转换为密文后上传至存储服务器.在此之后,数据需求方依据属性集判断是否能解密密文,后续通过属性密钥还原存储服务器中的共享数据.
4 方案设计
本文方案大致分为5个阶段,分别是初始化阶段、共享阶段、认证阶段、访问阶段、撤销阶段.
4.1 初始化阶段
产业链中的企业和属性机构共同形成联盟链,作为合法节点参与数据要素共享.属性机构认证企业的属性,企业之间通过区块链网络共享和访问数据.在加入系统时,每个节点将获得唯一的真实身份UID和用于通信和生成数字签名的公钥和私钥.此外,运行Setup算法初始化RM-CP-ABE的必要参数.Setup算法如下:
Setup(1δ)→(GP).基于安全参数δ生成系统参数GP=(G,GT,e,N,g,H).其中,G和GT是双线性循环群,G是以g为生成元的N阶循环群,双线性映射e:G×G→GT,哈希函数H:{0,1}*→G将UID映射为群G的元素.
属性机构确定GP后,各自运行ASetup算法计算用于认证企业属性的公钥和私钥.ASetup算法如下:
ASetup(GP)→({APKj,ASKj}j∈A).该算法用于生成属性机构j的密钥对.属性机构j为其管理的属性i选择随机数Ri,αi,βi∈N,并计算xi=Riαi,yi=Riβi.随后,公开其公钥APKj=(Verj,e(g,g)xi,gyi∀i),并保存私钥ASKj=(Verj,Ri,xi,yi∀i).Verj用于标识当前密钥版本,属性更新时迭代新版本.
初始化时的存证以交易的形式记录在区块链中.区块链中的每个区块都包含区块头和区块体2个部分,交易存储在区块中,而区块头中保存这些交易的Merkle根、前一个区块的哈希值、时间戳等,以保证交易的不可篡改、可追溯、可审计.每个新区块都是由共识协议确定的通用规则生成,每个节点都存有区块链的副本,即使部分节点宕机也不会影响访问控制的正常运行.
4.2 共享阶段
拥有数据的企业通过区块链网络共享数据资源,打通产业链各环节的数据流,激活数据要素的潜力.考虑到数据资源的安全性以及数据共享的性能,数据拥有方首先选择对称密钥key加密原始数据.然后,制定访问策略(M,ρ)并运行Encrypt算法加密key.Encrypt算法如下.
Encrypt(key,(M,ρ),GP,{APKj}j∈A)→(CT):M为一个规模为γ×τ的线性秘密共享矩阵,ρ表示矩阵M的行与属性的映射关系.随机选取一个随机数s∈N,构造一个随机向量V=(s,v2,…,vτ)T,其中v2,…,vτ∈N.计算λl=MlV,其中Ml是矩阵M的第l行.此外,构造1个随机向量W=(0,w2,…,wτ)T,其中w2,…,wτ∈N.计算Wl=MlW.对应矩阵中的每一行Ml随机选取hl∈N,并计算
C0=key·e(g,g)s,
C1,l=e(g,g)λle(g,g)xρ(l)hl,
C2,l=ghl,
C3,l=gyρ(l)hlgWl.
最后,输出密文CT=(C0,C1,l,C2,l,C3,l∀l).
此后,数据拥有方将数据密文和密钥密文打包为数据资源D一同上传至数据池,数据池为其返回一个存储地址AdD.最后,数据拥有方运行共享合约,将数据资源信息分享至区块链网络,供其他节点访问.共享合约的核心函数为newTS(),用于生成共享交易
TS={SID,DHash,MetaD,AdD,P,sign},
其中SID为此共享合约的唯一ID,DHash为数据资源D的哈希值,MetaD为D的元数据,AdD为数据资源对应于数据池中的存储地址,P为访问策略,sign为数据拥有方的签名.在共识交易时,主要验证AdD对应的数据资源哈希值是否与DHash一致.
由此,数据需求方可根据区块链中披露的MetaD确定数据资源与需求的匹配程度,再根据P确定是否可以访问.由于区块链中的交易是不可篡改的,而且访问策略由数据拥有方直接发布,可以保证访问策略是可信的.
4.3 认证阶段
考虑到产业链中涉及跨产业、跨企业、跨部门的数据共享,而单一的属性机构很难认证所有企业的属性类别,本文方案设计了分布式架构,即不同属性机构负责不同属性类别.数据需求方可根据访问策略中的属性类型,分别向对应的属性机构请求属性认证.属性机构负责验证产业链企业的属性并为其生成密钥,其过程由认证合约辅助完成.认证合约包含以下函数.
1)checkAT():当企业向属性机构发送验证属性的请求时,属性机构调用此函数验证其属性.
2)undoAT():当企业信息发生变化需要更新属性时,属性机构调用此算法撤销相应属性.
3)newTA():属性机构为验证通过的企业生成新的属性,并生成属性交易
TA={AID,atti,UID,sign,Verj},
其中AID为属性交易的唯一ID,atti为认证通过的属性,Verj为当前版本.
4)sendKey():属性机构为企业分发密钥.
在认证完属性后,属性机构通过运行KeyGen算法为企业生成密钥,KeyGen算法如下.
KeyGen(GP,UID,{IUID,j,ASKj}j∈A)→({UKI,j}j∈A):UKI,j=({gxiH(UID)yi}i∈IUID,j,Verj).
需要注意的是,为保证通信安全性,将消息以接收方的区块链公钥加密后发送,接收方通过自身的区块链私钥解密后读取相应内容.此外,多中心的属性机构的设计可以很好抵御企业与单属性机构共谋所导致的密钥滥用问题.同时,将企业ID与属性之间形成绑定关系,也可以解决企业之间通过共谋组合出解密密钥的问题.
4.4 访问阶段
数据需求方调用授权合约访问数据.授权合约中的函数accControl()会验证需求方的TA是否满足TS中的策略要求.当数据需求方收集到足够多的属性交易时,即可从数据池中获取加密的数据资源,通过运行Decrypt算法解密后访问.Decrypt算法如下.
授权合约中的函数newTX()生成访问交易TX={XID,UID,SID,time},将需求方的访问信息记录在链上,便于之后的审计.其中,XID为访问交易的唯一ID,time用于标识访问数据的时间.即访问交易中记录了企业UID,在时刻time,访问了SID中地址对应的数据.
4.5 撤销阶段
由于业务发生变化,部分企业需要退出产业链或更新一些属性信息时,同样运行认证合约.属性机构通过调用函数checkAT()重新验证属性,并通过函数undoAT()撤销相应属性.属性机构需要运行KeyRev算法更新企业的密钥,同时数据池需要通过ReEncrypt算法对影响到的密文再加密一次,以保证系统的后向安全.具体算法如下.
2)ReEncrypt(CT,(M,ρ).{ASKj}j∈A)→(CT*):企业被撤销后对原始密文再加密1次,以保证数据的后向安全.计算
5 方案分析
5.1 安全性分析
本节从保密性、可信性、完整性、可追踪和可审计几方面分析方案的安全性.
保密性:通过对称加密和属性基加密来保护企业敏感数据的同时确保只有授权企业能够读取相应消息.本文方案是一个多属性机构的方案,因此即使企业与某些属性机构共谋,也无法获得完整的解密密钥.同时,当一些企业退出合作时,属性机构会及时更新其属性,防止产业链数据泄露.此外,企业之间也可以采用区块链中的公钥与私钥以密文的形式点对点通信,这样网络中的窃听者就无法获得敏感数据.
可信性:访问控制的可信性依赖于企业属性集和访问策略的可信性.一方面,与传统的单授权机构的访问控制方案相比,本文的基于区块链的多中心属性授权机制可以克服产业链复杂场景中单个机构无法验证所有属性的难题,并且可以抵御共谋攻击,提升属性的可信性.另一方面,与基于云服务器的访问控制方案相比,访问策略由拥有数据的企业自行制定并发布至区块链网络中无法篡改,需求方可根据链上的信息自行访问相应数据.
完整性:拥有数据的企业将共享数据的密文哈希值和访问策略以交易的形式发布至区块链网络,以保证数据和访问策略的完整性.已授权的区块链网络中的企业可以根据需求随时访问相应数据.为了防止拥有数据的企业或第三方存储服务器篡改原始数据,访问数据的企业可根据已无法更改的区块链上的信息来随时查验数据的完整性.
可追踪和可审计:数据发布和访问请求都会记录在区块链网络中以实现对访问控制的追踪和审计.对于拥有数据的企业,企业发布的交易中包含企业的签名,可作为数据权属的依据,同时企业也无法否认其发布的数据.数据拥有方可以追踪哪些企业访问了数据,也可以根据访问记录随时撤销和更新产业链数据,以防止未经授权的实体访问数据.对于需要数据的企业,其每一次请求都会记录在区块链上,很容易检测到一些恶意行为,对其实行相应惩罚.
5.2 安全性证明
将MA-CP-ABE方案的选择明文攻击(chosen plaintext attack, CPA)安全描述为挑战者与攻击者之间的博弈.CPA安全博弈如下:
定义1.如果在多项式时间内,攻击者赢得游戏的优势是可以忽略的,则本文方案是安全的.
引理1.假设在多项式时间内,没有攻击者可以以不可忽略的优势破坏MA-CP-ABE的安全性,那么就没有攻击者能以不可忽视的优势打破此系统.
证明. 定义攻击者和挑战者之间的交互,挑战者执行协议并回答攻击者的查询.
1) 初始化:挑战者执行ASetup算法生成公钥和私钥对,并发送给攻击者.
2) 阶段1:攻击者设定一个属性集I1,I2,…,IA,向挑战者提交(i,UID)来查询密钥.挑战者作为回应将相应密钥发送给攻击者.
3) 挑战:攻击者将相同大小的消息ME0,ME1发送给挑战者.挑战者随机选择比特b∈{0,1},并根据访问策略(Mb,ρ)加密MEb.其中,攻击者的属性集I1,I2,…,IA都不满足访问策略(Mb,ρ).最终,将密文发送给攻击者.
4) 阶段2:攻击者继续向挑战者查询密钥,同时其属性集都与访问策略不符.
5) 猜测:攻击者输出对b的猜测b′∈{0,1}.当b=b′时,攻击者赢得游戏.攻击者赢得上述游戏的优势定义为
其概率由随机比特决定.
证毕.
5.3 方案对比
本文方案与相关CP-ABE访问控制方案的比较如表1所示.从以下6个方面进行比较分析,分别是属性基的访问结构、是否支持访问撤销、是否为MA-CP-ABE方案、是否存在CA、是否可以追踪访问足迹、是否采用了区块链技术,其中“√”表示具有相应功能特性,“×”表示不具备相应功能特性.文献[10]设计的访问控制方案采用伟达定理保护了访问策略中的隐私,即采用了“正负号与门”访问结构.为了更好地表达能力,本文方案采用的是LSSS结构.在访问撤销方面,文献[10]设计了撤销合约来管理离开系统的用户列表从而实现访问撤销,而文献[14]和本文方案设计了可撤销的CP-ABE算法来实现用户撤销.此外,本文方案支持属性撤销,即从属性层面实现细粒度的更新和撤销.文献[11-13,15]和本文方案设计了MA-CP-ABE算法来解决由单授权机构所引发的安全问题,其中文献[12-13,15]引入了一个可信的CA生成公开参数和管理属性机构,而在本文方案中通过区块链技术同步公开参数并且实现了无CA的分布式访问控制方案.此外,文献[10,15]和本文方案进一步引入了区块链技术提升访问控制的可信性.总的来说,本文方案设计了访问可撤销的MA-CP-ABE算法,构建了基于区块链的无CA的安全可信的访问控制方案.
表1 CP-ABE方案对比
6 结束语
本文提出了一种基于区块链的数据要素共享及访问控制方案,实现了细粒度的访问控制并解决了授权机构单一、信任成本高、访问难撤销、单点失效等挑战.通过设计RM-CP-ABE算法实现了属性更新和分布式的属性认证.此外,结合区块链技术设计了共享合约、授权合约和认证合约实现安全可信的数据共享.理论分析表明,本文方案可以实现安全的数据共享和有效的访问控制.