全生命周期的云外包数据安全审计协议
2019-09-04柳玉东王绪安涂广升王涵
柳玉东 王绪安 涂广升 王涵
摘 要:海量数据的产生给用户带来了极大的存储和计算负担,云服务器的出现很好地解决了这一问题,但数据外包给用户带来便利的同时,也引起了一些的安全问题。针对数据在外包过程中的安全性问题,结合经典的字符串相等检测协议和基于等级的默克尔哈希树(RMHT)算法,设计并实现了一种理论更简化、效率更高的全生命周期的云外包数据安全审计协议。该协议不仅可以保证外包存储数据的完整性,用户可以定期对数据的完整性进行审计;而且可以保证数据的安全迁移;此外,还可以防止恶意的云服务器保留迁移数据的副本,更好地保护用户的隐私。安全性分析和效率分析显示,该协议足够安全并较为高效,外包数据在整个生命周期的安全性将得到较好的保护。
关键词:云存储;外包数据;全生命周期;可证明安全;审计协议
Abstract: The generation of massive data brings a huge storage and computational burden to users, and the emergence of cloud servers solves this problem well. However, data outsourcing brings convenience to users while it also causes some security problems. In order to solve the security problem of data in the outsourcing process, a simpler and more efficient cloud outsourcing data security auditing protocol throughout whole lifecycle was designed and implemented, which was combined with classical distributed string equality checking protocol and Rank-based Merkel Hash Tree (RMHT) algorithm. The protocol not only can protect the integrity of outsourced storage data, allowing users periodically audit its integrity, but also can guarantee the secure transfer of cloud data. Besides, the copy of transfer data can avoid being reserved by malicious cloud servers, protecting users privacy well. The analyses of security and efficiency show that the proposed protocol is sufficiently secure and comparatively efficient, the security of outsourcing data throughout its whole lifecycle will be protected well.
Key words: cloud storage; outsourcing data; whole lifecycle; provable security; auditing protocol
0 引言
在大数据时代,海量数据的产生给用户的存储和计算带来了极大的负担,云服务器应运而生,它可以提供安全可靠、简单高效、处理能力可弹性伸缩的存储和计算服务,其管理方式比物理服务器更为简单高效[1]。用户不再需要花费大量的费用来购买昂贵的硬件或者软件,只需向云服务器购买或者租赁存储和计算服务。数据外包给用户带来方便的同时,也带来一定的信任问题,数据的完整性和可用性受到了巨大的挑战[2-3]。用户对云服务的安全性、可用性和可靠性问题有所担心,对于云服务的使用还有所顾忌[4]。当数据外包之后,用户丧失了对数据的控制权,此时数据的安全审计变得尤为重要[5-6]。由于用户本地没有保存外包数据的副本,数据的完整性无法得到保证[7]。
在现实生活中,为了保证此处是保护,还是保证?请明确外包数据的完整性,用户需要定期对外包存储数据的完整性进行审计。采用传统的方法,用户需要将要审计的数据全部下载下来,这种方法一方面给用户带来的通信代价比较大,另一方面给用户本地也造成了巨大的存储负担[8]。解决这个问题的思想是可证明的数据持有协议(Provable Data Possession)[9-10]:用户不再需要下载审计的数据,只需发送一个完整性审计请求给云,云根据审计请求生成一个完整性证明返回给用户,用户进行验证即可完成审计[11]。数据持有性审计技术的研究对于安全云存储的发展有着重要的意义[12]。此外,不同的云存储提供商所提供的服务是有差异的,例如价格的高低、访问速度的快慢、安全性和可靠性等方面。基于这些不同的考虑,用户可能会选择不同的云服务提供商,以便最大限度地降低成本,获取高质量的服务;有时不同的用戶可能为了完成某项任务需要共享彼此云上的数据,这些现实需求使得外包数据在不同云服务器之间安全有效的迁移变得不可避免,故寻找一种能够确保数据安全有效的迁移机制成为该领域亟需解决的问题。目前能够有效地解决这个问题的思想是可证明的数据迁移协议(Provable Data Transfer)[13-14]:用户发送数据迁移请求给云服务器,云执行迁移请求发送迁移数据至目标云服务器,目标云服务器对收到的迁移数据的完整性进行验证,如果验证通过则将迁移数据存储到本地,并通知用户数据迁移成功,否则拒绝存储并通知用户数据迁移失败。还需注意的是,当外包数据从一个半可信的云传输到另一个半可信的云时,用户同样需要检查负责迁移数据的云是否删除了已迁移的数据,如果负责迁移数据的云保留了迁移数据的副本,那么用户的隐私将直接受到威胁。明星隐私照片泄露事件的背后其实是信息安全门,当时明星虽然已删除了照片,但恶意云保留了迁移数据的副本才导致了该事件的发生,那么如何才能确保云服务器安全完整地删除了数据?解决这个问题的思想是可证明的数据删除协议(Provable Data Deletion)[15]:用户发送删除验证请求给负责删除数据的云,如果云未按要求删除数据,生成的证明将无法通过用户验证。
学者们对于上述三种协议已做了很多研究工作,但总的来说他们的研究工作相对分散。外包数据的整个生命周期主要包括存储、更新、迁移和删除。如果能够确保外包数据在这些过程中是安全的,数据的机密性、完整性和可用性将不会遭到破坏[16],因此,如果能将可证明的数据持有协议、可证明的数据迁移协议和可证明的数据删除协议结合在一起,外包数据的安全性将得到保证。在本文中,完整地将可证明的数据持有协议、可证明的数据迁移协议和可证明的数据删除协议结合在一起,设计并实现了一种全生命周期的云外包数据安全审计协议,确保外包存储的数据在全生命周期的安全性。
1 本文协议
1.1 系统参数及定义
本文提出的全生命周期的云外包数据安全审计协议所涉及的参数符号如表1所示。
1.2 系统模型
该协议的系统模型如图1所示。
为了降低自身的存储负担和计算开销,用户选择云服务器A(以下简称“云A”)来存储他的数据。用户对数据的管理主要包括以下内容:一是定期审查存储在云服务器上的数据是否完好无损;二是当用户想要转移整体或者部分数据的存储位置时,使用传统的方法,用户需要将迁移的数据从云A上取回,然后再传输给云服务器B(以下简称“云B”)进行存储。为了降低通信开销,用户可以直接向云A发送数据迁移请求,云A对收到的迁移请求进行验证,如果验证通过则按照迁移请求将用户想要迁移的数据传输给云B,并在本地上将已迁移的数据删除。为了确定云A是否已真正地删除了迁移的数据,用户可以向云A发送删除验证请求来进行审计,云A根据请求生成删除证明返回给用户,用户对收到的证明进行验证即可确定云A是否保留有迁移数据的副本。最后,用户仍然可以发送完整性审计请求定期检查云A上剩余数据以及云B上新存储的数据的完整性。
1.3.1 密钥生成
在密钥生成算法中,可以根据安全水平来为本文协议选择参数,随机选择一个大素数p并将其公开,参数p的长度至少应该不低于安全水平λ。例如,如果安全水平是128位,那么参数p的长度应该大于或者等于128位。p选择完成后,从群Z*p中随机选择两个参数g和r。用户生成一对签名的公私钥对(ssk,spk) ← Sign()和一个AES方案的密钥k,伪随机函数FK1(·)可以是由以密钥K1为索引的伪随机函数家族{FK1(·)}中任意安全的一个[17],FK1(i)为FK1(·)输入i之后的输出。定义两个公开的哈希函数H1:{0,1}* → Z*p和H2:{0,1}* → Z*p,分别用于构造默克尔哈希树和加密,因此,系统的公钥为PK={p,g,spk},用户私钥为SK={r,K,ssk}。
1.3.2 数据外包存储
为了外包一个文件F′,用户首先使用纠错码生成文件F,然后将F分为n′块,用户在随机的位置添加(n-n′)个哨兵块到n′块中,并将哨兵块的位置记录在一个表PF中,因此,文件F被表示成为F=(m1,m2,…,mn),其中mi代表一个数据块,n为数据块的总数量,然后,用户用密钥k加密哨兵表PF:
1.3.3 数据完整性审计
在完整性审计模块,本文参考Chen等[18]此处是否应该为文献[17],文献18的作者不是Chen,请作相应调整。回复:在参考文献中,误将文献17和18的位置放反了,此处修改文中顺序保持不变,在参考文献中,将[17]和{18]两篇参考文献位置互换.的工作,使用改进的字符串相等检测协议。首先,回顾一下经典的字符串相等检测协议[18]:该协议的目的是确定Alice拥有字符串x∈{0,1}n和Bob拥有的字符串y∈{0,1}n是否相等。它的概念更简单、效率更高,因为所参与的运算只有内积运算,其通信开销为O(log n)。假设有一个公开的随机字符串池S{0,1}n,该协议的具体工作如下:
1)Alice随机选择一个字符串s∈S,将s和〈x,s〉mod 2一起發送给Bob。
2)Bob计算〈y,s〉mod 2,并验证该结果与〈x,s〉mod 2是否相等,如果不相等,则Bob告诉Alice;否则,该协议继续。
3)Alice和Bob重复这个过程100次,如果等式〈x,s〉=〈y,s〉一直成立,则Bob告知Alice两个字符串相等,该协议终止。
以上协议的原理如下:如果x=y成立,那么等式〈x,s〉=〈y,s〉将总是成立。如果x≠y,那么在1次循环中:Prs[〈x,s〉mod 2=〈y,s〉mod 2]=1/2,100次循环中,等式〈x,s〉=〈y,s〉一直成立的概率为1/2100,所以该协议发生错误的概率为1/2100,基本可以忽略。
为了更好地将字符串相等检测协议运用于云存储数据的完整性审计中,令Alice模拟用户,Bob模拟云服务器,将该协议作出以下改进:1)工作空间改为Znp(替代{0,1}n),外包数据文件F=(m1,m2,…,mn)为Znp上的一个向量,此改进不仅可以降低错误率,而且可以提升效率;2)为了节省通信开销,使用伪随机函数FK1(·)来代替公开的随机字符串池S直接生成字符串。具体的完整性审计过程如下。
当用户需要确定存储在云上的部分数据的完整性时,可以采用选择性审计的方式,即从序列{1,2,…,n}选择出需要审计的L个数据块的序列索引{i1,i2,…,iL},然后从ZLp上选择一个随机序列(ei1,ei2…,eiL),用户的审计请求为χ={{i1,i2,…,iL},(ei1,ei2…,eiL)}。当需要审计整个数据文件时,用户生成一个密钥为K2(λ位)的伪随机函数FK2(·),然后将K2发送给云,审计请求为χ=K2。根据审计方式的不同,云服务器生成证明的方式也有两种。对于部分数据的审计,云服务器进行如下计算:
计算完成后,云将生成的完整性证明φ={α, β}返回给用户,α中包含云服务器一侧的内积运算, β中包含用户一侧的内积运算。用户通过验证式(8)或者式(9)是否成立来确定所审计的数据是否完整。如果相等则返回1(接受);否则返回0(拒绝)。
1.3.4 数据迁移
當用户想要从云A迁移部分数据或者整个文件到云B时,它首先调用完整性审计算法来验证存储在云A上的数据的完整性,如果文件损坏,则返回错误;否则,用户从云A取回文件标签τ,并使用签名公钥spk验证签名τ。如果验证不通过则用户丢弃;否则,用户使用密钥k解密C来获得表PF中哨兵块的位置,然后,用集合Ψ来记录需要迁移的数据块的索引,之后生成一个数据迁移请求式(10)(Ψ为要迁移的数据块索引的集合)和一个新的文件标签式(11):
其中:n*为需要迁移的数据块的总数;C*为迁移的数据块中加密的哨兵表。最后,用户发送(Q,τ*)给云A,云A验证签名Signssk(fname‖Ψ),如果验证通过,则云A发送{(mi,Si)i∈ψ,Q,τ*,φ}和辅助认证信息Ω*。辅助认证信息为默克尔树中从叶子节点h(mi‖1)i∈ψ到根节点路径上的兄弟节点。例如:m1的辅助认证信息为Ω1={h2,hd,hb},如图2所示。云B收到信息之后,它首先验证签名Signssk(fname‖Ψ)和Signssk(fname‖n*‖C*)的正确性,如果验证通过,则利用辅助认证信息Ω*和数据块mi(i∈Ψ)重构基于等级的默克尔哈希树(相比原始的默克尔哈希树,基于等级的默克尔哈希树是在计算节点的哈希值时加入了该节点所包含的叶子节点的数量)[19],获得根节点hR*。最后,云B使用签名公钥spk解密签名φ来验证hR*与hR是否相等:如果相等,则将{(mi,Si)i∈χ,Q,τ*,φ,Ω*}存储在本地;否则拒绝存储并通知用户数据迁移失败。
1.3.5 数据删除
当数据块成功地从云A迁移到云B之后,云A执行数据删除命令删除已迁移的数据,图3展示的是删除一个数据块后默克尔哈希树的更新重构过程。为了确定云A是否已从本地删除了迁移的数据,用户可以发送删除验证来进行验证。具体验证过程如下:首先,用户向云A发送一个删除验证请求:
然后,云A对收到的请求进行验证,如果验证通过,云A将辅助认证信息{H(mi‖i),Ωi}i∈Ψ,根节点的签名值Signssk(hR)以及利用本地剩余的数据块重构基于等级的默克尔哈希树(RMHT)所获得根节点hR*一并返回给用户,用户根据收到的辅助认证信息重构基于等级的默克尔哈希树获得根节点hR′。最后,用户通过判断h*R和hR′是否相等来确定迁移的数据块是否已被删除。
2 协议分析
2.1 安全性分析
在完整性审计模块,如果用户外包存储在云上的数据遭到破坏,那么云服务器将无法生成伪造的证明来欺骗用户。接下来通过两个步骤来分析证明这个结论。
步骤1 当云上存储的数据遭到破坏时,云服务器不可能以一个不可忽略的概率来欺骗用户。首先,假如在本文的协议中使用的是一个真随机函数,让Pr[Unbound]表示一个云服务器成功欺骗用户的概率。根据线性代数理论知:Pr[Unbound]=negl(λ),然后,本文在原始协议中使用的是伪随机函数,由于恶意的云服务器有区分伪随机函数和真随机函数的概率,所以有Adv[PRF]≥Pr[Cheat]-Pr[Unbound],因此,Pr[Cheat]≤Adv[PRF]+Pr[Unbound]。
步骤2 本文展示如果Pr[Cheat]是不可忽略的,那么用户可以使用重构算法以Pr[Recover]=1-negl(λ)的概率来重构数据。其基本思想是用户可以获得外包数据和挑战向量的内积的线性方程组,然后求解方程组来获取外包的数据,早期的云存储证明过程[20]也有相似的处理方法。
可证明的数据迁移协议的安全性是以可证明的数据持有协议的安全性为基础的,因为迁移数据之前,首先要对云上数据的完整性进行审计。可证明的数据迁移协议和可证明的数据删除协议的安全性是以基于等级的默克尔哈希树和数字签名的安全性来保证的,具体的证明过程与文献[19]给出的过程一致。有兴趣的读者可以参考Xue等[19]中的安全性证明工作。
2.2 效率分析
一个编码好的外包数据文件F拥有n个数据块,在数据外包存储之前,用户生成n个可验证的标签一共需要计算n个模乘和n个模指数运算,在构造基于等级的默克尔哈希树时,用户需要计算(2n-1)个哈希函数,加密哨兵表需要计算1次AES加密算法,生成文件标签以及给根节点签名各需计算1次签名运算。在完整性审计模块,对于部分文件的审计(L个数据块),云服务器生成完整性证明需要计算(2L-1)个模乘运算和L个模指数运算,用户验证返回的完整性证明需要计算(L+1)个模乘和1个模指数运算;对于整个文件的审计(n个数据块),云服务器生成完整性证明需要计算(2n-1)个模乘运算和n个模指数运算;用户验证返回的完整性证明需要计算(n+1)个模乘和1个模指数运算。整个完整性审计过程中,仅使用了模乘和模指数运算,没有使用双线性映射等复杂运算,因此概念更简单,效率更高。在数据迁移模块,用户首先要调用上述的完整性审计算法对外包数据的完整性进行审计,该代价不再进行赘述。如果完整性审计通过,用户执行一次签名运算验证取回的文件标签、一次AES解密运算解密哨兵表和一次AES加密运算加密迁移数据的哨兵表,生成迁移请求和新的文件标签各需执行1次签名运算;云A验证迁移请求需要执行1次签名运算,如果验证通过则执行迁移请求发送数据至目标云B;云B收到的迁移数据后,验证请求和文件标签各需执行1次签名运算。如果验证通过,根据辅助认证信息重构基于等级的默克尔哈希树需要计算若干个哈希运算,之后执行1次签名解密运算。在删除验证模块,用户生成删除验证请求需要执行1次签名运算,云A对收到的请求进行验证需要执行1次签名运算,如果验证通过则返回证明给用户,用户重构基于等级的默克尔哈希树需要计算多个哈希函数,之后对获取的根节点执行1次签名运算。计算复杂度方面,模乘、模指数和哈希函数的计算代价较低;通信开销方面,用户与云服务器之间以及不同云服务器之间的交互主要是发送请求和返回证明,因此通信代价也很小,所以从理论上讲,用户端和云服务器端都很轻量。
为了更好地验证本协议的實用性和运行效率,本文在Windows操作系统下,安装JDK1.8并配置了相关的Java虚拟机环境,使用Java语言编程对其进行了软件实现。经运行测试,其实际运行时间消耗与理论分析基本一致,在文件外包即文件上传过程中时间耗费相对较多,但是文件在一次上传后可以进行多次的审计,多次改变外包数据的存储位置,因此,该协议具有较高的效率和较好的实用性。
3 结语
本文以云存储数据的安全为研究对象,考虑到数据从外包给云服务器进行存储、更新、在不同云服务器之间迁移以及数据删除等过程中的安全性,完整地将可证明安全的数据持有协议、可证明安全的数据迁移协议和可证明安全的数据删除协议结合在一起,设计并实现了一种全生命周期的云外包数据安全审计协议,用户可以在全生命周期内对数据进行跟踪审计。安全性分析表明该协议是安全的,效率分析也表明该协议较为高效。总的来说,本协议对于安全云存储的发展有一定的促进作用。如何设计更安全、更高效的数据审计协议来保证外包数据在整个生命周期的安全性是下一步的研究方向。
参考文献 (References)
[1] 杨娜.云计算与云存储技术研究[J].黑龙江科学,2014(12):234-234.(YAN N. Research on cloud computing and cloud storage technology[J]. Heilongjiang Science, 2014(12): 234-234.)
[2] SUN W, LIU X, LOU W, et al. Catch you if you lie to me: efficient verifiable conjunctive keyword search over large dynamic encrypted cloud data [C]// Proceedings of the 2015 IEEE Conference on Computer Communications. Piscataway, NJ: IEEE, 2015: 2110-2118.
[3] LIU X, ZHANG Y, WANG B, et al. Mona: secure multiowner data sharing for dynamic groups in the cloud [J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(6): 1182-1191.
[4] 陈兰香,许力.云存储服务中可证明数据持有及恢复技术研究[J].计算机研究与发展,2012,49(s1):19-25.(CHEN L X, XU L. Research on data hold and recovery technology in cloud storage service[J]. Journal of Computer Research and Development, 2012, 49(s1): 19-25.)
[5] LIU J, HUANG K, RONG H, et al. Privacy-preserving public auditing for regenerating-code-based cloud storage[J]. IEEE Transactions on Information Forensics and Security, 2015, 10(7): 1513-1528.
[6] XIANG T, LI X, CHEN F, et al. Achieving verifiable, dynamic and efficient auditing for outsourced database in cloud[J]. Journal of Parallel and Distributed Computing, 2018, 112: 97-107.
[7] 谭霜,贾焰,韩伟红.云存储中的数据完整性证明研究及进展[J].计算机学报,2015,38(1):164-177.(TAN S, JIA Y, HAN W H, Research and development of data integrity proof in cloud storage[J]. Chinese Journal of Computers, 2015, 38(1): 164-177.)
[8] SHEN W, QIN J, YU J, et al. Enabling identity-based integrity auditing and data sharing with sensitive information hiding for secure cloud storage[J]. IEEE Transactions on Information Forensics and Security, 2019, 14(2): 331-346.
[9] ATENIESES G, BURNS R, CURTMOL R, et al. Provable data possession at untrusted stores [C]// Proceedings of the 2007 ACM Conference on Computer and Communications Security. New York: ACM, 2007: 598-609.
[10] ZHU Y, HU H, AHN G J, et al. Cooperative provable data possession for integrity verification in multicloud storage[J]. IEEE Transactions on Parallel and Distributed Systems, 2012, 23(12): 2231-2244.
[11] 張毅.云存储服务中可证明数据持有及恢复技术分析[J].电子设计技术,2014(2):25-33.(ZHANG Y. Data storage and recovery technology analysis in cloud storage services[J]. Electronic Design Technology, 2014(2): 25-33.)
[12] 徐葵.云存储环境下数据持有性审计技术研究与应用[D].长沙:湖南大学,2013:32-39.(XU K. Research and application of data holding audit technology in cloud storage environment [D]. Changsha: Hunan University, 2013: 32-39.)
[13] YU Y, NI J, WU W, et al. Provable data possession supporting secure data transfer for cloud storage [C]// Proceedings of the 2016 International Conference on Broadband and Wireless Computing. Piscataway, NJ: IEEE, 2016: 88-96.
[14] HAN J, SUSILO W, MU Y, et al. Attribute-based data transfer with filtering scheme in cloud computing [J]. Computer Journal, 2014, 57(4): 579-591.
[15] KLONOWSKI M, PRZYKUCKI M, STRUMINSKI T. Data deletion with provable security[C]// WISA 2008: Proceedings of the 2008 International Workshop on Information Security Applications. Berlin: Springer, 2008: 240-255.
[16] 冯登国,张敏,张妍,等.云计算安全研究[J].软件学报,2011,22(1):71-83.(FENG D G, ZHANG M, ZHANG Y, et al. Cloud computing security research[J]. Journal of Software, 2011, 22(1): 71-83.)
[17] Wikipedia. Communication complexity [EB/OL]. [2018-10-12]. http://en.wikipedia.org/wiki/ Communication complexity.
[18] CHEN F, XIANG T, YANG Y, et al. Secure cloud storage hits distributed string equality checking: more efficient, conceptually simpler, and provably secure[C]// Proceedings of the 2014 IEEE Conference on Computer Communications. Piscataway, NJ IEEE, 2014: 2389-2397.
[19] XUE L, NI J, LI Y, et al. Provable data transfer from provable data possession and deletion in cloud storage[J]. Computer Standards and Interfaces, 2016, 54(1): 46-54.
[20] WANG C, CHOW S S M, WANG Q, et al. Privacy-preserving public auditing for secure cloud storage[J]. IEEE Transactions on Computers, 2013, 62(2): 362-375.