支持密钥更新与审计者更换的云安全审计方案
2022-10-14陈珍珠付安民
周 磊 陈珍珠 付安民 苏 铓 俞 研
1(南京理工大学计算机科学与工程学院 南京 210094) 2(广西可信软件重点实验室(桂林电子科技大学) 广西桂林 541004)
网络空间被认为是继陆、海、空、天之后的第五大发展领域战略空间[1],其安全性关乎国家安全维护与社会经济发展,已成为新形势下各国重点关注的安全性问题.云存储数据完整性审计作为网络空间安全研究的一部分,对于为用户提供远程存储安全服务保障具有至关重要的意义.云存储提供一项数据外包存储服务[2-3],它允许用户将数据从性能受限的本地转移到具有丰富资源的云服务器,解决了数据管理与共享困难的问题.然而,这种依靠不可信云服务器来托管数据的服务面临着致命的挑战[4-6],即数据完整性很容易遭到破坏.此外,用户可能使用台式机、笔记本、平板电脑、智能手机等多样化的本地设备接入云存储服务[7-8],其中有些设备仅持有有限的计算能力与带宽资源.因此,在不对本地端引入过大的计算与通信开销的前提下,设计一种有效机制使用户能够验证云存储数据的完整性,对产业界和学术界都具有重要的意义.
尽管云存储安全审计在公开审计、数据动态、隐私保护、多副本、降低证书使用、公平支付等方面已经取得颇为丰富的研究成果,然而,现有审计方案都面临一个同样的安全问题:签名密钥一旦泄露,依赖于密钥安全性的审计方案将遭受破坏.大部分审计方案只考虑云服务器端的安全性,忽略了用户端可能存在的安全问题:1)用户可能出于经济考虑而选用一些廉价的软硬件密钥保护机制;2)由于缺乏安全意识,用户容易从网上下载一些包含木马的软件;3)当密钥较多时,用户可能由于密钥管理的复杂性而放弃对单个密钥的保护.以上因素均可能导致用户用于签名的密钥泄露.另外,密钥本身存在有效期,一旦过期,则需要立即进行更新.目前,云存储审计研究中已存在几个支持密钥更新的审计方案,但它们或多或少都存在一些局限性:云服务器与撤销用户勾结可以推测出审计密钥[9],审计过程安全性不完整[10],审计者被假定是完全被信任的[11],证书开销大[10-12]等.此外,在现实场景中可能出现因更换审计者而导致审计服务中断的情况.这是因为审计者可能由于资源不足或身份过期等原因不能再为用户提供审计代理服务,或者审计者可能与云服务器勾结隐瞒数据损坏事实而失信于用户[12],此时需要及时选择新的审计者来代替旧审计者,保证审计服务的可持续性.然而,现有审计方案均假设在审计期间有且仅有一个审计者,因此不能适用于审计者更换场景下的云存储数据安全审计.所以,设计安全高效的密钥更新机制并满足审计者更换需求是云存储数据审计研究中一个亟待解决的问题.
基于上述考虑,本文利用双线性对与代理重签名思想构造了一种支持密钥更新与审计者更换的云安全审计方案AKUAR(auditing scheme supporting key update and auditor replacement),有效地抵制了签名密钥暴露.不同于现有审计方案,AKUAR的签名密钥并不是由用户单独持有,而是由用户密钥、雾节点密钥以及时间密钥3部分计算而成,增强了密钥保护能力.针对签名密钥泄露、用户身份密钥到期以及雾节点更换3种导致签名密钥需要被更新的情况,AKUAR借鉴代理重签名思想设计了高效安全的密钥与标签更新机制,它选取云服务器作为更新签名的中间代理,保证了基于旧密钥产生的签名可以有效地转化为基于新密钥的签名,同时有效地降低用户独自更新密钥与标签所需的开销.此外,基于所设计的密钥与标签更新机制,AKUAR进一步实现了审计者可更换功能,保证了审计的可持续性.本文的主要工作归纳为3个方面:
1)不同于传统审计方案仅依赖用户私钥为数据块生成标签的情况,在本文提出的审计模型中,用户需要使用与雾节点共同协商的签名密钥来生成块标签.当用户或雾节点的密钥由于到期或泄露而需要进行签名密钥更新时,AKUAR设计了一个标签与密钥更新机制,使得基于旧签名密钥的签名能有效地更新为新签名密钥的签名,并且由云服务器承担计算量较大的标签更新操作,用户本地端仅需要执行少量的计算.在整个更新过程中,云服务器无法推测签名密钥,即云服务器不能代表用户生成合法的块标签,保证了签名更新的安全性.
2)AKUAR引入雾节点充当审计模型中的审计者,负责与云服务器进行审计交互以及帮助用户完成密钥更新过程,以降低用户在本地端的开销.相比于受地域限制的第三方审计者,雾节点具有更强的移动性,适合代替用户与云服务器进行审计交互工作.当雾节点出于主动或被动等原因需要退出审计任务时,AKUAR允许一个新的雾节点代替旧节点继续为用户提供数据审计服务,实现审计者更换,同时离开的雾节点也不能获取新的签名密钥.此外,云服务器可以对审计者的身份进行认证,确保离开的雾节点不再能发起完整性挑战,也避免了外部攻击者冒充在任雾节点挑战云服务器.
3)安全分析证明AKUAR满足正确性、不可伪造性、密钥暴露抵制与审计者更换属性.对比实验进一步证明了AKUAR在标签生成与密钥更新阶段仅引入了少量的计算与通信开销,并且本地端消耗的计算开销是一个与数据块数无关的常量.
1 相关工作
目前,相关学者在云存储数据完整性审计领域的研究已经颇为深入,主要是在公开审计、数据动态、数据隐私保护、多副本等领域取得了较为丰富的成果.2007年,Ateniese等人[13]提出了可证明数据持有技术(provable data possession, PDP),用于检查不可信服务器上存储数据的完整性.Wang[9]提出了基于代理的审计方案,允许用户不在线时依靠代理对云存储数据进行审计.为支持数据动态,Erway等人[14]提出了一种完全动态审计方案,它利用基于秩的认证跳表来支持存储数据的可证明更新.Wang等人[15]设计了另一种动态审计方案,它使用Merkle哈希树来实现数据更新功能.后来,韩静等人[16]设计了适用于数据实时更新的审计方案,而符晓庆等人[17]设计了基于分治邻接表的动态方案,满足了不同场景下的动态审计需求.针对第三方审计者企图在审计交互过程中提取数据隐私的问题,Wang等人[18]设计了支持数据隐私保护的审计方法,它通过在云服务器生成的审计证据中加入一次性随机因子来避免隐私内容泄露给审计者.后来,Nayak等人[19]在多用户模式下实现了具有隐私保护的批量审计,Wu等人[20]则设计了适用于现收现付存储业务模式的具有隐私保护性的审计协议.为提升数据的可用性和可恢复性,一些审计方案采用多副本存储模式存储用户的原始数据文件.Curtmola等人[21]提出了基于RSA签名的多副本审计方案,它采用先加密后随机化的方式保证了副本的可区分性.为了保证云上电子病历的完整性,Zhou等人[22]设计了一个面向电子病历数据动态存储的多副本审计方案,它采用多副本存储的方式来提升电子病历数据的可用性.为了降低证书的使用,Li等人[23]提出了一种基于身份签名的多副本审计方案,它将所有副本中位于同一序号的所有副本块的对应标签进行聚合,有效地降低了审计开销.基于无证书签名,Zhou等人[24]则设计了一个支持多副本动态高效更新的审计方案.与此同时,基于身份的签名与无证书签名也被用来实现单副本存储模式下的云数据安全审计[25-27],以降低证书开销.最近,富瑶等人[28]和Lin等人[29]结合数据隐私保护需求,利用区块链技术设计了满足公平支付的审计方案.
以上审计方案仅考虑云服务器的安全性,且不适用使用性能受限的本地设备接入云存储的用户.由于用户缺乏安全意识或者选用一些廉价的软硬件密钥保护机制,从而导致用于生成签名的密钥容易被泄露,而签名密钥一旦泄露,依赖于该密钥的审计方案将无法提供数据完整性保护.尽管目前已经存在几个支持密钥更新的审计方案,但是它们均存在一些缺陷:文献[9]虽然允许资源充足的云服务器完成耗时的标签更新过程,但攻击者通过与撤销用户勾结就可以推测出签名密钥;文献[10]仅能保证被暴露的密钥不会影响在暴露之前的标签的安全性;文献[11]虽然保障了在密钥暴露前后的审计的安全性,但是密钥与标签的更新完全依赖于可信的外部审计者;文献[12]将标签更新的计算转移至云服务器,降低了用户端开销,然而它需要假设第三方审计实体是完全可信的.以上方案都适用于使用传统公钥基础设施的审计场景,不可避免地引入了证书开销.此外,现有审计方案均默认有且仅有一个审计者来代替用户进行完整性挑战,然而审计者可能由于被攻陷、被贿赂或资源不足等原因,不能继续为用户提供审计代理服务.因此,如何设计一个安全高效的支持密钥更新与审计者更换的云安全审计方案仍然是一个开放性问题.
2 AKUAR的系统模型与安全模型
本节介绍了AKUAR的系统模型与安全模型.表1对AKUAR中的符号与含义进行了描述.
Table 1 Symbol Definition and Description of AKUAR
2.1 AKUAR的系统模型
图1给出了AKUAR的系统模型,具体包含4个实体:
1)用户(user,U).具有大量数据的实体,希望将数据上载到云服务器进行存储.同时委托雾节点对云存储数据进行完整性审计.
2)云服务器(cloud server,C).具有充足计算资源和存储空间的服务器,负责对上传数据进行存储管理,需要响应完整性审计挑战.
3)雾节点(fog node,F).用户和云服务器之间的中间节点,它接受来自用户的审计任务,与云服务器进行审计交互.
4)密钥生成中心(key generator center,KGC).负责生成身份密钥与时间密钥的可信实体,同时负责在系统设置阶段生成系统公开参数以及主密钥.
2.2 AKUAR的安全模型
在AKUAR中,用户诚实地执行审计方案,KGC诚实地计算实体的部分密钥与时间密钥.而云服务器可能由于维护自身声誉而隐瞒数据损坏事实,企图通过伪造审计证据来通过雾节点的验证,同时云服务器负责标签更新工作,因此它可能企图提取新的签名密钥.此外,离开审计任务的雾节点可能企图推测新的签名密钥,也可能假冒在任雾节点向云服务器发起完整性挑战.那么AKUAR需要同时满足不可伪造性、审计正确性、密钥暴露抵制以及审计者更换.
定义1.不可伪造性.基于离散对数(discrete logarithm, DL)与计算Diffe-Hellman(computational Diffie-Hellman, CDH)假设,如果对于任意概率多项式时间(probabilistic polynomial time, PPT)攻击者A来说,它赢得伪造游戏的概率是可忽略的,则AKUAR满足不可伪造性.实际上A模拟了一个恶意的云服务器,具体来说,攻击者A与挑战者C之间的伪造游戏主要包含5个阶段:
1)设置阶段.C生成系统公开参数params与主私钥x,将params发送到A.
2)第1阶段询问.A自适应地发起哈希询问与标签询问.定义Q1为第1阶段询问的块索引集合,{bi,σi}1≤i≤n为索引Q1对应的询问块与标签对.
3)挑战.C为所选索引集{i1,i2,…,ic}生成一个随机挑战chal,其中{i1,i2,…,ic}∉Q1,c为挑战块数.随后C基于chal生成审计证据返回给A.
4)第2阶段询问.与第1阶段类似.定义Q2为第2阶段询问的块索引集合,定义{bi,σi}1≤i≤n为索引Q2对应的块与标签对,且{i1,i2,…,ic}∉Q1∪Q2.
5)伪造.A输出基于随机挑战的审计证据.
定义2.审计正确性.如果所有实体都诚实地执行了审计方案AKUAR,则云服务器生成的审计证据可以通过雾节点的审计验证.
定义3.密钥暴露抵制.如果一个签名密钥被暴露时,该密钥与使用该密钥生成的签名可以被更新为新密钥与使用新密钥生成的签名,且执行标签更新的云服务器只能以可忽略的概率获得新的签名密钥.
定义4.审计者更换.当一个雾节点退出审计任务时,一个新的雾节点能代替其继续为用户提供审计服务,且旧雾节点不再能发起审计挑战.
3 方案AKUAR
云存储中数据完整性保证依赖于签名密钥的安全性,一旦密钥暴露或者更新,由该密钥生成的所有数据块签名都需要被一一更新,才能保证整个审计方案仍持续有效地进行.然而,重新计算所有数据块的签名对于用户本身来说是一个繁重的负担.代理重签名思想允许一个半可信的代理者将对应于一个密钥的签名转换为对应于另一个密钥的签名,并且该代理者不能得到转换前后的2个密钥.在本文提出的方案AKUAR中,代理重签名思想同样被用来解决签名密钥更新所导致的标签密钥更新问题.在AKUAR中,当签名密钥暴露或者需要更新时,云存储服务器可以根据接收到的更新因子对存储在云上的对应块标签进行更新,使得更新后的块签名等同于使用新的签名密钥在相同数据块上所产生的签名,从而避免了用户自己重新计算标签所导致的性能瓶颈问题.
AKUAR包含8个算法:系统设置Setup、身份密钥生成GenerateIDKey、签名密钥生成GenerateKey、标签生成GenerateTag、证据生成GenerateProof、证据验证VerifyProof、密钥更新UpdateKey以及标签更新UpdateTag.
1)系统设置Setup.KGC生成系统必需的参数.
①KGC选择2个阶为q的乘法循环群:G与G1,以及一个可计算的双线性对e:G×G→G1,q为一个大素数.KGC选取G的生成元g,并选择4个哈希函数,H1,H2,H3:{0,1}*→G,H4:{0,1}*→q.
②KGC选择主密钥x∈q并计算X=gx.{x,X}为系统主密钥对,用于生成身份密钥.KGC选择y∈q并计算Y=gy.{y,Y}用于生成时间密钥.
③KGC输出系统公开参数params={G,G1,q,e,g,H1,H2,H3,H4,X,Y},私钥{x,y}由KGC秘密持有.
2)身份密钥生成GenerateIDKey.用户Us(s∈{1,2,…,S},共S个用户)获取身份密钥Uidks.
①Us提交身份密钥请求reqidk={Ut,Uids}给KGC,其中Ut∈{0,1}*为申请时间,Uids∈{0,1}*为用户身份.KGC为用户生成身份密钥Uidks=H1(Uids‖Ut)x∈G,并将身份密钥Uidks发送给Us.
①Fl将身份标识Fidl∈{0,1}*发送给Us,Us选择一个随机值Urs∈q,并计算URs=gUrs与授权信息Ws=H1(ws‖Uids‖Fidl)Urs.然后Us将{Uids,Ws}发送给Fl,同时提交{Uids,Fidl,ws}给KGC进行存储.
tk=Uidks×H2(Uids‖Fidl‖ws‖t)y=
H1(Uids‖Ut)x×H2(Uids‖Fidl‖ws‖t)y,
(1)
KGC将存储信息{Uids,Fidl,ws}更新为{t,Uids,Fidl,ws,tk},并将时间密钥tk返给Fl.
④ 收到时间密钥tk后,Fl验证
e(H2(Uids‖Fidl‖ws‖t),Y).
(2)
若式(2)不成立,Fl要求KGC再次重新返回有效的时间密钥;若式(2)成立,则Fl选择Frl∈q,并计算签名密钥对:sk={tk,Frl},pk=gFrl.
②Fl选择一个随机值r∈G,并计算块标签:
σi=(H3(name‖n‖i)×rbi)Frl×tk,
(3)
同时Fl计算Sig0=H3(name‖Uids‖Fidl)Frl得到签名Sig=Sig0‖Ws‖name‖Uids‖Fidl.最后,Fl上传数据集{M={bi}1≤i≤n,Σ={σi}1≤i≤n,Ws,Sig}到C,并从本地删除{M,Σ}.
e(H2(Uids‖Fidl‖ws‖t),Y)×
e(H3(name‖n‖i)×rbi,pk).
(4)
若验证不通过,则C忽略该数据集并通知Fl;若验证通过,则C存储收到的数据集.
5)证据生成GenerateProof.在数据存储期间,Fl生成随机挑战chal并发送给C,C生成审计证据P并返回给Fl进行验证.
①Fl生成随机挑战chal={Ws,Q},Q={(i,vi)}i∈I指定被挑战数据块的索引与对应随机值,I表示从{1,2,…,n}随机挑选的包含c个元素的集合,Ws用于验证挑战发起者身份的有效性.随后,Fl将chal发送给C.
6)证据验证VerifyProof.收到审计证据P后,Fl通过验证P的有效性:
(5)
如果等式成立,则Fl发送“成功”消息发给Us,意味着C真实地存储了Us的数据;否则,Fl发送“失败”消息发送给Us,也就意味着云上数据已遭破坏.
7)密钥更新UpdateKey.当密钥泄露时,需要对相应签名密钥进行更新,分3种情况.
情况1.签名密钥sk泄露,而Us的身份密钥Uidks没有泄露,且Us认为Fl是诚实的,则需要更新时间密钥,具体步骤有2个:
(6)
其中,tk为更新前的时间密钥,对应更新请求{t,Uids,Fidl,ws}.然后KGC发送tk′给Fl.
情况2.在系统时刻t*,Us因为身份密钥Uidks泄露或到期,则更新身份密钥为Uidk*s,具体步骤有3个:
(7)
KGC将原来的存储信息{Uids,Fidl,ws}更新为{t*,Uids,Fidl,ws,tk*},并将tk*返给Fl.
(8)
8)标签更新UpdateTag.执行完Updatekey后,Fl请求KGC计算更新因子uf并发送C,C更新块标签.
①KGC基于Updatekey算法中3种更新情况分别计算对应的更新因子:
(9)
将更新因子uf1,uf2,uf3发送给C进行标签更新.
②C通过式(10)来更新标签,令A=(H3(name‖n‖i)×gbi)Frl:
(10)
4 安全性分析
本节对方案AKUAR进行安全分析,包括正确性、不可伪造性、授权审计、密钥暴露抵制以及审计者更换.
定理1.如果所有实体都诚实地执行了AKUAR,则C生成的审计证据可以通过雾节点的验证.
证明.证明AKUAR的正确性等同于证明证据验证算法中式(5)成立.根据双线性对特性,可以从左到右推导式(5)来证明AKUAR的正确性:
由此得出结论,如果所有参与实体诚实地执行AKUAR,则云服务器C生成的证据可以通过Fl验证.
证毕.
定理2.基于DL与CDH假设,如果对于任意PPT攻击者A来说,它赢得伪造游戏的概率是可忽略的,则AKUAR满足不可伪造性.
游戏0:首先C运行系统设置、身份密钥生成与签名密钥生成算法,生成params和密钥,并将params发送给A.然后A选择一系列数据块,C运行标签生成算法,为这些数据块生成相应的块标签与文件签名并返回给A.随后C向A发送随机挑战.最后A返回一个基于此挑战的审计证据P,若P能够以不可忽略的概率通过C的验证,那么A获胜.
游戏1:与游戏0仅存在一个不同之处.C保存了一系列A的查询记录,同时C与A一起观察挑战与响应阶段的每个交互过程.如果A可以生成一个通过C验证的审计证据P′={u′,σ′},但P′={u′,σ′}中的u′和σ′与基于正确数据生成的有效证明P中的u和σ不同,则C宣称挑战失败并终止游戏.
分析:在游戏中,挑战者C可以通过与A交互来观察每个交互过程.这里给出一些符号说明并得出一些相应的结论.Q={(i,vi)}是一个使C终止游戏的随机挑战,A基于Q生成审计证据P′.假设诚实服务器C返回的有效审计证据P={u,σ}.而A企图伪造证据P′={u′,σ′}来通过验证.如果P可以通过验证,得到公式:
即使C终止了游戏,先假设σ≠σ′,可以获得:
如果A获得游戏0与游戏1的胜利,则容易构造一个知识提取器B能够找到CDH问题的一个解.假定输入为g,gα,h∈G,目的是输出hα.模拟器的行为类似于游戏0中的挑战者C,但是存在7个不同.
1)在系统设置阶段,B设置公钥为X=gα,但是不知道私钥α的任何信息.
2)B发起哈希查询H,并保留查询和响应结果.对于A的查询,B选择随机值λ∈q并返回gλ∈G.
3)对于每一个i,B选择2个随机值a,b∈q计算r=gahb,其中1≤i≤n,并运行第i轮的随机预言模式为H(name‖n‖i)=gλ/(gabihbbi).
4)当B被要求存储一些包含n个块{bi}1≤i≤n的数据时,进行下一个操作.随机选择一个文件名name∈q,由于选择文件名的空间很大,因此B无法伪造文件名,并且无法在执行第i轮哈希查询H(name‖n‖i)之前获得文件名.
5)因此,B获得σij=H(name‖n‖i)×rbi=rbi×gλ/(gabihbbi)=(gahb)bi×gλ/(gabihbbi)=gλ,进而B计算σi=(H(name‖n‖i)×rbi)α=(gα)λ.
6)B继续与A交互,直到游戏1中定义的条件发生为止:A通过返回与有效证明中σ不同的σ′来赢得游戏胜利.从游戏0到游戏1,涉及的参数{name,n,r,bi,σ}都已经通过B的交互过程产生了.
游戏2:与游戏1存在一个不同之处:C依然保留A的一系列查询结果并与A交互来观察交互过程,如果A赢得游戏胜利并且返回的证据P′中的数据证据u′与真正有效证据P中的u不一样,则C将终止游戏.
分析:Fl发送一个随机挑战chal={Ws,Q}给C.为使得验证式(5)成立,C应该基于真实数据生成有效审计证据P={u,σ}.然而,恶意C在不持有完整数据的情况下企图伪造审计证据P={μ′,σ′}.因为有效证据P能通过审计验证,所以下列等式成立:
即使A终止,也能获得σ≠σ′与下列式子:
在游戏2中,已经对σ≠σ′的情况提供了证明,这里仅提供u与u′不同时的证明.定义Δu=u-u′,利用双线性对性质,可获得ru=ru′,进而推出rΔu=1.
假定G是以大素数q为阶的乘法循环群,对于任意2个值h1,h2∈G,能找到一个值λ∈q使得成立.并且,给定h1,h2∈G,可以获得其中α,β∈q.可以推导出:
这意味着,如果对手在游戏1和游戏2的成功概率间的差异是不可忽略的,那么构建的模拟器可以解决DL问题.因此,这些游戏间的差异可以忽略不计.
通过选择c个不同的系数vi(i∈I,|I|=c),并基于相同的数据块bi(i∈I)执行c次不同的挑战,构造了一个知识提取器来提取被挑战数据块bi,在这种情况下,知识提取器可以获得关于变量bi的c个独立线性方程组.通过求解这些方程,知识提取器可以计算并提取bi(i∈I).这意味着如果云服务器能够通过审计验证,就必须真正存储了用户数据.
证毕.
定理3.如果一个签名密钥被暴露时,该密钥与使用该密钥生成的签名可以被更新为新密钥与使用新密钥生成的签名,且执行标签更新的云服务器只能以可忽略的概率获得新的签名密钥,则AKUAR满足密钥暴露抵制.
证毕.
定理4.当一个雾节点退出审计时,如果一个新的雾节点能代替其继续提供审计服务,且旧节点不能发起审计挑战,则AKUAR实现了审计者更换.
证毕.
5 性能分析
本节从理论分析和实验评估2个方面分析AKUAR的性能,证实了AKUAR的高效性.选取SKERA[11]作为AKUAR的实验对比方案的主要原因有:1)SKERA与AKUAR都适用于云存储环境下的静态数据存储审计,解决了密钥暴露导致的标签无效问题;2)相比于其他支持密钥更新的云审计方案,SKERA与AKUAR在本地端的开销更低,且具有类似的系统模型设定.SKERA允许用户将密钥更新操作外包给授权实体,降低用户本地端的开销,在系统模型中,经过授权的第三方审计者不仅负责数据审计而且负责密钥更新工作.在AKUAR中,授权实体(雾节点)同时负责数据审计以及签名密钥更新操作,以降低用户本地端的开销.因此,为了对比的公平性,本文选取SKERA作为AKUAR的实验对比方案.
5.1 理论分析
表2给出实验中的符号与含义.实验从计算开销与通信开销2方面对AKUAR与SKERA进行分析.
1)计算开销.由于支持密钥更新与标签更新是AKUAR区别于其他审计方案的关键内容,因此主要分析与密钥更新以及标签更新相关阶段的计算开销,具体包含标签生成阶段、密钥更新阶段和标签更新阶段.
Table 2 Symbols and Descriptions of AKUAR for Performance Analysis
① 在标签生成阶段.雾节点执行2次Exp与2次Mul来为每个数据块生成标签.对于拥有n个数据块的文件,雾节点需要消耗n(2Exp+2Mul).在SKERA中,用户生成n个块标签的计算成本为(2n+1)Exp+2nMul,而审计者不需要参与运算.
② 在密钥更新阶段.为公平起见,只对比与SKERA中场景设定类似的情况1.在AKUAR中,雾节点花费3Pair验证时间密钥的有效性,而用户不需要进行任何操作.而在SKERA中,审计者使用私钥计算更新信息,开销为Exp,用户执行2次Pair验证更新信息的正确性以及花费Exp+Mul来生成私钥.
表3给出了AKUAR与SKERA在标签生成与密钥更新阶段用户U与审计者Auditor消耗的计算开销的对比情况.SKERA需要用户计算块标签;而在AKUAR中,雾节点负责生成块标签.2个方案用于生成块标签的总体开销差不多.在密钥更新阶段,2个方案在用户与审计者端的总体开销差不多,同时AKUAR不需要用户消耗计算成本.因此,可以看出,AKUAR在用户本地端消耗的计算开销更小.
Table 3 Computational Cost Comparison of AKUAR and SKERA
③ 在标签更新阶段.由于SKERA不考虑标签更新,所以只分析AKUAR中3种更新情况的计算成本.如表4所示,对于更新一次签名密钥,用户、雾节点与KGC端的计算开销都是固定的;而在标签更新阶段,3种更新情况下雾节点的计算成本是固定的,云服务器端的计算开销与块数n成正比.
Table 4 Computational Cost Comparison of Three Update Cases in AKUAR
2)通信开销.本文对AKUAR与SKERA在标签生成与密钥更新阶段的总体通信开销进行对比分析.如表5所示,在标签生成阶段,两者的开销差不多;而在密钥更新阶段,AKUAR需要消耗更多的通信开销.
表6展示了AKUAR中3种更新情况的通信开销对比.在密钥更新阶段,通信开销是固定值,且用户端的开销很小;在标签更新阶段,KGC计算更新因子之后发送给云服务器,即使对于更新一个数据块数为n的文件,通信开销也不过是|G|.所以,AKUAR在密钥更新与标签更新阶段引入了较少且固定的通信开销.
Table 5 Communication Cost Comparison of AKUAR and SKERA
Table 6 Communication Cost Comparison of Three Update Cases in AKUAR
5.2 实验评估
实验基于PBC库[30],云服务器部署在16 GB ECS.G5.xlarge,雾节点以及用户端的计算均使用Ubuntukylin-15.10-desktop-i386内存为2 GB的笔记本来模拟.选择A型双线性对,2个乘法循环群具有160 b阶和256 b基域,即|q|=160与|G|=512.假设|t|=64,|id|=80.实验评估了本文方案AKUAR与对比方案SKERA的计算开销和通信开销.为追求更精准的结果,所有实验都进行了20轮并取平均值作为最后的结果.注意,在AKUAR中,雾节点就是系统模型中的审计者.
1)计算开销.图2展示了AKUAR与SKERA在标签生成阶段的计算开销随着数据块数n的变化情况.很明显,2个方案消耗的计算开销差不多,且都随着数据块数n呈线性增长.图3展示了2个方案用于密钥更新的计算开销.虽然AKUAR在审计端的开销稍微多一些,但超出部分是一个较小的固定值,且不多于0.02 s.因此,相比于SKERA,AKUAR更适用于使用性能受限的本地设备接入云端的用户.
图4展示了AKUAR在3种密钥更新阶段的总计算开销对比情况.对于每一次密钥更新,AKUAR引入的计算开销总是一个小且恒定的值.图5同样展示了AKUAR在3种密钥更新情况导致的标签更新阶段的计算开销.可以看到,尽管3种情况的计算开销总是随着数据块数的增加,然而这个耗时的计算过程是由云服务器执行的,即不会给用户以及雾节点端带来计算压力.
2)通信开销.图6与图7分别展示AKUAR与SKERA在标签生成与密钥更新阶段的通信开销的对比.从图6、图7中可以看出,AKUAR与SKERA在标签生成阶段需要的计算开销是一样的;而在密钥更新阶段,AKUAR比SKERA需要更多的通信开销,因为AKUAR把密钥更新请求全部计算在内,而SKERA没有对请求进行定义,且超出部分不超过一个字节.此外,实验对AKUAR在密钥更新阶段的3种更新情况的通信开销进行了评估,具体结果如图8所示.从图8中可以得出结论:AKUAR在密钥更新阶段所引入的通信开销是固定的,与数据块数n无关.因为AKUAR允许计算一个更新因子传送给云服务器,而后云服务器根据该更新因子对存储标签进行更新,所以不需要用户参与标签更新.
综上所述,AKUAR在标签生成、密钥更新、标签更新阶段引入了少量的计算与通信开销,并且用户本地端在3个阶段需要的开销与数据块数无关.特别是,标签更新计算由云服务器承担,用户不需要消耗任何成本.所以,AKUAR是高效可行的,且适用于使用性能受限的本地设备接入云存储的用户.
6 结 论
针对云存储审计中存在的签名密钥泄露问题,本文提出一个支持密钥更新与审计者更换的安全云存储审计方案AKUAR.AKUAR设计了3种分别适用于签名密钥意外泄露、用户身份过期,以及审计者更换场景下的密钥与标签更新机制,并且由云端承担计算复杂的标签更新操作,仅为本地端引入了少量的开销.此外,当一个充当审计者的雾节点退出审计服务时,新的雾节点可以代替其继续进行完整性审计工作,在保证新签名密钥不被泄露给旧雾节点的同时实现了审计服务的可持续.安全分析表明AKUAR满足正确性、不可伪造性、密钥暴露抵制与审计者更换.理论分析与实验结果进一步证实了AKUAR在密钥更新与标签更新阶段引入的开销是少量的,并且本地端的计算开销是一个与文件划分块数无关的常量.
作者贡献声明:周磊提出了整体框架以及方案明细;陈珍珠负责执行实验方案;付安民提出了实验方案;苏铓针对安全分析提出了指导意见并进行了完善;俞研针对整体论文提出了指导意见并修改论文.