云计算环境中静态数据可信存储技术的测试研究*
2015-01-15彭月英
苗 丽,彭月英
(1.广西经贸职业技术学院,广西 南宁 530021;2.广西师范学院,广西 南宁 530023)
0 引言
在云计算模式下,静态数据以存储为主要目的,用户只需将数据和应用进行托管.云计算大规模、高可扩展性及按需服务等特点,与传统IT技术相比,都有着明显的优势.但是自云计算诞生以来,发生的很多安全事件让云用户对云存储产生了很多的不信任.由于这种数据外包的服务使用户失去了对数据的控制,对用户而言,托管至云端的数据一般不再保存数据副本,这对数据的安全存储来说无疑是一个隐患.毕竟云服务商的可信性不可评估:首先,存在不可预知的云服务器机械故障或管理失责;其次,云服务商若发生数据破坏,会尽量隐瞒,是半可信的;再次,即使用户追究云服务商的责任,由于涉及商业机密,调查细节往往难以实现[1].那么如何建立用户对云端静态数据存储的信任,促成数据合法并安全的使用,数据可信存储便成了需要解决的关键问题.
1 国内外研究现状
1.1 研究领域分析
云计算采用虚拟化技术,虚拟软件的安全、虚拟服务器和客户端的安全均是研发人员所面临的挑战,云安全方面的研究主要集中在三个方面:数据的保密性,查询隐私保护和数据的完整性.而其中用户数据完整性主要是指存储在云端的数据有没有被随意篡改、删除或者伪造,数据的完整性是数据安全中最基本的安全要求,现阶段数据完整性保护的研究领域主要集中在外包数据库、数据发布、远程存储以及云存储相关领域.鉴于云服务商的半可信性特点,用户必须定期对数据进行测试,尤其是对于长时间没有被访问的数据,当用户访问时才发现文件被篡改或者丢失,就为时已晚.对用户来说,将数据存储在云端,希望保证数据的完整状态,而且当数据被破坏时,希望知道并且可以定位出哪台数据服务器有问题,从而追究云服务商的责任,进而最大程度的进行数据补救.
1.2 测试方法分析
云计算中对数据完整性测试可以分为两个方面:数据拥有者和非数据拥有者对数据的完整性测试.数据拥有者是指个人或企业,非数据拥有者一般是第三方.已有的完整性测试方案有:
1)PDP(Provable Data Possression).
该方案是测试远程数据的完整性方案,可以检测到外包数据中大于某个比例的数据破坏.用户通过对服务器发送挑战值进行数据测试,服务器收到挑战之后,随时抽样生成概率性的测试结果,最终反馈给用户.
2)POR(Proof of Retrievability).
该方案是可证明性数据恢复方案,事先在数据文件上植入一些数据块,用来检测数据文件是否被篡改,在随机抽样生成的概率性结果的基础上,再结合纠错码,最终对被破坏的数据进行一定程度的修复.
3)基于哈希树验证结构的方法.
哈希完整验证方法需要用户存储所有数据文件用来计算哈希值,这本身与用户使用云存储的目的相违背,而且测试一次都需要下载整个文件,通信开销较大.所以,基于哈希计算的完整性测试不适用于云计算环境.
4)副本修复策略.
副本修复策略是系统为对象创建副本后,系统试图在整个过程中修复维护对象的副本.有两种不同的修复策略:一种是主动修复策略,检测到任何一份备份“死去”就立刻创建新的副本;另一种是基于阈值的修复策略,只有当备份数量小于某些阈值才修复,如Total Re-call[2].
2 整改思路
云计算中静态数据可信存储的关键在于数据的完整性,包括租户与云服务器之间传输数据时的数据完整性和已在云端保存的数据的完整性.针对云服务商的信誉和技术,用户和云服务商之间需要形成一定的测试规则.对用户而言,希望能够及时了解云端数据的完整性状态,当数据出现不完整信息的反馈时,用户能够及时确定是哪一台服务器上的数据,并且希望能够对数据进行较高比例的修复.笔者致力于设计更为有效的完整性测试算法,利用某种形式的挑战-应答协议[1],用户可以及时了解数据的完整性情况,还能够在部分数据出现损坏时,仅用少量数据便能够进行最大程度的修复[3],此设计还巧妙的引入第三方机制,有效地防止云服务商对数据破坏的隐瞒,从而进一步达到数据可信存储的目标.
3 支持公开验证和数据恢复的数据完整性测试
3.1 完整性测试方案基本架构
数据可信存储的架构包含三类实体:租户、第三方服务器和云端服务器(如图1所示).租户端即将大量数据存储在云端的租户,也是完整性测试方案的实施者;第三方是租户和服务商进行通信的一个可信的媒介,能够对用户进行身份认证,并且可以根据用户发出的响应值对数据完整性进行测试,并将测试结果返回给租户;云端存储服务器用来存储用户的数据[4].
图1 完整性测试方案架构Fig.1Integrity verification solution architecture
3.2 数据完整性测试过程
基于可证明性测试方案和数字签名的启发,笔者提出的完整性测试方案采用多副本存储,在整个完整性测试过程中,包括3个初始化函数,3个完整性测试函数和1个数据修复函数.假设用F表示租户要保存在云端服务器上的文件.
1)密钥生成函数[1]:Setup(π)→(Pk,Sk),该函数由租户设置,输入值为安全参数π,生成租户的公开密钥Pk和秘密密钥Sk,Sk由租户自己保存,Pk被公开.
2)副 本 生 成 算 法[6]:Duplicate (F,Sk,s,n,m)→ (F1,F2,…,Fs).租户在客户端采用副本生成算法对源数据进行加密,生成s个加密副本,再将加密副本划分成n个数据块,每个数据块划分为m个子块.加密密钥Sk只有1个,所以要想得到s个不同的副本,可以将副本序号与文件进行连接,然后采用AES等,诸如此类具有强混淆能力的算法进行加密.
综上,租户如果需要解密从云端服务器获得的数据,那么只需要保存一个Sk就能可以做到,在一定程度上保证了数据不被非法用户使用,也为后期的数据恢复做好准备.由此得到,每个副本又被分解为:
3)测试码生成函数:Key(Pk,Sk,F)→ Key,该函数由租户设置,以Pk,Sk,F为输入,输出为对文件F的一个测试码Key.租户将Key公开为面向第三方的数据完整性公开测试.
4)挑战函数:Chal(X)→Chal:该函数在租户端执行,输入为随机函数X,输出值为挑战值Chal,请求第三方开展对文件F的完整性证明.
5) 响 应 函 数:Response(Pk,F,Chal) →Ture/Res,该函数由第三方执行,以公开密钥Pk、F和挑战值为输入,如果测试通过,返回正确信息给租户,如果测试没通过,则以Pk和F1…Fs数据分块为输入,将输出响应值Res发送至租户端,由租户确定哪个数据分块出错.
6)测试函数[1]:Verify(Res,Key)→ Ture/False,该函数在租户端执行,输入值为响应值Res和测试码Key,输出为对响应Res的测试结果.若结果为True,则表明第i个数据分块Fi的完整性测试通过,基于文献[7]提出的SESS秘密共享方案的性质,证明该文件分块没有问题;当测试结果为False时,则说明测试的第i(1≤i≤s)个数据块发生了损坏.这时可以利用文件F的冗余性,如果测试结果为False,则执行n=n+1,以此来测试n与门限值ε的大小关系.
7)数据修复算法:Repair(Fj|1<j<n-k)→F/⊥:K为(1<k<n)的整数,该函数以测试通过的n-k个副本为输入,其中,ε是秘密共享方案的门限值,该算法执行基于阈值的懒惰的修复策略[8],这种策略只有当样本数量小于某些阈值时,才尝试从云存储服务器上恢复原始数据.如果恢复成功,则输出正确的数据文件,并进行文件的重新存储;如果恢复失败,则终止.
3.3 方案的正确性和合理性分析
该方案借助第三方对云端数据进行完整性测试,当测试出现数据错误时,借助副本恢复机制进行数据恢复.整个方案首先需要租户对公开密钥和私密密钥进行初始化,另外租户在存储文件的同时进行副本的创建,保证数据不被非法用户使用,也为后期的数据恢复做准备,测试及恢复过程是由租户向第三方发起测试挑战值开始的,第三方收到挑战之后进行云端数据的测试过程,如果测试通过,返回正确信息给租户,如果没有通过,则记录错误信息,并返回一系列响应值给租户,由租户确定出错的数据块,并确定损坏副本数量是否小于一定的阈值,如在阈值范围内,则执行数据恢复函数进行文件修复.
在该方案中,主要完成了两大任务:
一是由第三方完成数据的完整性测试,这样在发生数据完整性问题时,云服务商的责任不可推卸;
二是完成一定程度的数据恢复,当挑战次数低于一定的阈值ε就可以借助副本机制和秘密共享算法进行数据恢复,当然如果挑战次数大于阈值ε,则证明存储的数据到了比较严重的损坏程度,则无法进行修复.
4 结语
笔者提出的支持公开验证和数据恢复的数据完整性测试方案为用户提供了远程数据完整性证明和数据的可恢复性等安全机制,可以使用户及时知道云上数据的完整性状态,较以往的方法相比,很好地解决了目前云服务商半可信性等问题所带来的隐患,并且当数据损坏小于一定程度时,可以借助副本机制以较高概率修复数据,在一定程度上保证了云计算的可信存储.除此之外,如何保证用户数据不被云服务商非法泄露,防止被非授权第三方使用也是需要进一步研究的课题,而对于动态数据的实时性完整性测试也是下一步需要研究的课题.
[1]刘婷婷.面向云计算的数据安全保护关键技术研究[D].郑州:解放军信息工程大学,2013.
[2]BHAGWAN R,TATI K.Total recall:System support for automated availability management[C]∥NSDI.2004:337-350.
[3]贺元香,史宝明,张永.带消息恢复功能的基于身份的代理签名方案[J].计算机应用与软件,2014,31(4):313-315.
[4]李琳.云环境下多租户数据完整性保护机制研究[D].济南:山东大学,2014.
[5]游历.云端数据完整性测试和数据恢复机制研究[D].成都:电子科技大学,2013.
[6]李超零,陈越,谭鹏许,等.基于同态hash的数据多副本持有性证明方案[J].计算机应用研究,2013,30(1):266-268.
[7]Parakh A,Kak S.Space efficient secret sharing for implicit data security[J].Information Science s,2011,181(2):335-341.
[8]宫婧,王文君.大数据存储中的容错关键技术综述[J].南京邮电大学学报(自然科学版),2014,34(4):21-25.