云存储服务中支持合作方式的数据完整性验证研究

2015-03-16 11:17王惠清周雷
电脑知识与技术 2015年1期
关键词:云存储同态

王惠清++周雷

摘要:伴随着云计算和存储技术的发展,越来越多的用户把自己的敏感数据存储在云服务器上,与此同时,用户的数据面临安全的考验,针对这种情况,为了更好的实现数据完整性验证技术,帮助用户更好的使用云存储服务,提出一种支持合作方式的数据完整性验证方法,通过引入分布式多TPA系统可以同时处理不同用户的数据验证请求,运用代数签名和同态标签的性质对数据进行审计,并且支持公开可验证。最后实验结果显示了该方法在数据完整性验证方面的性能和高效性。

关键词:云存储;数据完整性验证;代数签名;同态;多TPA

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)01-0019-05

Research on Collaborative Approach Data Integrity Verification on Cloud Storage

WANG Hui-qing1,ZHOU Lei2

(1.Department of Luzhou Medical College, Luzhou Medical College, Luzhou 646000,China;2.College of Information Science and Engineering, Central South University, Changsha 410083, China)

Abstract: More and more have chosen cloud for their storage demands for its low cost, high availability and reliability. In the meantime, a great challenge for data security is also brought in the spotlight, and some security incidents have decreased users trust in cloud services. For this kind of situation, in order to better implement the data integrity verification technology, help users to better use cloud storage service, In the paper, Put forward a way to support the cooperation of data integrity verification method, by introducing a distributed multiple TPA system can handle data validation request of different users at the same time, using algebra signatures and homomorphism tags to the nature of the audit data, and support the publicly verifiable.

Key words: cloud storage; Data integrity verification; algebraic signature; homomorphic TAG; multiple TPA

云计算最近几年成为学术和工业界关注的热点,随着云计算的发展,云计算的安全也成为大家关注家关注的一个焦点。但是云存储并非无懈可击它面临一些内在和外在的安全威胁。在云存储服务中,服务提供商(CSP)也是不可信的。为牟取更大的利益,CSP可能将用户很少访问的数据转移到非在线存储设备上,甚至将这些数据删除以节省存储开销。甚至篡改敏感数据导致数据完整性问题,这样,就产生了云存储中的数据完整性的缺失。

云存储数据的完整性检测是验证不可信的云存储服务器是否能保证数据的完好无损,避免云用户存储在其中的数据被篡改或删除。云存储数据完整性研究主要集中在可证明数据持有(provable data possession, PDP)方案和可恢复证明(proof of retrievability, POR)方案。POR与PDP的主要区别是:PDP支持检测数据完整性,但无法保证数据可恢复性;POR可以确保存储数据的可恢复性[1]。

Ateniese等人[2]提出基于对称密码技术构造PDP方案。该方案由用户设定挑战次数和待检测数据块, 把响应作为云数据存储在客户端, 因此更新和检测次数是有限的。 Erway等人[3] 提出了两种动态的数据持有性证明方案, 一种是基于等级的鉴别跳表, 另一种是RSA加密算法的树结构。肖达等人[4]在国内最早提出了使用数据持有性检测方法, 其思想是在一个挑战-应答协议, 用户要求服务器计算其随机指定文件中的若干个数据块的hash值,并与对应的校验块一起返回。但其数据完整性检测是在客户端进行的,这样无形之中就增加了用户的计算成本和通信成本。Shacham等人[5]提出一个基于伪随机函数的数据完整性检测方案, 不支持公开性验证。Boneh等人[6]提出了一个基于BLS签名的数据完整性验证方案,支持数据的公开性验证。 RSA实验室的Bowers等人[7]提出了一个POR的理论架构,用于改进已有的方案。

综上所述,分析对比这些方法,这些方案的数据验证都有单一的可信第三方验证(Third Party Auditors),单独的TPA不能为数据拥有和易于发生的单点故障处理SLA和法律问题。对于这些方法,发生错误的位置是很难发现的,它们都不支持分布式多TPA对数据完整性进行交叉检查和交叉验证。支持的仅仅是对数据动态性、隐私保护和公开可验证性之间的权衡。基于以上研究,该文提出分布式多TPA系统的数据完整性验证方案,该方案中每个TPA都可以同时处理来自不同用户对于所存储数据文件的各种审计会话,使用代数签名和同态标签进行验证极大的提高了验证效率;代数标签仅仅使用很小的挑战和回应,TPA集群仅需要存储两个密钥和几个随即数,这使得TPA集群的工作非常容易和计算密集,代数方案的效率允许建立大规模的分布式存储系统,在该分布式系统中存储的大量数据能够以最大的效率和最小的过载被验证。代数签名的聚合和代数性质对在方案中的批量数据验证提供了额外的效益。最后通过实验结果证明了该方案的安全性和性能的合理性。

