一种私有云的数据完整性验证方案
2019-09-10刘继光陈峰杨豪璞
刘继光 陈峰 杨豪璞
摘要:针对云计算平台的数据完整性问题,对云计算数据完整性验证的主要方法和第三方验证方案进行了简要介绍,在分析私有云的用户及其使用特点的基础上,提出了一种基于数据持有性证明方法的私有云数据完整性验证方案,并描述了方案验证的基本流程,方案以云计算平台服务的方式替代用户或第三方作为数据持有性证明的执行者,提高了私有云数据完整性验证的效率。
关键词:云计算;数据安全;完整性
中图分类号:TP393.1文献标志码:A文章编号:1008-1739(2019)02-66-3
0引言
随着云计算技术的发展,政府、企业及院校等社会各个行业都创建一些云计算平台,作为集约高效的信息基础设施来推进自身的信息化建设。按照部署模式划分,这些云计算平台均属于私有云,即云计算平台被某单一组织拥有或租用,且该基础设施只为该组织服务[1]。这些私有云通常部署于所属单位的内部网络中来降低病毒传播、非法访问和扫描攻击等外部网络威胁行为。但根据国际云安全组织CSA发布的云安全威胁研究报告,影响云计算平台数据安全的很多因素来自内部,特别是数据完整性问题,内部人员的操作失误就可能造成数据丢失或数据损坏,直接威胁到存储在云计算平台中的数据。
1数据完整性验证
数据完整性一般是指非授权实体无法篡改数据资源,侧重于数据在存储状态或传输过程中保持完全不变,通过校验的方式来实现对数据完整性的验证。云计算平台的数据完整性验证是基于用户对云计算平台不信任条件下的一种可证明的约束机制,是云计算平台对用户提出的数据完整性“挑战”给出可证明的“响应”。
1.1验证方法
目前云计算平台数据完整性验证的基本方法有数据持有性证明(Provable Data Possession,PDP)和数据可恢复性证明(Proofs of Retrievability,POR)[2-6]。
在数据持有性证明中,用户为了减少验证过程中文件下载和计算的资源消耗,预先将整个文件分割成若干块,并为每个分块分别生成关联性标签数据,这些关联标签数据和数据文件一起存储到云计算平台上。用户在必要时或不定期地通过“挑战-应答”的方式对云计算平台存储的数据文件进行完整性验证,云计算平台必须依据用户的挑战要求,利用存储的用户数据文件和关联标签计算并返回相应的应答,最后由用户根据应答判断云计算平台是否完整保存了数据文件。用户可以针对地性验证某个分块,或随机性验证某些分块是否具有完整性。
数据可恢复性证明与数据持有性证明相似,也是采用“挑战-应答”的方式来验证云计算平台存储的数据是否完整,不同之处在于其加入了纠错码机制。用户在向云计算平台存储之前,将数据文件进行了纠错编码,为用户数据出现错误时恢复原始数据提供一定保障。同时,用户在数据文件中随机嵌入了一些特殊数据块,被称为“哨兵”,用于监测一部分数据,用户通过随机挑选“哨兵”来验证这部分数据是否完整,是否可恢复。
1.2公开验证
云计算平台数据完整性的验证技术不断深化,在验证过程中引入了第三方验证者的概念,也称公开验证方案[6]。无论是数据持有性证明还是数据可恢复性证明的验证过程都需要用户的参加,是由用户在获取较少数据的情况下,通过知识证明协议和概率分析手段,以高置信概率判断数据存储的完整性,大量占用用户时间、计算内存及网络带宽等资源。公开验证方案则提出由用户与云计算平台之外可信任的第三方验证者对用户存储在云计算平台中的数据进行验证,并得出结论提供给用户。公开验证的流程关系如图1所示。
公开验证由用户、云计算平台及第三方验证者组成,基本流程是用户向云计算平台存储数据之前,预先处理生成数据文件的相关验证信息,如关联性标签数据,在将数据文件和验证信息存储到云计算平台的同时,也将这些验证信息和验证要求提交给第三方验证者。第三方验证者根据用户验证要求,采用适当的数据完整性验证方法向云计算平台验证用户的数据文件,之后将验证结果反馈给用户。如果数据完整性验证通过,用户在使用数据文件时,只需直接读取云计算平台存储的数据文件。
相比用户直接参与验证过程,公开验证能够大大减少用户工作量,并且第三方验证者可以同时为很多用户或同一用户的多个数据文件提供验证服务,提高了批量数据完整性验证的效率。此外,第三方验证者的角色具有中立性,還可以减少用户与云计算平台的争议性问题。
2验证方案
相对于公有云、混合云等其他部署模式,私有云部署在一个单位网络内部,拥有独立使用的基础设施,因此具有一定的先天优势,比如网络条件优良、云计算平台不易受外部流量侵袭及网络服务质量有保障等,同时内部数据得到有效隔离,减少了由于外部原因带来的数据安全威胁。但研究机构也提出,无论是公有云还是私有云,内部原因都是云计算平台数据完整性的重要威胁来源之一,因此有必要结合私有云的特点,针对性地研究数据完整性验证问题。
2.1私有云特点
从用户关系角度看,通常公有云中数据完整性验证的出发点是基于用户对云计算平台的不信任,验证的结果是为了给用户证明云计算平台是可信的,但在私有云中,用户与云计算平台同属于一个政府部门、公司或院校,二者之间的关系有着明显的特殊性。对于私有云计算平台来说,用户作为私有云所属各单位的人员,一方面当他们在使用私有云的业务数据时,具有普通用户的共同特点,另一方面当他们履行业务数据建设的职责,在向私有云存储数据时是作为私有云的数据保障成员,或者认为私有云是他们自身保存和管理数据的平台,是可以信任的平台。同时意味着业务数据汇总到私有云后,私有云必须确保自身是可信任的,因此用户数据完整性验证完全可以由私有云承担。
此外,云计算平台数据完整性验证的复杂度与用户的数据操作方式密切相关。用户对云计算平台存储的数据,既有读取的操作,也有修改写入的操作,因此通用云计算平台数据完整性验证需支持动态更新操作。但对于一些私有云来说,业务数据具有严格的管理流程,不能被轻易修改,无论是提交数据的用户还是使用数据的其他人员,意味着一些私有云计算平台的数据完整性验证以支持静态操作为主。
2.2验证方案
针对私有云的特点,借鉴公开验证方案的思路,提出一种基于PDP模型的私有云数据完整性验证方案。该方案的核心思想是基于用户对私有云的信任,将数据完整性验证工作纳入到云计算平台内部,在其內部设置一个专用的验证服务,作为实施用户数据完整性验证的实体,验证流程关系如图2所示。
该验证方案由用户和私有云计算平台组成,私有云计算平台提供了验证和数据存储2个服务。①验证服务作为专用服务,既承担了用户数据的接收和预处理工作,也承担了数据完整性验证的工作;②数据存储服务是基础服务,具体负责用户数据文件等信息的存储和管理,配合验证服务进行数据完整性验证,并为用户提供数据文件读取访问服务。
该方案在私有云计算平台内部设置验证服务,从地位上看,验证服务起到了第三方验证者的作用,但由于私有云计算平台与用户是可信任关系,无需第三方提供数据完整性验证结果,因此可将第三方整合到私有云计算平台内部,放置到数据存储的前端对数据文件进行预处理并保存验证信息,同时可以不受人为因素干扰,完成对用户数据文件周期性的完整性验证。
3验证流程
验证过程基于PDP方法,分为准备阶段和验证阶段。不同于其他验证方案中由用户完成的准备阶段,该方案的准备阶段主要由私有云计算平台的验证服务完成。验证阶段由验证服务和数据存储服务配合完成,具体流程如下。
(1)准备阶段
由验证服务执行,验证服务首先接收用户上报的数据,运行预处理程序,对用户数据文件进行分块并为文件中的每一个数据块生成关联性标签,之后将数据文件和标签集合同时发送给数据存储服务,具体过程如下:
①标签生产准备:根据用户的数据文件和安全需要,确定验证过程相应的安全强度,主要是对应到公钥、私钥的取值范围。可利用RSA等秘钥算法,最终返回一个匹配的公钥、私钥对。
②文件分块准备:将用户数据文件划分为任意个数据文件块,数据文件块按次序编号。
③标签集合生成:使用之前生成的私钥,为用户数据文件划分得到的每个数据文件块生成具有同态性质的标签,最终得到相应的标签集合,以此作为验证的元数据;
④数据文件存储:将用户数据文件及其相应的标签集合提供给数据存储服务,由其保存在云计算平台中。
(2)验证阶段
验证阶段采用“挑战-响应”模式,验证服务作为“挑战”方提出挑战请求,而数据存储服务作为“响应”方提供相应的证据,验证服务得出最后的结论,具体过程如下:
①挑战请求生成:根据用户需要验证的数据块规模,依据数据块文件总数和随机指定的验证文件块数量,验证服务随机产生需要验证的数据文件块序号集,并为每个指定数据文件块产生一个随机组合系数,将数据文件块序号集及其组合系数结果作为挑战请求,发送给数据存储服务。
②响应证据生成:数据存储服务根据云计算平台存储的数据文件、标签集合及接收到的挑战请求,从数据文件和标签集合中读取指定的数据文件块信息,并通过计算得到数据完整性证据,即数据文件块和标签的同态聚合结果,执行过程中使用用户的公钥信息,数据存储服务将完整性证据作为响应发回给验证服务。
③验证结果得出:验证服务利用发出的挑战请求和收到的完整性证据,进行标签计算,并对比判断证据的正确性,从而确定验证成功或失败。如果验证失败会向云计算平台告警,并向用户发出安全提醒。
4结束语
此私有云数据完整性验证方案简化了用户所做的工作,有效解决了由于用户开展数据完整性验证带来的网络带宽等资源消耗。同时,由私有云计算平台统一调度验证服务与数据存储服务来实施数据完整性验证,可以有效利用私有云计算平台的空闲时段和空闲资源,有效提高用户数据完整性验证效率和云计算平台资源利用率。
参考文献
[1]周洪波.云计算:技术、应用、标准和商业模式[M].北京:电子工业出版社,2011.
[2]张玉清,王晓菲,刘雪峰,等.云计算环境安全综述[J].软件学报,2016,27(6):1328-1348.
[3]俞能海,郝卓,徐甲甲,等.云安全研究进展综述[J].电子学报, 2013,41(2):371-381.
[4]冯朝胜,秦志光,袁丁.云数据安全存储技术[J].计算机学报, 2015,38(1):150-163..
[5]黄勤龙,杨义先.云计算数据安全[M].北京:邮电大学出版社, 2018.
[6]陈龙,肖敏,罗文俊,等.云计算数据安全[M].北京:科学出版社,2016.