APP下载

一种基于区块链的云存储数据完整性增强机制

2021-08-06印一聪

现代计算机 2021年18期
关键词:完整性校验数据中心

印一聪

(四川大学网络空间安全学院,成都610207)

0 引言

随着云计算与大数据技术的日趋成熟,越来越多的企业和组织将业务部署到云上,以获取更灵活的资源利用和扩展,从而更高效快速地部署业务,优化其运营成本。当用户选择使用云计算平台托管大量应用和数据时,相应地,云计算系统也就变为了云存储系统[1]。与此同时,用户对数据的重要性愈发重视,数据安全与可靠成为云用户在选用云服务时的重大考量之一[2]。云计算与大数据技术对社会的快速渗透,使得越来越多的用户参与到“云化”的大环境中。然而,“云”作为一种中心化的模式,给云用户带来了许多安全挑战,包括用户在使用云的过程中隐私、数据所有权方面的挑战等。而数据量的爆炸式增长,也让数据的使用方式变得灵活,数据的使用与分享越来越频繁,安全风险也逐步上升,数据完整性的保护也成为一个棘手的问题。云存储中的数据完整性,是指数据未遭到非授权的篡改或破坏,保证数据按数据所有者的意愿完整、真实地存在[3]。在云存储中,用户数据从本地存储到云端,特有的数据集中存储方式使得用户失去对数据的管理权。一方面,云存储数据中心可能遭到恶意攻击,用户存储在云中的数据可能受到恶意用户的篡改、破坏或删除,导致数据破坏、敏感数据丢失[4-7];另一方面,云服务提供商可能为了保护自身名声,刻意隐瞒意外的数据篡改、损坏[8-10],给用户带来严重的不良影响。

传统的云存储完整性保护技术包括:将云存储中的数据生成完整性证据,在需要对数据进行验证的时候又用同样的完整性证据生成方法生成数据副本的完整性证据并与初始的数据完整性证据进行对比;使用冗余多副本存储和纠删码技术进行错误恢复[11]。这些方法在完整性证据存放环境可信时可用,然而却没有考虑到数据完整性证据也被破坏的情况,也就是说,一旦数据完整性证据被破坏了,那么整个数据完整性也就无从谈起了。

区块链技术是从比特币中升华而来的技术,也是众多数字货币的核心底层技术。区块链技术将Hash函数、Merkle树、工作量证明(Proof of Work,PoW)等成熟技术进行重组,结合公钥密码体系、数字签名和零知识证明等密码学技术,创造出一种特殊的链式数据结构,带来去中心化、不可篡改等安全特性[12]。借助于区块链技术的“去中心化”、“不可删除”、“不可篡改”等特性,本文提出一种基于区块链技术的云存储数据完整性验证机制BEMDICS(Blockchain-based Enhancement Mechanism on Data Integrity for Cloud Storage,BEM⁃DICS),将云用户的数据完整性证据存放在区块链中,使得数据完整性证据不可篡改、不可删除,用户可以更安全地掌握数据。

1 系统模型和威胁分析

1.1 完整性系统模型

数据中心会存在多个云存储节点,出于对数据冗余性的考虑,各个节点之间可能存在相同的数据副本。在数据完整性保护方面,系统会生成文件校验信息以保护数据的完整性。系统会对每个数据副本都采用特定的摘要算法(如哈希算法)生成数据完整性证据并与数据副本一同存放。不同节点上相同副本的数据完整性证据也是一样的。

在该模式下数据完整性的校验过程如下:首先系统对存储到某节点的“数据i”做哈希运算生成对应的“完整性证据i”并将它们复制到冗余数据节点,在随后的数据使用过程中,使用同样的算法生成临时的新的“完整性证据i*”,通过对比“完整性证据i”与“完整性证据i*”是否相同来确定“数据i”是否损坏或被恶意篡改。

1.2 完整性威胁分析