1 分布式多TPA系统模型

针对数据存储中的数据验证问题,该文提出分布式多第三方数据验证技术。在这个技术中,通过负载均衡技术,多个TPA共同承担巨大的负载压力,与单一TPA相比较可以极大提高数据验证的效率。图1显示了分布式多TPA数据验证技术的云数据存储网络体系架构。

图1 系统模型

2 分布式多TPA数据完整性验证方案

2.1 同态标签

在代数中,同态是两个代数结构(例如群、环、域或向量空间)之间的保持结构不变的映射,即存在映射[Φ]: [X→Y], 满足[1] :

[Φ(x?y)=Φ(x)?Φ(y)] (1)

其中:[?]是[X]上的运算,[?]是[Y]上的运算。

在数据完整性检测过程中,可以利用同态标签的同态性来验证数据是否完整。同态标签有两个性质:a)通过使用同态标签,可使用少量特定的数据块进行数据的完整性检测,而无需对所有的数据块进行检测,降低了通行开销和计算开销;b)对于任意两个数据块[mi]和[mj],[mi+mj]的标签信息[T(mi+mj)]可以有它们各自的标签信息[T(mi)]、[T(mj)]生成,即

[T(mi+mj)=T(mi)?T(mj)]。

2.2 数据完整性验证算法

数据完整性验证方案一般由密钥生成、标签生成、挑战、证据生成和证据验证五个阶段。该文依据图1所示系统模型中各部分的协同工作关系,将数据完整性验证算法分为8个部分。其每个部分分别如下。

1) 请求数据完整性检测:在数据验证期间,云用户(Cloud Users)向TPA集群发送对数据文件F的验证请求。通过负载均衡和批量审核的方式,TPA集群中的某一TPA服务器共享和分发负载给其他的TPA服务器。

2) 转发请求: TPA集群对生成的一些初始化参数进行设置,如主密钥[k←R{0,1}k]、加密的同态标签密钥[kt←R{0,1}k]和随机数[r1←R{0,1}k],[r2←R{0,1}k]。这些初始化参数对于所有的TPA服务器都是一样的。然后,TPA集群转发请求给云存储服务器(Cloud Service Provider),请求对物理数据中心的样本块进行数据完整性检测

3) 请求响应:云存储服务器从整个数据库中选取一些与文件F相关的随机样本块,并且将选取的块数[c]返回给TPA集群。

4) 同态标签生成阶段:TPA集群使用同态标签生成算法如表1所示。每个TPA服务器独立的从返回的块数[c]中随机选取样本块[c1,c2,……cn],并且计算这些样本块代数签名总数[ASg(S)=x=1nASg(sx)],就如[ASg(S1),ASg(S2),……ASg(Sn)]。通过负载均衡,同态标签生成过程分发在所有TPA服务器中。最后TPA集群发送整个映射表[(F,T)]到云存储服务器中存储。

表1 同态标签生成算法

[Input:[c1,c2,……cn]

Output:[(F,T)]

1:for [0

[ki=fk(r1+i)][sx=0]

for [0

[lj=σki(r2+j)]

[sx=sx+F[lj]]

[ASg(sx)] /*计算*/

2: [ASg(S)=x=1nASg(sx)]/*n 是TPA的总个数*/

3: [?i=ASg(S)] /*同态验证标签*/

4: [Ti=Ekt(?i)]

5:end for\&]

5) 挑战阶段:用户随机输入一个系数[c],云存储服务器根据收到的挑战系数[c]去找到对应的[c]个文件子块,依据文件字块包含的标签信息计算出标签[Ti]。然后,TPA集群使用主密钥[k]对第[i]次验证计算[ki=fk(r1+i)]。然后发送挑战信息表[(r2,ki)]到云存储服务器。

6) 证据生成阶段:云存储服务器接受到挑战信息后,在证据生成过程中,云存储服务器使用[ki]计算挑战阶段所请求块数的数据块位置[lj=σki(r2+j)],并且计算第[i]个数据块的总数[F'i=F'i+F[lj]],然后返回映射表[(F'i,T'i)]到TPA集群,[T'i]是同态可验证标对应于云存储服务器上的[F'i]。

