云中支持抗合谋攻击的批验证方案
2023-01-09袁文勇易铮阁李瑞峰杨晓元
袁文勇,易铮阁,李瑞峰,杨晓元,2
(1.武警工程大学 密码工程学院 陕西 西安 710086;2.网络与信息安全武警部队重点实验室 陕西 西安 710086)
0 引言
云计算继承了分布式计算、网格计算、虚拟化技术等技术的优点,具有扩展性强、资源集中、服务范围广和连接方便等特点[1]。而云存储是云计算的核心子功能,它利用存储技术和服务器为使用者提供存储和共享服务[2]。云计算可为数据用户提供强大计算力,但直接共享数据会带来数据隐私安全问题和数据所有权问题[3]。常见的数据威胁有非法增加、删除和修改。如何保证云数据的完整性是云计算安全重点研究方向。
为了保证数据完整性,研究人员提出了多种审计方案。Ateniese等提出PDP(provable data possession)方案[4],首次利用概率性证明来检验数据的完整性,用户不必再下载数据来检查完整性,实现无块验证。随后,Ateniese等提出了可扩展的PDP方案[5],支持了数据的部分动态操作。这两种方案都是概率性检测,用户不用下载需要验证的数据即可完成完整性验证。但由于依靠用户本身进行验证,需要承担大量的计算开销,当验证数据较多时,用户往往由于缺乏专业计算能力,无法高效完成数据完整性的验证需求。因此需要具有专业能力的第三方代替用户完成云数据完整性的验证。Wang等[6]开创性提出公有审计的概念,设计出一个基于第三方的公开审计模型。第三方审计机构(third party auditor,TPA)具有专业计算能力,在行业中可信度高,审计结果能被大众接受。由于采用公开审计的方法,用户数据隐私有可能泄漏给TPA。Wang等[7]采用随机掩码技术保护用户隐私。在CSP返回数据块的线性组合证据中加入一个哈希值,使得TPA无法利用验证相同数据块产生线性方程组求解出数据。但以上方案都是针对个人数据的完整性,缺乏对群用户数据完整性研究。
随着用户数量增多和数据共享服务出现,云为了便于管理数据和用户,把共享相同数据的用户划成同一个群,群中设有管理群用户的管理员。当有用户撤销时,撤销用户不再对共享数据享有使用权,被撤销用户的数据签名需要转化为合法用户签名。传统方法是删除撤销用户签名的数据,下载原数据签名再上传。这种方式计算开销大且步骤烦琐。针对用户撤销存在的问题,Wang等利用群签名提出用户可撤销的自我审计方案[8],但是群签名效率较低,导致整个方案审计效率低。随后文献[9]利用代理重签名提出了方案,改进了方案[8],实现了高效的用户可撤销,但存在群用户数量较大时重签名密钥管理不便的问题。然后文献[10]利用基于同态认证标签的环签名技术提出方案,较好解决了审计过程中用户身份确认,但签名代价与群用户规模呈线性关系,不适合大规模群用户更新。Wang等提出的Panda方案[11],利用权限表加入权限用户来生成管理重签名密钥,减少了重签名密钥计算次数,同时支持用户撤销和数据的更新,但Panda方案是基于云和撤销用户不存在合谋的基础上,无法抵抗撤销用户和云的合谋攻击。徐云云等[12]提出利用虚拟用户抵抗云和撤销用户合谋攻击,有效抵抗撤销用户和云合谋导致的身份隐私泄露,但是无法抵抗撤销用户与TPA的合谋攻击以及生成证据存在的隐私泄露风险。Liu等提出利用数据备份的技术,把数据及其备份上传到云中[13]。当存在用户撤销时,从云中删掉撤销用户签名的文件,新的签名用户下载备份文件重新签名后再上传,该方案有效抵抗了撤销用户和云的合谋攻击,但对云服务器存储容量增加了负担。韩静等提出一种可以对抗撤销用户与云、TPA合谋的方案[14],但该方案不能实现对数据的跨群批量验证。
针对以上方案在对抗撤销用户合谋和批验证方面研究的不足,本文提出一种可以对抗撤销用户的合谋攻击、保护用户隐私和数据完整性的方案。同时实现当前海量数据的快速验证,单个群文件验证方案扩展为多个群文件同时验证,使检查多个共享数据的完整性时不必轮流验证,实现了高效的完整性检查。最后通过安全分析,证明方案能够有效抵抗合谋攻击,同时检验了批验证数据的正确性。
1 相关知识
1.1 双线性映射
令G1和G2分别是两个阶为大素数p的乘法循环群。当e:G1×G1→G2满足如下性质时,称e为一个双线性映射[15]。
1) 可计算性:对于∀g1,g2∈G1,e(g1,g2)在有效时间内能被计算出来。
2) 双线性:对于∀g1,g2∈G1,及a,b∈G1,有e(g1a,g2b)=e(g1,g2)ab。
3) 非退化性:e(g,g)≠1。
1.2 离散对数问题
G1是一个阶为大素数P的乘法循环群,其中g是循环群G1的生成元,已知g和ga∈G1,求a的值是困难的,这称为离散对数问题[16]。
1.3 代理重签名
Blaze提出的代理重签名方案[17],主要思想是利用一个半可信代理来转换不同用户之间的签名。本文中Ui和Uvi两个用户,利用代理重签名可以将同一数据块上的Ui签名转化为Uvi的签名。转换过程云服务器作为代理商,借鉴Panda方案的重签名过程,结合文献[12]虚拟用户思想,对撤销用户签名进行重签名。通过重签名将撤销用户的签名转化为虚拟用户签名,保证数据不再被撤销用户链接。同时虚拟用户可以用来防止撤销用户和CSP的合谋攻击,保证用户隐私。
2 审计模型和设计目标
2.1 具有群用户的数据外包模型
外包数据模型分为三个部分,如图1所示。
图1 具有多个用户群的数据外包模型Figure 1 Data outsouring model with multiple user groups
1) 云服务器(CSP):用来提供数据外包存储服务,存储着用户的数据和签名。本方案中认为CSP是半可信的,不会恶意泄漏数据,但可能为了自身利益对数据进行改动甚至删除。
2) 第三方审计机构(TPA):TPA拥有专业的计算能力,受雇于用户检查数据的安全,会如实执行用户要求,但是可能通过大量的审计证明来探索用户的隐私。通常认为是半可信的。
3) 用户:用户在群中由群管理员负责管理。群中用户撤销时管理员会更新合法用户表。用户为了减少存储成本和计算开销,把数据外包给云服务器[14]。
群中共享数据由一个初始用户U1生成,初始用户为群管理员。利用单一群密钥进行签名时,能够有效验证数据完整性。但当有用户撤销时,需要重新生成新的群密钥,再对数据重新签名。这增加了对密钥管理的复杂性,且用户更新效率低。本文方案模型中群数据可由不同的群用户进行签名,存在用户撤销时,管理员生成一个虚拟用户代替撤销用户在群中的位置。具体过程见表1。
表1 用户密钥表Table 1 User key list
群中有d个用户,U1为初始数据拥有者,作为管理员,管理员生成用户密钥表(user key list,UKL),存储群中用户名、对应签名的数据块的身份识别码和签名时间。假设用户Ui被撤销,用户名更新为Uvi,删除Ui的密钥ski,添加虚拟用户Uvi的密钥skvi,时间Ti更新为Tvi。撤销过程用户序号、数据身份识别码不改变。一个用户可能签名多个数据块,对应存储多个数据块的身份认证码和签名时间,不对数据签名的群用户的数据认证码和时间设为空值,其中idi={name‖ηi},name为文件F的名字,ηi为数据块mi在文件F中的分块索引号。
2.2 设计目标
针对群中撤销用户与CSP、TPA可能存在的合谋攻击,需要一个有效应对用户撤销同时满足保护用户数据隐私的方案。本文方案实现了以下目标。
1) 公共审计:TPA能够正确执行用户的审计请求,检查用户存储的数据完整性,反馈真实的数据情况给用户。
2) 正确性:云服务器正确存储数据时可以通过TPA发来的挑战,生成正确的证明发送回TPA。
3) 无块验证:用户检查数据情况时不用下载数据即可完成数据的完整性验证。
4) 批验证:用户能够一次检验多个群用户数据的完整性。
5) 隐私保护:抵抗撤销用户和CSP的合谋攻击,保护现有用户的隐私。抵抗撤销用户和TPA的合谋攻击,采用随机掩码技术盲化证据,防止TPA对证据的分析来获得现有用户的隐私。
3 抗合谋攻击的批验证方案设计
方案主要考虑抵抗撤销用户与TPA、CSP之间的合谋攻击,如果TPA与CSP之间存在合谋,云数据完整性验证将失去意义,用户上传到云中的数据将得不到任何保障。方案利用管理员生成虚拟用户,通过重签名将撤销用户的签名转化为虚拟用户的签名,实现抵抗撤销用户和CSP的合谋攻击。CSP利用随机掩码技术对证据进行盲化,抵抗撤销用户和TPA的合谋攻击和保护用户隐私。
为了实现方案目标,设计了以下7个算法。
重签名之后,管理员更新UKL,将撤销用户名由Ui更新为Uvi,密钥由ski更新为skvi,签名时间由Ti更新为Tvi。
ChallengeGen→chal:该算法由TPA执行,生成索引挑战。具体操作过程为TPA从分块索引[1,n]中随机抽取c个元素充当挑战索引L,选取随机数vl∈ZP,输出挑战chal={(l,vl)}l∈L。
Genproof(F,φ0,chal):将chal={(l,vl)}l∈L作为挑战请求发给CSP。云接收后,将L分为d部分,表示为L={L1,L2,…,Ld},Li(1≤i≤d)表示用户Ui签名的被选择用来充当挑战的数据块的子集,Li中包含ci个元素。对每个Li计算{μ′i,βi},
CSP将riφi发送给管理员,管理员返回(riφi,Ri),Ri=wriφiai,i∈[1,2,…,d]。μ为盲化过后的数据块线性组合μ={μ1,μ2,…,μd}。β为标签的线性组合,β={β1,β2,…,βd}。R为Ri的线性组合,R={R1,R2,…,Rd}。CSP生成证据P={μ,β,R}发送给TPA。
Verify(chal,P,pki):TPA根据发出挑战后接收证据P和用户的公钥(pk1,pk2,…,pkd),对式(1)进行验证,
(1)
若等式成立,说明数据完整;否则,数据不完整。
4 安全分析
根据方案设计,本节从完整性、抗伪造攻击、批验证、对抗撤销用户与CSP合谋攻击、对抗撤销用户与TPA合谋以及隐私保护分析方案的安全性。
4.1 TPA能够正确验证用户数据的完整性
本方案的虚拟用户是管理员自己生成,从UKL可以知道,虚拟用户代替撤销用户时,群中的用户序号不发生变化,故撤销用户生成的数据标签可以直接代替撤销之前的标签进行完整性验证。因此虚拟用户的签名和现实用户签名是同等参与完整性验证。根据方案可知,如果式(1)成立,则数据完整。具体证明过程如下。
通过以上证明可知,TPA能够正确按照用户需求验证数据,实现无块验证。如果数据完整,CSP返回的证据能够通过TPA的验证,表明方案能够实现对数据完整性的验证。
4.2 抗伪造攻击
假设存在一个攻击者能够通过伪造证据,并且成功通过第三方审计的验证,那么一定存在某种算法能够以不可忽略的概率解决基于离散对数的困难问题。为了完成对方案中证据不可伪造性的说明,我们现在进行如下游戏。
当CSP利用两个不同证据通过完整性验证,可以得到两个 TPA 在验证数据完整性时的等式,即
(2)
(3)
通过式(2)、(3),可知g、w为G1的生成元,且已知pki=gai。
通过运用双线性映射的相关性质,可以推断出
4.3 实现数据的批量验证
涉及多个用户进行数据验证时,如果一一对每个群的数据进行验证,导致验证效率低下,需要一种同时对多个群数据进行验证的方案。假设TPA需要检验来自N个不同群组的文件Fn,每个群用户数量为dn,n∈[1,N]。
(4)
如果式(4)成立,则说明检验的多个文件数据的完整性成立;否则,说明数据完整性遭到破坏。
4.4 抵抗撤销用户与CSP的合谋攻击
当撤销用户与CSP合谋时,撤销用户泄漏自己私钥给CSP,CSP根据重签名密钥可以推算出虚拟用户的密钥。假设CSP利用虚拟用户私钥去进行其他数据签名或执行其他权限,管理员根据UKL虚拟用户一栏的信息,能有效证明虚拟用户的签名数据历史。不同撤销用户对应不同虚拟用户,且重签名密钥是CSP拥有,管理员根据泄漏的虚拟用户私钥,可以判断出哪个撤销用户和CSP存在合谋。同时根据数据签名时间,能够追溯撤销用户的行为,提高了CSP和撤销用户合谋的风险,限制了CSP可能执行的不诚实行为。
4.5 抵抗撤销用户与TPA的合谋攻击
4.6 实现隐私保护
5 性能分析
定义H为一次单向哈希函数的计算代价,MG1为在G1上进行一次乘法运算的代价,MG2为在G2上进行一次乘法运算的代价,EG1为在群G1上进行一次指数运算的代价,Pair为一次双线性对运算的代价,n为文件中数据块的数量,c为查询数据块的数量。|G1|为G1中元素比特长度,|n|为[1,n]中元素的比特长度,d为一个群中用户数量,|P|为ZP中元素比特长度。
5.1 通信开销
本文方案通信开销集中在发送挑战、接收证据和盲化数据TPA与CSP交互信息三个阶段。发送挑战通信量为c·(|n|+|P|);接收证据{μ,β,R}的通信量为2d|G1|+d|P|;CSP发送riφi和管理员返回(riφi,Ri),i∈[1,2,…,d]的通信量为2d|P|+d|G1|。故本文方案总通信开销为(3d+c)|P|+3d|G1|+c|n|。
5.2 计算开销
生成标签过程为用户在离线中计算,本文方案开销为CSP生成挑战阶段和TPA验证证据阶段。CSP生成证据阶段计算量为(c+d)EG1+cMG1。TPA利用证据进行完整性验证式(3)计算量为(c+d)EG1+(d+1)Pair+(c+3d)MG1+dMG2+cH。综上所述,本文方案总计算开销为(2c+2d)EG1+(d+1)Pair+(2c+3d)MG1+dMG2+cH。
5.3 方案对比
本文方案与文献[11-14]中的方案在安全性能上进行对比,结果如表2所示。
表2 安全性能比较Table 2 Comparison of safety performance
对比之前有关群用户的方案[11-13],改进了之前无法完全抵抗撤销用户合谋攻击的不足,同时对比方案[14]增加了跨群批验证功能。
6 结语
群中撤销用户发起的合谋攻击,对群合法用户隐私具有严重威胁,为此提出一种能够有效抵抗合谋攻击和保护数据隐私的方案。利用重签名技术将撤销用户的签名转化为虚拟用户签名。虚拟用户没有任何实质权限,由管理员进行有效管理。通过虚拟用户密钥和重签名时间,能够有效追踪撤销用户和CSP的合谋攻击。同时为抵抗撤销用户与TPA合谋攻击,采用随机掩码技术盲化证据,有效保护合法用户数据隐私、抵抗撤销用户和TPA的合谋攻击。实验证明方案可以实现跨群数据的批验证,能有效完成多个审计请求。