1. 引言
图灵奖获得者吉姆·格雷(Jim Gray)在其获奖演说[1]中指出:由于互联网的发展,未来每十八个月新产生的数据量将是有史以来数据量之和。人类社会产生的数据信息一方面来自于互联网,一方面来自于日常生产及各种科学试验,例如科学计算和仿真、飞行动力学、核爆炸仿真、太空探测及医疗影像数据等每天所产生的数据信息更是大到了惊人的程度[2]。
信息存储系统朝无限的带宽、无限的容量和无限的处理能力(Infinite Bandwidth, Infinite Capacity, Infinite Processing Capability),即“3i”方向发展,提出“Anytime, Anywhere, Anything”的目标,即要求数据在任意时间、任意地点实现任意数据访问。存储产品不再是附属于服务器的辅助设备,而成为互联网中最主要的花费所在。信息技术正从以计算为核心的计算时代进入到以存储为核心的存储时代,网络化存储将成为未来存储市场的热点。甚至有人说:网络存储已成为继计算机浪潮和互联网浪潮之后的第三次浪潮。而目前的云存储服务是网络存储发展的必然趋势。
首先介绍云存储服务的意义与重要性,然后介绍国内外目前在可证明数据持有和恢复技术方面的研究现状,在第四部分讨论了云存储服务的安全性与可靠性需求,并研究云存储服务对可证明数据持有及恢复方案的特殊要求,最后进行总结。
2. 云存储服务
目前对云存储(Cloud Storage)的定义众说纷纭,还没有一个统一的定义,但是云存储的特点可概括为:
高德纳(Gartner)咨询公司预测到2012年,20%的公司将不再拥有自己的IT资产而转向云。在日立数据系统公司公布的《2010年十大存储投资方向》报告[4]中,云存储位列第二。该公司声称:“2010年,人们对云的认识将继续提升,私有云的构建者和公共云服务提供商也将持续关注弹性、可靠性、多租户和安全性等问题。我们预计,随着安全性、多租户和付费模式等关键功能的不断演进,未来用户将会越来越多地采用云存储。”存储市场具有无限的潜力,而云存储是信息存储的一种趋势,它可为用户带来如下好处:
云存储的主要特色是容量规模大,使用多少,支付多少,上不封顶,下不设限。有了云存储,永远也不会出现存储空间不足的情况。对存储需求不可预测、需要廉价存储阵列或低成本长期存档的用户来说,按需购买存储容量的云存储与一次性购买整套存储系统相比显然会带来更多的方便和效益。并且,云存储在为用户节省初始投资的同时也节约了社会资源与能源。
云存储具有众多优点,但是因为用户对云存储服务的安全性、可靠性及可用性等问题有所怀疑,所以目前还没有得到人们的广泛认可与使用。特别地,在微软弄丢了Sidekick用户的数据,SwissDisk的文件管理器出现崩溃故障,Amazon S3宕机频繁,曾经一次持续了8个小时,哪个用户还敢将数据托付给云存储服务呢?即便是著名品牌服务商也没有担保其云存储服务的安全性与可靠性。
引用美国前总统罗纳德·里根的一句名言,“要我相信你,请你先证明给我看(Trust but verify)”。所以在云存储中,让用户可以验证服务提供者正确地持有其数据,且如果检测发生错误时可以恢复其数据是一件很有意义的研究工作。
如果用户都信任云存储服务提供者,或者是服务提供者确实做到了安全可靠地存储用户的数据,那么云存储将具有无限的潜力,它在为用户带来方便和效益的同时,也为社会节约了大量的资源与能源。
3. 可证明数据持有与恢复技术
可证明数据持有和恢复技术是验证不可信的存储服务器是否正确地持有(保存)数据,避免存储服务提供者删除、篡改数据,并确保存储数据的可恢复性。目前的研究工作主要集中在可证明数据持有(Provable Data Possession, PDP)方案和可恢复证明(Proof Of Retrievability, POR)方案。PDP和POR方案的主要区别是:PDP方案可检测到存储数据是否完整,但无法确保数据可恢复性;POR方案保证了存储数据的可恢复性。通常,考核数据持有性证明方案优劣的指标有:
(1)计算复杂度,包括用户预处理文件、服务器生成证据及用户验证等开销;
(2)通信复杂性,指用户与服务器之间的数据传输量;
(3)存储需求,指用户与服务器需要的额外的存储空间;
(4)允许的数据更新,包括数据修改、插入、添加、删除;如果不支持更新,就只能用于静态数据,一旦存储就不再改变,比如归档存储;
(5)允许验证的次数,是否支持公开验证;
(6)检测到错误后是否可恢复,比如是否使用纠删码/纠错码等;
(7)安全性证明,确保方案的安全性;
(8)是否需要访问数据块以及需要访问多少数据块等。
下面将根据评价指标综述PDP方案和POR方案及其相关工作在国内外的研究现状。
3.1 PDP方案
文献[5]最早提出远程数据的完整性检查,使用基于RSA的Hash函数对整个文件计算Hash值。其原理为:令N为RSA模数,F为代表文件的大整数,g∈ZN*,检查者保存a = gF mod N;在挑战中,检查者生成任意元素r并发送gr到服务器,服务器返回s = (gr)F mod N,检查者计算ar,并验证等式s = ar mod N是否成立。因为该方法基于公钥密码技术,所以方案的计算开销很大;特别当存储文件大的时候,该方案的计算开销更大。文献[6]的原理与此相同,但其目的是阻止数据传输中的欺骗。
约翰·霍普金斯大学(Johns Hopkins University)的Ateniese等人在这方面做了一些研究工作,他们在文献[7]中第一次正式定义PDP方案,文中提出的两个PDP方案都是使用同态可验证标签(Homomorphic Verifiable Tags),用户为每个数据块生成一个Tag,将此Tag连同数据存放在服务器上。验证时,用户随机选择一些块向服务器发出挑战,要求服务器返回持有这些块的证据。服务器利用请求块及相应的标签生成持有证据,因为同态性,多个文件块的标签可以聚合成一个值,因此极大地节省了响应带宽。用户通过验证响应信息确认数据拥有,而不需要检索数据。提出的方案只需要用户维护常量的元数据信息,服务器的开销也近似为一个常量,挑战应答只要1Kbit左右,实验表明方案的性能受限于磁盘I/O而不是密码计算。文中作者第一次提出公开验证的方法。但是该方案在生成证据时使用基于RSA的模指运算,也没有考虑数据更新问题。并且该方案的多个服务器可以共谋(collusion attacks),所以不适用于多复本协议。
他们在文献[8]中提出在随机预言模型(Random Oracle Model)下使用任何具有同态属性的鉴定协议(Identification Protocol)构造公钥同态线性认证器(Homomorphic Linear Authenticator,HLA)的通用机制,并表明怎样将任何公钥HLA转化为公开可验证的存储证明方案(Proofs of storage, PoS),使通信复杂度与文件长度无关,并且支持无限次验证。但是该方案也是基于公钥密码技术,所以计算开销比较大。在文献[9]中,他们提出基于对称密码技术构造PDP方案。该方案在初始化的时候,由用户设定要挑战的次数和内容,将响应作为元数据存放在用户端,因此,更新次数和挑战次数都是有限的。而且只支持append-类型的插入,也不支持公开验证。同时,他们所在的研究小组第一次提出多复本PDP(multiple-replica PDP, MR-PDP)方案[10],允许用户通过挑战应答协议验证服务器存储文件t个复本:(1)每个复本是可用的;(2)使用t倍的存储空间存储数据的t个复本。MR-PDP扩展了文献[7]的单拷贝的情况,还可以增加新的复本,而不需要对文件进行预处理。该方案首先将数据加密,然后将加密数据与t个不同的随机掩码异或,当数据量大时会带来较大的计算开销,而且每个服务器要分别响应挑战,其开销也很大。该方案仍然基于RSA,也没有考虑数据更新问题。
清华大学的舒继武教授等人提出的数据持有性检查(data possession checking,DPC)[11]是国内第一篇关于数据持有性证明的论文。方案的基本思想是在一次挑战中,检查者指定文件中c个随机位置的数据块和一个密钥k2,服务器根据这些数据块和密钥k2由单向Hash函数h(·)计算出一个Hash值,并和一个与之对应的校验块一起返回给检查者,检查者检查Hash值和校验块是否匹配以确定应答是否有效。为了避免检查者为每个挑战记住c个随机位置和密钥,每次挑战的位置由伪随机置换g(·)根据一个密钥k1生成,并且第j次挑战的k1和k2可由第j-1次挑战的k1和k2得到,这样检查者只需为每个文件记住两个密钥即可。同时提出一个基于校验块循环队列的挑战更新机制,通过更新挑战允许动态增加检查者可发起的有效挑战的次数。分析表明检查者端的存储开销和检查者和服务器间的通信开销均为常数量级.测试结果表明一次置信度为99.4%的持有性检查的计算开销为1.8ms,和磁盘I/O开销相比可以忽略不计。方案通过避免使用公钥密码系统,将文件预处理的计算开销降低了3个数量级。但是他们没有提供安全性证明。
布朗大学(Brown University)的Erway等人提出两种动态数据持有性证明方案(Dynamic PDP, DPDP)[12]实现数据更新。一种使用基于等级的鉴别跳表(Rank-based authenticated skip lists),一种基于RSA树结构。他们的主要工作是实现动态性,即实现插入操作。整个方案仍然是基于RSA的模指运算。
文献[13]利用基于RSA的Hash函数的同态性,可以在初始化时间开销与用户的存储开销间进行权衡,该方案也是基于RSA,用户和存储服务器都有模指运算,计算开销太大。文献[14]提出利用同态Hash构建同态标签实现无限次数据持有性验证,其缺点在于没有考虑数据的动态性。文献[15]提出利用代数签名实现数据持有性验证,该方案简单高效,其基本方案只支持有限次数据验证,作者提出一种挑战更新方案。文献[16]提出一种高效的数据持有性证明,作者还提出一种基于RSA的挑战更新机制,但它们的缺点仍然在于没有考虑数据的动态性。
3.2 POR方案
RSA实验室的Juels和EMC公司的Kaliski第一次提出POR的概念[17],并提出基于“哨兵”(sentinel)的POR方案。其基本思想是首先将文件加密并使用纠错码编码,在编码后的文件中随机插入和文件数据不可区分的“哨兵”;检查者在挑战时要求服务器返回在这些随机位置的“哨兵”。他们证明只要服务器以大于一定值的概率作出有效应答,则文件是可恢复的。因为每挑战一次就消耗一个岗哨,并且没有挑战更新机制,因此只能进行有限次的挑战。因为编码及增加的“哨兵”导致文件的膨胀率达到15%。
加州大学圣地亚哥分校的Shacham和德克萨斯大学奥斯汀分校的Waters在文献[18]中提出的两个方案也是使用同态标签:一个方案基于伪随机函数,不支持公开验证;另一个方案基于BLS签名[19],支持公开验证。他们使用纠删码编码,但是没有考虑数据更新问题。
在文献[20]中,Dodis等人第一次提出POR码,并对其进行形式化及理论分析工作,给出了几个将POR码转换为POR方案的方法。他们提出在安全性与其它参数(如使用次数、挑战位置和服务器存储开销等)之间进行权衡的方案,但文中没有特别考虑通信开销及计算开销,也没有考虑数据更新问题。
RSA实验室的Bowers等人在文献[23]中提出的HAIL方案在多个存储服务提供者之间作数据副本或冗余,然后使用POR方案检测数据是否被破坏。当检测到某一服务提供者的数据被破坏时,可以利用其它服务器的数据进行恢复。作者提出将MAC码嵌入奇偶校验块中。首先HAIL使用分散码(dispersal code)将文件块分散到不同服务器上,因为MAC和奇偶校验块都可以基于UHFs (universal hash functions),因此就可能创建一个块同时是MAC和奇偶校验块,基于这个思想,作者构造保护完整性的纠错码IP-ECC,结合PRFs, ECCs及UHFs,实现纠错码的同时也是一种抵抗破坏的MAC码。文中对攻击模型有一个重要的约束条件:在一个给定的时间段,只能控制n个服务器中的b个,这样的一个时间段叫做epoch,那么过了n/b个epoch,数据可能都被破坏。HAIL方案保护静态数据的完整性,不能进行数据更新,也不能进行公开验证。
Curtmola等人集成前向纠错码(forward errorcorrecting codes,FEC)到PDP方案中,他们考虑不同的FEC编码有不同的性能、灵活性、纠错码效率和数据输出格式等.他们认为RS编码效率太低,所以将原始文件交换位置,从中选择一部分进行RS编码,从而提高编码效率;而且攻击者不知道冗余码是从哪些块计算得到的,可以提高安全性。
3.3其它方案
圣塔克莱拉大学(Santa Clara University)的Schwarz和加州大学圣克鲁兹分校(UCSC)的Miller在文献[24]中提出使用线性纠删码将数据编码,使用代数签名(algebraic signature)对块计算指纹。因为代数签名具同态属性,而且ECC是线性码,所以只要在相同的域上计算签名和奇偶校验,就可以使用数据的签名计算得到唯一的奇偶校验的代数签名。他们考虑的是P2P的环境下,将数据编码后分条存放在Internet上的普通机器上,他们没有给出方案的安全性证明。
HP实验室的Lillibridge等人在文献[25]中提出利用Internet的普通机器实现P2P备份系统。每个计算机有一个伙伴集,并且由一个简单的中心服务器来寻找伙伴。每个计算机周期地向中心服务器更新它的身份及需要的伙伴,中心服务器向它提供侯选伙伴集,该计算机再联系这些伙伴。为保证机密性,数据发送给伙伴机前使用对称密码技术加密,并且使用Reed-Solomon纠错码在伙伴机器间进行冗余纠错。数据拥有者可以向伙伴机器发起挑战,判断该伙伴是否完整保存数据,类似于PDP方案,验证时使用MAC码,额外的存储开销比较大。
HP实验室的Shah等人在文献[26]中提出了基于数据委托的方案。基于加密文件的MAC,第三方审计者通过挑战应答验证存储服务提供者持有一个加密的文件。因为挑战是预计算的,只能进行有限次的验证,元数据也随挑战次数线性增长;并且方案只能用于加密的文件,要求审计者维护长期的状态信息。在文献[27]中他们提出了具有隐私保护特性的方案,即不向第三方泄露任何信息。该方案也只能用于加密的文件,也要对整个文件计算MAC以及使用MAC验证数据持有性,有较大的计算和存储开销,且没有考虑数据更新问题及相关数据恢复技术。
布朗大学(Brown University)的Heitzmann等人在文献[28]中提出验证服务器响应的数据与用户执行的更新是否一致。该方案不同于PDP方案,其目标不在于检测到数据破坏,而是验证服务器响应的数据与Client执行的更新一致,因此,响应数据只被用于验证完整性,并且只在请求文件的时候才执行。方案使用鉴别跳表维护认证信息,支持简单快速的更新。他们实现了一个在Amazon S3上的原型系统,用户只需存放一个Hash值,存储开销为O(1),服务器的计算开销是O(log(n))。
Sebe等人在文献[29]中提出的方案基于Diffie-Hellman问题,要求用户为每个块存放N位RSA模位数,因此其存储开销随块数线性增长,并且协议要求服务器访问整个文件。
新加坡国立大学(National University of Singapore)的Chang和Xu在文献[30]中提出Remote Integrity Check (RIC),RIC方案结合文献[6]中基于RSA的方案和文献[31]中基于ECC的鉴定器,它不是POR系统,但是所有在RIC下证明安全的方案也可用于POR系统。RIC的目标在于只需要验证者存放少量的额外信息就可以定期地检测远程服务是否保存了一个大文件。但是他们的方案也继承了文献[6]和[31]中方案的缺陷,基于公钥密码技术,并且要求对整个文件取幂,计算开销很大。
在文献[32]中,Yamamoto等人也提出使用基于RSA的同态Hash函数进行数据持有性验证,同时作者还提出使用批验证提高效率。
伊利诺理工大学(Illinois Institute of Technology)的Wang和伍斯特理工学院(Worcester Polytechnic Institute)的Lou在文献[33]中第一次在云计算环境下考虑数据存储的安全性,他们提出的方案可以定位发生错误的服务器,并实现了部分数据更新操作,在接下来的工作[34]中,他们提出结合基于BLS[19]的同态鉴别器和MHT,支持公开验证和数据更新。在文献[35]中,他们考虑的是引入一个第三方的审计者,结合随机掩码技术实现隐私保护,不向第三方审计者泄露信息。但是他们的数据持有性证明方案都是基于公钥密码技术,且没有考虑相关数据恢复技术。
3.4方案比较
根据方案的评价指标,一些方案的对比见表1,首先PDP方案一般不提供数据恢复技术,另外上述的各种方案或者基于公钥密码技术,所以计算开销很大,或者无数据更新方法,只能用于静态归档存储,或者挑战次数有限,不支持公开验证。评价指标如下:
表1 方案的各项指标比较
如果考虑数据可恢复性时,必然会增加用户和服务器的计算开销,那么为了公平,这里的计算开销只指发起挑战与响应的计算开销。而且不同的可恢复方案,其冗余度与纠错能力也有不同。总之,根据国内外研究现状可知,现有方案存在如下一些缺陷:
4. 云存储服务对方案的需求研究
云存储服务体系结构如图2所示,它是一种面向服务的体系结构,由用户与存储服务提供者组成。用户将数据存放在服务提供者的服务器上,然后定期或不定期地验证其数据是否仍然完整无误。
一般来说,对于云存储服务提供者,他可能会:
(1) 为了节约成本,丢弃不被访问或者访问较少的数据,或者将在线数据迁移到二级磁带等低速存储设备上;
(2) 掩盖由于管理失误、硬件故障或者受到攻击而引起的数据丢失事件;
(3) 篡改用户数据,或者泄漏用户数据;
(4) 不能达到声称的性能、可靠性,比如声称存放了t份复本,而事实上只有一份拷贝。
因此,对于用户来说,云存储服务安全性和可靠性主要集中在如下几个方面:
(1) 数据的机密性保障;
(2) 数据的完整性保护;
(3) 数据的可用性与可靠性保障。
数据的机密性可以通过加密实现,完整性通过对数据计算摘要。但是,如何让用户确信其数据仍然正确无误地存放在云存储服务提供者的存储设备上,我们称之为存储服务的数据持有性验证,这是一个亟待攻克的研究课题。此外,检测到数据受到破坏后,必须研究相应的恢复技术对数据进行恢复。因此,根据云存储服务的特点及其广泛的应用领域,云存储服务对可证明数据持有方案有以下几方面的需求:
(1) 云存储服务中高效且安全的数据持有性证明与恢复方案的设计。一方面要提高数据持有性证明方案的计算、通信、存储效率;一方面提高检测效率,以高概率和精度检测到错误并实现数据恢复。
(2) 支持更广泛使用环境的云存储技术研究。一方面可以使用任意联网的设备,如PDA、手机、无线电话、上网本等验证数据是否正确存放并且可用,即实现适用于无线网络环境的方案;因为无线设备的计算与存储能力非常有限,所以对方案设计的要求较高。一方面要适用于各类数据集,包括适用于海量数据集的方案。
(3) 有效地支持数据更新的云存储方案研究。数据更新操作主要包括数据修改、插入、添加、删除,动态数据更新对于存储服务是一项非常重要的特征,它将决定用户是否选择使用该服务。
(4) 提供服务质量保证的云存储方案研究。一方面提供不同质量的服务;一方面用户可以利用性能跟踪工具以及多复本协议等来评价服务提供者的质量,以达到服务器声称的性能及质量。比如,声称数据带宽为100KB/s,就可以达到100KB/s,如果声称是t份复本,则确实拥有t份复本。
(5) 针对不同类型云存储方案安全性证明方法的研究。因为云存储方案的设计大部分是采用了现代密码技术,所以其安全性证明可分为两种:基于标准模型与基于随机预言模型的安全性证明。但是,根据威胁模型及使用环境的不同,比如有些环境下存在一些动态的攻击者,那么安全性证明还要考虑到威胁的动态性。因此,不同类型的与储存方案需要有符合相应安全要求的安全性证明方法。
5. 结论
目前,因为安全性与可靠性问题,云存储服务还不为用户广泛接纳与采用。国内对云存储的研究工作还相当的缺乏,一旦云存储的安全性与可靠性得到保障,它将具有广泛而巨大的应用前景。本文综述了可证明数据持有及恢复技术在国内外的研究现状,根据一系列的评价指标对已有方案进行比较,指出目前方案存在的不足,从而明确应该改进的方向。然后考虑云存储服务的特殊需求,对可证明数据持有及恢复技术提出了一些新的要求,可以明确在云存储环境下可证明数据持有及恢复技术的研究方向。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:云存储服务中可证明数据持有及恢复技术研究
本文网址:http://www.toberp.com/html/consultation/1083972060.html