7) 证明验证阶段:TPA集群使用标签解密密钥[kt]和解密函数[Dkt],然后对标签[T'i]进行解密得到[ρi=Dkt(T'i)]。同时计算[F'i]的代数签名[ASg(F'i)]

最后验证[ASg(F'i)=?ρi]是否相等。如果相等,文件的完整性受到保护,否则文件完整性受到破坏。

8) 结果反馈阶段:通过前面几个部分的计算,TPA集群将数据验证的结果发送给云数据存储用户。

3 安全性分析

代数签非常适合运用在远程数据中心的大量云存储数据验证,因为代数标签可以使网络影响降到最低、合理的计算负载和抵抗恶意的修改。使用代数标签可以把文件块压缩成一个非常小的实体以至于在块中有极小的改变实体也随之改变。对于大比特的字符串,相比较散列函数如MD5和SHA1,代数签名加密也是安全的。

TPA集群每次从[n]个数据块中随机选取[c]个样本文件块。这些样本块极大地降低了服务器的工作负荷,同时也对检测服务器的不端行为有极高的概率。这里假设服务器从块[n]中删除[r]块。[X]是一个离散随机变量,它被定义为TPA集群所选取的块数,该块数与被服务器删除的块数一样。然后计算[PX]的概率,计算概率公式如下。

[PX=P(X≥1)=1-P{X=0}=1-{n-rn?n-1-rn-1?n-2-rn-2…n-c+1-rn-c+1}] (2)

[PX]显示服务器不端行为被检测到的概率,而服务器不端行为的侦测取决于文件快总数[n],删除块[r]和挑战块[c]。如果存储服务器删除文件中的[r]块,则TPA集群将会在一个[c]块的挑战后检测到服务器的不端行为。图2显示了[PX]随[r],[c]的不同变化规律。

图2 服务器不端行为检测的概率

TPA集群能够通过固定块数的挑战以确定的概率检测到服务器不端行为,而独立于文件块的总数。例如:如果[r]等于总块数的1%,那么要使[PX]分别达到至少是[99%]和[95%],则客户端要求达到文件块数500块和460块。因此,这个完整性检测方案在概率上是安全可行的。此外,为了提高服务器不端行为检测的概率,可以通过频繁执行检测过程和要求更多的块数作为每次的挑战。对于大的位串提供抵抗相似签名的冲突。例如,如果选择64位的签名,那么冲突的概率将为[2-64]。

本方案选择256位的代数签名最小的冲突率为[2-256]。如果有一个1GB大小的文件,文件块[F[i]]的大小是8KB和位串的长度为L=256位,那么相对应的代数签名是256位和[n=F[i]L=256]。因为,本方案提供的对1GB文件大小的数据压缩率为256位,1GB大小的文件在云环境下算是很大的文件。这使得对于一个不知道如何生成一系列连贯签名秘密的站点来说,预测工作是非常复杂的。对于1GB大小的文件额外花费的存储是文件大小/代数签名大小等于4MB。因此,对于1GB大小的文件额外的开销仅仅是4MB。

4 性能分析

从性能的角度来看,我们关注用户验证存储服务器如何更有效地忠实地存储数据而没有恢复它。在本方案中,验证的数量和每次挑战需要的块数都能够按照用户的需求灵活的设定。如果数据存储时间不长,可以为用户设置少量的验证数和块数以便于进一步降低过载。

本文利用Eucalyputs技术搭建小型云平台,使用两台计算机和一台服务器作为客户端和服务器。其中服务器作为数据文件的存储,另两台计算机作为TPA集群代表云用户来验证所存储的文件。可以看到:

1) 在初始设置阶段,TPA集群生成一些密钥和随机数。

2) 同态标签生成阶段,每个TPA都需要执行[t]次的PRF,[c]次的PRP操作,[c]次的求和,[t]次的代数标签和对称加密操作。如果TPA的数量是[n],那么TPA集群需要执行[t?n]次的PRF和[c?n]次的PRP操作,[c?n]次的求和,[t?n]次的代数标签和对称加密操作。

