重要数据完整性分布式检测系统

2018-05-09 06:19,,
探测与控制学报 2018年2期
关键词:代理分布式加密

,, ,

(1.西安建筑科技大学,陕西 西安 710055;2.中国兵器工业第203研究所,陕西 西安 710065)

0 引言

数据拥有者将数据上传到云端后便在物理层面上放弃了数据的控制权,数据就有可能被窃取或被篡改。为了消除用户的顾虑,确保数据安全、可靠地存放在远程的云服务器中,研究者们提出了数据完整性检测的概念[1]。该方法在检测远程数据完整性中得到了广泛应用。

当前,为了满足不同的应用场景,研究者们提出了多种云存储数据检测方案[2-5]。按照检测方式的不同,数据完整性检测方案可分为公开检测方案、批量检测方案和支持隐私保护检测方案。

1)公开检测方案。在现实生活中,用户并不具备强大的计算能力。为了减轻用户的计算负担, Wang Q等人基于BLS(Boneh, B.Lynn, and H.Shacham)[6]签名技术和RSA 结构实现了动态数据的公共检测。Zhu等人提出了基于片段结构、随机抽样和index-hash表技术的检测方案,能够支持外包数据的动态操作和实时的异常检测[7]。ZhuoHao等人利用RSA加密算法,实现了公共检测,并支持数据动态更新[8]。

由于引入了第三方检测代理,数据的安全性受到了严重挑战,尤其是对于像科研机构的重要数据,它们既需要被共享,又必须保证数据的安全性。

2)支持隐私保护检测方案。Wang等人提出了一种使用同态令牌预计算来检测修改块的设计[9],利用擦除编码技术获取来自不同服务器的数据块。Wang BoYang首次实现了群组共享数据中用户身份隐私保护的公共检测方案[10],但此方案计算效率较差。研究者利用Merkle Hash树以及双线性对技术,实现了支持动态操作的PDP(Provable Data Possession)[11]。AnirudhaPratap Singh优化现有的第三方检测协议,使其能够抵抗恶意发起的替换、回放和伪造攻击,并使用改进的变色龙认证树支持细粒度的数据动态更新[12]。

在保护用户隐私的基础上,研究者们实现了数据完整性批量检测功能。

3)批量检测方案。Wang等人利用 BLS 的同态验证器和 Merkle Hash Tree(MHT),设计出支持公共验证和批量检测的机制[13],该机制还支持数据的动态更新。研究者基于RB232树,提出了一种改进的公平协议和支持动态数据可持有性证明方案,能够支持动态数据批量检测[14]。Yang设计了一个高效的、安全的动态检测协议[15],该协议支持多用户跨多个云服务器对数据进行动态检测和批量检测。He在Yang的基础上提出了将多个数据证据和数据标签聚合后检测,在隐私保护的基础上实现了批量检测[16]。

现有的支持隐私保护的批量检测方案均未考虑重要数据安全性的问题[17-18]。针对上述不足,本文提出了一种重要数据完整性分布式检测系统。

1 系统模型

1.1 系统检测流程

重要数据完整性分布式检测模型由三方构成。如图1所示,其中,用户为云资源的使用者。云存储服务提供商掌握着强大的资源,能够针对用户的不同需求实时、动态、高效地提供强大、性价比高的存储资源;由于用户使用资源有限,分布式检测代理可以以自身强大的检测能力对云存储中的重要数据完整性进行检测。

该系统主要由6个算法构成,其中KeyCreat算法用来生成加密密钥;TagCreate是认证标签生成算法;ChallRes是挑战信息生成算法;ProofCreate是数据持有性的证据生成算法;VerifyProof是证据检测算法;混合加权轮询调度算法用来动态分配检测任务到分布式检测代理节点。其中KeyCreat算法和TagCreate算法是在用户端完成,ChallRes算法和VerifyProof算法由检测代理执行,ProofCreate算法在云服务器中完成。

如图2所示,数据完整性云检测流程由3个阶段构成,共包含6个步骤。

阶段一:初始化阶段

步骤1 数据拥有者通过执行KeyCreat算法,输入安全参数k,生成密钥对 (skt,pkt) 和加密密钥skh,然后执行TagCreate算法,输入密钥skh和文件F生成数据块的签名集合S和文件摘要信息Minfo。然后将F和S上传给云服务提供商(Cloud Service Provider,CSP),摘要信息发送给主分布式检测代理节点。用户通过授权主分布式检测代理节点对远程数据进行完整性验证。

