【技术实现步骤摘要】
本专利技术属于计算机
,涉及。
技术介绍
目前,尽管云计算服务提供商能够通过稳定高速的网络连接使用户获得便捷高效的远程数据存储访问服务,但是由于云计算具有的虚拟化、大规模、动态配置和可扩展性等诸多自身特性,还是为在云计算环境下的大规模数据存储服务带来了诸多的安全隐患和挑战。为了提高存储效率和存储空间的利用率,大的数据文件通常会被云计算服务提供商拆分成若干个小的数据块进行存储,每一个数据块存储的地理位置及存储的状态都是用户所未知的,用户难免会对自己数据文件的完整性和一致性产生怀疑。作为衡量数据存储服务的一大关键指标,如何保证存储在地理未知的庞大服务器集群中的用户数据文件的完整性和一致性,一直以来都是云计算数据存储服务所面临的一大难题。尤其在亚马逊简单存储服务和谷歌Docs服务相继发生服务意外中断等事故之后,用户对云计算服务提供商是否会为了节省资源和节约成本而隐瞒了更多的安全事故产生了极大的不信任。用户希望能够有一套完整的机制使自己在不耗费过多计算资源和时间的前提下,拥有对数据文件进行完整性和一致性审查的能力。相关的研究在·很早之前便已经开始进行,并在设计方案的效率、可验证性、可查询性和可恢复性方面取得了不错的成绩。目前,对于数据完整性和一致性较为通用的解决方案主要有私下审计和公开审计两个类型,如图1所示。私下审计顾名思义就是用户自己承担对数据文件的审计工作,公开审计则是将审计委托可信的第三方审计机构来完成。虽然私下审计因其逻辑简单拥有更高的审计效率,但是公开审计不仅能够为用户提供安全可靠的数据审计,还在很大程度上为用户节省了大量的计算资源和时间。在云 ...
【技术保护点】
一种基于哈希树的数据动态操作可验证性方法,其特征在于,包括以下步骤:A文件预处理文件进行预处理之前,USER会向CDC提出数据文件的存储请求,CDC按照其预先设定的访问控制规则对USER进行身份验证,通过CDC身份验证的合法用户便会获得进行文件存储的权限;USER通过CDC的身份验证之后,CDC便开始接收USER需要存储的数据文件,并对其进行预处理:(1)首先,数据文件将被分成大小相同的若干个数据块,F→(f1,f2,f3,f4,f5,f6,...fn),(2)然后,CDC对每个数据块进行哈希操作并求出所有数据块的哈希值H(fi)(1≤i≤n),(3)哈希操作之后,数据文件可以记为:F’→(f1+H(f1),f2+H(f2),f3+H(f3),...,fn+H(fn)),CDC将暂时保存所有数据块的哈希值,为接下来构造文件的验证数据结构Merkle?Hash?Tree做准备,(4)为了对数据块进行唯一的地理位置标记,方案为每个数据块添加了一个5字节大小的位置标签(LTag),标签由2字节的次序标记信息、1字节的机架标记信息和2字节的节点标记信息组成,次序标记信息记录的是数据块在所有数据 ...
【技术特征摘要】
1.一种基于哈希树的数据动态操作可验证性方法,其特征在于,包括以下步骤: A文件预处理 文件进行预处理之前,USER会向CDC提出数据文件的存储请求,CDC按照其预先设定的访问控制规则对USER进行身份验证,通过CDC身份验证的合法用户便会获得进行文件存储的权限; USER通过⑶C的身份验证之后,⑶C便开始接收USER需要存储的数据文件,并对其进行预处理: (1)首先,数据文件将被分成大小相同的若干个数据块,F-(fl,f2, f3,f4,f5,f6,...fn), (2)然后,CDC对每个数据块进行哈希操作并求出所有数据块的哈希值H(fi)(I ^ i ^ η), (3)哈希操作之后,数据文件可以记为:F’— (fl+H(fl),f2+H(f2),f3+H(f3),,fn+H(fn)),CDC将暂时保存所有数据块的哈希值,为接下来构造文件的验证数据结构Merkle Hash Tree 做准备, (4)为了对数据块进行唯一的地理位置标记,方案为每个数据块添加了一个5字节大小的位置标签(LTag),标签由2字节的次序标记信息、I字节的机架标记信息和2字节的节点标记信息组成,次序标记信息记录的是数据块在所有数据块中的次序编号,机架标记信息记录的是该数据块存储在数据中心的具体机架编号,节点标记信息则标明数据块存储的节点服务器的具体编号,CDC会为每个数据文件维护一个LTag标签列表,记录该文件所有数据块的LTag标签信息; (5)标签添加完毕之后 ,所有数据块将会被⑶C存入数据中心,数据块所存储的地理位置信息也会被记录在数据块自己的LTag标签之中,待所有数据块的LTag标签记录完毕,CDC将会为数据文件创建一个包含全部数据块地理位置信息的LTag标签信息列表, (6)随后,进行关键数据结构MerkleHash Tree的构造, 1)首先,CDC从Ltag标签列表中取出文件所有数据块的机架值Rack(LTag (fi)),对存储在不同机架中的数据块进行划分,存入相应机架的ListRack[]列表, 2)然后,⑶C依次从不同机架的ListRack[]列表中取出所有数据块Ltag标签中的节点信息,对存储在相同机架不同节点的数据块再次进行划分, 3)接着,对存储在相同机架相同节点的数据块,CDC将取出它们Ltag标签中的次序信息,进行按序排列,用数据块的哈希值作为叶子节点构造节点Merkle Hash Tree,并计算其根节点值,如果节点仅存有一个数据块,则该数据块的哈希值便为该节点Merkle HashTree的根节点值,,记为NRoot [i,j],其中i代表所在机架编号,j代表所在节点编号, 4)完成文件存储的所有节点MerkleHash Tree的构造和根节点值的计算工作之后,CDC将存储在相同机架的所有节点Merkle Hash Tree根节点值按节点顺序进行排序,将其作为叶子节点构造各个机架的Merkle Hash Tree,并计算其根节点值,如果机架仅有一个节点存储数据文件,则该节点的Merkle Hash Tree根节点值便为机架Merkle Hash Tree的根节点值,记为RRoot[i],其中i代表机架序号, 5)最后,对所有机架MerkleHashTree的根节点值进行按序排列,将它们的根节点值作为叶子节点构造文件的Merkle Hash Tree,并计算其根节点值(如果仅有一个机架存储数据文件,则该机架的Merkle Hash Tree根节点值便为文件Merkle Hash Tree的根节点值),记为FRoot ; B数据文件的验证 (1)首先,CDC完成USER的数据文件存储工作,并向TPA提交USER所存储数据文件的相关验证信息,数据文件在被USER删除之前,只要发生了改动,CDC都将负责为数据文件生成最新的验证信息,并与TPA进行实时更新, (2)然后,⑶C通知 USER数据文件的存储及验证信息的生成工作已经完成,并告知USER可以开始委托TPA对数据文件进行完整性和一致性的验证, (3)USER可以选择马上或者另选其他时间与TPA进行通信,来委托TPA对数据文件进行完整性和一致性验证, (4)TPA在收到USER的审计委托请求之后,会根据USER的需求对数据文件进行定期或不定期的审计验证,并对所有审计操作保留验证日志以供USER日后查验,验证过程中,如果出现数据文件验证失败的情况,则TPA将通过邮件或短信等通信方式告知USER,同时要求CDC进行数据文件的副本恢复等补救措施, 方案中数据文件的验证过程是指USER委托TPA所进行的定期不定期的数据文件完整性和一致性审查,TPA通过向⑶C提出数据文件的完整性和一致性验证请求,并对⑶C回复的验证信息进行审核,来完成USER所委托的验证工作,具体描述如下: 1)验证的起始阶段,TPA生成验证信息 checkM(UInfo, FInfo, RInfo (FRoot, RRoot [i],NRoot [i, j])), checkM验证消息由三部分组成:一是用户的个人信息UInfo, UInfo可以帮助CDC迅速准确定位需要进行查验的数据文件的拥有者;二是需要查验的数据文件信息FInfo,FInfo明确的指出需要进行查验的数据文件;三是具体的Merkle Hash Tree根节点信息RInfo, RInfo由数据文件Merkle Hash Tree根节点值FRoot、指定机架Merkle HashTree根节点值RRoot [i]和指定节点Merkle Hash Tree根节点值NRoot [i, j]三部分组成, 2)验证消息checkM生成之后,TPA会通过通信网络将checkM传送给CDC, 3)CDC接收到验证信息后,首先会对checkM进行分解,确定TPA所要审查的相关内容, 4)然后,⑶C使用上述A节介绍的相关MerkleHash Tree生成算法重新生成并计算相应Merkle Hash Tree及其根节点值, 5)完成所有验证信息的生成工作之后,⑶C将生成验证回复信息resp0ndM(UInf0,FInfo,RInfo’(FRoot,,RRootJ [i],NRootj [i, j])),其中,UInfo 和 FInfo 的内容与 checkM验证信息的前两部分保持一致,RInfo’则返回TPA需要审查的相关Merkle Hash Tree根节点值,包括指定的数据文件Merkle Hash Tree根节点值FRoot’、指定的机架Merkle HashTree根节点值RRoot’ [i]和指定的节点Merkle Hash Tree根节点值NRoot’ [i, j]三部分, 6)最后,TPA在收到respondM验证回复信息之后,将与自身保存的相关MerkleHashTree根节点值进行比对,如果结果一致,则审查失败,数据完整且与先前版本一致,反之,则说明数据与先前版本不一致,TPA将要求CDC进行数据文件的副本恢复等异常处理操作,并将审查结果告知USER ; C数据的动态操作 Cl数据的插入操作插入操作是数据文件最基本的动态操作内容,相对于修改和删除操作也是方案中最为复杂的动态操作,在数据文件的第i个数据块f i之后插入数据块f i ’,方案的操作步骤可以描述如下:(1)CDC计算出新的数据块fi’的哈希值H(fi’),并为需要进行插入操作的数据块fi’创建标签信息LTag(fi’), (2)生成并运行插入操作函数Insert(fi’,H(fi’),LTag(fi)),通过LTag(fi)定位数据块插入的具体位置,进行数据块的插入操作,(3)调用Merkle Hash Tree 插入操作函数 MerkleInsert (h (fi), h (fi ’ ), LTag (fi)),该函数对h(fi)和h(fi’ )进行连接操作,并对连结后的数值再次进行哈希操作,然后CDC使用哈希操作产生的新结果替代原来...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。