基于可信第三方的云数据安全审计平台

作品介绍

随着互联网技术的发展和计算能力的提升,当今世界正在开启云计算的时代。由于爆炸式增长的数据量,越来越多的客户会将大量的数据存储在云服务器(CSP)上。云存储解决了用户存储空间有限和资源不足的问题,但它也为用户存储在CSP上的数据带来了新的威胁。将数据存储在CSP意味着用户失去了对其数据的直接控制权,这给存储在云中的数据带来了风险。为了自身的利益,CSP有可能欺骗云服务用户,如CSP出于经济利益的考虑,可能会丢弃访问频率较低的数据来节约存储空间,甚至隐瞒数据丢失事件。通常情况下,用户可以通过数据加密等手段来保护数据,但是在云存储的环境下,用户将文件上传至云服务器后,很可能会删除数据的本地副本,因此传统的保护方式无法保证用户远程数据的完整性。所以,云存储的最大问题之一是如何验证存储在不可信的云服务商上用户数据的完整性。。

作品原理

在传统的数据完整性验证中,可以通过预先计算文件的某些特征值,在验证的时候再次计算文件的特征值,与之前的计算结果进行对比,从而得出结果。但是在云存储的背景下,这样带来的开销是巨大的。因此,设计一种高效的数据完整性验证方案,使得用户可以在没有本地副本且无需下载全部文件副本的情况下,对存储在云端的数据进行完整性的验证,同时支持公开审计和动态数据审计,是当前阶段研究的重要目标。

根据验证者在审计方案中的角色不同,之前提出的方案可分为两种:私有审计和公开审计。私有审计是检查数据完整性的早期模型,顾名思义,私有审计就是验证数据完整性操作直接在数据所有者和服务器之间执行。Ateniese等人首先提出“可证明数据持有”(Provable data possession,PDP)方案来进行审计,来确保在不受信任的CSP上确实存储数据文件。但是他们提出的方案给数据隐私带来了风险。针对这一缺陷,Wang等设计了一个能够保护用户数据隐私的审计方案,即在生成证据时使用随机掩码来向第三方审计员来隐藏数据信息。Juels等人提出了“数据可恢复性证明”(Proof of retrievability, PoR)模型。PoR模型不仅可以检查存储在CSP上的数据完整性,并且使用纠错码来保证在数据部分被破坏的情况下,可以对数据进行恢复。但是,PoR是典型的私人审计方案,客户端可执行的查询次数也是一个固定值,并不能实现无限次的审计,并且引入预先计算的“哨兵”使得数据的动态更新变得极为困难。Shacham等人设计了一个改进的PoR方案,该方案由Boneh-Lynn-Shacham(BLS)签名构建,并具有[1]中定义的安全模型的安全性证明。然而,他们只考虑了静态的数据,并没有考虑数据的动态更新。如上所述,与私人审计相比,公开审计可以提供更可靠的验证结果,而且通过引入可信的第三方审计商(Third Parity Auditor, TPA)可以极大的降低用户的计算开销。因此,公开审计是目前研究的主要方向。其中有以下一些重要问题有待解决。

(1)隐私保护:数据隐私保护一直是云存储的重要问题。在公开审计中,这个问题的核心是如何在引入TPA的同时保护用户的隐私。尽管在上传之前对数据进行加密是解决云隐私保护问题的一种方案[1],但它不能完全解决验证过程中的数据泄漏[9]。因此,在云审计过程建立良好的隐私保护机制是一个重要课题。

(2)动态审计:众所周知,云存储系统不仅仅是存储的是静态数据,用户可能会经常需要更新数据。而在现有的方案中,使用数据签名来生成验证标签,当数据发生变化时,需要重新计算数据签名,所带来的开销是巨大的。因此,如何在审计过程高效的支持数据的动态操作是非常重要的[6],[7]。

(3)无限次审计及采样审计:在审计方案中,支持无限次的审计意味着审计方可以发起无限次的审计请求(称为“挑战”),同时应该实现采样审计,即在不需要恢复全部数据文件的情况下对数据完整性进行审计,从而减少相应的计算开销。

本文通过对数据完整性证明的研究现状进行分析发现,虽然现有的远程数据完整性证明已经比较丰富,但仍有许多应用问题需要解决,如效率问题,隐私问题等等。因此,本文重点研究了如何在多副本以及多用户的环境下,实现高效、安全的审计,具体的研究内容如下:

1. 分析当前云存储中数据完整性验证的现状与前景,确定了基于可信第三方审计模型中需要解决的关键问题,进一步分析了现有的数据可持有性证明(PDP)方案,确定了本文的研究方向。

2. 介绍数据完整性证明的相关知识,分析了现有的PDP模型,确定模型中各个角色的任务和身份,并将该模型作为后续工作的基本系统模型。并同时给出敌手模型,分析系统中各种可能会遭受的攻击方式。介绍相应的动态数据结构,以便在后续的方案中支持数据的动态操作。

