支持用户文件数据恢复的第三方审计方法与流程

文档序号:14870982发布日期:2018-07-06 23:46阅读:327来源:国知局

本申请涉及云存储,尤其涉及云存储的安全验证。



背景技术:

云存储作为云计算最常见的一种基本服务,对使用者提供可变的云存储空间,随时随地访问数据,按需低价购买等服务,因为这些优点,越来越多的个人或公司更愿意使用云存储服务。尽管如此,但它却面临着新的安全挑战,即数据完整性。数据的机密性可以通过加密等方式解决,但是由于云服务提供商(csp)是独立的管理实体,当用户外包数据时,实际上是放弃了对其数据的物理控制权。云服务器上的数据存在内部和外部的攻击,数据完整性时刻遭受破坏的危险。由于用户不再本地存储外包数据的特性,传统的保护本地数据安全的原理不能直接采用。特别地,由于i/o和网络的传输成本的昂贵,简单地下载所有数据并验证不是实际的解决方法。此外,应尽可能地最小化用户使用云存储的开销,使得用户不需要执行太多的操作即可使用云储存服务。针对以上用户在使用云存储服务时,对外包数据完整性的需求和特性,密码学家提出基于可信第三方(thirdpartyauditor,tpa)审计的解决方案。tpa是受云服务商和用户所信任的第三方机构,拥有用户不具备的计算能力。用户可以将数据完整性的审计需求提交给tpa,tpa透过和云服务器的通信,将审计结果告知用户。

虽然基于可信第三方的审计方案可以满足审计数据完整性的需求,但是对于非常重要的外包文件,用户不希望它们收到任何损坏,一般的第三方审计方案只能检测外包数据的完整性,无法满足此需求。这时,需要可以恢复数据的第三方审计方案。在恢复数据的技术中,大多使用类似reed-solomon的纠删码技术,这种编码技术一般计算量很大,并且修复带宽很高,即需要传送的数据量是所要恢复数据量的很多倍。



技术实现要素:

本发明提供一种支持用户文件数据恢复的第三方审计方法,所述用户文件被分块存储在至少两个云服务器上,所述方法包括在审计端执行以下步骤:

接收来自用户端的用户审计请求;

生成挑战,发送到被挑战的云服务器;

对所述被挑战的云服务器针对所述挑战发回的证据进行验证;以及

在验证出被挑战的云服务器中存储的数据块出错时,向所述用户端发送出错云服务器的标识,使所述用户端利用未出错的其他云服务器上存储的数据块进行数据恢复。

较佳的,所述用户文件经再生码编码分块存储在所述至少两个云服务器上。

较佳的,所述用户端利用未出错的其他云服务器上存储的再生码编码数据块和再生码编码矩阵逆运算进行数据恢复。

较佳的,所述被挑战的云服务器si利用其存储的用户的公钥信息、再生码编码数据块cij及其数据块标签σij计算其证据。

较佳的,所述审计端对被挑战的云服务器发送过来的证据进行聚合后,利用用户的公钥信息验证聚合后证据的正确性。

较佳的,所述用户端通过以下公式生成所述数据块标签σij:

其中,wij=fid||i||j,fid表示文件的身份标识,u是g1里的随机元素,x是用户私钥信息。

较佳的,在验证出被挑战的云服务器中存储的数据块出错时,对存储所述用户文件的所有云服务器均进行一次挑战,验证出所有出错云服务器后向所述用户端发送出错云服务器的标识。

本发明实施例能够在满足审计云端数据完整性的同时,修复已损坏的数据,同时降低修复带宽,减少修复节点时的数据传送量。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例的支持数据恢复的第三方审计方法的流程图;

图2为本发明另一实施例中将文件分块存储到多个云服务器的流程图;

图3为本发明另一实施例中对进行数据审计和恢复的方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的组件或具有相同或类似功能的组件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

图1示出本发明一个实施例的支持用户文件数据恢复的第三方审计方法,所述用户文件被分块存储在至少两个云服务器上,所述方法包括在审计端执行以下步骤:

s11、接收来自用户端的用户审计请求;

s12、生成挑战,发送到被挑战的云服务器;

s13、对被挑战的云服务器针对挑战发回的证据进行验证;以及

s14、在验证出被挑战的云服务器中存储的数据块出错时,向用户端发送出错云服务器的标识,使用户端能利用未出错的其他云服务器上存储的数据块进行数据恢复。

较佳的,所述用户文件经再生码编码分块存储在所述至少两个云服务器上。

较佳的,所述用户端利用未出错的其他云服务器上存储的再生码编码数据块和再生码编码矩阵逆运算进行数据恢复。

较佳的,所述被挑战的云服务器利用其存储的用户的公钥信息、再生码编码数据块及其数据块标签计算其证据。

在本发明另一实施例的支持用户文件数据恢复的第三方审计方法中,参阅图2,可以通过以下方法将用户端的文件f分块存储到n个云服务器s1,s2,...,sn。

s21、用户端生成私钥sk和公钥pk。

较佳的,可以依据用户输入的安全参数λ生成随机的签名密钥对(spk,ssk)。在zp里随机选择出x,并计算从而生成私钥sk=(x,ssk),公钥pk=(v,spk)。

