一种基于GlusterFs的分布式数据完整性审计系统及其审计方法与流程

文档序号:19492525发布日期:2019-12-24 14:11阅读:196来源:国知局
一种基于GlusterFs的分布式数据完整性审计系统及其审计方法与流程

本发明属于云存储以及远程数据数据完整性审计领域,具体是涉及到一种基于glusterfs的分布式数据完整性审计系统及其审计方法。



背景技术:

云存储作为一种新范式为用户提供了弹性而可靠的数据存储方案,使得用户可以任何时刻通过网络访问云服务器来存取数据,这种新范式大大降低了用户自己维护数据的成本,与此同时也带来了一些新的问题,由于数据不再由用户进行本地维护,用户失去了对数据的直接控制,因此会引发一系列的安全问题,例如云服务商(csp)可能丢弃一些用户不常访问的数据来获取额外的利润,或者谎称数据损坏或者机器故障,因此对于云存储而言,审计措施用来检查数据的完整性便至关重要。

传统的远程数据完整性验证方案要么需要用户拥有一份数据的本地副本,要么需要将数据完全下载到本地后再进行验证,这样的方式要么需要较大的存储开销,要么需要较大的通信开销,在分布式文件存储模式下,文件容量巨大,显然传统的解决方案已经不再适用,现阶段针对此问题研究者们做了大量研究,研究成果如外包验证,即将数据完整性审计交由第三方机构进行;以及为节约通信开销进行一次多块审计;数据块的批量审计,以概率的方式进行抽样审计等等。jiangtaoli,leizhang等人提出了一种证明云端数据完整性并可保证数据隐私的方案,该方案采用双线性映射,默克尔哈希树(mht),以及变色龙哈希函数(chameleon)构造了两阶段签名,可以实现远端数据的单块审计,多块审计,批量审计,多用户审计以及数据的动态修改删除等,但是该方案只针对物联网等小型设备,无法运用于海量分布式文件系统,sanjeetkumarnayak,studentmember等提出基于云存储的安全和高效的隐私保护和可证明数据拥有方案,该方案基于双线性映射可实现数据单块审计,批量审计以及动态更新等,近年来对于云端数据的完整性审计大多基于椭圆曲线上的双线性配对操作,先后有一系列研究成果,但是这些都仍然是停留在方案的提出,并未和主流高性能文件系统结合。尽管有一系列的方案提出,但是方案在实施过程中仍然面临着许多问题,在交由第三方进行完整性验证的过程中如何保证用户数据隐私不泄露,在分布式文件系统下文件被分成多块,如何保证多块数据审计并行高效的进行,如何实现多用户审计并有效减小通信开销,论文只是通过简单实验证明了所提出的方案具有较好的性能以及较低的时间开销,但是针对云存储等大规模数据存储场景却未必适用,同时glusterfs底层检查数据完整性采用md5标签,但是没有向用户或者第三方机构提供数据完整性审计接口,对于用户上传文件并产生签名之后将审计任务交由第三方结构来实施的设想并不现实。



技术实现要素:

本发明要解决的技术问题是提供一种基于glusterfs的分布式数据完整性审计系统及其审计方法。

本发明的内容包括:

一种基于glusterfs的分布式数据完整性审计系统,包客户端、服务端和glusterfs云存储端;

服务端基于glusterfs云存储端提供的数据存储解决方案向客户端提供rest接口;

glusterfs云存储端通过infiniband交换机与服务器端连接。

优选地,基于glusterfs的分布式数据完整性审计系统还包括物理层。glusterfs云存储端是一个独立的开源的分布式文件系统,在该系统上增加了一个数据完整性审计模块,使得该系统具有了数据审计的功能。物理层表示gluster文件系统可以建立在异构廉价的物理硬件之上,因此可以轻易通过聚合各种不同的存储资源来提供海量的存储能力。

优选地,glusterfs云存储端包括若干brick存储节点,客户端上传的数据文件经过xlator栈的处理,通过dht算法,基于rdma或者tcp协议,轮询的将数据分片写入各个brick存储节点。

依托于上述的系统,本方面还提供了一种基于glusterfs的分布式数据完整性审计方法,客户端将数据文件上传glusterfs云存储端并在本地形成数据文件完整性审计本地结果包括以下步骤:

在客户端生成完整性验证请求并发送至服务器端;

服务器端接收完整性验证请求并传递给glusterfs云存储端;

glusterfs云存储端解析完整性验证请求,对完整性验证请求对应的数据进行完整性审计生成glusterfs云存储端审计结果;

服务器端获取glusterfs云存储端审计结果并传输至客户端;

客户端将审计结果与数据文件完整性审计本地结果进行比较从而判断数据文件的完整性。