3) 在挑战操作极端,TPA集群仅仅需要为256位密钥传输512比特的信息。

4) 证据生成阶段,云服务器需要执行[c]次PRP和求和操作,然后需要传输8KB的返回结果集。

5) 证据验证阶段TPA集群仅仅需要一次解密和压缩操作。

只有对称密钥加密和解密、求和、PRF和PRP操作被使用。所有的操作在计算上简单高效。该文所使用的验证方法,所验证的数是无限的、服务器的计算是复杂的、客户端计算是复杂的、通信复杂度和客户端存储复杂度是[O(1)]。因此,本方案中的方法能够被运用到云存储中的大数据集合。

图3显示了对于多用户情况下数据验证的延迟。对于100个用户,验证延迟是大约300ms。随之用户数量的增长,延迟快速增加。当用户数达到1000时,延迟大约是3800ms。

图3 多用户的验证延迟

图4所示显示的是在数据为100%,98%和94%下,对于检测2%的数据丢失或者错误时,计算验证过载的开销。对于全部块的情况,检测时间与文件块大小成线性关系。抽样破坏了验证时间和文件大小之间的这种关系。数据在98%置信度下,对于任何文件验证的开销是大约2.45ms。在94%置信度下,对于任何文件验证过载的开销是1.6ms.

图4 多置信度下的验证过载

5 结束语

本文提出一种集群TPA同对数据完整性验证的合作方法,证明了该方法的安全性,并对通讯开销,验证延迟进行了性能分析。本方法运用代数标签和同态验证标签进行数据完整性检测。结合代数签名的效益和同态标签的高效可以得知使该方法非常适合云存储。正如实验结果所表明的方案性能的瓶颈问题是I/O,不是方法。幸运地是,即使服务器删除一点文件,客户端都能通过固定的挑战块数以非常高的概率检测出服务器的不端行为。

本文提出一种切实可行的数据完整性验证方法,解决用户在数据完整性验证消耗大量计 算资源的问题,提高用户数据的安全性。 今后工作将集中于数据动态处理上, 提出性能更高的算法。

参考文献:

[1] 陈兰香.一种基于同态hash的数据持有性证明方法[J].电子与信息学报,2011,33(9):2200-2204.

[2] Ateniese G, Burns R, Curtmola R, et al. Provable data possession at untrusted store[C] //Pro of the14thACM Conference on Comuter and Communication Security.New York:ACM Press,2007:598-609.

[3] Erway C,Kupcu A,Papamanthou C, et al. Dynamic provable data possession[c]//proc of the 16 th ACM Conference on Computer and Communications Security. New York: ACM Press, 2009: 213-222.

[4] 肖达,舒继武,陈康,等.一个网络归档存储中实用的数据持有性检测方案[J].计算机研究与发展, 2009 , 46(10): 1600-1668.

[5] Shacham H, Water B.Compact Proofs of retrievability[C]//Proc of the 14th International Conference on the Theory and Application of Cryptology and Information Security. Berlin: Springer-Verlag, 2008: 90- 107.

[6] Boneh D,Lynn B,Shacham H. Short signatures from the Weil pairing[J]. Journal of Cryptology, 2004, 17(4): 297-319.

[7] Bowers K D, Juels A, Opre A. Proofs of retrievability: theory and implementation[C]//Proc of ACM Workshop on Cloud Computing Security. New York:ACM Press, 2009:43-54.

[8] Schwarz T J E, Miller E L.Store, forget, and check: using algebraic signatures to check remotely administered storage[C]//Proc of ICDCS,2006,12.

[9] Litwin, W, Schwarz, T J E. Algebraic signatures for scalable and distributed data structures[C]//ICDE 2004.Boston,MA, 2004:412—423.

[10] 胡德敏,余星.一种基于同态标签的动态云存储数据完整性验证方法[J].计算机应用研究, 2014,31(5):1362-1365.

猜你喜欢
云存储同态
关于半模同态的分解*
拉回和推出的若干注记
基于云存储的气象数字化图像档案存储研究
试论云存储与数字版权的冲突、法制与协同
云存储出版服务的版权侵权责任风险分析
一种基于LWE的同态加密方案
云存储技术的起源与发展
基于云存储的数据库密文检索研究
浅析龙岩烟草业务数据与监控数据中的云存储与大数据
HES:一种更小公钥的同态加密算法