用户可实时撤销的云存储数据完整性验证方案
2023-11-03马海峰王俊华薛庆水时雪磊杨家海
马海峰,王俊华+,薛庆水,时雪磊,张 继,杨家海
(1.上海应用技术大学 计算机科学与信息工程学院,上海 201418;2.清华大学 网络科学与网络空间研究院,北京 100084)
0 引 言
国内外研究者对云端的数据安全问题进行了大量的研究[1],数据安全主要包括数据完整性、机密性和不可否认性[2-4],其中完整性是当前云数据安全的重要研究内容之一[5-8]。但是大多数现有方案都只针对单个用户设计数据完整性验证方案[9-12],并没有考虑到现实情境中企业的数据管理员离职需要撤销的问题。张新鹏等[13]提出一种基于代理重签名的实现用户撤销的云存储数据验证方案,虽然可以撤销用户,但是却无法实现实时用户动态可撤销。杨小东等[14]提出了一种基于代理重签名的云端数据完整性验证方案可实现用户撤销,但也无法实现用户实时动态撤销,且无法解决合谋问题[15]。大多数支持用户撤销的方案存在以下问题:①用户撤销过程设计的签名不满足灵活的任期调度;②由不可信的云服务器做代理重签名存在安全隐患;③存在恶意用户伪造重签名密钥对数据进行重签名的风险。
基于对以上问题的思考,本文提出了一种用户可实时撤销的云存储数据完整性验证方案,具有以下特点:
(1)为用户引入一个管理属性参与密钥设计可以满足用户灵活的任期调度,方便实现该用户实时撤销。
(2)将用户撤销过程中的代理重签名过程外包给一个具有可信执行环境的代理服务器,在代理服务器的可信执行环境内执行重签名算法,使用户可以远程安全地对云中数据进行签名。
(3)代理服务器的可信执行环境收到重签名密钥后会进行验证,避免重签名密钥被伪造。
(4)方案中设计的重签名密钥可以抵抗已撤销用户与云存储服务商合谋攻击。审计证明中使用的随机掩码技术可以有效抵抗已撤销用户与第三方审计者的合谋攻击。
1 方案详述
1.1 系统模型
该方案存在4个实体:用户(User,U)、云存储服务商(cloud storage provider,CSP)、第三方审计者(third party auditor,TPA)、代理服务器(proxy server,PS),系统模型如图1所示。
图1 系统模型
User:用户是企业雇来管理数据的人员,初始用户负责将数据分块并上传到云服务器,由于某些原因用户可能会离职或调岗,这时就需要新用户来代替上一任用户接着管理存储在云端的数据。为了减少用户的计算和通信压力,企业将会雇佣一个第三方审计者代替用户检验云中存储数据的完整性;
CSP:具有优质的存储和计算能力,为企业提供外包数据存储服务。如果有利益需要,云存储服务器有可能会损坏企业云中存储数据的完整性,所以存储在云服务器上的数据的完整性需要被不定期检验;
TPA:第三方审计者是一个独立可信的实体,受雇于企业,并向用户反馈云中数据的完整性检验结果;
PS:代理服务器是用来做用户撤销过程中的重签名,代理服务器中的可信执行环境具有独立的存储和计算空间,重签名的计算过程可以在可信执行环境中进行,由于可信执行环境的特殊性质可以确保重签名阶段的安全。
方案主要分为重签名阶段和审计阶段,模型描述如下:
(1)重签名阶段:企业的初始数据管理员作为方案初始用户U0,U0负责将企业数据分块并签名上传至云服务器。如果初始用户U0由于某种原因工作进行变动,需要将U0从云存储系统中撤销,更换新用户U1继续管理企业数据,否则云端存储数据将可能面临安全威胁。本方案在设计用户公私钥对时引入一个管理属性,参与数据块标签的计算,用户需要撤销时企业会在用户离职后公开此用户的管理属性,使代理服务器计算现任用户的重签名时不受上一任用户的影响,可以实时撤销上一任用户。 Ut-1离职后Ut将计算重签名密钥并将自己的管理属性发送给代理服务器。利用可信执行环境可以实现敏感数据的隐私计算的特殊性,由代理服务器利用重签名密钥代替Ut在其可信执行环境里完成重签名计算,然后将重签名发送至云服务器,由云存储服务商将云端数据的上任用户签名换成重签名完成签名替换;
(2)审计阶段:用户要验证云端数据完整性时会向第三方审计者发送审计请求,第三方审计者会生成审计挑战发送给云存储服务商,而后云存储服务商会根据审计请求生成相应的审计证明返回给第三方审计者,第三方审计者会根据审计证明判断等式是否成立,从而判断云端存储的企业数据是否完整,最后把完整与否的结果反馈给用户。
1.2 安全模型
在代理服务器完全可信的情况下,主要分析3种攻击方式,分别为伪造攻击、重放攻击、合谋攻击。
(1)伪造攻击:是指在代理重签名生成阶段,可能存在恶意的云用户由于利益或其它原因伪造重签名密钥对远程的企业数据进行重签名导致数据完整性验证失败。
(2)重放攻击:是指在验证阶段,第三方审计者可能会通过与云存储服务商的频繁交互,从交互信息中获取云中数据隐私。
(3)合谋攻击:是指已撤销用户与云存储服务商合谋或者已撤销用户与第三方审计者合谋获取远程隐私数据。
1.3 具体方案
(1)重签名阶段:
SigGen:企业待存储文件F有一个TagF标签,包含文件名和文件其它属性,初始用户U0把文件F分成n个小块,即F={m1,m2,…,mn}, 初始用户会计算每一个数据块mi的签名,如式(1)所示
(1)
所有数据块的签名集合是Φ(0)={σ1,σ2,…,σn}。 初始用户U0会将 {F,Φ(0),TagF} 发送至CSP,然后把数据块签名集合Φ(0)发送给PS。
ReKeyGen:倘若用户Ut-1由于某种原因离职或调岗需要从云存储系统中撤销,将会有新的用户Ut来接替Ut-1的数据管理工作,企业同样会给用户Ut分发一个相应的管理属性A(t), 同时公开已撤销用户Ut-1的管理属性A(t-1), 此时新用户上任需要计算重签名密钥rkt-1→t, 便于后续重签名的计算,计算过程如式(2)所示,把重签名密钥rkt-1→t与新用户管理属性A(t)发送给PS
rkt-1→t=(pkt-1)1/skt=gxt-1h(A(t-1))/xth(A(t))
(2)
ReSiggenGen:PS收到重签名密钥rkt-1→t后,为了避免恶意人员伪造重签名密钥造成云中存储数据面临安全威胁的问题,需要在重签名计算之前对重签名密钥做一次验证,如利用双线性映射的性质判断式(3)等号两边是否相等
e(rkt-1→t,pkt)=e(pkt-1,g)
(3)
(4)
同时在PS的可信执行环境中对已撤销用户的公钥和新上任用户生成的重签名密钥进行重新处理,如式(5)和式(6)所示
(5)
(6)
(2)审计阶段:
R=ur∈G1,μ=μ′+rh(R)
(7)
计算验证数据块标签集合为式(8)和式(9)
(8)
(9)
CSP把 {σ,μ,R,{af}f∈[1,t],{bf}f∈[1,t]} 作为审计证明发给TPA进行验证。
ProofVerify:TPA收到CSP发来的审计证明后,会利用双线性映射的性质验证以下式(10)~式(12)是否成立,如果全部成立,说明存储在云中的数据是完整的,输出“Success”;否则说明云中数据的完整性遭到破坏,输出“Failure”。最后将输出结果返回给用户
e(σ,g)=e(uμ·R-h(R)·∏i∈{1,c}H1(mi)vi,a1)
(10)
e(af,g)=e(af+1,bf)
(11)
e(at,g)=e(pkt,bt),f∈[0,t-1]
(12)
算法流程如图2所示。
图2 算法流程
2 安全性分析
2.1 正确性分析
审计存储在云端的数据完整性是通过验证完整性等式是否成立来判断的,即验证式(10)~式(12)是否成立,验证等式过程如下
(13)
对于所有的f∈{1,2,…,t}, 有
(14)
(15)
重签名密钥验证等式(3)过程如下
e(rkt-1→t,pkt)=e(gxt-1h(A(t-1))/xth(A(t)),gxth(A(t)))=
e(gxt-1h(A(t-1)),g)=e(pkt-1,g)
(16)
综上所述,本文方案是正确的。
2.2 伪造攻击
定理1 在重签名生成阶段,恶意人员无法使用伪造的重签名密钥通过重签名密钥验证。
证明:传统方案中如果企业向代理服务器发送的重签名密钥是其它恶意云用户U′t伪造的重签名密钥rkt-1→t′, 代理服务器直接用伪造的重签名密钥对数据块进行代理重签名,这样恶意云用户就能将远程数据签名伪造成自己的签名,会导致审计阶段完整性验证失败。为了避免此类攻击,本方案在代理服务器收到重签名密钥后会对其进行验证。如果收到恶意云用户U′t伪造的重签名密钥rkt-1→t′将判断等式e(rkt-1→t,pkt)=e(pkt-1,g) 是否成立,如果成立,说明重签名正确有效,否则是无效的,代理服务器将反馈给企业。验证过程为
e(rkt-1→t′,pkt)=e(g(xt-1h(A(t-1)))′/(xth(A(t)))′,gxth(A(t)))≠
e(pkt-1,g)
(17)
综上所述,在重签名生成阶段,恶意云用户伪造的重签名密钥无法通过重签名密钥验证,从而防止了恶意云用户的伪造攻击,保证重签名密钥正确有效。
2.3 重放攻击
定理2 在验证阶段,TPA无法从与CSP交互过程中获取到云端的企业数据。
证明:在验证的交互阶段,TPA有可能从CSP返回的审计证明里的μ或σ得到关于证据μ′的信息,从而获取到云端的企业数据,分析如下:
(1)假设TPA想从μ中获取μ′, 分析如下:
已有方案里审计挑战的线性组合是μ=μ′=∑i∈Cmivi, 当TPA每次都对同样下标的数据块进行验证,经过c次,TPA就能得到c个mi为未知数的线性方程,组成完整的线性方程组,解开方程组就能得到企业数据。为防止此攻击,本方案采用随机掩码技术隐藏证据μ′, 依据DL困难性假设,在G中计算DL问题是及其困难的,故依据u,R∈G1计算r是比较困难的。所以,TPA通过求解r来获取μ′是比较困难的,从而抵御了重放攻击。
(2)假如TPA想从审计证明中的σ获取证据μ′,σ的计算过程如下
(18)
因为TPA没有办法得到历任用户的私钥,所以TPA无法从σ中获取uμ′的信息和证据μ′。
综上所述,在验证过程,TPA在与CSP交互的过程中没有办法从CSP发来的审计证明中获取到用户任何的真实数据,所以在验证过程很好地保护了数据的隐私。
2.4 合谋攻击
定理3 本方案能够抵御撤销用户和CSP、撤销用户和TPA的合谋攻击。
证明:
(1)假设已撤销用户与CSP合谋,分析如下:
(2)假设已撤销用户与TPA合谋,分析如下:
假设初始用户U0和TPA合谋,把其私钥sk0发给TPA,由定理2中σ计算过程可知,TPA依旧无法从中获取到证据μ′的有关信息。给定uμ′=φ∈G, 基于离散对数难题,由u和φ, 求解μ′是困难的,其它已撤销用户与TPA合谋一样无效,故本方案很好地避免了已撤销用户与TPA合谋攻击。
综上所述,无论企业已撤销用户将其撤销前的密钥泄露给CSP还是TPA,CSP和TPA都无法从中计算出数据的有用信息,所以本文方案可以有效抵抗企业已撤销用户和CSP、已撤销用户和TPA的合谋攻击,进一步保证了云中存储数据的安全。
3 性能分析
本节首先对方案的各项开销进行分析,后与文献[13-15]进行比较。分析中使用的符号及含义见表1。
表1 符号及含义
3.1 通信开销
方案的通信主要集中在重签名发送阶段及审计过程中TPA与CSP的交互。PS将重签名发送至CSP,通信量为3n|G|, TPA与CSP交互过程中,TPA发送挑战至CSP,通信量为c(|m|+|v|), CSP返回证明的通信量为 (2d+1)|G|+c|m|+|q|。
故本方案通信开销为(3n+2d+1)|G|+2c|m|+c|v|+|q|。
3.2 计算开销
方案的计算主要集中在计算重签名及审计过程。计算重签名密钥,计算量为 |z|, 计算重签名,计算量为 (2d+1)n|z|; CSP计算审计证明,计算量为(c+1)|z|, TPA验证证据,计算量为2|e|。
故本方案计算开销为 (2dn+n+c+2)|z|+2|e|。
3.3 方案对比
本方案与文献[13-15]在通信、计算开销和性能方面进行了分析比较,见表2。
如表2所示,本文方案因引入一个代理服务器通信开销较文献[13]而言增加了重签名的通信量3n|G|,但是文献[13]无法抵抗已撤销用户与TPA合谋攻击,无法实时动态撤销用户并确保重签名密钥安全,而且计算开销比本文方案计算开销大。同理本文方案通信开销较文献[14]也稍有增大,文献[14]同样无法抵抗已撤销用户与TPA合谋,无法实时动态撤销用户并确保重签名密钥安全;而且文献[14]需要计算3次双线性对运算,本文方案只需要计算2次。本文方案比文献[15]的通信开销增大 (3n-1)|G|, 计算开销相同,但是文献[15]无法实现实时动态撤销用户,也无法保证重签名密钥安全。与其它3个方案相比,本文方案同时满足抵抗已撤销用户与CSP和TPA合谋攻击,实时动态撤销用户,支持数据隐私保护,还可以确保重签名密钥安全,所以本文方案更具有理论意义和实用价值。
3.4 实验分析
通信开销是指本方案中各实体所有阶段的总通信开销,在进行10次实验的情况下,结果取平均值。计算开销也采用了同样的方法进行取值。本文方案与传统方案的通信开销、计算开销对比如图3所示。
图3 通信与计算开销对比
随着数据块数的增加,c的取值也在增加,在数据块数n为500时取c为100,n为1000时取c为200,依次递增。由图3(a)可知,随着数据块数的增加,本文方案比传统方案在通信开销计算上的优势逐渐增大,图3(b)随着数据块数的不断增大,本文方案明显计算开销更小,而且优势更明显。
本实验也将传统方案与本方案撤销用户所花费的时间开销上进行了对比,如图4所示。
图4 时间开销对比
传统方案的用户撤销是上任用户撤销之后,新任用户需要重新从云端下载原始数据进行签名后再次上传至云端,所以每增加一个用户撤销所消耗的时间基本上是恒定的。本方案的用户撤销是用户撤销之后,由代理服务器代替新任用户进行重签名,代理服务器只将重签名上传至云端即可,云端存储的数据并不变动,所以每增加一个用户撤销的时间消耗也基本上也是恒定的。
4 结束语
本文通过引入一个代理服务器并结合重签名技术提出一种用户可实时撤销的云存储数据验证方案,不仅实现了企业的用户可以根据实际任期实时撤销,而且有效抵抗已撤销用户与第三方审计者、已撤销用户和云存储服务商之间的合谋攻击,支持云端数据的隐私保护,利用代理服务器的可信执行环境确保了重签名阶段的信息安全。正确性与安全性分析结果表明,本文提出的方案是切实可行的,实验分析结果表明,本方案的效率确实比传统方案高。后续的研究工作将继续改进本方案,减少代理重签名计算的辅助信息,以更加降低通信和计算成本。