3. 针对现有的完整性证明方案中无法很好地支持动态多副本数据的审计工作,在多副本数据的环境下,设计了相应的数据完整性证明方案和支持动态数据操作的方案。方案重点考虑减轻在审计过程和动态操作过程中用户端的通信开销、计算开销以及存储开销等。

4. 针对现有的完整性证明方案中无法很好地支持群组用户动态撤销的特点,本文提出了针对共享数据中支持用户撤销的公共审计方案。使用代理重签名的方式,在对组内用户进行撤销时,原有用户不需要对数据块进行重新签名。与传统方案相比,该方案保护了用户私钥的安全性。

5. 对本文提出的两个方案进行实验,建立相应的实验模型,并对方案的安全性给出证明,分析方案的通信开销和计算开销等。上述两种方案都通过使用动态索引表实现了对动态数据操作的支持。安全性分析和性能分析表明,所提出的方案是高效的,并且可以抵抗多种攻击。

在多用户的环境下,本文设计了相应的数据完整性证明方案和支持动态数据操作的方案。整个方案由7个算法组成: 密钥生成,签名生成,用户注册,挑战发起,证据生成,验证过程,用户撤销,其中用户执行密钥生成,签名生成,用户注册,TPA执行挑战发起,CSP执行证据生成与用户撤销,最后由TPA执行验证过程来返回最后的结果。其中用户签名为:

在TPA进行数据验证时的验证公式为:

此外,本文从计算开销,通信开销,存储开销等性能方面对所提出的方案进行分析,并与已有方案进行比较。从实验结果可知,本文的方案不仅可以实现多用户环境下的高效审计,还可以支持动态数据的操作以及用户成员的动态管理。同时,与现有的Panda方案相比,本文提出的方案进一步保护了用户的私钥安全,并可以在保护数据隐私的情况下进行公开审计。

在多副本的环境下,本文设计了相应的数据完整性证明方案。方案由6个算法组成: 密钥生成,副本生成,签名生成,发起挑战,证据生成,验证过程,其中用户执行密钥生成,副本生成,签名生成,TPA执行发起挑战,CSP执行证据生成,最后由TPA执行验证过程来返回最后的结果。其中用户签名为:

在TPA进行数据验证时的验证公式为:

此外,本文从计算开销,通信开销,存储开销对所提出的方案进行分析,并与现有的MR-PDP,2M-PDP方案进行比较。从实验结果可知,本文的方案不仅可以实现多副本的高效审计,而且比现有方案的开销更低。

同时,在本文提出的两种方案中,都使用了动态的数据结构——动态索引表来实现数据的动态操作,以较低的通信开销和计算开销让用户可以对数据进行插入,删除,更新的动态操作。并对相应的算法做了详细的描述。最后,对所提出支持动态数据的方案的安全性和性能进行了分析。实验结果均符合理论预期。

作品成果

服务器端:

TPA端:

客户端:

给学弟学妹的建议

大家好,我是2013级软件工程2班的祝锋。关于学习方面的建议,首先要向大家说的是,经验贴,建议贴特别多,不能听信一个人的主观意见,兼听则明,多看多听,并自己去探索适合自己的道路才是正解。因此下面我所有的建议都是我的个人意见,难免会主观一些,请见谅。2017年我参加了考研,考入了北京邮电大学,所以我就从考研的方面给大家一些不成熟的小建议。

从目前的形势来看,越来越多的人选择加入考研大军,就比如我们2013级的同学们,参加考研的人数和考上的人数都很多。那么究竟是考研还是工作。我认为这并不是高低问题,而是左右问题,考研和工作没有谁高谁低,工作和考研都有失败者和成功者。不需要去跟风考研或跟风工作,考虑好自己到底想要什么,不停地努力就好了。 时间轴上,我是从3月份开始复习的,算是比较早。但是如果你从6月或7月开始,也不要太担心,大部分人差不多都是这个时候进入状态。3-6月的复习重点都是在数学和英语上,考研考的几门数学虽然都学过,但当你拿起考研数学的书时,你才发现你自己并没有学过数学。因此数学的复习越早越好,这段时间的任务主要是过一遍知识,建立基本的知识体系,为下一阶段的复习打下基础。英语更是不必多说,这种无法突击的科目,从考研的第一天到考研前一天,每天都要不停地阅读,背单词。英语在这段时间以早期的阅读真题(97-04)为主,保证阅读中每个单词都要掌握。接下来就到了暑假,暑假是最关键的时间段,在这个时期要进行专业课的复习,北邮专业课考试的科目和408是相同的,科目多,知识点多。因此在专业课的复习中一定要建立良好的知识框架,每看到一个知识点,要准确定位到科目和章节。数学在暑假的任务就是刷题,不停地刷题。等到了9月份暑假结束时,就可以着手准备政治了,在9-11月的冲刺阶段,就是以做题为主,做套题,查漏补缺,有不会的赶紧翻回去看。12月的最后阶段就是翻看以前的错题就可以了。

在考研中最难的部分不是知识,而是你的心态,所以一定要调整好心态,咬牙坚持住,你一定可以的!!

 

 

 

 

祝锋

2013级

软件工程2班

Top