一种面向用户的云存储数据完整性保护方法

文档序号:9564821阅读:872来源:国知局
一种面向用户的云存储数据完整性保护方法
【技术领域】
[0001] 本发明提出一种云存储环境下的动态数据完整性保护方法一 ECAS-FDPOR(Erasure Code and Algebraic Signatures-FDPOR),从用户角度对存储在云端 的动态数据进行完整性验证,当数据损坏时能够对受损数据进行一定程度的恢复。本发明 的技术领域涉及云存储系统,数据完整性,纠删码,代数签名。
【背景技术】
[0002] 互联网技术的不断发展与计算机技术的使用开启了云存储服务的新时代。当用户 使用了云存储服务之后,数据的存储、组织、管理以及可靠性、可用性保证均由云提供商负 责,使得用户不必构建自己的数据中心,降低了用户的成本。然而云存储技术给人们带来 极大存储便利的同时,也带来了一定的安全问题。其中数据完整性是用户面临的重大安全 性挑战之一。由于数据的位置和组织方式对用户是透明的,在云平台和云服务提供商不完 全可信的云存储环境中,存放在云端服务器上的数据极有可能被恶意攻击者删除、篡改、污 染,或者由于云存储服务器的损坏、崩溃造成存储数据的丢失。
[0003] 用户希望保存在云存储服务器端的数据犹如保存在本地一样,能确保数据不被破 坏或丢失,在任何时间用户都能够访问到数据。但现有的云存储系统普遍缺少对数据进行 有效的数据完整性保护,用户无法得知存储在云端的数据是否完整,一旦数据损坏或丢失, 那么损失最大的就是云存储用户。因此有必要从用户角度研究和设计完整性保护方案,由 用户主动对其存储在云端的数据进行完整性进行验证,一旦发现数据完整性遭到破坏,能 够马上对受损数据进行恢复,确保用户数据的完整性。完整性保护方案尽管不能完全避免 数据被破坏的风险,但可以在一定程度上降低用户因数据受损而造成的损失。
[0004] 传统的完整性验证方法一般利用 HMAC(Hash-based Message Authentication Code)为文件进行哈希运算产生一个消息摘要对数据继续完整性验证,但这种方法须将数 据下载到用户本地,这种方式不仅消耗大量的网络带宽,也会耗费用户很多的时间与精力, 显然不是很好的方法。云存储环境中的完整性验证与传统的完整性验证方法不同,当用户 使用云服务器提供的存储服务时,因为用户本地并不保存数据副本,因此服务器上的数据 就尤为重要。同时,很多传统的完整性保护方案针对单一服务器进行验证,当扩展到云存储 环境中,会出现多个服务器合谋的可能,因此不能确保传统完整性验证方法在云存储环境 中的安全性。
[0005] 针对应用场景,云存储完整性保护可以分成两类:静态数据的完整性保护和动态 数据的完整性保护。前者适用于用户存储在云存储上的数据一经写入便不会对数据进行动 态更新操作(包括插入、修改和删除)的场合,如档案、图书的存储等。然而,现在越来越多 的应用需求是用户对存储在云上的数据进行频繁插入、修改、删除等操作,在数据进行动态 更新时,要求数据动态更新带来的开销尽可能小,动态数据完整性保护方案由此被提出。在 云环境下不能将适用于静态数据的完整性验证方法直接运用在动态数据的环境里,因为一 旦更新数据,便需要对相应的检验标签或纠删码等进行重新计算,产生巨大的计算和通信 开销,除了数据更新带来的各种验证数据、校验数据变化以外,动态场景下还要考虑更为复 杂的安全风险,比如重放攻击等恶意攻击,因此很多适用于静态场景的完整性验证方法并 不适用动态场景。因此云存储环境下的动态数据完整保护性问题就变得更加具有挑战性。
[0006] 针对云存储环境下用户数据不在本地存储的特殊性,用户在不需要下载原始数据 的情况下,就能够对数据的完整性进行验证的方法,则能够很好的适用于云存储环境。目前 在这一领域也有了诸多研究。
[0007] PDP方案与POR方案是较早提出来的两篇远程完整性验证的文章,这两篇文章的 提出为以后的云存储完整性保护方法提供了很好的借鉴意义。Ateniese在2007年提出 TOP (Provable Data Possession,TOP)方案,方案中有客户端和服务器两个角色。客户端 可对存储在不可信的服务器上的文件进行完整性校验。由于校验时采用挑战应答协议,只 抽样检查了某些文件块,且他们的标签具有同态性可以相互叠加,客户端和服务器之间的 交互数据近似为一个常量,极大减少完整性验证网络开销,因此支持分布式系统中的大数 据集检测。校验时双方的计算量也较小,且允许进行无限次的校验。但方案在数据更新时 不能抵抗重放攻击,另外此方案是使用在单服务器的场景,若扩展到多服务器场景下,多个 服务器可以共谋。
[0008] Juels 等人在 2007 年第一次提出了 POR(Proofs of Retrievability)方案。POR 方案与PDP方案相比,可以对检测出来的受损数据进行恢复。POR方案使服务器能够向客户 提供数据完整性的证明,并能够通过纠错码技术对受损的数据进行恢复,这意味着客户可 以以很高的概率从服务器取回完整的原先所存放的数据,并且计算开销、通信开销、存储开 销都很小。由于该方案因为编码和标签块的插入,会使文件的膨胀率达到15%,也使得POR 只能用在加密的文件内容中,而且每校验一次文件的完整性就会消耗一批哨兵,所以POR 方案只能支持有限次的完整性校验。自从PDP与POR方案首次出现以来,这两种方案的思路 发展成了两类不同的完整性验证方法类别,前者可以检测数据不能够恢复数据,后者既可 以检测数据又可以恢复数据。随后有多种应用在云存储环境中的完整性保护方案被提出。
[0009] Schwarz等人提出了使用纠删码与代数签名结合进行数据完整性验证的 方案,对于纠删码的选择的限制并不严格,只要是基于异或的纠删码就可以,比如, Evenodd,X-code,代数RS码等等。使用到了同态的概念,代数签名的奇偶校验值等于奇偶 校验值的代数签名,由此可以利用纠删码的特性来进行一致性判断,从而知道数据完整性 是否遭到破坏。方案不用在用户端预先存储用于检验数据完整性的元数据,从而减小了元 数据泄露或丢失的风险,方案是依靠纠删码与代数签名做一致性验证,只能检测出来参与 验证的数据是一致的或不一致的,并不能错误的具体位置,另外方案只支持静态数据,一旦 文件更新了,所有的纠删码都要重新计算。
[0010] HAIL方案将POR模型比较完整地拓展到了云环境中,在POR的基础上对各个存储 节点再进行冗余编码来提高存储数据的抗破坏能力。POR可以验证文件是不是可恢复的,然 而作为一个对一台服务器进行验证文件可恢复性的测试工具,POR价值是有限的。如果该 文件的损坏是无法恢复的,用户也不再拥有这个文件的资源,那么检测出已损坏的文件并 没有很大帮助。如果文件以跨多个服务器的冗余形式储存。通过P0R,一个验证者(用户) 可以在单个服务器上测试文件的可用性。如果它检测到一个给定的服务器数据被破坏,它 可以联系其他服务器来恢复文件。方案是在存储节点之间进行数据一致性验证,并没有对 单个存储节点进行验证,所以当进行完整性验证时,发现数据损坏,并没有有效的方法来进 行具体的错误定位,只能使用蛮力法找,所以方案没有解决出错存储节点快速定位的问题。 方案保护静态数据的完整性,不能进行数据更新。
[0011] 2009 年的 IWQoS 会议上 Wang Cong 等提出 EDS2 (Ensuring Data Storage Security)方案,方案依赖于预先计算的挑战码和签名保证数据存储的正确性和实现差错 定位。此方法与前文我们提到的HAIL与代数签名的方案都是利用纠删码进行数据的一致 性检测,但此方法与另两种方法相比较的优点就是其可以使用在数据动态变化的场景中。 在对需要存储的数据进行纠删编码的同时,根据伪随机函数生成的值对各个数据块进行计 算,以获得与函数密钥相对应的签名信息。当进行云数据完整性检测的时候,用户验证是否 接收到的值仍然是由秘密矩阵P所决定的一个码字,如果这个等式成立,那么用户验证通 过;否则说明在被挑战的行中,存在文件分块损坏。一旦发现验证数据不一致,就可以利用 预先计算的签名来进一步决定数据错误的位置,这样可以快速进行错误数据的定位。方案 可以高效的支持数据修改、删除与追加操作,修改后的数据块看作是原来的数据加上更改 的数据。但是,该方案需要在客户端存放大量的事先计算好的检验值等元数据,存在一定 的安全隐患和不必要的存储开销,因为方案是基于预先计算挑战码和签名对数据完整性进 行验证,因此在这些预先计算过的挑战码和签名用完之后,就不能保证服务器端数据的完 整性了,故只能做有限次检测。方案可以高效的支持数据修改、删除与追加操作,但是不能 高效的支持数据插入操作,这是插入操作将导致以索引j为起始的所有分块向后移一个位 置。一个插入操作将影响到逻辑数据文件矩阵F当中的许多行,并将引起所有后续分块的 重新编号和挑战码以及对应签名的重新计算。
[0012] Zheng 等人提出的 FDPOR(Fair and dynamic proofs of retrievability)。方案 是对CPOR的改进,由于CPOR处理的是静态数据,当把CPOR用在动态数据上时是不安全的, 方案分析了为何CPOR在文件动态更新的场景下不安全,并提出了一种安全的解决方案。另 外方案是动态P0R,使用了 range-based2_3trees(rb23Tree for short)的数据结构来支 持动态更新的问题,如图1所示。图1中,将每一个数据分块的哈希值作为叶子节点组织起 来,目的是在数据动态更新时能进行路径验证以抵抗云存储服务器的重放攻击,并由于是 树形结构在更新时只会局部改变数据使得服务器端与用户端的计算开销减小同时增快索 引速度,这点在数据动态更新场景中尤为重要。作者还引入了一个新的属性叫做fairness, 这个特性是在方案支持了动态更新以后才出现的。方案首次提出Fairness,为了防止不诚 实用户操控诚实的服务提供者来修改数据。另外首次使得POR可以应用在数据更新的场景 中。方案存在的问题是在验证时需要对全部数据块数据进行哈希值计算并需存储验证标 签,导致对一个数据块的部分数据挑战也要计算全部数据的哈希值且保存验证标签占用了 不必要的存储开销的问题;在数据恢复方面方案将错误纠正码(ECC)应用在数据块内部的 粒度,虽然有一定恢复能力,但是恢复能力和恢复范围有待改进。
[0013] 纠删码技术被广泛应用于各种存储系统中,其主要是通过纠删码算法将原始的数 据进行编码得到冗余,并将数据和冗余一并存储起来,以达到
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1