优选地,在客户端将数据文件上传前需要将数据文件进行分块处理,分块处理过程如下:将数据文件分成n片,m=(m1,m2…mn)并且生成挑战j块c=(c1,c2…cj),将每一分片数据mi,mi∈m,挑战cj,cj∈c相连接(mi|cj),采用h1()哈希函数计算n*j块签名h1(mi|cj)。

优选地,在分块处理后数据文件上传前还需要生成密钥,生成密钥过程如下:设g1是由p生成的乘法循环群,阶为p,gt是具有相同阶p的乘法循环群,e:g1*g1→gt是一个双线性映射,定义下列hash函数h1:{0,1}*→{0,1}48,h2:{0,1}*→g1,签名者随机选择并且计算k=xp,签名者的私钥为x,公钥为y。

优选地,数据文件完整性审计本地结果是采用基于椭圆曲线离散对数上的双线性映射签名算法,利用用户私钥x对文件块摘要h1(mi|cj)进行签名,得到w=e(x,h1(mi|cj))作为数据文件完整性审计本地结果。

优选地,客户端生成的完整性验证请求为<i,ci>,cj∈c和0≤i≤n-1。

优选地,glusterfs云存储端生成glusterfs云存储端审计结果的过程为:

glusterfs云存储端若拥有完整数据块mi,则利用h1()函数计算存储在云端的数据块mi的摘要h1(mi|cj),然后利用h2()函数计算k=h2(mi),并将k返回至服务端。

优选地,服务器计采用映射函数e计算t=e(y,k),k=xp是客户公钥,然后将t返回至客户端。

本发明的有益效果包括:

1.本发明结合双线性配对签名方案,对glusterfs文件系统进行改造实现了一种分布式的完整性验证系统,该系统实现了大规模数据的批量审计,以及交由第三方审计而不泄露用户数据隐私,多用户审计的需求。

2.本方面的审计系统的审计规模可以伴随着存储节点的增加而线性扩展。

附图说明

附图1为本发明的一种基于glusterfs的分布式数据完整性审计系统的结构示意图。

附图2为本发明优选实施例验证请求量的时间开销图。

具体实施方式

实施例1

如附图1所示,本发明的一种基于glusterfs的分布式数据完整性审计系统,包客户端、服务端和glusterfs云存储端;

客户端为用户提供文件上传,文件下载,文件完整性验证功能。

服务端基于glusterfs云存储端提供的数据存储解决方案向客户端提供rest接口。服务端基于glusterfs云存储端提供的数据存储解决方案向客户端提供rest接口,包含两大模块:数据存储和对象存储,glusterfs云存储端构建在普通硬件之上,采用infiniband连接多个存储节点,提供外包数据存储和分布式完整性验证功。

服务端提供客户端与glusterfs云存储端之间的桥梁,向客户端提供rest接口,包含文件分片上传接口,文件下载接口,以及文件完整验证接口,文件上传接口针对客户端文件分片上传实现了文件分片接收和断点接收功能,完整性验证接口基于glusterfs云存储端支持数据单块验证和多块验证,多用户单块验证,以及多用户多块验证。

glusterfs云存储端:基于glusterfs分布式开源文件系统,实现了一种支持多块数据并行验证的完整性验证算法,采用glusterfs的条带卷分发机制,对于多块数据计算其分布节点,将完整性验证任务分发到多节点,多个节点并行计算,充分利用存储节点的计算资源,如附图2(a)-(d)所示,实验结果表明在数据分块大小一定的情况下,验证请求量小于存储节点数量时,伴随着验证请求数量的增加,时间开销增长为毫秒级,因此可实现验证请求数量随存储节点的增长而线性增长,并且摘要计算算法有着较小的时间开销和存储开销。

依托于上述的系统,本方面还提供了一种基于glusterfs的分布式数据完整性审计方法,客户端将数据文件上传glusterfs云存储端并在本地形成数据文件完整性审计本地结果包括以下步骤:

s1:在客户端生成完整性验证请求并发送至服务器端。

s11:密钥生成keygen。设g1是由p生成的乘法循环群,阶为p,gt是具有相同阶p的乘法循环群,e:g1*g1→gt是一个双线性映射,定义下列hash函数h1:{0,1}*→{0,1}48,h2:{0,1}*→g1,签名者随机选择并且计算k=xp,签名者的私钥为x,公钥为y。

s12:签名sign。将数据文件分成n片,m=(m1,m2…mn)并且生成挑战j块c=(c1,c2…cj),将每一分片数据mi,mi∈m,挑战cj,cj∈c相连接(mi|cj),采用h1()哈希函数计算n*j块签名h1(mi|cj)。数据文件完整性审计本地结果是采用基于椭圆曲线离散对数上的双线性映射签名算法,利用用户私钥x对文件块摘要h1(mi|cj)进行签名,得到w=e(x,h1(mi|cj))作为数据文件完整性审计本地结果。

