2. 福建师范大学 福建省网络安全与密码技术重点实验室, 福州 350007
Fujian Provincial Key Lab of Network Security & Cryptology, Fujian Normal University, Fuzhou 350007, China
随着互联网不断发展, 网络中传输信息不断增多, 数据不断增长, 大数据时代给社会存储数据及消耗的成本带来了巨大压力[1]. 云存储技术随之产生, 云存储服务基于不同技术结合相关设备, 为广大用户提供云端数据的访问功能及数据存储服务[2]. 云存储服务具有价格低廉、访问自由方便、管理便捷等优势[3], 已经成为云计算中应用最广泛的服务, 成为研究人员关注的焦点. 但是在不断发展过程中, 云存储服务也面对一些严重的安全问题及数据可能会丢失等风险. 早在2003年Deswarte等[4]提出首个基于RSA的远程数据审计方案来保障数据安全, 但计算开销很大.
现有的数据审计方案中, 分成数据持有性证明(Provable Data Possession, PDP)[5]和可恢复性证明(Proof of Retrieveability, PoR)[6]两种. 其中PDP机制可以不用下载数据文件而直接进行数据的完整性审计. PoR机制当数据丢失率在一定的范围内, 可以进行数据恢复. 两者的主要区别在于PoR机制使用纠错码来进行原始数据的恢复. 但是都只适用于静态数据. 为了解决这个问题, 学者们提出动态的审计方案[7], 但是不能支持完整的动态操作(例如: 修改、插入、删除). 为了解决这一问题, Erway等[8]结合认证跳表的数据结构, 首次提出可执行完整动态操作的PDP方案. 但是在前期的方案构造中都没有使用第三方可信中心, 因此用户与云服务器之间的审计无法保证公平公正. 随后, Wang等[9]在默克哈希树(Merkle Hash Tree, MHT)动态结构的基础上, 提出支持公开审计和完整动态操作的审计方案. 随着对云存储安全更加广泛的研究, 也不断的衍生出具有更多特性的数据完整性审计方案 [10–12].
在上述方案中, 大多是基于公钥基础设施. 众所周知, 从数字证书的颁发到吊销等一系列过程, 会带来不菲的代价和管理负担. 为解决这一问题, 2015年, Yu等[13]和Zhang等[14]提出基于身份的审计方案, 支持公开审计, 但两者都不支持动态操作. 2017年, Wang等[15]基于索引逻辑表动态数据结构, 提出基于身份的动态审计方案. 同年, Li等[16]提出基于模糊身份的审计方案, 虽解决了基于PKI系统所带来的问题, 但此方案仅支持静态数据, 不支持数据动态操作.
针对已有方案的缺陷, 避免了基于PKI系统对数字证书管理过程所带来的负担, 我们采用基于模糊身份的密码体制. 在文献[16]基础上, 结合MHT的动态数据结构, 设计新的基于模糊身份的动态数据完整性审计方案, 实现了完整动态操作, 包括修改、插入和删除操作. 最后也从文章的功能和计算代价上与方案[9,13,16]进行比较, 来进一步说明我们的优势.
1 预备知识 1.1 双线性对(1) 双线性:
(2) 可交换性:
(3) 非退化性:
默克哈希树本质上是一棵二叉树[9], 其叶子节点存储数据信息, 用来验证所存储的数据是否完整. 我们通过链接孩子节点的值, 再进行哈希运算进而得到非叶子节点的值. 验证者依次从最底层开始逐层运算, 最终计算出根节点Root的值. 如图1所示, 验证者拥有根节点值
1.3 基于模糊身份的签名[18]
具有模糊身份集合
1) 初始化阶段: 系统输入安全参数1k以及门限值
2) 密钥生成阶段: 输入模糊身份集合
3) 标签生成阶段: 输入用户私钥
4) 验证阶段: 输入验证者模糊身份集合
我们的方案包括4个实体, 如图2所示, 分别为: 密钥生成中心(Key Generation Centre, KGC), 云服务器(Cloud Server, CS), 云用户(Cloud User, CU), 第三方审计者(Third-Party Auditor, TPA). 其中, KGC根据云用户的模糊身份集合生成相应的用户私钥. TPA根据云用户的请求执行数据审计操作. 具体方案由以下6个算法组成:
1) 初始化阶段: KGC执行该算法, 输入安全参数
2) 密钥生成阶段: KGC执行该算法, 输入用户模糊身份集合
3) 标签生成阶段: CU执行该算法, 输入公开参数
4) 挑战-响应阶段: TPA执行此算法, 输入公开参数
5) 验证阶段: TPA接收到CS返回的响应RESP, 输入公开参数
6) 动态操作阶段: 当符合模糊身份集合的CU执行动态操作, 输入新的文件
在云存储系统中, 我们假设KGC是可信的, 执行密钥生成操作. TPA是半可信的, 它会诚实的执行操作, 但是也会对用户的信息产生好奇. 并且CS可能会由于某些利益因素, 恶意的篡改或者删除数据. 因此用户数据存储在云端可能会面临以下风险:
1) 正确性: 在审计验证过程中, TPA首先向CS发送挑战, 然后CS根据挑战信息进行响应回复. 最终, TPA验证响应信息的正确性.
2) 隐私性: 受用户委托, TPA完成云端数据审计. 但在整个审计协议实施过程中, 禁止泄露任何的用户数据信息给TPA. 即TPA会接收到CS发送的响应信息, 但TPA不能得到用户具体的数据块信息.
3) 伪造攻击: CS在提供数据存储服务时, 为了维护自身的利益, 可能故意删除普通云用户很少访问的数据文件. 或者由于其他利益因素, CS会发生篡改数据等恶意行为. 因此CS会通过某些方式对数据块和认证标签进行伪造, 以至于在整个审计过程中, 审计者不能发现数据被损坏.
4 具体方案 4.1 初始化阶段该算法由KGC执行, 进行系统初始化. 其中
$T(x) = {g_2}^{{x^m}} \cdot \prod\limits_{i = 1}^{m + 1} {{t_i}^{{\Delta _{i,m}}(x)}} $ | (1) |
其中,
$ \widehat {pp} = \{ {g_1},{g_2},{t_1},\cdots,{t_{m + 1}},\upsilon ',\Lambda = e({g_1},{g_2})\} $ | (2) |
用户向KGC请求对应私钥, 其拥有模糊身份集合
$ S{K_k} = {g_2}^{\widehat q(k)} \cdot T{(x)^{{r_k}}},s{k_k} = {g^{ - {r_k}}} $ | (3) |
最终输出用户的私钥
CU首先对文件进行分块得到
$\left\{ \begin{aligned} & SIG_{1,i}^k = \{ S{K_k} \cdot {(H({m_i}) \cdot \upsilon ' \cdot {u^{{m_i}}})^{{s_k}}}\} \\ & SIG_{2,i}^k = \{ {g^{ - {s_k}}}\} \\ & SIG_{3,i}^k = \{ {g^{ - {r_k}}}\} \end{aligned}\right. $ | (4) |
其中, 用
拥有模糊身份集合
1) 挑战阶段: TPA从
2) 响应阶段: 当CS接收到TPA的挑战信息, 它首先计算:
$\left\{ \begin{aligned} &\mu = \sum\limits_{i = 1}^c {{\mu _i} \cdot {m_i} \in {Z_q}} \\ & SIG_1^k = \prod\limits_{i = 1}^c {{{(SIG_{1,i}^k)}^{{\mu _i}}}} \\ & SIG_2^k = SIG_{2,i}^k\\ & SIG_3^k = SIG_{3,i}^k \end{aligned}\right. $ | (5) |
其次, CS需要给验证者提供部分辅助信息
当TPA接收到CS发回的响应, 首先利用
$ \prod\limits_{(i,{\mu _i}) \in CHAL} {\Lambda ^{{\mu _i}}} \mathop = \limits^? \prod\limits_{k \in s} \left\{ e(SIG_1^k,g) \cdot \prod\limits_{(i,{\mu _i}) \in CHAL} e(T(k),\{ SIG_3^k\} ^{\mu _i}) \cdot e((H({m_i}) \cdot \upsilon ')^{\mu _i} \cdot {u^\mu },SIG_2^k)\right\} ^{{\Delta _{i,m}}(0)} $ | (6) |
动态操作阶段包括3种情况: 数据的修改操作(M), 插入操作(I)以及删除操作(D).
(1)修改操作: 当用户把第
(2)插入操作: 在用户第i个数据块mi后插入数据块
3)删除操作: 删除操作与插入操作刚好相对立. 假设CS接收到删除数据块
5 正确性和安全性分析
在4.3节标签生成阶段, 数据标签
1) 正确性: 通过双线性对运算, 来判断4.5小节验证阶段中式(6)是否相等. 首先计算:
$ \begin{aligned} e(SIG_1^k,g) =& e\left(\prod\limits_{i = 1}^c {{{(SIG_{1,i}^k)}^{{\mu _i}}},g} \right) = e\left({\prod\limits_{i = 1}^c {(S{K_k} \cdot {{(H({m_i}) \cdot \upsilon ' \cdot {u^{{m_i}}})}^{{s_k}}})} ^{{\mu _i}}},g\right)\\ = & \prod\limits_{i = 1}^c {e{{(g_2^{\widehat q(k)},g)}^{{\mu _i}}} \cdot e{{(T{{(x)}^{{r_k}}},g)}^{{\mu _i}}} \cdot e((H({m_i}) \cdot } \upsilon ' \cdot {u^{{m_i}}}{)^{{\mu _i}}},{g^{{s_k}}}) \end{aligned} $ | (7) |
然后, 我们计算:
$ \begin{aligned} \prod\limits_{k \in s} \left\{ e\left(SIG_1^k ,g\right) \cdot \prod\limits_{(i,{\mu _i}) \in CHAL} e\left(T(k),{{\left\{ SIG_3^k\right\} }^{{\mu _i}}}\right) \cdot e\left((H({m_i}) \cdot \upsilon ')^{{\mu _i}} \cdot {u^\mu },SIG_2^k\right)\right\} ^{{\Delta _{i,m}}(0)}\\ =\prod\limits_{k \in s} \prod\limits_{(i,{\mu _i}) \in CHAL} \left\{ e(g_2^{\widehat q(k)},g) ^{{\mu _i}}\right\} ^{{\Delta _{i,m}}(0)} = {\prod\limits_{(i,{\mu _i}) \in CHAL} {e({g_2},{g_1})} ^{{\mu _i}}} = {\prod\limits_{(i,{\mu _i}) \in CHAL} \Lambda ^{{\mu _i}}} \end{aligned} $ | (8) |
因此, 式(6)中的等式成立, 验证通过.
2) 隐私保护: 在数据审计过程中, TPA向CS发送挑战信息CHAL, 并且收到响应回复RESP. 数据信息主要在响应回复中, 但是从式(5)中可以看出, 所有的响应回复都是数据块以及认证标签与随机数聚合的结果. 在整个过程中, TPA只能得到聚合值
3) 抵抗伪造攻击: 假设用户想要对数据块
1) 功能对比: 我们在功能上分别与文献[9,13,16]进行对比, 见表1. 在文献[9]的审计方案中, 支持完整的数据动态操作, 但是没有采用基于模糊身份的密码体制. 在文献[13]的方案是基于身份的密码体制, 文献[16]采用的是基于模糊身份的密码体制, 但是两者都只针对静态数据, 不能支持数据动态操作. 而我们的方案采用基于模糊身份的密码体制, 保证数据完整性的同时, 可以支持完整的动态操作.
2)性能分析: 分别从标签生成阶段, 挑战-响应阶段, 验证阶段, 以及动态操作阶段的计算代价进行分析. 其中
本文采用基于模糊身份的密码体制, 提出支持数据动态操作的审计方案. 在完成数据标签生成及审计操作过程中, 本方案简化了基于PKI审计方案所带来的证书管理问题. 更进一步结合MHT的动态数据结构, 使方案支持完整的动态操作, 且仍然保证数据完整性, 更加适用于云存储服务的需求. 通过进行安全性分析, 可以看出本方案能够抵抗伪造攻击, 且能够保护用户数据在审计方的隐私安全. 最后从功能对比和性能分析上也可以看出本方案的优势.
[1] |
Siddiqa A, Karim A, Gani A. Big data storage technologies: A survey. Frontiers of Information Technology & Electronic Engineering, 2017, 18(8): 1040-1070. |
[2] |
黄宇, 吴维刚, 赵军平. 分布式云存储: 理论、技术、系统专题前言. 软件学报, 2017, 28(8): 1927-1928. DOI:10.13328/j.cnki.jos.005205 |
[3] |
邓晓鹏, 马自堂, 高敏霞. 一种基于双线性对的云数据完整性验证算法. 计算机应用研究, 2013, 30(7): 2124-2127. DOI:10.3969/j.issn.1001-3695.2013.07.051 |
[4] |
Deswarte Y, Quisquater JJ, Saidane A. Remote integrity checking: How to trust files stored on untrusted servers. Proceedings of the 6th Working Conference on Integrity and Internal Control in Information Systems. Lausanne, Switzerland. 2004. 1−11.
|
[5] |
Ateniese G, Burns R, Curtmola R, et al. Provable data possession at untrusted stores. Proceedings of the 2007 ACM Conference on Computer and Communications Security. Alexandria, VA, USA. 2007. 598−609.
|
[6] |
Juels A, Kaliski Jr BS. PORs: Proofs of retrievability for large files. Proceedings of the 2007 ACM Conference on Computer and Communications Security. Alexandria, VA, USA. 2007. 584−597.
|
[7] |
Ateniese G, Di Pietro R, Mancini LV, et al. Scalable and efficient provable data possession. Proceedings of the 4th International Conference on Security and Privacy in Communication Netowrks. Istanbul, Turkey, 2008, 9. |
[8] |
Erway CC, Küpçü A, Papamanthou C, et al. Dynamic provable data possession. Proceedings of the 16th ACM Conference on Computer and Communications Security. Chicago, IL, USA. 2009. 213–222.
|
[9] |
Wang Q, Wang C, Li J, et al. Enabling public verifiability and data dynamics for storage security in cloud computing. Proceedings of the 14th European Symposium on Research in Computer Security. Saint-Malo, France. 2009. 355–370.
|
[10] |
Fu AM, Yu S, Zhang YQ, et al. NPP: A new privacy-aware public auditing scheme for cloud data sharing with group users. IEEE Transactions on Big Data, 2017. DOI:10.1109/TBDATA.2017.2701347 |
[11] |
Yan H, Li JG, Han JG, et al. A novel efficient remote data possession checking protocol in cloud storage. IEEE Transactions on Information Forensics and Security, 2017, 12(1): 78-88. DOI:10.1109/TIFS.2016.2601070 |
[12] |
Li JG, Yan H, Zhang YC. Certificateless public integrity checking of group shared data on cloud storage. IEEE Transactions on Services Computing, 2018, 1. DOI:10.1109/TSC.2018.2789893 |
[13] |
Yu Y, Zhang YF, Mu Y, et al. Provably secure identity based provable data possession. In: Au MH, Miyaji A, eds. Provable Security. Cham: Springer, 2015. 310–325.
|
[14] |
Zhang JH, Dong QC. Efficient ID-based public auditing for the outsourced data in cloud storage. Information Sciences, 2016, 343–344: 1-14. DOI:10.1016/j.ins.2015.12.043 |
[15] |
Wang F, Xu L, Wang HQ, et al. Identity-based non-repudiable dynamic provable data possession in cloud storage. Computers & Electrical Engineering, 2018, 69: 521-533. |
[16] |
李艳楠. 基于属性的云数据审计协议研究[硕士学位论文]. 成都: 电子科技大学, 2017.
|
[17] |
Boneh D, Franklin M. Identity-based encryption from the Weil pairing. SIAM Journal on Computing, 2003, 32(3): 586-615. DOI:10.1137/S0097539701398521 |
[18] |
Yang PY, Cao ZF, Dong XL. Fuzzy identity based signature with applications to biometric authentication. Computers & Electrical Engineering, 2011, 37(4): 532-540. |
[19] |
Wang HQ. Identity-based distributed provable data possession in multicloud storage. IEEE Transactions on Services Computing, 2015, 8(2): 328-340. DOI:10.1109/TSC.2014.1 |