在云存储中,如果只是某个节点上的数据出现意外损坏,则系统可以从云存储的其他存储节点复制该数据其它冗余副本来替代被破坏的数据,可以及时发现和修复问题。然而,除了意外损坏,对于不怀好意的黑客来说,通过在篡改文件的同时篡改摘要信息,并且在修改了单个节点的完整性证据之后通过调用系统的接口将其它存储节点上的数据副本及对于完整性证据覆盖,通过这种方式破坏了数据的完整性,其有效发现和修复就变得异常困难了。

例如:在云存储中某节点上,“数据a”已经被恶意用户修改成了“假数据a”,并且其对应的“完整性证据a”也被修改为了“假完整性证据a”,通过调用系统复制接口,其它数据节点上的冗余副本及其完整性证据也被同步修改,这个时候想要恢复数据a则变得非常困难,而究其原因,就是因为数据的完整性证据存放不够安全。

2 BEMDICS机制

为了保障云数据的完整性,依赖单独存放的完整性证据是远远不够的,必须使用分布式的独立完整性证据“数据库”,使得数据完整性保护得到进一步提升。

2.1 BEMDICS组成

BEMDICS模型由三个主体构成:(1)云用户,(2)云存储数据中心,(3)区块链网络。从逻辑上来看,区块链网络相当于一个专门的第三方数据库,用于存放云数据完整性证据。值得注意的是,区块链网络并非独立于用户与云存储数据中心,而是在物理上集成于数据中心的控制节点。对于云存储模式中的各个主体,包括云终端与数据中心的服务器节点在内,都是BEMDICS机制的构成部分。各用户、数据中心服务器节点都作为区块链网络的客户端,都通过区块链SDK与区块链网络交互,进行完整性证据上传和信息查询。区块链网络节点运行在以docker容器为载体的分布式网络中,数据中心的控制节点服务器充当了docker的载体,所有的交易认证、打包等操作都是由各个授权的区块链节点完成。所有的合法数据操作都被视为区块链申请,由区块链认证节点打包到区块链网络中。

2.2 BEMDICS流程

云系统中存在CA服务,用于身份验证和签名证书的发放,逻辑上主体的身份分为两种:普通客户端、矿工节点,矿工节点又分为背书节点、排序节点、确认节点等。BEMDICS机制具体工作流程如下:

(1)客户端向数据中心CA服务器发送身份验证请求,数据中心返回客户端有效签名信息Sign;

(2)客户端向数据中心发送请求Command,请求可以是上传数据或者校验数据,数据中心接收请求,根据请求类型与区块链网络交互;

(3)根据Command类型的不同,触发不同操作,如果是上传数据则触发数据上传操作,执行第4-6步,若是校验数据则触发数据下载操作,执行第7-10步;

(4)数据上传操作规定:CA服务器验证客户端身份Sign,并将身份验证结果返回客户端;

(5)数据中心从客户端发送的指令信息中提取完整性证据信息,并转换为交易信息Transaction,数据中心的排序节点将Transaction排序并构造区块Block;

(6)排序节点将Block同步至提交节点,提交节点验证Transaction合法性后将Block提交至区块链网络,同时调用云接口上传数据;

(7)数据下载操作规定:CA服务器验证客户端身份Sign,并将身份验证结果返回客户端;

(8)下载云数据,将计算好的待校验数据完整性证据构造交易Transaction'并发送至云端,云端将该信息提交至验证节点;

(9)验证节点根据Transaction'查找交易信息在区块链中所在的位置;

(10)根据区块中的Merkel树结构计算摘要信息是否匹配,并返回结果;

(11)返回相关结果。

3 实验与分析

通过实验对本文所提出的BEMDICS机制有效性进行测试,以验证BEMDICS机制是否能够对云存储数据完整性证据有效记录以及对数据完整性有效验证。

3.1 实验设置

本文区块链服务采用开源区块链平台Hyperledger Fabric 1.4,云存储平台采用Apache Hadoop分布式文件系统,基于虚拟机环境搭建一个3节点的云存储平台,并在控制节点Name Node上运行区块链平台Hyperledger Fabric。实验使用斯坦福大学的“Cars Da⁃taset”训练集中的前8000个文件充当云存储文件,并在初始阶段使用SHA-256算法计算并保存所有文件的完整性证据信息。实验采用8组对比实验,数据集规格分别为1000,2000,3000,4000,5000,6000,7000,8000个文件,客户端使用读写脚本对存储集群进行数据读写操作并验证完整性。

