抗属性篡改的去中心化密文数据安全共享
2022-05-28曾辉祥谢晴晴崔志浩马建峰
曾辉祥,习 宁,谢晴晴,吕 静,崔志浩,马建峰
(1.西安电子科技大学 网络与信息安全学院,陕西 西安 710126;(2.江苏大学 计算机科学与通信工程学院,江苏 镇江 212013)
近年来,基于云的智能家居平台发展迅速,集网络通信、网络系统以及自动化控制于一体,通过互联网技术将智能家庭设备联系成家庭网络,实现远程操控,为人们提供了舒适高效和便利的生活居住应用[1-2]。在智能家居云[3-4]中,多个设备之间的服务协同极大地丰富了应用的种类,成为主流服务模式之一。例如,用户在智能移动终端上查看由智能家居医疗设备定期采集和上传的个人体表特征数据。然而,在跨设备信息交互与共享的同时,用户的数据面临着许多安全威胁,例如体表特征数据,由于隐私性高,很容易遭到攻击者的窃取。
为了保证云端多用户、多终端数据安全共享,基于属性加密访问控制(Attribute Based Encryption,ABE)方案[5]根据访问策略加密数据,适用于一对多加密,实现数据的细粒度访问控制。BETHENCOURT等[6]在属性加密访问控制的基础上,首次提出了密文策略属性基加密(CP-ABE)。CP-ABE允许加密者以任意单调访问规则指定访问结构,并且密文与访问策略相关,而密钥与用户属性相关。传统的CP-ABE方案依赖可信第三方,存在单点故障问题。为了减轻对可信第三方的依赖,LEWKO等[7]提出了去中心化的分布式密文策略属性基加密访问控制方案(Decentralized CP-ABE,DCP-ABE)。该方案中不需要中心权威机构,而是由多属性中心独立工作,分别完成一部分任务。HAN等[8]针对分布式CP-ABE中的隐私性做了改善,提出了PPDCP-ABE(Privacy-Preserving DCP-ABE),但分布式CP-ABE缺乏对属性篡改攻击的保护。为了克服这一缺陷,JEMEL等[9]将区块链用于CP-ABE中的用户合法性检查。GAO等[10]提出了一种基于区块链的去中心化隐藏策略可信CP-ABE。由于区块链的不可篡改性,该方案有效地解决了分布式CP-ABE的缺陷。然而,在该方案中节点的接入与退出成本开销大和时延长,无法抵御用户假冒属性攻击,不利于节点状态频繁变动的智能家居环境。邱云翔等[11]提出了一种基于 CP-ABE 算法的区块链数据访问控制方案。但由于该方案基于原始CP-ABE算法,节点计算负担大,数据共享时延长。FAN等[12]提出了一种基于区块链的车载社交网络安全可验证数据共享方案。该方案依赖传统的可信第三方AA服务器管理用户属性,由云服务提供商(Cloud Service Provider,CSP)保存属性私钥,因此存在第三方单点故障与攻击者恶意假冒合法云服务提供商导致数据泄露的风险。牛淑芬等[13]利用区块链技术保证了CP-ABE可搜索加密方案中数据的完整性与不可篡改性。尚松超等[14]提出了基于区块链的权重属性基加密数据共享模型,灵活地解决企业不同级别部门间数据共享的问题,但权重计算带来了额外的计算开销。
针对传统CP-ABE依赖可信第三方、分布式CP-ABE难以抵御用户属性篡改以及基于区块链的CP-ABE不利于节点移动、无法抵御用户假冒属性攻击的问题,笔者提出了基于区块链的去中心化密文数据安全共享方案,在实现去中心化功能的同时,减轻了智能设备的计算负担,保证了数据共享的安全与高效。笔者的具体贡献如下:
(1) 提出了基于区块链的去中心化密文数据安全共享方案。通过结合联盟区块链、CP-ABE以及可验证外包解密等技术,实现了智能家居下数据分布式存储和安全共享。
(2) 设计了基于智能合约的细粒度访问控制机制,以智能合约取代可信第三方,实现灵活、可扩展的数据安全共享流程,解决传统可信网络中访问策略决策中心化的问题。
(3) 通过结合可验证外包解密技术,提出了轻量级CP-ABE算法,减轻智能设备的计算负担,保证智能家居环境下资源受限节点的可靠性。
(4) 对基于区块链的去中心化密文数据安全共享方法进行了测试,针对不同属性/策略数量,分别测试系统与文献[7,10-12]中的方案性能。实验结果表明,在基于区块链实现去中心化的情况下,笔者提出的方案的时间开销在用户属性私钥生成和加密部分与文献[10-12]中的方案相近,在解密部分比文献[10-11]中的方案显著地降低了。此外,对比基于DCP-ABE的方案[7],笔者提出的方案在时延方面大幅度减少了。
1 去中心化密文数据安全共享框架
1.1 预备知识
1) 双线性映射
双线性映射可将两个循环群的元素映射至第3个循环群。
定义1双线性映射e可表示为e:G0*G0=G1,其中G0和G1都是阶为素数p的乘法循环群。假设g是G0的一个生成元,Zp是一个有限域。双线性映射e具有以下特点。
(1) 双线性:∀u,v∈G0,∀a,b∈Zp,
e(ua,vb)=e(u,v)ab。
(1)
(2) 非退化性:若g为G0中的元素,则e(g,g)为G1中的元素。
(3) 可计算性:∀u,v∈G0,计算e(u,v)是有效的。
笔者选择G0为由一组椭圆曲线上的点构成的一个群,G1为一个乘法有限域上的子群,参数的具体生成方法详见文献[15]。
2) 访问结构
访问结构是访问策略的具体表示。
定义2访问架构Γ可表示为集合Γ={a1,a2,…,an},Γ代表本框架中所有属性的集合,其中a1是一个属性。用户的属性集以S表示,S⊆Γ{∅}。访问结构A⊆2|a1,a2,…,an|{∅}。A是单调的。如果对∀B,C有B∈A,且B∈C,则有C∈A。
3) 访问树
访问结构A以树T表示,x是T的节点。Tx表示T中以x为根结点的子树。T中的每一个非叶子节点Tx代表门限策略,由子节点数numx和门限阈值kx描述,其中kx∈[1,numx]。当kx=1时,kx是一个或门。当kx=numx时,kx是一个与门。Tx的每个叶子节点由用户的属性集S和门限阈值kx表示。Tx(S)=1,表示用户属性集S满足Tx,x为非叶节点时计算所有子节点x。若Tx′(S)>kx,则Tx(S)=1。当x为叶子节点时,若attr(x)∈S,则Tx(S)=1。
为了处理访问树,定义函数attr(x)获取x对应的属性;parent(x)获取x在T中的父节点;num(x)表示x的子节点数;index(x)获取x每个子节点的索引。
1.2 去中心化密文数据安全共享框架
针对数据共享去中心化、抵御用户属性假冒与篡改攻击等需求,结合智能家居环境下智能设备低性能、状态变化频繁等要求,为了实现无可信第三方、节点低计算量的安全共享效果,笔者在联盟区块链、CP-ABE和外包解密等方法的基础上构建了面向智能家居的去中心化密文数据共享框架。具体如图1所示。
图1所示框架包含了3个实体,即数据拥有者(Data Owner,DO)、数据访问者(Data User,DU)、属性权威机构(Attribute Authorities,AAs),以及身份属性区块链(Identity-Attribute Chain,IAC)与文件区块信息链(File Information Chain,FIC)。
1) 属性权威机构
AAs是构成区块链网络的节点群,也是联盟链的参与者与维护者,由一组高性能服务器组成。AAs={Serveri|4≤i≤n},其中n为服务器数量。AAs负责管理用户属性以及在用户与部署在其本地的智能合约之间转发数据。
AAs根据用户身份分配相应的属性并通过智能合约计算和分发属性私钥,将身份与属性以交易的形式记录在IAC上。此外,AAs通过智能合约整合用户上传文件信息和文件密钥密文形成交易上传至FIC上。
AAs同时承担着协助DU完成部分解密计算的角色。
2) 数据拥有者(DO)
DO是数据提供者,拥有数据的控制权。DO制定文件的访问策略T。当属性集满足Tx(S)=1时,DU可以访问数据。DO为智能家居中的一组共享数据的智能设备。DO计算和存储能力受限。DO可以将共享的文件加密后上传至云存储系统。考虑智能设备的可移动性,DO可以动态加入或退出访问控制系统。
图1 去中心化密文数据安全共享框架
3) 数据访问者(DU)
DU是数据消费者,通过发起数据访问请求获取相应的文件。DU拥有属性集S。实际中,一个智能设备可以同时为DO与DU。例如,它可能会同时分享和访问数据。DO与DU均为笔者提到的用户。
4) 身份属性链(IAC)
图2 IAC交易结构
IAC记录用户的身份注册信息。IAC上的每一个交易对应于一组用户的身份属性对。IAC交易结构如图2所示。联盟链采用节点准入管理机制和只有智能合约才能访问到身份属性,有效地保护了用户隐私。在本框架中,每个新成员都需要向AAs注册,从而得到自己的属性私钥。注册过程由AAs调用智能合约自主完成。智能合约构造一个交易记录用户的身份、属性集等信息,并在加密后存储于IAC上。
除了通用的交易ID、签名密钥等一些信息外,IAC区块上交易信息还包含以下内容:
(1) 设备标识符(Device Identity,DID):DID={0,1}16,每个用户独有的身份标识符。
(2) 属性集(ATTRibute Set,ATTRS):用户身份对应的属性集,ATTRS⊆S。当ATTRS发生改变时,用户的访问权限也随之改变。
5) 文件信息链(FIC)
FIC维护用户上传文件的元信息FileInfo={FileAddr,Keywords,hash,CTk}。IAC与FIC的区块结构如图3所示。
图3 IAC与FIC区块结构
图4 FIC交易结构
FIC交易结构如图4所示。
除了通用的交易ID、签名密钥等一些信息外,FIC上交易信息还包含以下内容:
(1) FileAddr:文件在云存储系统上的地址。用户根据该地址请求对应的加密文件;
(2) Keywords:文件关键词集合,用于快速检索与匹配用户请求文件,即
Keywords={Keyword1,Keyword2,…};
(3) Hash:加密文件的散列值,用于确保文件的完整性,避免由于网络原因造成的数据缺失,Hash=SHA256(digest(file));
(4) CTK:用户加密文件所使用的对称加密密钥K的密文。
6) 智能合约
为了实现去中心化,笔者设计了智能合约SCIA和SCFI。SCIA负责初始化系统,生成系统主密钥对(MSK,PK),为用户生成属性私钥,将身份与属性以交易的形式记录在IAC上;SCFI负责记录和维护用户上传文件信息和文件密钥密文,并整合二者形成交易上传至FIC上,为用户访问数据提供查询功能。SCIA和SCFI分别管理区块链IAC与FIC。
1.3 威胁模型与安全目标
在笔者提出的框架中,属性管理服务器集群AAs是半诚实的。AAs遵从所提出方案并且对请求结果正常响应,但可能会篡改用户属性或同意用户假冒本身未拥有的属性。因此,有两种攻击者模型需要考虑:
1) 外部攻击者
外部这类攻击者企图篡改用户属性,可以挟持服务器节点,在篡改用户属性后将其提交至区块链。
2) 内部攻击者
内部这类攻击者(例如服务器节点管理者)同意属性假冒或篡改交易,以牟取私利。
针对以上安全威胁,将达到以下安全目标:
(1) 数据机密性
攻击者不满足访问策略时无法获取有效数据。
(2) 抵御用户属性假冒攻击
攻击者对AAs假冒自身未拥有属性时,无法通过注册和获取访问权限。
(3) 抵御用户属性篡改攻击
攻击者无法篡改用户属性。
2 去中心化密文数据安全共享方法
在设计模型的基础上,针对数据访问过程中用户属性存在假冒与篡改等风险,进一步提出了基于区块链的去中心化密文数据安全共享方法,支持区块链记录用户属性,保证了数据的机密性与完整性,提高了数据共享的效率。为了更好地描述所提出的方法,对其中涉及的常规加解密操作进行定义。
定义3Encopt(·),其中opt∈{AES,PPK}。AES表示对称加密AES(Advanced Encryption Standard)算法;PPK表示使用公钥PPK执行RSA加密算法。
定义4Decopt(·),其中opt∈{AES,PPK}。PSK表示使用私钥PSK执行RSA解密算法。
笔者提出的方法包括4个阶段:初始化阶段(setup phase)、注册阶段(register phase)、文件上传阶段(upload phase)以及安全共享阶段(secure sharing phase)。
2.1 初始化阶段
初始化过程主要完成部署智能合约以及生成系统主密钥对。初始化及注册流程见图5。
h=gb,
(2)
e(g,g)a,
(3)
生成主密钥对(MSK={b,ga},PK={G0,g,h,e(g,g)a})。MSK是系统主密钥,PK为系统公钥。
图5 系统初始化及用户注册过程
2.2 注册阶段
当新用户加入系统时,它首先发送注册请求至AAs处,注册请求包含其设备标识符DID。AAs根据DID验证用户身份。验证通过后,AAs为用户分配对应的属性集K和公私钥对〈PPK,PSK〉,转发〈DID,S〉至智能合约SCIA。SCIA选择随机数r∈Zp,计算
(4)
对S内的每一个属性j,选择随机数rj∈Zp,计算
(5)
得到属性私钥SK={SKr,SKs}。最后SCIA通过AAs将〈SK,PPK,PSK〉返回给用户,并将〈DID,S〉以交易的形式上传至IAC。
2.3 文件上传阶段
数据共享是用户上传数据的过程。文件上传阶段流程见图6。在这个阶段中,DO首先选择密钥K,计算Cf=EncAES(K,file),并将Cf上传至云存储系统。随后,DO加密K得到CTK。
图6 文件上传过程
DO选择一个随机数s∈Zp,计算
(6)
(7)
在T的叶子节点集Y,对∀y∈Y计算
Cy=gqy(0),
(8)
(9)
在计算CTS时,qx(·)的具体构造过程如下:
(1) 从根节点R开始,自顶向下对T的每一个节点x选择一个多项式qx(·)。qx(·)的次数dx比其门限值kx小1,即dx=kx-1;
(2) 从根节点R开始,选择一个随机数qR(0)=s,并随机选择qR(·)的dR个点完善qR(·);
(3) 对其他节点x,设qx(0)=qparent(x)(index(x)),随机选择dx个点完善qx(·)。
最后,DO对FileInfo签名,将〈FileInfo,σDO(FileInfo)〉通过AAs转发至SCFI。SCFI验证签名通过后,将FileInfo上传至FIC。
2.4 安全共享阶段
安全共享是用户访问数据的过程,流程如图7所示。在此阶段中,DU通过属性服务器集群AAs向合约发起访问请求〈DID,Keywords〉。SCIA根据DID判断用户是否为已注册状态。SCFI根据Keywords获取对应的FileInfo,计算CFI=EncPPKDU(FileInfo)并将其返回DU。
图7 安全共享过程
DU通过FileAddr下载Cf,获取FileInfo=DecPSKDU(CFI)。为了恢复K,DU选择一个随机数t∈Zp,转换属性私钥
(10)
发送〈SK′,CTK〉至AAs。
AAs作为解密外包服务器(Decryption Server Provider,DSP)对T中的每个叶子节点x进行解密计算:
DecryptLeaf(CTK,SK′,x)=e(g,g)rqx(0),
(11)
然后返回结果给DU。
(12)
最终DU得到文件明文file=DecAES(K,Cf)。
DecryptLeaf(CTK,SK′,x)的具体计算过程如下:对T中的每个节点x,若x为叶子节点,令i=attr(x),则当i∈S时,
(13)
当i∉S时,规定DecryptLeaf(CTK,SK′,x)=⊥。
若x为非叶子节点,则对x所有子节点z,计算Fz=DecryptLeaf(TK,SK′,z)。
令Sx为x的子节点集合,且Sx大小为kx,Fz≠⊥。若Sx不存在,则函数返回⊥;否则,算法使用多项式差值法计算下列函数值:
(14)
其中,i=index(z),S′x={index(z):z∈Sx}。
3 安全性分析
本节主要对提出方案的数据机密性、数据完整性、共谋攻击以及属性篡改与假冒攻击等几个方面做了安全性分析,最后与其他方案做了对比,如表1所示。
表1 安全性对比
1)数据机密性保证
数据所有者对明文数据使用AES对称加密算法加密,对称密钥K使用CP-ABE方案加密进而上链,故在整个区块链网络中仅对该数据密文可见。数据所有者直接通过制定访问控制策略T对该数据的访问权限进行限制,仅包含满足策略T属性的用户才能对密文进行正确解密,获得有效明文。
2) 共谋攻击
共谋攻击有多用户共谋、用户与AAs共谋以及用户与存储服务器共谋三种情况。针对多用户共谋的情况,因为用户在AAs上SCIA处获取密钥时,每个用来生成属性密钥的r都不相同,而在解密时只有由相同的r生成密钥可以结合共同解密,所以不同属性的多个用户无法结合其属性来解密密文,有效地防止了用户间的共谋攻击。针对用户与AAs共谋的情况,由于用于加密K的随机数s只存在于DO处,所以当DU的属性集不满足访问策略时,AAs与DU均无法还原s从而获取正确的属性私钥。针对用户与存储服务器共谋的情况,即使服务器可以将数据发送至不满足访问控制策略的用户,但由于得到的仅是密文,没有正确属性私钥的用户仍然无法得到有效的数据。
3) 属性篡改与假冒攻击
考虑到属性管理节点面临攻击者劫持以及注册过程中属性假冒攻击,造成用户属性集的泄露或篡改,威胁属性私钥的安全。笔者提出的方案结合区块链技术,在基于拜占庭容错协议的联盟链网络上建立多属性管理服务器集群(AAs),以区块链的形式维护用户的属性集。属性管理服务器会遭到恶意攻击而成为拜占庭节点。
证明 设拜占庭节点为f。为了保证网络达成安全共识,当f同时为故障节点和恶意节点时,网络包含f+1个正常节点,即n≥2f-1;当故障节点与恶意节点不同时,有f个故障节点和f个恶意节点,网络节点数满足n-2f>f,即n>3f。
因此,在拜占庭节点占比不超过1/3时,本方案可抵御属性假冒与篡改攻击。
与相关工作对比,文献[7]使用分布式AA服务器管理用户属性,而文献[12]基于传统的可信第三方AA服务器。两者[7,12]抵御属性假冒攻击的安全阈值为100%,但对用户属性遭到篡改攻击时无能为力。文献[10]抵御属性篡改攻击的安全阈值为75%,但由于没有属性管理功能,无法抵御属性假冒攻击。文献[11]无AA管理用户属性,缺乏对用户属性篡改与假冒攻击的保护。
4)数据完整性
文件信息FileInfo中的Hash为文件数据的散列值。由于FileInfo存储于区块链上,攻击者无法对其篡改。在用户完成解密获得最终的数据明文后,可通过对明文进行散列运算完成文件数据的完整性检验,保障了数据的完整性。
从表1可以看出,笔者提出的方案克服了文献[7,11-12]中难以防御属性篡改攻击和文献[10-11]中缺乏对属性假冒攻击保护的缺陷,提高了数据访问的安全性,为智能家居下的数据安全共享提供了可靠的保障。
4 性能分析
在笔者提出的方案中,采用双线性配对运算和指数运算开销两项指标来探讨其计算性能。为了方便描述,用AU表示数据访问者属性数量,用Ap表示密文访问策略属性数量,用TG0代表一次G0域指数运算,用TG1代表一次G1域的指数运算,用B代表一次双线对运算,一个群元素空间所占存储大小为L。笔者提出的方案中所使用的可验证外包解密CP-ABE算法的性能见表2和表3。
1) 计算性能
2) 存储性能
本方案中私钥需要存储空间为(2AU+1)L,密文需要存储空间为(2Ap+2)L,与其他文献对比如表3所示。
表2 用户计算开销对比
表3 存储开销对比
5 实验分析
笔者提出的方案在PBC库和CP-ABE基础开发工具包的基础上进行实验,使用椭圆曲线为y2=x3+x,实验环境为主频4.0 GHz的双核CPU,内存16 GB,Ubuntu18.04 64位操作系统。此外,以AAs为区块链节点,基于Hyperledger-Fabric系统与使用拜占庭容错共识机制构建区块链网络。
对实验性能的评估主要从属性私钥生成、用户加密和解密以及方案总开销时间方面进行对比,采用策略属性数量逐渐增加的方式进行实验。文献[7]是基于分布式计算实现去中心化数据共享,从表2可以看出,此方案在计算时延方面大于其余方案,并且随着分布式节点数与属性或策略数增加,其所需的传输时延也急剧增加,故与其他方案存在显著差距。为了使笔者提出的方案与其他方案开销对比明显,文献[7]的开销不在实验比较结果中展出。
在图8中,随着属性的增加,属性私钥的计算更加复杂,而笔者提出的方案耗时与文献[10-12]的相近。
由图9至图11可看出,随着访问策略或属性数量的增加,相较于基于区块链可信数据共享方案[10]以及基于CP-ABE的区块链数据访问控制方案[11],笔者提出的方案在各方面上的时间开销均有显著降低。由此可见,与基于区块链的可信数据共享方案[10]以及基于CP-ABE的区块链数据访问控制方案[11]相比,笔者提出的方案在降低数据共享的时间开销的情况下,实现了防止用户属性假冒与篡改等安全性,提高了数据共享的可靠性;与使用CSP代理计算的基于区块链车载数据共享方案[12]对比,笔者提出的方案基于外包解密技术而降低了用户解密时延,在保证数据共享效率的同时,可有效地抵御用户的属性篡改与恶意用户窃取CSP属性私钥而导致数据泄露的威胁。
图8 用户属性私钥生成时间
图10 用户解密时间
此外,文献[10]由于以用户作为区块链网络节点,在访问控制发生前首先需要为用户接入区块链网络与部署智能合约,所以存在用户接入网络的计算开销。
笔者提出的方案以AAs为区块链网络节点,用户只需与AAs进行交互,无须成为区块链系统节点,从而降低了方案的整体时延,提高了智能家居环境下数据共享的效率。因此,笔者提出的方案在保证安全性的同时,有效地提升了智能家居环境下数据共享的效率。
6 结束语
通过结合联盟区块链以及外包解密CP-ABE技术,笔者提出了一种新型去中心化密文数据安全共享模型与方法。基于外包解密CP-ABE技术,笔者提出的方案有效地解决了智能家居中数据共享一对多的问题,同时克服了现有的分布式CP-ABE、区块链与CP-ABE结合方案存在的中心单点失效、属性篡改以及节点动态接入性差等问题,保证了数据的机密性和完整性,提高了数据共享的效率。实验及分析结果证明,该系统能满足智能家居环境下智能设备数据安全共享的高效性与安全性等需求。