s22、用户端使用再生码对文件f进行编码,生成编码后的文件c。

首先,将文件f分成b块,f={m1,m2,...,mb},将b个数据块分布到如下一个d×d的矩阵m:

其中,s是k×k的对称矩阵,t是k×(d-k)的矩阵,0是(d-k)×(d-k)的0矩阵。

其次,选择一个编码矩阵ψ:

其中,i是(k×k)的单位矩阵,0是k×(d-k)的0矩阵,φ是(n-k)×k的矩阵,λ是(n-k)×(n-k)的矩阵。

然后,生成编码后的文件c:

使c=(c1,c2,...,cn)t,其中ci=(ci1,ci2,...,cid),数据块cij是分布到云服务器i上的第j个数据块,满足(n,k)最大距离可分。

s23、用户端生成数据块标签;可以用私钥sk为每个数据块cij生成对应的数据块标签σij。

具体的,在zp域里随机选择一个大元素作为文件的身份标识fid。在g1里面随机选取一个元素u。对于每个数据块cij,通过以下公式计算其标签σij:

其中,wij=fid||i||j。

g1是参数,本实施例中使用双线性映射为e:g1×g2→gt,其中g1,g2,gt都是阶为大素数p乘法循环群,g1,g2分别是g1,g2的生成元,可以在用户端生成密钥时生成。

s24、用户端进行文件签名,生成文件标签t;可以利用私钥ssk对文件的身份标识fid进行加密,生成文件标签t。

具体的,可以设置t0=fid||n||u||d,文件标签t=t0||ssigssk(t0)。

可以理解,步骤s23和步骤s24也可以同时执行,或者先执行步骤s24再执行步骤s23。

s25、用户端将文件包块上传到各个云服务器s1,s2,...,sn,上传到每个云服务器的文件包块中包括文件标签t、分布到该云服务器的数据块及对应的数据块标签。

s26、各个云服务器s1,s2,...,sn接收各自的文件包,各自利用公钥pk验证文件标签t是否合法,在验证通过的情况下存储各自的数据块及数据块标签,验证不通过则终止。

具体的,可以用公钥pk解析出v和spk,然后用spk验证文件标签t是否合法。

参阅图3,数据块分布存储到各个云服务器后,可以通过以下方法对数据进行审计和恢复:

s31、审计端接收用户审计请求,该请求中包括文件f的文件标签t。

s32、审计端用公钥pk验证文件标签t是否合法,在验证通过的情况下执行s33,验证不通过则终止。

具体的,可以用公钥pk解析出v和spk,然后用spk验证文件标签t是否合法。

s33、审计端生成挑战,发送到被挑战的云服务器。

审计端验证文件标签t合法时,解析出文件标签t中的fid、n和u。从[1,n]中随机选出l个元素做为子集i,也就是被随机选择被挑战的云服务器的编号。从[1,d]中随机选出子集j,为j中每个元素随机选取vij∈zp,利用公钥pk中的v生成挑战ci={(j,vij)j∈j,ri},其中ri是里的随机数,之后将挑战ci传送给云服务器si。

s34、被挑战的云服务器生成证据,发送到审计端。

云服务器si在收到挑战ci后,利用公钥pk中的v及编码后的数据块cij及其数据块标签σij计算证据pi,之后将证据pi发送到审计端。较佳的,证据pi=(dpi,tpi,ki1,ki2)。其中,

其中,mpi=ki·∑j∈jvijcij,ki为zp里的随机数。

s35、审计端验证证据,获得审计结果。

审计端可对被挑战的各云服务器发送过来的证据进行聚合后,利用公钥pk验证证据的正确性,从而获得审计结果。

具体的,审计端收到证据pi=(dpi,tpi,ki1,ki2)后,计算聚合后的证据:

dp=πi∈idpi,tp=πi∈itpi

然后算出

再通过下面的式子验证数据的完整性:

如果两者相等,表示验证通过,可以向用户端返回数据完整的审计结果;否则,对于每个i∈i,计算下式是否成立:

若不成立,返回云服务器si,表示si上的数据有被篡改,并执行s36;若成立,云服务器si数据正确。

s36、若被挑战的云服务器上数据出错,向用户端发送数据出错的云服务器的标识,用户端利用未发生数据出错的其他云服务器上存储的再生码编码数据块进行数据恢复。

审计端检测到有数据损坏时,可进行一次对全部数据的检查,得出有数据损坏的云服务器的编号,若个数小于k,则将有数据损坏的云服务器编号发送给用户端。用户端下载其余任意d个云服务器上的再生码编码数据块,设为c1,c2,...,cd,再利用编码矩阵ψ逆运算恢复出原来的数据c′d:

cd′=[c1,c2,...,cd](ψd)-1

依据本发明的实施例,不仅可以检测云端数据的完整性,并且可以在检测到数据损坏时,恢复损坏的数据。依靠再生码技术,可以有效地减少修复带宽,即减少修复节点时的数据传送量。同时满足纠删码的最大距离可分特性mds(n,k),当损坏节点小于等于k时,依然可以恢复损坏节点的数据。

以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换。

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