云存储中基于抵抗主动攻击的完整性验证方法
【技术领域】
[0001] 本发明属于通信安全领域,特别设及一种数据完整性验证方法,可用于云存储中 支持客户端在失去数据所有权的前提下完成数据完整性的验证。
【背景技术】
[0002] 云存储作为一种新型的存储模型,具有远程存储数据的能力,已经得到了广泛的 应用。越来越多的公司,通过外包公司的数据到云端,W减小本地数据存储的压力。随着运 些优势的出现,云存储的安全性也成为了人们所关注的焦点问题,尤其是在云存储中,当用 户失去了对数据的所有权时,攻击者和不安全云服务商对用户数据造成的数据损坏成为一 个主要的安全问题。因此,数据完整性验证成为了一个热口话题。
[000;3]在由Rashmi M.Jogdand and R.H.Goudar撰写的"Enabling public verifi曰bility 曰nd 曰v曰il曰bility for secure d曰t曰 storage in cloud computing"论 文中首次提出了哈希树的概念,极大地提升了用户验证数据完整性的性能,但该文却没有 考虑到不安全云所带来的重放攻击和本地用户在失去数据所有权时所带来的验证问题。
[0004] 针对上述安全问题Mehdi Sooldiak,Abdullah Gani,M址ammad Khurram Khan and Rajkumar Buyya在论艾'Dynamic remote data auditing for securing big data storage in cloud computing"中提出了一种在失去数据所有权情况下的远程数据完整性 验证的方法,并且此方法可W在云端动态地更新用户数据,并利用DCT模型(Divide and Conquer化ble)减少了数据更新带来的计算复杂度。但是该方法的缺陷在于,主动攻击者 恶意地修改云端存储的用户数据后,并截获云服务商发送的完整性证明信息并加 W修改, 随后发送修改过的证明信息给用户,此证明信息可W欺骗用户,通过用户的验证,但实际上 用户存放在云端的数据已经被恶意篡改,面对运样的主动攻击,该方法却无法抵抗。
【发明内容】
[0005] 本发明的目的在于针对上述现有技术存在的无法抵抗主动攻击的安全问题,提出 一种抵抗主动攻击的数据完整性验证方法,W在完成数据完整性验证和动态更新数据的过 程中避免对云端数据的恶意篡改,提高抵抗主动攻击的能力。
[0006] 本发明的技术思想是:通过密码学哈希函数,如MD5,SHA-1保护云服务提供商CSP 所生成的过于裸露的证明信息;利用哈希函数的单向性,使得主动攻击者在截获证明消息 后,无法通过普通的计算来任意修改证明信息,从而无法通过后续用户端的验证阶段,制止 恶意攻击者对用户到欺骗。
[0007] 根据W上思路,本发明的实现方案包括如下:
[0008] (1)用户初始化步骤:
[0009] 用户将文件F分为η块,生成分块文件{/(嘴;li,通过{/〇')枯,生成分块文件的主标 签巧紅和辅助标签
[0010] 用户选择密码学哈希函数H,伪随机函数f,伪随机置换函数31,并本地保存两个标 签巧};'=1,仪估;
[0011] (2)用户通信与询问步骤:
[001 ^ 他)用户发送分块文件{/(OKU给云服务提供商CSP,随后本地删除{/(/)忙1,W节 省用户存储空间;
[0013] (2b)用户为伪随机函数f选择第一安全参数ki,为伪随机置换31选择第二安全参数 k2,并选择所要验证文件分块数量C,生成询问信息chal = k,ki,k2}发送给云服务提供商 CSP;
[0014] 其中C不少于分块文件总数量η的10%,第一安全参数ki的长度不少于512比特,第 二的安全参数k2的长度不少于51化k特。
[0015] (3)抵抗主动攻击步骤:
[0016] (3a)云服务提供商CSP接收询问信息后,通过用户所需验证的C个分块文件 {/(饼;=,,生成证明信息proof给用户,其中:
[0017]
[0018] 其中,H( ·)表示哈希函数,Sy( ·)表示代数签名函数,丫表示伽罗瓦域中的一个 元素,aj表示伪随机函数生成的第j个系数,f(ij)表示第个文件分块,表示伪随机置换 函数生成的第j个文件分块的序号,j表示用户所需验证的C个分块文件的序号,1 < j < c,c表示用户选择验证文件分块数量。
[0019] (3b)用户通过哈希函数Η的单向性特性,对主动攻击者修改证明信息proof的行为 进行抵抗,使攻击者的攻击结果失败,保护证明信息proof无法任意修改;
[0020] (4)用户验证步骤:
[0021] (4a)用户在抵抗了主动攻击的行为后,利用本地保存C个主标签件/f%,和C个辅助 标签{与.}%1生成本地用户的验证信息μ:
[0022]
[0023] 其中,馬表示第1^个主标签,表示第1^个辅助标签;
[0024] (4b)利用用户的验证信息μ的哈希值Η(μ)对收到的证明信息proof再进行验证:
[0025] 如果等式H(y)=proof成立,则用户认为保存在云服务提供商CSP的用户数据完 整;
[00%]否则,用户认为数据被破坏。
[0027] 本发明与现有技术相比具有如下优点:
[0028] 1.本发明中,用户通过本地保存的主标签和辅助标签所生成的证明信息对云服务 提供商返回的证明信息进行验证,可完成对远程数据的完整性验证任务。
[0029] 2.本发明中,由于用户仅发送文件分块,而不发送用户自己生成的主标签与辅助 标签,从而减少了数据的通信量。
[0030] 3.本发明中,由于云服务提供商在发送证明信息时,通过使用哈希函数保护证明 信息,利用哈希函数的单向性特性,保护了证明信息不被破坏,从而抵抗了主动攻击的行 为。
【附图说明】
[0031] 图1为本发明的实现流程图。
[0032] 图2为本发明中抵抗主动攻击的子流程图。
【具体实施方式】
[0033] 下面结合附图对本发明做进一步的描述。
[0034] 参照图1,本发明的实现步骤如下:
[0(X3日]步骤1,用户初始化。
[0036] (la)对文件进行分块:
[0037] 当用户需要将本地文件F发送给云服务提供商CSP时,用户首先要进行文件的分块 操作,文件的分块技术包括均匀分块技术,重叠分块技术,变长分块技术等,本实例选择均 匀分块技术,即用户需将所要存储的文件F均匀等分成η块,设文件F长度为L,生成分块文件 {/(0),"=,,每个分块长度为^,当最后一个分块不能达到分块长度^时,在其后面补0,使 ^巧」 L巧- 其长度达到^; _η _
[0038] (化)用户通过下式将分块文件{/贷拉1生成分块文件的主标签巧枯,和辅助标签 :
[0039] Ti=s 丫 (f(i)N (idfI lillkllVi))
[0040] Ci = S 丫(IDfIUI |Li| |Vi)
[0041] 其中,f(i)表示第i个分块文件,i表示分块文件f(i)在整体文件中的序号,l<i< n,n表示分块文件的块数,II符号表示参数的级联,I化表示文件的唯一身份信息,u表示分 块文件f(i)在分治表DCT中序号,其中分治表DCT表示一种顺序存储数据的模型,该模型是 由一般的顺序存储模型切割所得,并将切割所得到的存储空间进行标号即可,Vi表示分块 文件f(i)在分治表DCT中的版本号,Sy( ·)表示代数签名函数,是一种具有代数性质的哈希 函数,其主要代数性质满足
丫表示伽罗瓦域中的一个元素;
[0042] (Ic)用户选择密码学哈希函数H:
[0043] 在众多哈希函数算法中,数字签名算法細A-1,信息-摘要算法5即MD5,最为常用, 本实例用户选择信息-摘要算法5即MD5作为密码学哈希函数H;
[0044] (Id)在众多伪随机函数中,基于随机表查找的伪随机函数和Monte Carlo伪随机 函数最为普遍,本实例用户选择Mon t e Car 1 0伪随机函数爲,其函数形式为: 爲:!(川.4 X觀皆心巧^祗皆,k读示伪随机函数Λ的安全参数,X表示伪随机变换函数爲 的输入长度,1表示伪