s13:利用服务端提供的rest接口,将数据上传到服务端,服务端接口支持超大文件上传,上传时间开销取决于客户端与服务端之间的网络带宽以及文件大小。

s14:服务端挂载glustervolume,利用posix接口将数据存放到本地挂载目录.

s15:存入挂载目录的文件经过glusterfs云存储端xlator栈的处理,通过dht算法,基于rdma或者tcp协议,轮询的将数据分片写入各个brick存储节点。

s2:服务器端接收完整性验证请求并传递给glusterfs云存储端。

s3:glusterfs云存储端解析完整性验证请求,对完整性验证请求对应的数据进行完整性审计生成glusterfs云存储端审计结果。

s301:接收完整性验证请求为<i,ci>,cj∈c和0≤i≤n-1。

s302:第二步:服务器解析块的编号和挑战后,将请求传递给glusterfs云存储端,服务器采用了高并发编程模型,可支持众多用户多数据并发审计。

s303:glusterfs云存储端解析服务器下发的请求,计算各个编号所对应存储的brick,将验证请求同时下发到多个存储节点,云服务端若拥有完整数据块mi,则利用h1()函数计算存储在云端的数据块m的摘要h1(mi|cj),然后利用h2()函数计算k=h2(mi),并将k返回至服务端。服务器计采用映射函数e计算t=e(y,k),k=xp是客户公钥,然后将t返回至客户端。

服务端获取glusterfs云存储端审计结果并传输至客户端。

客户端将审计结果与数据文件完整性审计本地结果进行比较从而判断数据文件的完整性。

以一定的概率相信上传文件的完整性,可以大大减小了传统方式的文件下载通信开销。

本发明的一种基于glusterfs的分布式数据完整性审计系统及其审计方法可为企业级云存储提供完备的数据审计机制,用户数据审计任务可交由第三方审计机构完成,并且不会泄露用户隐私信息,提高云服务商的收益.同时可保证用户存储在云端数据的私密性。

本实施列所述的glusterfs是一个开源的分布式文件系统,是scale存储的核心,能够处理千数量级的客户端。本实施例所述的infiniband(直译为“无限带宽”技术,缩写为ib)是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。

实施例2

实文件上传签名模块:

第一步:客户端在数据m在上传到云服务器之前先将数据按照客户的配置切分成m=(m1,m2…mn)等n块,n为数据块数,并且生成挑战j块c=(c1,c2…cj),将每一分片数据mi,mi∈m与挑战cj,cj∈c相连接(mi|cj),采用h1()函数计算n*j块签名h1(mi|cj),然后采用pbc以及gmp库提供的基于椭圆曲线离散对数上的双线性映射签名算法,产生用户私钥x,公钥y,以系统参数p,利用用户私钥x对文件块摘要h1(mi|cj)进行签名,w=e(x,h1(mi|cj)),签名结果w保留在客户端本地,方便后续数据审计,并且采用sqllite数据库在本地记录文件名,摘要,挑战和数据块编号对应的关系。

第二步:客户端调用服务器提供的javarest接口,将数据上传到服务器,服务器接口支持超大文件上传,上传时间开销取决于客户端与服务器之间的网络带宽以及文件大小。

第三步:服务器挂载glustervolume,volume由若干个brick聚合而成,服务器利用java文件调用接口将数据存放到本地挂载目录。

第四步:存入挂载目录的文件经过linuxvfs传递到glusterfsfuse文件系统,经过glusterfs客户端xlator栈的处理,由条带卷利用dht算法,基于rdma或者tcp协议,轮询的将数据一片一片写入各个brick存储节点。

实施例3

数据块批量验证:

第一步:客户端选择挑战ci,0≤i≤n-1和数据块编号i的线性组合传给服务端<i,ci>,服务端转发请求至云服务端。

第二步:服务端解析块的编号和挑战后,将请求传递给gluster存储服务器,服务器采用了高并发编程模型,可支持众多用户多数据并发审计。

第三步:gluster解析服务器下发的请求,计算各个编号所对应存储的brick,将验证请求同时下发到多个存储节点,云服务端若拥有完整数据块mi,则利用h1()函数计算存储在云端的数据块mi的摘要h1(mi|cj),然后利用h2()函数计算k=h2(mi),并将k返回至服务器,服务器计采用映射函数e计算t=e(y,k),k=xp是客户公钥,然后将t返回至客户端。

第四步:客户端将t与本地结果w进行对比,判断数据完整性,并且以一定的概率相信上传文件的完整性,大大减小了传统方式的文件下载通信开销。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1