阶段二:证据生成阶段

步骤2 分布式检测代理节点通过执行ChallRes算法,输入Minfo,输出挑战集Ci。主检测代理节点将挑战信息集C={C1,C2,…,Ci}发给CSP。

步骤3 CSP执行ProofCreate算法,输入为F、S和C,输出为数据证据 DP和标签证据TP。CSP利用双线性对对DP和TP加密。然后将加密后的DP和TP聚合。

阶段三:确认检测阶段

步骤4 CSP将聚合后的证据发送给主检测代理。主检测代理将接收到的批量聚合证据通过混合加权轮询调度算法动态分配给分布式检测代理节点。

步骤5 分布式检测代理节点执行VerifyProof算法,验证数据的正确性,将验证的结果传递给主检测代理节点。

步骤6 最后由主检测代理节点与用户通信,返回检测结果。

1.2 AES-128加密流程

AES-128算法输入密钥被扩展成由44个32位字所组成的数组w[i],它的密码由10轮组成。如图3所示,每轮由4个不同的字作为该轮的轮密钥。每一轮由4个不同的阶段组成,包括字节代替、行移位、列混淆和轮密钥加[17]。

进行加密和解密操作时,算法由轮密钥加开始,接着执行9轮迭代运算,每轮都包含所有四个阶段的代替,接着是第10轮的3个阶段。加密和解密过程的最后一轮只包含3个阶段,这是由AES的特定结构决定的,也是密码算法可逆性要求的。

1.3 聚合检测

为了高效地对重要数据进行完整性检测,检测的方法必须高效。本文采用聚合检测将分布式检测代理节点的若干挑战信息构成集合发送至CSP,CSP通过执行ProofCreate算法生成证据后,合并证据并将聚合后的结果发送给分布式检测代理节点。聚合检测由初始化阶段和聚合检测阶段组成。

阶段一:初始化阶段

阶段二:聚合检测

为了节省通信开销将K个重要数据证据聚合成DPk。K个标签证据聚合成TPk。

将DPk和TPk合成证据Pk。

2 系统性能分析

2.1 安全性分析

1)在挑战信息中添加随机值,保证云存储服务器不能伪造证据,克服了重放攻击。

CSP希望使用已知或者过期的信息伪造重要数据持有性证据P,但是在本文方案中挑战信息中包含伴随随机值{i,vi}i∈I,每次产生的随机值是不同的,即使文件被挑战同样的重要数据块,随机值也不一样。因此,CSP不能依赖历史信息伪造重要数据持有性证据P,抵挡了恶意云存储服务器的伪造攻击。

2)在重要数据证据检测阶段,分布式检测代理节点不能获取重要数据拥有者的隐私信息。

为了保证用户隐私安全,本系统在证据生成阶段,基于双线性对技术对重要数据证据和标签证据进行加密,然后将它们聚合,最后把聚合后的结果传输给分布式检测代理。分布式检测代理节点使用聚合后的证据检验重要数据的正确性,无需解密。分布式检测代理不能通过聚合后的证据解析出原始重要数据,所以不能获取重要数据。因此,该系统保护了用户隐私。

3)本检测系统可以抵抗替换攻击。

如果CSP是不可信的,可能会用正确的重要数据块和标签对 (mk,tk)替换被挑战的重要数据块和标签对(ml,tl)。重要数据证据应为:

由于散列函数h具有防碰撞性,即h(wl)≠h(wk),所以检测结果不能成立。由此可知,如果CSP用正确的(mk,tk)替换被挑战的(ml,tl),检测的结果是无法通过的。因此,本系统能够抵抗替换攻击。

4) 通过执行AES加密算法对本地文件F进行加密,保证了重要数据的安全性。

AES-128加密算法的密码由10轮组成。攻击者平均需要进行2127次尝试,才能获取正确的密钥。相当1 000台中国超级计算机并行运行10亿年。

2.2 分布式检测性能分析

分布式检测代理结构由主检测代理和n个分布式检测代理节点构成,该结构具有可靠性高、计算能力强、负载均衡和避免单点失效的优势。