详细实验环境如下:操作系统为Windows 10家庭中文版64位,CPU为AMD Ryzen 7 4800H@2.9GHz,内存大小为16.00GB,硬盘大小为512GB固态硬盘,VM⁃ware版本为15.0,Hadoop版本为2.9.2,nodejs版本为v8.17.0,npm版本为6.13.4,JKD版本为1.8,docker版本为18.06.3-ce,Python版本为2.7.6。

3.2 有效性分析

为了验证BEMDICS机制的有效性,采用前后对比实验的方式来检验。首先使用批量处理工具将数据集中的后4000个文件进行篡改后与未更改的前4000个文件组合生成对比数据集,将原数据集与对比数据集先后进行集群读写操作。

定义1:若集群读写过程中数据完整性验证结果和跟初始完整性证据信息表对比相同,则定义此次验证为有效验证。

对比原生集群读写的有效验证数与集成BEM⁃DICS机制的集群读写有效验证数,取多次数据集验证结果计算平均验证有效率P,有效率由公式(1)计算。

其中v为有效验证数,t为总验证数,实验结果如表1所示。

表1 有效率实验结果

图形化展示如图1所示。

图1 验证有效率

从图1中可以发现,前4000个数据集文件中,云存储原生完整性验证机制(以下简称原生机制)与BE⁃MDICS机制均能对云存储数据完整性进行有效验证。而在后4000个文件的验证中,原生机制的验证有效率逐渐下降,而BEMDICS机制验证有效率为100%,表明原生机制在篡改文件的情况下是无法进行完整性验证的,BEMDICS机制则能保持合理的验证有效率。因为在后4000的文件中,数据被篡改的时候其对应的完整性证据也被同步篡改了,对于原生机制来说,这种情况下是能通过完整性验证的,但实际上是由于被篡改的数据生成的新完整性证据与被篡改的完整性证据能一一对应,却与数据初始状态下的完整性证据无法对应,数据已然出现安全故障,原生机制却难以发现。而BEMDICS机制能进行验证,是因为完整性证据被安全地存放到了区块链中,数据的完整性证据无法被篡改和删除,故能进行有效验证。

3.3 验证时延分析

针对区块链对数据完整性证据的查询时延开销进行分析,对比云存储原生系统对完整性校验的时间开销与BEMDICS机制对完整性校验的时间开销,每组实验重复5次结果取平均值,统计的单个文件完整性校验时延如表2所示。

表2 时延实验结果

图形化展示如图2所示,从图中可以发现,总体来看,BEMDICS机制的集成会使得云存储数据完整性的校验时延有所增加,但也整体保持在一个较为合理的水平,性能开销相对较低,证明了BEMDICS机制性能开销的可靠性。

图2 BEMDICS校验时延分析

4 结语

本文总结了当前云存储模式中数据完整性保护机制,并指出当前数据完整性保护机制的不足,针对这种不足提出一种基于区块链技术的数据完整性增强机制,将云存储中的数据完整性证据分布式存放,且不可删除、不可篡改,解决了在云存储模式中数据在云端完整性被破坏而得不到验证的问题。实验表明,BEM⁃DICS机制虽然会带来额外的性能开销,但能解决云存储数据完整性保护的不足,实现了对云数据完整性的有效记录和验证。

猜你喜欢

完整性校验数据中心
酒泉云计算大数据中心
稠油热采水泥环完整性研究
民航绿色云数据中心PUE控制
炉温均匀性校验在铸锻企业的应用
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
精子DNA完整性损伤的发生机制及诊断治疗
基于云计算的交通运输数据中心实现与应用
大型电动机高阻抗差动保护稳定校验研究
基于加窗插值FFT的PMU校验方法
锅炉安全阀在线校验不确定度评定