一种基于可信第三方的云数据完整性验证方法
【专利摘要】本发明公开了一种基于可信第三方的云数据完整性验证方法,其具体实现过程为:数据所有者将数据分块并数据签名,得到数据完整性元数据并保存到可信第三方中;可信第三方通过挑战应答协议与云服务器通信验证数据完整性。本发明的一种基于可信第三方的云数据完整性验证方法与现有技术相比,保证用户在不访问原始数据的基础上,验证存储在云服务器中数据的完整性,同时保证数据持有者用于数据完整性的信息不被泄露;在云服务提供商不可信的情况下,也能保证云数据完整性验证的准确性,实用性强。
【专利说明】一种基于可信第三方的云数据完整性验证方法
【技术领域】
[0001]本发明涉及云计算【技术领域】,具体地说是一种实用性强、基于可信第三方的云数据完整性验证方法。
【背景技术】
[0002]云计算可以实现任意地点、任意时间、任意数据访问及保障法律遵从的需求等,为存储需求不可预测、需要廉价存储的用户带来了更多的方便和效益。通过按需购买云服务不仅可以减少用户本地的存储和维护压力,在为用户节省投资的同时也节约了社会资源与能源。但是,云计算的安全性、可靠性及服务水平等还存在众多问题亟待解决。由于用户失去了对数据可靠性和安全性的物理控制,云计算中的数据完整性就成为用户担心的安全问题之一。由于大规模数据所导致的巨大通信代价,用户不可能将数据下载到本地后再验证其完整性。因此,如何保障云服务器中数据的安全,如何帮助用户进行数据完整性验证就成为一个研究热点。
[0003]现有的数据完整性验证方案有:可证明数据持有PDP方案、可证明数据恢复POR方案等。PDP方案可检测到存储数据是否完整,但无法确保数据可恢复性;P0R方案保证了存储数据的可恢复性。现有方案存在如下一些缺陷:大部分方案基于公钥密码技术,通常需要进行大量的模幂运算,所以计算开销很大,特别是数据量大的时候效率不高;没有考虑数据更新问题,只能用于静态数据的归档存储,不能支持数据的动态操作;没有考虑数据恢复技术,虽然可以高置信地检测到数据的损坏,但是却不能正确恢复出原始数据,因此实用性不强。
[0004]本发明针对现有技术的不足,提现出一种基于可信第三方的云数据完整性验证方法,该方法中数据所有者将数据分块并数据签名,得到数据完整性元数据并保存到可信第三方中;可信第三方通过挑战应答协议与云服务器通信验证数据完整性,从而保证云数据完整性验证的准确性。
【发明内容】
[0005]本发明的技术任务是针对以上不足之处,提供一种实用性强、基于可信第三方的云数据完整性验证方法。
[0006]一种基于可信第三方的云数据完整性验证方法,该方法的实施通过云服务器、数据所有者和可信第三方完成,其中云服务器:根据SLA协议,存储数据所有者托管的数据,响应可信第三方的挑战应答请求;
数据所有者:数据的拥有者,选择云服务商,将数据上传到云服务商的云服务器中存储,向可信第三方提出云数据完整性验证请求,并接收完整性验证结果;
可信第三方:独立于数据所有者和云服务商,并且为两者都信任的第三方,保存数据的完整性元数据,利用挑战应答协议提供数据完整性验证服务,将验证结果返回给数据所有者;
云数据完整性验证过程以下三个步骤:数据预处理、数据存储、数据完整性验证,其中:
一、数据预处理:
1)数据所有者构造该端的完整性元数据,传送给可信第三方;同时将数据通过安全通道上传给云服务器;
2)可信第三方接收到数据所有者端的完整性元数据后,使用数据所有者公钥证书验证完整性元数据的完整性;通过后,建立相应的数据结构保存数据的完整性元数据;
3)云服务器接收到数据后,构造云服务器端的完整性元数据并发送给可信第三方;
4)可信第三方使用云服务器公钥证书验证云服务器发送的完整性元数据后,验证该完整性元数据的完整性;完全匹配后,建立相应的数据结构保存数据的完整性元数据;
二、数据存储:云服务器接收到数据后,存储数据所有者上传的数据及云服务器端的完整性元数据;
三、数据完整性验证:
a)数据所有者向可信第三方发送云数据完整性验证请求,请求验证数据的完整性或若干数据块的完整性;可信第三方收到完整性验证请求后向云服务器发送挑战信息,并对挑战信息数字签名;
b)云服务器验证此信息,在通过验证后,根据存储索引表找到该数据相对应的服务器,从该服务器上得到该数据块并数字签名;
c)可信第三方在收到云服务器返回的元数据后,根据数据所有者和云服务器公钥证书进行验证;可信第三方向数据所有者提交数据完整性验证结果,由数据所有者对被损坏数据进行修改维护。
[0007]所述数据的完整性元数据包括数据所有端完整性元数据和云服务器端完整性元数据,其中
数据所有者端完整性元数据包括:数据文件名、长度、创建时间、数据所有者以及使用数据所有者和云服务器协商的杂凑算法由数据所有者计算得到的数据总体杂凑值;数据块序号、数据块杂凑值;
云服务器端完整性元数据:包括数据文件名、长度、创建时间、数据所有者以及使用数据所有者和云服务器协商的杂凑算法由云服务器计算得到的数据总体杂凑值;数据块序号、数据块杂凑值、物理存储位置,所述物理存储位置包括机架号、服务器编号,该物理存储位置根据数据在云服务器的实际存储信息来确定。
[0008]所述数据所有者构造完整性元数据的过程为:数据所有者利用与云服务器协商的杂凑算法计算要存储到云服务器数据的总体杂凑值,然后根据云服务器分块策略,对数据分块并分别计算各数据块的杂凑值;数据所有者对数据总体杂凑值和各数据块杂凑值数字签名,构造数据所有者端的完整性元数据。
[0009]所述云服务器构造云服务器端的完整性数据过程为:云服务器接收到数据后,利用相同的杂凑算法计算数据的总体杂凑值,然后数据分块并分别计算各数据块的杂凑值;云服务器对总体杂凑值和各数据块杂凑值数字签名,完成构造云服务器端的完整性元数据。
[0010]所述步骤4)中可信第三方验证该完整性元数据的完整性后,与数据所有者发送的数据总体杂凑值及各数据块杂凑值进行比较,完全匹配后,进行添加动作。
[0011]所述步骤c)中的验证是指:验证返回的数据杂凑值与存储在本地的数据杂凑值是否一致,若一致,就证明该数据是安全的,否则是不安全的。
[0012]本发明的一种基于可信第三方的云数据完整性验证方法,具有以下优点:
该发明的一种基于可信第三方的云数据完整性验证方法,通过可信第三方保存数据的完整性元数据并通过挑战应答协议与云服务器通信验证数据完整性;保证用户在不访问原始数据的基础上,验证存储在云服务器中数据的完整性,同时保证数据所有者用于数据完整性的信息不被泄露;在云服务商不可信的情况下,也能保证云数据完整性验证的准确性;实用性强,适用范围广泛,安全性良好,易于推广。
【专利附图】
【附图说明】
[0013]附图1为本发明的实现示意图。
【具体实施方式】
[0014]下面结合附图和具体实施例对本发明作进一步说明。
[0015]本发明提供一种基于可信第三方的云数据完整性验证方法,如附图1所示,其实现过程包括:
该方法的实施通过云服务器、数据所有者和可信第三方完成,其中云服务器:根据SLA协议,存储数据所有者托管的数据,响应可信第三方的挑战应答请求;
数据所有者:数据的拥有者,选择云服务商,将数据上传到云服务商的云服务器中存储,向可信第三方提出云数据完整性验证请求,并接收完整性验证结果;
可信第三方:独立于数据所有者和云服务商,并且为两者都信任的第三方,保存数据的完整性元数据,利用挑战应答协议提供数据完整性验证服务,将验证结果返回给数据所有者;
云数据完整性验证过程以下三个步骤:数据预处理、数据存储、数据完整性验证,其中:
数据的完整性元数据包括:
(1)数据所有者端完整性元数据:包括数据文件名、长度、创建时间、数据所有者以及使用数据所有者和云服务器协商的杂凑算法由数据所有者计算得到的数据总体杂凑值;数据块序号、数据块杂凑值;
(2)云服务器端完整性元数据:包括数据文件名、长度、创建时间、数据所有者以及使用数据所有者和云服务器协商的杂凑算法由云服务器计算得到的数据总体杂凑值;数据块序号、数据块杂凑值、物理存储位置(机架号、服务器编号)。物理存储位置根据数据在云服务器的实际存储信息来确定。
[0016]云数据完整性验证过程包括三个阶段:数据预处理、数据存储、数据完整性验证。其中:
(I)数据预处理。
[0017](a)数据所有者利用与云服务器协商的杂凑算法计算要存储到云服务器数据的总体杂凑值,然后根据云服务器分块策略,对数据分块并分别计算各数据块的杂凑值;数据所有者对数据总体杂凑值和各数据块杂凑值数字签名,构造数据所有者端的完整性元数据,传送给可信第三方;同时,将数据通过安全通道上传给云服务器;
(b)可信第三方接收到数据所有者端的完整性元数据后,使用数据所有者公钥证书验证完整性元数据的完整性。通过后,建立相应的数据结构保存数据的完整性元数据;
(c)云服务器接收到数据后,利用相同的杂凑算法计算数据的总体杂凑值,然后数据分块并分别计算各数据块的杂凑值;云服务器对总体杂凑值和各数据块杂凑值数字签名,构造云服务器端的完整性元数据并发送给可信第三方;
Cd)可信第三方使用云服务器公钥证书验证云服务器发送的完整性元数据后,与数据所有者发送的数据总体杂凑值及各数据块杂凑值进行比较。完全匹配后,添加对应各数据块的物理存储信息到数据结构中。
[0018](2)数据存储。
[0019]云服务器接收到数据后,根据存储策略,存储数据所有者上传的数据及云服务器端的完整性元数据。
[0020](3)数据完整性验证。
[0021](a)验证数据完整性的工作完全交由可信第三方处理。数据所有者向可信第三方发送云数据完整性验证请求,请求验证数据的完整性或若干数据块的完整性。可信第三方收到完整性验证请求后向云服务器发送挑战信息,并对挑战信息数字签名;
(b)云服务器验证此信息,在通过验证后,根据存储索引表找到该数据相对应的服务器,从该服务器上得到该数据块,利用协商的杂凑算法重新计算该数据块的杂凑值并数字签名;
(C)可信第三方在收到云服务器返回的元数据后,根据数据所有者和云服务器公钥证书,验证返回的数据杂凑值与存储在本地的数据杂凑值是否一致。若一致,就证明该数据是安全的,否则是不安全的。可信第三方向数据所有者提交数据完整性验证结果,由数据所有者对被损坏数据进行修改维护。
[0022]具体实施例:
一、数据预处理。
[0023]数据所有者要存储数据文件F,首先使用和云服务器协商的杂凑算法AasA计算数据文件F的总体杂凑值H。= hash (F);然后根据云服务器的分块策略,对数据文件F分块处理,将文件F分成η块,使用杂凑算法AasA计算各数据块的杂凑值Ivh2,...,hn ;对总体杂凑值和各数据块杂凑值进行数字签名,得到S。和Si (i=l,2,...,n),S0为数据文件F的签名结果,Si为第i个数据块的签名结果。数据所有者构造所有者端的完整性元数据,传送给可信第三方;同时,将数据通过安全通道上传给云服务器。
[0024]可信第三方接收到数据所有者端的完整性元数据后,使用数据所有者公钥证书验证完整性元数据的完整性。通过后,建立相应的数据结构保存数据的完整性元数据。
[0025]云服务器接收到数据文件F后,利用相同的杂凑算法AasA计算数据文件F的总体杂凑值Hs= hash (F),根据分块策略对数据文F分块并分别计算各数据块的杂凑值Ii1,h2,...,hn,云服务器对这些杂凑值数字签名,得到Ss和Si (i=l,2, , n), Ss为数据文件F的签名结果,Si为第i个数据块的签名结果。云服务器构造服务器端的完整性元数据并发送给可信第三方。
[0026]可信第三方使用云服务器公钥证书验证云服务器发送的完整性元数据后,与数据所有者发送的数据总体杂凑值及各数据块杂凑值进行比较。完全匹配后,添加对应各数据块的物理存储信息到数据结构中。
[0027]二、数据存储。
[0028]云服务器接收到数据后,根据存储策略,存储数据所有者上传的数据及云服务器端的完整性元数据。
[0029]三、数据完整性验证。
[0030]a)数据所有者向可信第三方发送云数据完整性验证请求mrii>(F,i),验证数据所有者的数据文件F,第i数据块的完整性。可信第三方收到完整性验证请求后向云服务器发送挑战信息,并对挑战信息数字签名。整个消息包括'TTP, F,i, sign (N),time。其中TTP为可信第三方身份标识,N为挑战信息,并使用数字签名算法sign进行签名,time是时间戳。
[0031]b)云服务器验证此信息,在通过验证后,根据存储索引表找到该数据相对应的服务器,从该服务器上得到该数据块i,利用协商的杂凑算法重新计算该数据块的杂凑值h =hash⑴并数字签名。
[0032]c)可信第三方在收到云服务器返回的元数据后,根据数据所有者和云服务器公钥证书,验证返回的数据杂凑值h与存储在本地的数据杂凑值h是否一致。若一致,就证明该数据是安全的,否则是不安全的。可信第三方向数据所有者提交数据完整性验证结果,由数据所有者对被损坏数据进行修改维护。
[0033]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种基于可信第三方的云数据完整性验证方法的权利要求书的且任何所属【技术领域】的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
【权利要求】
1.一种基于可信第三方的云数据完整性验证方法,其特征在于:该方法的实施通过云服务器、数据所有者和可信第三方完成,其中 云服务器:根据SLA协议,存储数据所有者托管的数据,响应可信第三方的挑战应答请求; 数据所有者:数据的拥有者,选择云服务商,将数据上传到云服务商的云服务器中存储,向可信第三方提出云数据完整性验证请求,并接收完整性验证结果; 可信第三方:独立于数据所有者和云服务商,并且为两者都信任的第三方,保存数据的完整性元数据,利用挑战应答协议提供数据完整性验证服务,将验证结果返回给数据所有者; 云数据完整性验证过程以下三个步骤:数据预处理、数据存储、数据完整性验证,其中: 一、数据预处理: 1)数据所有者构造该端的完整性元数据,传送给可信第三方;同时将数据通过安全通道上传给云服务器; 2)可信第三方接收到数据所有者端的完整性元数据后,使用数据所有者公钥证书验证完整性元数据的完整性;通过后,建立相应的数据结构保存数据的完整性元数据; 3)云服务器接收到数据后,构造云服务器端的完整性元数据并发送给可信第三方; 4)可信第三方使用云服务器公钥证书验证云服务器发送的完整性元数据后,验证该完整性元数据的完整性;完全匹配后,建立相应的数据结构保存数据的完整性元数据; 二、数据存储:云服务器接收到数据后,存储数据所有者上传的数据及云服务器端的完整性元数据; 三、数据完整性验证: a)数据所有者向可信第三方发送云数据完整性验证请求,请求验证数据的完整性或若干数据块的完整性;可信第三方收到完整性验证请求后向云服务器发送挑战信息,并对挑战信息数字签名; b)云服务器验证此信息,在通过验证后,根据存储索引表找到该数据相对应的服务器,从该服务器上得到该数据块并数字签名; c)可信第三方在收到云服务器返回的元数据后,根据数据所有者和云服务器公钥证书进行验证;可信第三方向数据所有者提交数据完整性验证结果,由数据所有者对被损坏数据进行修改维护。
2.根据权利要求1所述的一种基于可信第三方的云数据完整性验证方法,其特征在于:所述数据的完整性元数据包括数据所有端完整性元数据和云服务器端完整性元数据,其中 数据所有者端完整性元数据包括:数据文件名、长度、创建时间、数据所有者以及使用数据所有者和云服务器协商的杂凑算法由数据所有者计算得到的数据总体杂凑值;数据块序号、数据块杂凑值; 云服务器端完整性元数据:包括数据文件名、长度、创建时间、数据所有者以及使用数据所有者和云服务器协商的杂凑算法由云服务器计算得到的数据总体杂凑值;数据块序号、数据块杂凑值、物理存储位置,所述物理存储位置包括机架号、服务器编号,该物理存储位置根据数据在云服务器的实际存储信息来确定。
3.根据权利要求2所述的一种基于可信第三方的云数据完整性验证方法,其特征在于:所述数据所有者构造完整性元数据的过程为:数据所有者利用与云服务器协商的杂凑算法计算要存储到云服务器数据的总体杂凑值,然后根据云服务器分块策略,对数据分块并分别计算各数据块的杂凑值;数据所有者对数据总体杂凑值和各数据块杂凑值数字签名,构造数据所有者端的完整性元数据。
4.根据权利要求2所述的一种基于可信第三方的云数据完整性验证方法,其特征在于:所述云服务器构造云服务器端的完整性数据过程为:云服务器接收到数据后,利用相同的杂凑算法计算数据的总体杂凑值,然后数据分块并分别计算各数据块的杂凑值;云服务器对总体杂凑值和各数据块杂凑值数字签名,完成构造云服务器端的完整性元数据。
5.根据权利要求2所述的一种基于可信第三方的云数据完整性验证方法,其特征在于:所述步骤4)中可信第三方验证该完整性元数据的完整性后,与数据所有者发送的数据总体杂凑值及各数据块杂凑值进行比较,完全匹配后,进行添加动作。
6.根据权利要求2所述的一种基于可信第三方的云数据完整性验证方法,其特征在于:所述步骤c)中的验证是指:验证返回的数据杂凑值与存储在本地的数据杂凑值是否一致,若一致,就证明该数据是安全的,否则是不安全的。
【文档编号】H04L9/32GK104202168SQ201410480553
【公开日】2014年12月10日 申请日期:2014年9月19日 优先权日:2014年9月19日
【发明者】李清玉 申请人:浪潮电子信息产业股份有限公司