何司蒙 杨 超 姜 奇 杨 力 马建峰
(西安电子科技大学网络与信息安全学院 西安 710071) (陕西省网络与系统安全重点实验室(西安电子科技大学) 西安 710071) (simenghe@foxmail.com)
随着互联网的快速发展,网络用户数量激增,产生海量数据,然而用户本地计算和存储能力有限,因此,云计算服务给数据计算和存储提供了新的解决方案,用户通过云服务器,可以享受到快速高效的计算资源,可以更便捷地共享存储资源.然而,云存储服务器面临了2种矛盾的需求:1)云服务器需要减少数据存储空间的开销;2)用户出于数据安全和隐私的考虑,往往希望自己的数据加密存储.如果用户拥有相同的文件数据,那么云服务器可以通过对待上传的文件进行重复性检测来判断是否需要上传该文件,实现相同文件去重工作;并且云服务器不需要重复存储,有效提高云服务器存储利用率.研究表明:去重工作减少了90%~95%的后台备份数据的存储[1],减少了68%的标准文件系统存储[2],这些系统资源提升工作为云计算发展带来了明显的经济价值.
用户在上传文件至云服务器前,为了确保数据隐私安全,会选择加密文件后再进行上传[3-5].由于加密密钥选择的多样性,即使拥有相同的明文,也会计算得到不同的密文[6],这就使得拥有相同明文的不同用户在上传自己加密数据后,服务器无法识别其重复性,从而造成大量相同数据重复存储,导致云存储利用率低.因此,如何在文件加密场景下完成文件所有权认证、高效地进行去重工作、提高云存储的利用率成为了当前的研究热点.
早在2011年,Halevi等人[7]就提出了“所有权认证”(proof of ownership, PoW)的概念,PoW策略提出服务器应验证用户是否真正拥有某个文件,而不仅是与文件相关的短消息.在文件所有权认证步骤中,客户端在原始明文基础上建立Hash树,云服务器要求客户端返回随机选定的叶子节点及其到根节点路径上的节点集,若所有叶子节点及其到根节点路径上的节点与服务器端运算结果相同,那么服务器通过该客户端的文件所有权认证,否则所有权认证失败.但是,在该方案中客户端需要消耗大量资源建立Hash树,对客户端计算能力要求较高;并且该方案建立在明文数据上,不利于保护客户端数据安全.
收敛加密由Douceur等人[8]首先提出,在该策略中,将文件Hash值作为文件加密密钥,利用对称加密算法对文件进行加密.文献[9]提出了客户端密文文件级去重方法,该方法利用收敛加密与文件所有权认证方法相结合,这样相同的明文加密后将得到相同的密文,有利于服务器识别文件的重复性.但收敛加密是不安全的,因为它的加密密钥是通过确定的算法由文件本身生成,因此容易被泄露.某种程度上,收敛加密所受到的攻击和“Hash as a proof”方法所受到的攻击是一致的[7].并且由于加密密钥由文件Hash值生成,那么低熵文件的安全在该方法中无法保证.
此外,文献[10]提出了一种用于用户敏感数据的客户端去重方案.该方案能够在诚实而好奇的服务器场景下保护数据的隐私.在该方案中,用于加密文件的Hash值作为文件所有权认证的证据,这种方法仍然是用短消息表示文件,所受到的攻击和“Hash as a proof”方法所受到的攻击是一致的[7].
虽然收敛加密已被广泛应用,但由于它没有达到语义安全,因此,文献[11]提出消息锁定式加密(message-locked encryption, MLE)框架,规范了去重方案的机密性和完整性定义,保证数据在不可预测情况下做到语义安全,收敛加密即为MLE的一个特例.但该方案中使用凭据T作为拥有文件的凭证,若凭据T泄露则密文泄露,无法保证文件的机密性.
由于收敛加密算法中密钥与明文强关联,无法抵抗暴力破解攻击,攻击者可以利用暴力破解方式根据Hash值生成的加密密钥得到原始明文,因此文献[12]提出了DupLESS方案.在该方案中,增加了一个密钥服务器(key-server)用来生成文件的加密密钥,而不是直接用明文Hash值作为加密密钥,并且密钥服务器生成的密钥也与原始文件相关,这样可以防止由于数据可预测导致的MLE不安全问题.然而该方案引入了负责密钥生成的第三方密钥服务器,这样做需要更高的安全假设前提,在现实中难以保证和实现.
文献[13]提出了一种对文件预处理后客户端去重的方案,用户对文件利用纠删码扩展加工后分块,在文件数据块上建立Hash树,将Hash树的根节点作为摘要,与服务器进行所有权认证.该方法虽然与原始Hash树所有权认证方法相比有所改进,但是在该方法验证所有权时,随机选择一定数量的文件块进行所有权认证是概率条件下的认证,不能完整验证文件所有权,无法保证所有权认证的安全性.
文献[14]提出了一种基于(n,k,r)-RSSS(ramp secret sharing scheme)[15-16]的收敛密钥管理方案Dekey,该方案中首位上传者生成并保存共享秘密信息(secret shares),对于n个共享秘密信息的实体,其中任k个可以恢复秘密信息,任r个不能推理出秘密信息,因此在该方案中需要利用(n,k,r)-RSSS机制将密钥存储在多个密钥管理服务器上,恢复密钥时需要获得一定的先验知识后通过多个密钥管理服务器进行密钥恢复.该方案在密钥管理方面有所改进,但由于方案中需要多个密钥管理服务器参与,整个方案的安全性假设仍然较高,不易实现.
文献[17]提出了一种支持文件级和数据块级去重的客户端去重方案,由于该方案建立在两级密钥上,需要利用主密钥和标签值共同加密文件或文件数据块,其中标签值用于文件所有权认证,因此在客户端运算过程中需要计算大量的中间数据,并且客户端需要保留主密钥;所有权认证建立在低熵的标签值上,在所有权认证过程中会泄露原始明文信息,无法保证文件的安全性.
在此基础上,文献[18]提出了一种利用第三方服务器代理重加密的方法实现文件密钥传递及椭圆曲线密码算法实现加密文件所有权认证的方案.在该方案中,需要利用第三方代理服务器实现密钥信息传递,因此对代理服务器提出更高的安全假设,增加了第三方交互运算量,在实际中需要更高的假设前提.
由上述加密场景去重方法的分析可知以下3点:
1) 大部分方案为了能够实现加密场景下去重,均采用收敛加密方法,这些方案认为若不使用收敛加密方法,由于加密密钥选择的多样性,会阻止拥有相同明文的密文去重;然而当文件部分信息泄露或文件熵值较小时,收敛加密方法不能保证语义安全,攻击者可利用收敛加密密钥恢复原始明文,导致明文信息泄露.
2) 部分去重方案中,文件所有权认证仅基于部分文件的挑战应答,而非整体文件信息;这种基于概率条件下的所有权认证,不能完整确认文件所有权,当文件信息泄露时,攻击者在一定概率条件下可猜测文件信息,从而通过所有权认证导致文件信息泄露.
3) 如何将首位上传者的文件密钥安全传递至后续上传者是密文去重场景下的一个重要环节,但目前除了使用收敛加密方法外,其他方案均需使用第三方服务器辅助分发密钥,这种方式需要更高的安全假设支持,并且方案性能受第三方服务器影响,不适用于具体实际场景.
因此,目前的方案还未能同时满足密钥与文件内容分离、完整所有权认证及不使用第三方传递密钥这3个条件,如何建立一个具有密钥与文件内容分离、完整所有权认证、不使用第三方服务器传递密钥等特点的密文去重方案是当前亟待解决的问题.
综合上述问题,本文提出了一种新的密文去重场景下所有权认证与密钥传递方法,其主要思路是:文件首位上传者对文件进行预处理,利用独立成对Hash方法生成不损失熵的文件大摘要,利用隐藏凭据恢复方法注册阶段,对文件密钥进行保护处理生成凭据,并将凭据与文件密文上传至云服务器.后续上传者与服务器利用零知识验证方法,通过不损失熵的文件大摘要进行文件所有权认证交互,若后续上传者所有权认证成功,则服务器将后续上传者标记为文件拥有者,通知后续上传者删除本地文件,实现客户端密文去重;否则文件所有权认证失败.通过所有权认证的文件拥有者可利用隐藏凭据恢复方法传递阶段恢复文件密钥,后续可利用该密钥解密密文.本方案具有密钥与文件内容分离、完整所有权认证、不使用第三方服务器传递密钥等特点,更适用于现实场景.
通过安全性分析理论证明本方案所有权认证及密钥传递达到了可证明的安全强度,实际云平台的测试数据表明,本方案时间效率良好,减少了密文去重的运算量,使用户可以更方便高效地使用云服务.
隐藏凭据恢复方法(hidden credential retrieval, HCR)[19]是一种在重复使用用户口令的情况下,将用户的秘密信息安全地存储在不可靠的服务器上,并能安全地恢复秘密信息的协议方法,常运用于云存储中基于口令的加密系统.HCR协议建立在Diffie-Hellman签名模式上[20],在HCR协议方法中,用户仅需要保存一个秘密口令pwd,服务器即使是恶意的、不可信的,也可以实现将用户信息msg安全存储在服务器端.
隐藏凭据恢复方法分为2个阶段:注册阶段和传递阶段,通过这2个阶段的运算,从而实现对加密信息的安全传递.
1) 注册阶段
① 用户选择随机数v和随机数S;
② 客户端计算中间变量h=vS;
③ 客户端计算口令传递值D=(hash(pwd))S;
④ 客户端计算口令传递保护值r=msg×D-1;
⑤ 用户将(v,h,r,S)发送至服务器并存储.
2) 传递阶段
① 服务器检索后发送(v,h,r)至用户;
② 客户端选择一个随机数R,由此计算口令证据值U=vRhash(pwd),并将口令证据值U发送至服务器;
③ 服务器计算口令证据验证值B=US,将口令证据验证值B发送至客户端;
④ 客户端计算口令传递值D=B×h-R;
⑤ 客户端计算msg=r×D,恢复得到原始信息msg.
零知识验证协议[21]是交互系统中常用的一种认证协议,证明者能够在交互多次后让验证者相信自己声称拥有某一秘密的正确性.零知识验证一般分为3步:承诺、挑战、应答.
1) 利用系统参数,证明者选择随机数,生成承诺值commit,将承诺值commit发送至验证者;
2) 利用系统参数,验证者选择随机数,生成挑战值chal,将挑战值chal发送至证明者;
3) 证明者根据挑战值chal及自己拥有的秘密信息,生成证据值Proof,将证据值Proof发送至验证者完成应答.
独立成对Hash方法(pairwise independent Hash)[22]是一种安全的Hash族方法,包含一个Hash族群,其中每一个Hash函数都是独立成对的,即对于任意的2个不同的输入值以及任意2个输出值,其结果相对应的概率仅与Hash族群的长度有关,与输入值输出值无关,且不损失信息熵.
根据不同的输入值,利用独立成对Hash方法,可生成对应不损失熵的输出值.
本文方案的系统模型如图1所示,主要包括云存储服务器和客户端2个实体.
Fig. 1 System model of our scheme图1 本文方案系统模型图
1) 云存储服务器.拥有大量存储空间,可提供数据存储服务,用户通过购买或租赁一定大小的云存储空间成为云存储用户,在提供云存储服务过程中,安全传递文件加密密钥,参与用户所有权认证交互,完成密文去重工作,提高存储利用率.
2) 用户客户端.在密文去重场景中,用户分为首位上传者、后续上传者以及拥有某一文件的用户.用户通过上传文件至云存储服务器完成文件数据的存储备份,其中首位上传者上传密文并利用隐藏凭据恢复方法保护加密密钥的传递;后续上传者与服务器利用不损失熵的文件大摘要及零知识验证方法进行所有权认证交互,若通过认证,则不再需要上传文件,实现客户端密文去重;通过所有权认证的文件拥有者可利用隐藏凭据恢复方法安全获取文件加密密钥,后续可解密密文得到原始文件.
对应于2.1节所述系统模型的敌手模型如下:
1) 外部攻击者.外部攻击者可能获取了用户的部分数据,或是在网络传输中截获到部分数据,从而发起重放攻击,破坏密文去重中所有权认证交互.
2) 内部攻击者.内部攻击者是指能够直接访问到存储数据的攻击者,包括云存储服务器及客户端恶意软件.诚实而好奇的服务器可能会非法访问数据,客户端恶意软件可能会对密钥进行字典攻击等.
系统安全性假设:
1) 假设云存储服务器与文件拥有者相互独立且不共谋;
2) 假设文件拥有者上传文件正确匹配的不损失熵的文件摘要值及Hash值.
Fig. 2 Protocol framework of our scheme图2 本文方案协议框架示意图
本文方案实现了一种新的密文去重场景下所有权认证与密钥传递方法,用于解决现有技术中所有权认证安全性低的问题,并实现密文去重场景下密钥的安全传递.其设计思想是:首位上传者对文件进行预处理,利用独立成对Hash方法生成不损失熵的文件大摘要,利用隐藏凭据恢复方法注册阶段,对文件密钥进行保护生成凭据,并将凭据与文件密文上传至云服务器.后续上传者与服务器利用零知识验证方法,通过不损失熵的文件大摘要进行文件所有权认证交互,若后续上传者所有权认证成功,则服务器将后续上传者标记为文件拥有者,通知后续上传者删除本地文件,实现客户端密文去重;否则文件所有权认证失败.通过所有权认证的文件拥有者可以利用隐藏凭据恢复方法传递阶段,恢复文件密钥,后续可以利用该密钥解密密文.本文方案整体协议框架如图2所示:
本方案包括用户客户端和云服务器2个实体,用户通过服务器实现文件所有权认证及加密密钥传递,本文方案的详细设计分别如图3~5所示.
Fig. 3 First user operation in the protocol图3 首位上传者交互流程图
Fig. 4 Subsequent user operation in the protocol图4 后续上传者交互流程图
Fig. 5 Key transmission operation in the protocol图5 密钥传递交互流程图
本方案系统初始化定义为
p与q是2个素数,满足关系q|p-1;
G是以素数p为阶的乘法循环群,其中g是G上的一个生成元,G={g0,g1,…,gp-1};
h()为md5Hash函数;
hash()为SHA1Hash函数;
Hrandom()为独立成对Hash方法;
DEK为首位上传者随机选择的文件加密密钥;
Enc()为对称加密方法;
CF为加密得到的密文文件.
步骤1. 文件首位上传者U1对明文F进行预处理,并将预处理结果上传至服务器,详细设计如图3所示,具体过程如下:
步骤1.1. 首位上传者U1利用md5Hash函数h(),计算明文F的索引值h(F);
步骤1.2. 首位上传者U1利用独立成对Hash方法,计算明文F的不损失熵的文件大摘要Hrandom(F),其中:
步骤1.2.1. 首位上传者U1对明文F进行分块,得到明文F={w1,w2,…,wi,…,wl},其中wi表示明文F中的第i块,l表示块的数量,且i∈[1,l];
步骤1.2.2.首位上传者U1利用SHA1Hash函数hash(),计算明文F中每一块wi的Hash值yi=hash(w1‖w2‖…‖wi),并将所有块的Hash值联结,得到明文F正向Hash值Y={y1‖y2‖…‖yl};
步骤1.3. 首位上传者U1随机生成文件对称加密密钥DEK,并利用该对称加密密钥DEK对明文F进行加密,得到文件密文CF=Enc(DEK,F),其中Enc()为对称加密方法;
步骤1.4. 首位上传者U1对文件对称加密密钥DEK的保护:首位上传者U1选择随机数v和随机数S,利用隐藏凭据恢复方法,通过随机数v和随机数S,计算中间变量h=vS,并通过随机数S和文件大摘要Hrandom(F),计算文件对称加密密钥DEK传递值D,再通过传递值D和对称密钥DEK,计算文件对称加密密钥DEK传递保护值r,详细过程如下:
步骤1.4.1. 首位上传者U1通过明文F的不损失熵的文件大摘要Hrandom(F)和随机数S,计算文件对称加密密钥DEK传递值D=(hash(Hrandom(F)))S,其中hash()为SHA1Hash函数;
步骤1.4.2. 首位上传者U1计算文件对称加密密钥DEK传递保护值r=DEK×D-1;
步骤1.5. 首位上传者U1将随机数v、随机数S、中间变量h和文件对称加密密钥DEK传递保护值r发送至服务器并存储,实现对文件对称加密密钥DEK的安全传递,同时将明文F的索引值h(F)和文件密文CF发送至服务器并存储.
步骤2. 后续上传者U2与服务器进行文件所有权认证交互,交互流程如图4所示,具体过程如下:
步骤2.1. 后续上传者U2利用md5Hash函数h(),计算明文F′的索引值h(F′),并将索引值h(F′)发送至服务器;
步骤2.2. 服务器判断明文F′索引值h(F′)与存储的明文F索引值h(F)是否相等,若是,选择随机数w,并将随机数w发送至后续上传者U2,否则,结束运算;
步骤2.3. 后续上传者U2利用独立成对Hash方法,计算明文F′的不损失熵的文件大摘要Hrandom(F′),同时选择随机数t,并利用零知识验证方法,通过明文F′的不损失熵的文件大摘要Hrandom(F′)、随机数w和随机数t,在生成元为g的p阶乘法循环群G中计算所有权认证的证据值Proof、承诺值commit、辅助值aux和辅助验证值auxw,最终将所有权认证的证据值Proof、承诺值commit和辅助验证值auxw发送至服务器,运算过程如下:
步骤2.3.1. 后续上传者U2计算所有权认证的证据值Proof=(Hrandom(F′)×w+t)modq;
步骤2.3.2. 后续上传者U2计算所有权认证的承诺值commit=gtmodq;
步骤2.3.3. 后续上传者U2计算所有权认证的辅助值aux=g-Hrandom(F′)modq,并通过所有权认证的辅助值aux和随机数w,计算所有权认证的辅助验证值auxw,其中,q是一个素数,且q|p-1;
步骤2.4. 服务器利用零知识验证方法,通过所有权认证的证据值Proof,在生成元为g的p阶乘法循环群G中计算所有权认证的证据验证值gProof,并判断gProof×auxw与承诺值commit是否相等,若相等,后续上传者U2文件所有权认证成功,将文件所有权认证成功的后续上传者U2标记为文件拥有者,并通知后续上传者U2删除本地明文F′,从而实现客户端密文去重,否则,后续上传者U2文件所有权认证失败,结束运算;
步骤3. 利用服务器实现密钥传递,交互流程如图5所示,具体过程如下:
步骤3.1. 服务器将随机数v、中间变量h和对称密钥DEK传递保护值r发送至通过所有权认证的文件拥有者;
步骤3.2. 文件拥有者选择随机数R,并通过随机数R、文件大摘要Hrandom(F)和随机数v,计算文件大摘要Hrandom(F)证据值U=vRhash(Hrandom(F)),其中hash()为SHA1Hash函数,再将证据值U发送至服务器;
步骤3.3. 服务器通过证据值U和随机数S,计算文件大摘要Hrandom(F)证据验证值B=US,并将证据验证值B发送至文件拥有者;
步骤3.4. 文件拥有者通过证据验证值B、中间变量h和随机数R,计算文件对称加密密钥DEK传递值D=B×h-R,并通过对称密钥DEK传递保护值r和传递值D,计算文件对称加密密钥DEK=r×D.
文件拥有者首先利用不损失熵的大摘要通过零知识验证方法完成所有权认证,再利用隐藏凭据恢复方法通过云服务器安全获取到文件加密密钥,实现了客户端密文去重,并成功传递文件密钥,整体协议结束.
定理1. 假设离散对数问题的困难性,那么本文设计的所有权认证方案是一个零知识验证方案.
证明.
具有零知识验证特性的交互协议方案具有完备性、正确性、零知识性这3个属性,离散对数问题的困难性意味着攻击者根据所有权认证的证据验证值gProof无法推导得到证据值Proof.
1) 完备性.对于协议方法中的证明者和验证者,如果诚实地遵守协议方法流程,那么诚实的验证者接受该证明者的证明.
完备属性意味着只有当客户端证明者拥有原始明文文件,诚实的证明者与验证者按照协议规定的交互流程进行,那么验证者通过证明者所有权认证的概率为1.验证过程为
(1)
2) 正确性.对于一个不正确的协议方案,通过调整其协议交互策略,从而能够使验证者通过证明者所有权认证,该事件发生的概率可以忽略.
正确属性意味着当攻击者没有原始文件时,无论攻击者使用什么方式,服务器端都不会通过其所有权认证.
假设攻击者没有正确完整的原始文件,那么攻击者不能计算出正确的证据值Proof和证据辅助值aux,因此攻击者也无法计算得到正确的承诺值commit,当攻击者将不正确的证据值Proof、承诺值commit和辅助验证值auxw发送至服务器后,服务器判断服务器端存储的gProof×auxw与承诺值commit不相等,因此攻击者所有权认证失败,保证了协议的正确属性.
3) 零知识性.证明者和验证者在整个协议的交互过程中,生成的证明副本可以由平均拟多项式时间(pseudo-polynomial time, PPT)算法生成,并且由该算法生成的证明副本与真实的证明副本是不可区分的,即通过模拟可以实现无差别的证明过程.
零知识属性意味着一个诚实而好奇的服务器,在本协议方法中,除了能获知客户端是否拥有原始文件外,不能获知与原始文件相关的其他任何信息.这种零知识属性被定义为“诚实验证者零知识”,在本协议方案中能够提供足够的安全性.
假设存在一个模拟器,它与服务器之间进行交互,能够替代拥有原始文件的客户端生成一个证明副本,并且该证明副本与拥有原始文件的客户端所生成的证明副本在计算复杂度上无差别.
在整个协议的辅助值aux基础上,模拟器可以在平均拟多项式时间PPT(in|q|)内计算证明副本,步骤如下:
1) 初始化证明副本为空串;
2) 选择随机数w,t;
3) 利用文件大摘要Hrandom(F)计算证据值Proof=(Hrandom(F)×w+t)modq;
4) 计算承诺值commit=(gProof×auxw)modq;
5) 证明副本copy←commit.
假设证明者和验证者诚实地按照协议方法流程交互,那么可以描述一个模拟器对证明交互进行模拟,生成证明副本copy.模拟器可以在拟多项式时间PPT内生成该证明副本,在其运算过程中没有原始明文参与运算,不会泄露原始明文的信息,并且在每一次协议过程中都使用随机数,防止攻击者进行重放攻击.
综上,在诚实的云服务器场景中,本协议基于零知识验证的所有权认证方法具有完备的零知识验证特性.
证毕.
定理2. 如果对于随机密钥DEK,任一攻击者在拟多项式时间PPT内,挑战猜测密钥信息DEK成功的概率是可以忽略不计,那么基于隐藏凭据的密钥传递是安全的.
证明.
为了能够更好地量化攻击者挑战成功的概率,我们需要补充定义符号:
t1和t2分别是独立合法的挑战f1和f2的数目,n1和n2分别是这些挑战中被拒绝的响应数,其中n1≤t1,n2≤t2,f1表示离线挑战,f2表示在线挑战.
为了更好地简化算法,我们假设对于每一个f2中的挑战,都是在每一个f1中的挑战之前,并且f1与f2中的挑战相互独立,即如果f1中的挑战失败,不会影响到f2中的挑战结果.并且,我们假设挑战f1与f2是与攻击者猜测得到的信息DEK′相关.
我们同时假设文件大摘要Hrandom(F)是独立一致于字典Dic的,并且在攻击者角度上看来,原始的密钥信息DEK是一个在{0,1}k内不可区分的序列,攻击者除了知道原始的密钥信息DEK是集合M的一个子集之外,没有其他任何先验知识,其中M⊆{0,1}k,k表示密钥信息DEK的长度.
基于隐藏凭据的密钥传递方法有可能遭受的攻击分为外部攻击和内部攻击,这2种攻击涉及到的参数有:安全参数λ,|D|是文件大摘要Hrandom(F)集合的长度,negl[λ]表示对于任意非零常数c,存在一个有限非零数L,对于任意λ>L,都有negl[λ]<λ-c.
1) 外部攻击.外部攻击者Aout可能获取到用户的部分数据,或者是在网络传输过程中截获到部分数据,模拟用户与云服务器进行密钥传递交互.若外部攻击者Aout通过了密钥传递交互,获取到文件加密密钥DEK,则外部攻击者Aout挑战成功.
① 外部攻击者Aout模拟用户生成一个文件大摘要Hrandom(F)′,然后向云服务器发起密钥传递请求,云服务器根据索引h(F)向外部攻击者Aout发送随机数,然而由于攻击者Aout没有真正完整的Hrandom(F)由算法的特性可知,攻击者Aout挑战成功的概率为
② 外部攻击者Aout绕过文件大摘要Hrandom(F),直接对文件加密密钥DEK进行猜测,则攻击者Aout猜测得到DEK,挑战成功的概率为
综上,外部攻击者Aout挑战成功的概率如式(2)所示,所以基于隐藏凭据的密钥传递方法具有外部安全性.
(2)
2) 内部攻击.内部攻击者Ain可能控制了诚实而好奇的服务器,由于好奇而非法访问用户数据,并发起离线字典攻击,恢复得到文件加密密钥DEK,则内部攻击者Ain挑战成功.
① 恶意好奇的云服务器对存储的密钥传递保护值发起字典攻击,生成密钥DEK′,利用密钥DEK′解密密文,由HCR的安全性可知,内部攻击者Ain在解密过程中获取到文件大摘要Hrandom(F)信息的概率为
② 内部攻击者Ain模拟外部攻击者Aout行为,对文件大摘要Hrandom(F)猜测攻击,由外部攻击者挑战成功的概率说明,即使一个外部攻击者Aout足够强大,本协议中基于隐藏凭据的密钥传递方法依然具有外部安全性.
综上,内部攻击者Ain挑战成功的概率为
所以基于隐藏凭据的密钥传递方法具有内部安全性.
在实际计算场景中,外部攻击者Aout会有更强的约束条件,参数q与复杂的中间人攻击相关联,并且相比于任何ο-随机预言模型Hash函数计算而言,参数q非常小.值得注意的是,基于隐藏凭据的密钥传递方法中参数p和R并没有参与到攻击者挑战成功的概率计算中.由于参数p有可能会被外部攻击者Aout被动窃听截获,参数R有可能会在协议会话过程中被内部攻击者Ain获取,但服务器不会从用户协议中获得任何反馈信息,因此不会对攻击者挑战成功的概率计算有所影响.
综上,在诚实的云服务器场景中,本协议基于隐藏凭据的密钥传递方法是安全的.
证毕.
本节给出对本方案运行性能的评估,主要测试其在密文去重所有权认证与密钥传递过程中产生的通信开销.
为了使测试场景更贴近实际,在本方案中我们租用了位于青岛的阿里云服务器作为实验中服务器端,加上位于西安的用户客户端,共同完成文件所有权认证与密钥传递工作.由百度地图测得西安─青岛图上距离为1 058.6 km,如图6所示:
Fig. 6 The test plan diagram图6 测试方案示意图
本方案的实验设备为云服务器1台、用户客户端2台,实验设备具体参数如下:
搭建的服务器实验环境为阿里云服务器,部署于青岛,CPU单核3.00 GHz、内存2 GB、操作系统为Windows Server 2008标准版32 b、带宽5 Mbps.
本地客户端位于西安,使用Win7(32 b)操作系统、双核IntelTMCoreTM2 Duo CPU E8400 3.00 GHz、内存4 GB、500 GB硬盘.
测试程序由C++编写,其中AES、MD5、零知识证明的指数运算部分用到了cryptopp5.6.3库[23].
针对不同大小文件,分别测试1 MB,5 MB,10 MB,50 MB,100 MB,200 MB,300 MB,400 MB,500 MB,600 MB,800 MB,1 000 MB文件,记录首位上传者计算文件Hash值、文件大摘要、文件加密、生成HCR凭据并将凭据与密文共同上传至服务器的各部分运行时间,实验数据结果如下.
生成大摘要时间开销如表1所示:
Table 1 Comparison of Calculation Time BetweenHrandom(F) and h(F)表1 生成大摘要与文件Hash值的时间对比
在本方案中,统一采用AES-128加密算法对文件数据加密,文件加密时间如表2所示:
Table 2 File Encryption Time表2 文件加密时间
首位上传者利用HCR协议注册阶段对密钥进行保护,生成HCR凭据,并将凭据与密文一并上传至云服务器,总体时间关系如表3所示:
Table 3 First User HCR Protection and Upload Time表3 首位上传者HCR密钥保护及上传时间
针对不同大小文件,分别测试1 MB,5 MB,10 MB,50 MB,100 MB,200 MB,300 MB,400 MB,500 MB,600 MB,800 MB,1 000 MB文件,记录后续上传者利用零知识验证方法实现所有权认证,并与利用MHT(Merkel-Hash tree)方法实现所有权认证的时间进行比较,实验数据结果如表4所示:
Table 4 Comparison of the Total Time BetweenZero-Knowledge Proof and MHT表4 零知识验证与MHT的总时间对比
针对不同大小文件,分别测试1 MB,5 MB,10 MB,50 MB,100 MB,200 MB,300 MB,400 MB,500 MB,600 MB,800 MB,1 000 MB文件,记录通过所有权认证的文件拥有者利用HCR协议传递阶段恢复文件密钥,针对不同大小文件,HCR传递阶段测试数据如表5所示:
Table 5 File Owner HCR Transmission Time表5 文件拥有者HCR传递时间
针对不同大小文件,分别分析1 MB,5 MB,10 MB,50 MB,100 MB,200 MB,300 MB,400 MB,500 MB,600 MB,800 MB,1 000 MB文件测试数据.首位上传者计算大摘要的时间与文件大小相关,测试的12组数据如图7所示.由表1及图7可知.计算大摘要的时间与计算文件Hash值的时间相比,时间性能上差别不大.但计算的大摘要不损失文件熵值,可以利用大摘要作为后续的所有权认证凭据,而直接计算的文件Hash值只能作为文件标识,不能无损地代表文件本身.
Fig. 7 Compare between Hrandom (F) and h(F)图7 生成大摘要时间与文件Hash值时间对比图
首位上传者对文件数据进行加密,由表2及图8可知,随着文件大小的增加,文件加密时间也在增量变化,但文件加密这一操作,仅需要首位上传者
实现,对于同一明文文件,仅需要一次文件加密上传,因此这一步骤对整体协议方案影响较小.
Fig. 8 File encryption time图8 文件加密时间图
由表3、表5及表6可知,本方案中首位上传者利用HCR协议注册阶段对密钥进行保护,生成HCR凭据,通过所有权认证的文件拥有者利用HCR协议传递阶段恢复文件密钥,整体传递恢复时间与云服务器带宽有一定关系.文献[18]中使用代理重加密方法实现首位上传者密钥传递至后续通过所有权认证的文件拥有者,这一过程由于第三方代理服务器参与,整体密钥传输时间受第三方服务器影响较大.由图9比较HCR协议整体运算时间和代理重加密整体运算时间可知,本方案密钥传递方法相较于代理重加密密钥传递方法性能更优.
Table 6 Comparison of Transmission Time Between HCR and Proxy Re-encryption表6 HCR与代理重加密密钥传递时间对比
Fig. 9 Compare between HCR and proxy re-encryption图9 HCR与代理重加密总时间对比图
本方案中后续上传者利用零知识验证方法实现所有权认证,由表4及图10可知,针对不同大小的文件,本方案与采用MHT方法实现所有权认证时间相差较小,相较于整体文件上传及下载时间而言,时间差影响可忽略,有效实现文件所有权认证,完成去重工作.
Fig. 10 Compare between zero-knowledge proof and MHT图10 零知识验证与MHT时间对比图
综合本节上述性能分析,以1 000 MB文件为例,对比文献[9]、文献[18]及本文方案,其中文献[9]是当前典型的利用收敛加密及MHT方法实现密文去重的方案,文献[18]是当前典型的利用椭圆曲线加密及代理重加密方法实现密文去重及密钥传递的方案.假设用户均采用AES-128加密算法,并且实验环境网络条件相同,那么对于相同的密文文件上传时间相同.在本实验环境中,1 000 MB文件平均加密时间是83.63 s,密文文件上传至云服务器的平均时间是166.82 s,共计250.45 s,对于这部分时间,3种方案取相同值,不再进行讨论.对于1 000 MB文件,统计3种方案中首位上传者与后续上传者平均计算时间,本方案中首位上传者统计生成文件Hash值、文件大摘要值及HCR凭据值时间,后续上传值统计零知识验证时间,并计算首位上传者及后续上传者运算总时间和,对比数据结果如表7所示:
Table 7 Compare Among 3 Protocols in 1 000 MB File表7 1 000 MB文件3种协议时间对比 s
由表7及图11可知,本文方案与文献[9]中首位上传者及后续上传者计算总时间相差较小,远小于文献[18]中计算总时间.由测试数据可知,首位上传者及后续上传者计算总时间远远小于加密文件并上传至云服务器时间,由于文件加密并上传总时间与文件大小成正比,那么采用客户端密文去重方案可以大大减少文件重复加密上传时间,提高云服务器存储利用率,具有良好的应用价值.
Fig. 11 Compare among 3 protocols in 1 000 MB file图11 1 000 MB文件3种协议总时间对比图
本文提出了一种新的密文去重场景下所有权认证与密钥传递方法.利用独立成对Hash方法生成不损失熵的文件大摘要,同时利用零知识验证方法完成文件所有权认证,验证过程具有零知识性,保护数据隐私,提高文件所有权认证过程的安全性.利用隐藏凭据恢复方法,加密密钥与文件无关,同时隐藏凭据恢复方法可以建立在服务器不可信的两方密钥传递过程中,不需要第三方服务器参与,在密钥传递过程中不会泄露密钥信息,保证密钥传递的安全性.最后通过安全性分析理论证明本方案所有权认证及密钥传递达到了可证明的安全强度,实际云平台的测试数据表明,本方案时间效率良好,减少了密文去重的运算量,使用户可以更方便高效地使用云服务,具有很高的应用价值.
[1]Opendedup. In-line deduplication to a cloud storage backend—SDFS can send all of its data to AWS, AZURE, or Google[OL]. [2016-01-06]. http:opendedup.org
[2]Meyer D, Bolosky W. A study of practical deduplication[J]. ACM Trans on Storage, 2012, 7(4): 1-20
[3]Tsai Chunwei, Lai Chinfeng, Chao Hanche, et al. Big data analytics: A survey[J]. Journal of Big Data, 2015, 2(1): 1-32
[4]Wei Lifei, Zhu Haojin, Cao Zhenfu, et al. Security and privacy for storage and computation in cloud computing[J]. Information Science an International Journal, 2014, 258(3): 371-386
[5]Wen Mi, Lu Rongxing, Zhang Kuan, et al. PaRQ: A privacy-preserving range query scheme over encrypted metering data for smart grid[J]. IEEE Trans on Emerging Topics in Computing, 2013, 1(1): 178-191
[6]Wen Mi, Lu Kejie, Lei Jingsheng, et al. BDO-SD: An efficient scheme for big data outsourcing with secure deduplication[C]Proc of the 22nd IEEE Conf on Computer Communications Workshops. Piscataway, NJ: IEEE, 2015: 214-219
[7]Halevi S, Harnik D, Pinkas B, et al. Proofs of ownership in remote storage systems[C]Proc of the 18th ACM Conf on Computer and Communications Security. New York: ACM, 2011: 491-500
[8]Douceur J, Theimer M, Bolosky W. Encryption systems and methods for identifying and coalescing identical objects encrypted with different keys[OL]. [2007-09-04]. http:www.freepatentonline.com
[9]Xu Jia, Chang Ee-Chien, Zhou Jianying. Weak leakage-resilient clientside deduplication of encrypted data in cloud storage[C]Proc of the 8th ACM SIGSAC Symp on Information, Computer and Communications Security. New York: ACM, 2013: 195-206
[10]Xu Jia, Zhou Jianying, Chang Eechien. Leakage-resilient client-side deduplication of encrypted data in cloud storage[OL]. 2011 [2012-05-01]. http:eprint.iacr.org
[11]Bellare M. Message-locked encryption and secure deduplication[G]LNCS 7881: Proc of the 32nd Annual Int Conf on the Theory and Applications of Cryptographic Techniques. Berlin: Springer, 2013: 296-312
[12]Bellare M, Keelveedhi S, Ristenpart T. DupLESS: Server-aided encryption for deduplicated storage[C]Proc of the 22nd USENIX Security Symp. Berkeley, CA: USENIX Association, 2013: 179-194
[13]Wee Keongng, Wen Yonggang, Zhu Huafei. Private data deduplication protocols in cloud storage[C]Proc of the 27th Annual ACM Symp on Applied Computing. New York: ACM, 2012: 172-191
[14]Li Jin, Chen Xiaofeng, Li Mingqiang, et al. Secure deduplication with efficient and reliable convergent key management[J]. IEEE Trans on Parallel and Distributed Systems, 2014, 25(6): 1615-1625
[15]Huang Wentao, Langberg M, Kliewer J, et al. Communication efficient secret sharing[J]. IEEE Trans on Information Theory, 2016, 62(12): 7195-7206
[16]Li Jin, Chen Xiaofeng, Huang Xinyi, et al. Secure distributed deduplication systems with improved reliability[J]. IEEE Trans on Computers, 2015, 64(12): 3569-3579
[17]Chen Rongmao, Mu Yi, Yang Guomin, et al. BL-MLE: Block-level message-locked encryption for secure large file deduplication[J]. IEEE Trans on Information Forensics and Security, 2015, 10(12): 2643-2652
[18]Yan Zheng, Ding Wenxiu, Yu Xixun, et al. Deduplication on encrypted big data in cloud[J]. IEEE Trans on Big Data, 2016, 2(2): 138-150
[19]Boyen X. Hidden credential retrieval from a reusable password[C]Proc of the 4th Conf on Computer and Communications Security. New York: ACM, 2009: 228-238
[20]Alexandra B. Threshold signatures, multisignatures and blind signatures based on the gap-Diffie-Hellman-group signature scheme[G]LNCS 2567: Proc of the 6th Advances in Public Key Cryptography(PKC2003). Berlin: Springer, 2003: 31-46
[21]Cash D, Kupcu A, Wichs D. Dynamic proofs of retrievability via oblivious RAM[J]. Journal of Cryptology, 2017, 30(1): 22-57
[22]Barak B, Dodis Y, Krawczyk H, et al. Leftover Hash Lemma, revisited[C]Proc of the 31st Int Cryptology Conf. New York: ACM, 2011: 1-20
[23]Wei Dai. Crypto++5.6.3[OL]. [2015-11-20]. https:www.cryptopp.com
HeSimeng, born in 1993. Master candidate in Xidian University. Her main research interests include cloud computing and storage security.
YangChao, born in 1979. Received his PhD degree in computer science and technology from Xidian University in 2008. Professor in Xidian University. His main research interests include crypto-graphy and information & network security.
JiangQi, born in 1983. Received his PhD degree in computer science and technology from Xidian University in 2011. His main research interests include security protocols and wireless network security.
YangLi, born in 1977. Received his PhD degree in computer science and technology from Xidian University in 2009. His main research interests include security protocols and wireless network security.
MaJianfeng, born in 1963. Professor and PhD supervisor in Xidian University. His main research interests include network and information security, cryptography.