1) 避免检测堵塞。传统的重要数据完整性检测系统[19]采用最短队列任务优先分配算法。该分配算法是将待处理任务总是分配给待处理任务数最少的执行节点,但在真实的重要数据完整性检测环境中,每个分布式检测代理的性能和每个检测任务的检测时间常存在差异,这就容易导致检测任务负载不均衡。重要数据完整性分布式检测系统采用加权轮询算法对检测任务进行分配,当分布式检测代理出现负载不均衡时,采用加权最小连接数调度算法,对已分配到分布式检测代理的待检测任务执行任务动态取回重分配,避免了检测堵塞情况的发生,平衡了每个分布式检测代理的检测任务负载量。

2) 避免单点故障。传统的PDP方案采用单个代理节点对检测任务进行检测。单检测代理容易造成单点故障,降低了系统的可靠性,制约了性能的扩展。重要数据完整性分布式检测系统可以避免由于单节点失效而引起整个系统崩溃的危险,提高了检测系统的稳定性。

3) 计算开销。重要数据完整性分布式检测系统的主要计算开销集中在证据生成阶段和证据检测阶段。群中一次指数运算用E表示,M 是群中一次乘法运算,P是一次双线性对e运算。由于e的计算开销远高于其他运算,其计算次数决定着重要数据完整性检测系统的效率。在Yang[15]提出的重要数据完整性检测系统中,重要数据块内元素的数量s决定了P的次数。在计算重要数据证据时,需要聚合s个值,其计算开销是(Ks+K+1)×e,但是本系统采用聚合检测方案[16]的计算开销为(2K+1)×e,计算开销明显减小。

3 实验结果及分析

CPU:i5-4200 M 2.50 GHz,内存:4 GB;操作系统:Ubuntu 12.04.3;编程语言:C语言;编码的实现是基于PBC库。文件大小是4K,重要数据块总数n=100 000,其内部元素的数量s为50。

1) 批量检测效率对比。图5显示了批量审计不同数量检测任务所花检测时间。分布式检测代理节点数n=10。如图5所示,检测任务数量与检测时间呈正比,随着检测任务数量的增加,检测时间也同样增加。但本方法与文献[16]的方法比较,所用时间更少。如图所示,任务数为500时,He所花费时间约为346 s,本方法花费时间约为42 s,本方法检测效率是He的方法的8.24倍。由于本系统引用云计算思想,基于多个分布式检测代理并发执行检测任务,大大减少了执行时间。

2) 算法性能对比。图6反映的是不同调度算法的效率对比。检测任务调度算法直接影响着检测任务执行的整体响应时间。该实验选取10个分布式检测代理节点,分别对100、200、300、400、500个检测任务进行动态调度并检测,三种算法的性能对比如图6。图6所示,本系统选用加权最小连接调度算法对重要数据完整性检测任务进行动态调度。该算法相较传统的最短队列优先任务分配算法[19]和加权轮询算法具有较高的性价比,能很好地实现检测任务的动态分配,有效减少了检测任务整体响应时间。本方案采用的加权最小连接数调度算法充分考虑了现实场景中的问题,在对检测任务进行动态调度时,优先将检测任务分配给负载低的检测节点,从而提高了检测效率。

3) 分布式检测代理数对检测性能的影响。

图7展示了分布式检测代理节点个数对重要数据完整性分布式检测系统效率的影响。该实验以1 000个检测任务为样本,分别选取了5、10、15、20、25、30个分布式检测代理节点进行实验。

如图7所示,当分布式检测代理节点数量增加时, 1 000个检测任务的所用时间呈曲线逐渐减少。说明随着分布式检测代理节点数量的增加系统的性能不断提高,从而使检测重要数据完整性所用时间不断减少。从图中可以看出,检测时间与分布式检测代理节点数并不是呈简单的反比例线性关系,说明分布式检测代理节点的增加,系统性能增强,系统的额外的开销也增大。

4 结论

本文提出了重要数据完整性分布式检测系统,该系统引用云计算思想,基于多个分布式检测代理并发处理检测任务,采用加权最小连接调度算法对检测任务进行动态调度,避免了检测堵塞的情况,减少了检测任务整体响应时间。在重要数据完整性检测过程中通过执行AES加密算法对重要文件加密,保证了重要文件的安全性。利用双线性对性质将云服务器中证据加密,将加密后的重要数据证据和标签证据聚合,保护用户隐私不被泄露,实现了高效、安全的批量检测。理论分析和实验结果表明该系统在保证重要数据安全性的前提下,数据完整性检测效率是传统方法的8.24倍。

参考文献:

[1]秦志光,吴世坤,熊虎.云存储服务中重要数据完整性检测方案综述[J].信息网络安全,2014(7):1671-1122.

[2]DESWARTE Y, QUISQ J,SAIDANE J.A Remoteintegrity checking[J].Proceedings of IICIS′03,2004,13(9): 1-11.

[3]Wang C, Wang Q, Ren K, et al. Privacy-preserving public auditing for data storage security in cloud computing[J].IEEE INFOCOM,2010, 62(2):525-533.

[4]WAN Cong,SSM Chow,WANG Q,et al.Privacy-preserving public auditing for secure cloud storage computers[J].IEEE Transactions on Computers,2013,62(2):362-375.

[5]Liu C, Chen J, Yang L T, et al. Authorized public auditing of dynamic big data storage on cloud with efficient verifiable fine-grained updates[J]. IEEE Transactions on Parallel & Distributed Systems, 2014, 25(9):2234-2244.

[6]WANG Q,Wang C,Li J,et al.Enabling public verifiability and data dynamics for storage security in cloud computing[J].ComputerSecurity-ESORICS ,2009,22(5):355-370.

[7]YAN Zhu,WANG Huaixi,HU Zexing, et al.Dynamic audit services for integrity detection of outsourced storages in clouds[J].Proceedings of the 2011 ACM Symposium on Applied Computing,2011,79(6):1550-1557.

[8]ZHUO Hao,ZHONG Sheng,YU Nenghai.A privacy-preserving remote data integrity checking protocol with data dynamics and public verifiability[J]. IEEE Transactions on Knowledge and Data Engineering ,2011,23(9):1432-1437.

[9]WANG Cong,REN Kui,LOU WenJing, et al.Toward publicly auditable secure cloud data storage services[J].IEEENetwork,2010,24(4):19-24.

[10]WANG Boyang.Oruta:privacy-preserving public auditing for shared data in the cloud[J]. IEEE Transactions on Cloud Computing,2012,2(1):295-302.

[11]赵洋.一种代理远程重要数据完整性检测协议[J].电子科技大学学报,2016(1):81-85.

[12]Singh A P, Pasupuleti S K. Optimized public auditing and data dynamics for data storage security in cloud computing[J]. Procedia Computer Science, 2016, 93:751-759.

[13]Wang Q, Wang C, Li J, et al. Enabling public verifiability and data dynamics for storage security in cloud computing[C]//European Conference on Research in Computer Security,Springer-Verlag, 2009:355-370.

[14]REN Zhengwei, WANG Lina, et al.Improved fair and dynamic provable data possession supporting public detection[J].Wuhan University Journal of Natural Sciences.2013,18(4):348-354.

[15]YANG K,JIA X.An efficient and secure dynamic auditing protocol for data storage in cloud computing[J].IEEE Transactions on Parallel & Distributed Systems,2013,24(9):1717-1726.

[16]何凯.云存储中重要数据完整性的聚合盲检测系统[J]. 通信学报,2015,36(10):119-132.

[17]刘诚毅,桂延宁,杨燕,等.两种算法相结合的基带数据流加密编解码方法[J].探测与控制学报,2011,33(5):56-58.

[18]梁小果,相明.基于分布式检测融合技术的水声信号检测系统[J].探测与控制学报,2001,23(2):25-30.

[19] 王惠峰,李战怀,张晓,等.支持多代理的云存储数据完整性检测系统[J].西北工业大学学报,2016,34(2):343-348.

猜你喜欢
代理分布式加密
多能互补分布式能源系统在数据中心的应用
分布式空战仿真系统设计
保护数据按需创建多种加密磁盘
电力安全防护加密装置
《汽车维修技师》诚招代理
浅析分布式发电对电力系统的影响
加密与解密
复仇代理乌龟君
分布式并联逆变器解耦电流下垂控制技术
108名特困生有了“代理妈妈”