田俊峰,宋倩倩,王浩寧
(河北大學(xué) 網(wǎng)絡(luò)空間安全與計(jì)算機(jī)學(xué)院,河北 保定 071002)
云存儲(chǔ)是從云計(jì)算衍生而出的概念,是利用云計(jì)算技術(shù)和架構(gòu)來(lái)為用戶提供按需付費(fèi)的存儲(chǔ)服務(wù),為用戶減少了管理數(shù)據(jù)、硬件購(gòu)置和維護(hù)的費(fèi)用.隨著網(wǎng)絡(luò)的發(fā)展和人們生活方式的改變,現(xiàn)實(shí)生活的數(shù)據(jù)規(guī)模不斷增大,越來(lái)越多的用戶選擇將自己的數(shù)據(jù)存儲(chǔ)到云中.然而,云存儲(chǔ)系統(tǒng)給人們帶來(lái)便利的同時(shí)也伴隨著安全的挑戰(zhàn).例如:2017年3月,京東內(nèi)部人員與黑客長(zhǎng)期勾結(jié)販賣公民信息,泄露近50億條公民信息[1];2017年9月,美國(guó)信用機(jī)構(gòu)Equifax遭到黑客攻擊,導(dǎo)致高達(dá)1.43億客戶的個(gè)人信息泄露[2];2018年7月,騰訊云由于物理硬盤出現(xiàn)故障,給創(chuàng)業(yè)公司“前沿?cái)?shù)控”帶來(lái)了毀滅性的打擊等事件[3].這些安全問(wèn)題影響了公眾對(duì)云存儲(chǔ)的信心,從而阻礙了其進(jìn)一步的應(yīng)用和發(fā)展.
當(dāng)用戶將數(shù)據(jù)存儲(chǔ)到云服務(wù)器中,半可信的云服務(wù)提供商可能未經(jīng)用戶授權(quán)的情況下對(duì)存儲(chǔ)在云中的數(shù)據(jù)進(jìn)行修改和刪除等操作.近來(lái),威脅云數(shù)據(jù)安全的事件頻繁發(fā)生,現(xiàn)將威脅云數(shù)據(jù)安全的原因總結(jié)如下:1)服務(wù)器發(fā)生故障,這種故障雖屬于小概率事件,一旦發(fā)生,會(huì)給用戶造成巨大的傷害;2)存儲(chǔ)在云中的數(shù)據(jù)可能遭到黑客或者其他用戶的竊取,導(dǎo)致用戶信息泄露;3)云服務(wù)提供商為了經(jīng)濟(jì)利益,可能刪除一些用戶不常訪問(wèn)的數(shù)據(jù).顯然,云數(shù)據(jù)的安全問(wèn)題已經(jīng)成為亟待解決的問(wèn)題.為此,數(shù)據(jù)持有性證明機(jī)制的研究越來(lái)越受到學(xué)術(shù)界和工業(yè)界的重視.
近些年來(lái),為了驗(yàn)證用戶存儲(chǔ)在云中數(shù)據(jù)的完整性,越來(lái)越多的數(shù)據(jù)持有性證明方案被相繼提出,進(jìn)而滿足不同用戶的實(shí)際需求.本文針對(duì)目前的發(fā)展現(xiàn)狀,探討了數(shù)據(jù)持有性證明機(jī)制的系統(tǒng)模型、審計(jì)框架、功能特性和安全需求,并基于數(shù)據(jù)持有性證明的主要方案進(jìn)行了歸納,分析了存在的問(wèn)題并對(duì)其未來(lái)研究趨勢(shì)進(jìn)行了展望.
本節(jié)首先對(duì)云存儲(chǔ)的系統(tǒng)模型和審計(jì)框架進(jìn)行了介紹,隨后對(duì)數(shù)據(jù)持有性證明機(jī)制的功能特性和安全需求進(jìn)行了簡(jiǎn)單論述.
云存儲(chǔ)環(huán)境下數(shù)據(jù)持有性驗(yàn)證機(jī)制分為私有數(shù)據(jù)持有性驗(yàn)證機(jī)制和公開(kāi)數(shù)據(jù)持有性驗(yàn)證機(jī)制,對(duì)應(yīng)了不同的數(shù)據(jù)存儲(chǔ)模型.
1) 私有的數(shù)據(jù)持有性驗(yàn)證機(jī)制包括2個(gè)實(shí)體:云服務(wù)提供商(cloud server provider,CSP)和用戶(user).如圖1所示.
圖1 私有數(shù)據(jù)完整性驗(yàn)證機(jī)制Fig.1 Private data integrity verification mechanism
云服務(wù)提供商:提供彈性伸縮服務(wù)的實(shí)體,為用戶提供按需付費(fèi)的服務(wù),擁有海量的存儲(chǔ)空間和較強(qiáng)的計(jì)算能力.在圖1中,云服務(wù)提供商根據(jù)用戶的需求提供相關(guān)資源,為其提供存儲(chǔ)、管理和共享等服務(wù).
用戶:數(shù)據(jù)持有者,可以是個(gè)人或者公司機(jī)構(gòu).由于存儲(chǔ)空間有限,他們需將其大量數(shù)據(jù)外包給云服務(wù)提供商.在圖1中,用戶需要將其數(shù)據(jù)外包給云服務(wù)提供商,并需要對(duì)存儲(chǔ)在云端的數(shù)據(jù)進(jìn)行完整性驗(yàn)證.
在圖1中,用戶和云服務(wù)提供商建立通信產(chǎn)生數(shù)據(jù)流,并將其數(shù)據(jù)存儲(chǔ)到云端.為了驗(yàn)證數(shù)據(jù)是否完整地存儲(chǔ)在云端,用戶執(zhí)行完整性驗(yàn)證算法.然而,用戶可能不會(huì)投入大量的精力去隨時(shí)隨地充當(dāng)驗(yàn)證者,進(jìn)而引入了第三方審計(jì)者(third party auditor),為此有了公開(kāi)數(shù)據(jù)持有性證明機(jī)制.
2) 公開(kāi)的數(shù)據(jù)持有性驗(yàn)證機(jī)制包括3個(gè)實(shí)體:用戶、云服務(wù)提供商和第三方審計(jì)者.如圖2所示.
圖2 公開(kāi)數(shù)據(jù)完整性驗(yàn)證機(jī)制Fig.2 Public data integrity verification mechanism
第三方審計(jì)者:第三方認(rèn)證機(jī)構(gòu),通常由政府和可信機(jī)構(gòu)擔(dān)當(dāng),具備專業(yè)的驗(yàn)證知識(shí)和豐富的經(jīng)驗(yàn),為用戶和云服務(wù)提供商提供令人信服的結(jié)果.
在圖2中,用戶將數(shù)據(jù)上傳至云端,同時(shí)委托第三方審計(jì)者充當(dāng)驗(yàn)證者向云服務(wù)提供商發(fā)起數(shù)據(jù)完整性挑戰(zhàn),云服務(wù)提供商將證據(jù)發(fā)送給第三方審計(jì)者,第三方審計(jì)者執(zhí)行數(shù)據(jù)完整性驗(yàn)證,并將審計(jì)結(jié)果告知用戶.
數(shù)據(jù)持有性審計(jì)框架實(shí)質(zhì)是基于“挑戰(zhàn)-響應(yīng)”協(xié)議的數(shù)據(jù)完整性驗(yàn)證,通過(guò)隨機(jī)取樣的方法來(lái)驗(yàn)證存儲(chǔ)在云中數(shù)據(jù)的完整性,根據(jù)部分?jǐn)?shù)據(jù)的完整性概率來(lái)推測(cè)整個(gè)數(shù)據(jù)的完整性.詳細(xì)審計(jì)步驟由Setup和Verify2個(gè)階段組成.Setup階段由密鑰生成算法和數(shù)據(jù)塊標(biāo)簽生成算法組成,用于完成系統(tǒng)設(shè)置的準(zhǔn)備工作.Verify階段由挑戰(zhàn)生成算法、證據(jù)生成算法和證據(jù)驗(yàn)證算法組成,用于完成數(shù)據(jù)完整性的驗(yàn)證.方案具體執(zhí)行過(guò)程如圖3所示.
圖3 數(shù)據(jù)持有性證明機(jī)制示意Fig.3 Schematic diagram of data possession proof mechanism
1)Setup階段
密鑰生成算法:KeyGen(1k)→(pk,sk).該算法由用戶在本地執(zhí)行,輸入系統(tǒng)安全參數(shù)k,輸出密鑰對(duì)(pk,sk).
標(biāo)簽生成算法:TagGen(sk,F)→б.該算法由用戶執(zhí)行,輸入私鑰sk和數(shù)據(jù)文件F,為每個(gè)數(shù)據(jù)文件F生成同態(tài)認(rèn)證標(biāo)簽集合б,即輸出認(rèn)證元數(shù)據(jù)集б.
2)Verify階段
挑戰(zhàn)生成算法:ChalGen(c)→chal.該算法由用戶或者第三方審計(jì)者執(zhí)行,輸入?yún)?shù)c,生成相關(guān)挑戰(zhàn)信息chal.
證據(jù)生成算法:GenProof(pk,F,б,chal)→P(D,T).該算法由云服務(wù)提供商運(yùn)行,輸入?yún)?shù)包括公鑰pk、數(shù)據(jù)文件F、元數(shù)據(jù)集б和挑戰(zhàn)請(qǐng)求chal,輸出本次挑戰(zhàn)請(qǐng)求的完整性證據(jù)P(D,T).
證據(jù)驗(yàn)證算法:VerifyProof(pk,chal,P)→{“true”,“false”}.該算法由用戶或者第三方審計(jì)者運(yùn)行,輸入?yún)?shù)公鑰pk、挑戰(zhàn)請(qǐng)求chal和證據(jù)P,對(duì)云服務(wù)提供商返回的證據(jù)進(jìn)行驗(yàn)證,輸出驗(yàn)證成功或失敗.
支持動(dòng)態(tài)的PDP方案還需要以下2個(gè)算法支持.
更新執(zhí)行算法:ExecUpdate(F,б,Update)→{F′,б′,Vupdate}.該算法由云服務(wù)提供商運(yùn)行,輸入文件F,相應(yīng)標(biāo)簽集合б和更新數(shù)據(jù)操作Update,輸出更新文件F′和更新標(biāo)簽集合б′以及相對(duì)應(yīng)的更新證據(jù)Vupdate.
更新驗(yàn)證算法:VerifyUpdate(pk,Update,Pupdate)→{“true”,“false”}.該算法由用戶或第三方審計(jì)者執(zhí)行,返回更新操作成功或失敗.
本節(jié)對(duì)數(shù)據(jù)持有性證明方案的基本功能特性進(jìn)行了介紹.
1) 支持無(wú)塊驗(yàn)證:用戶或第三方審計(jì)者無(wú)需從云端下載原數(shù)據(jù),驗(yàn)證數(shù)據(jù)的完整性.
2) 支持動(dòng)態(tài)操作:用戶可以隨時(shí)對(duì)存儲(chǔ)在云中的數(shù)據(jù)進(jìn)行刪除、修改和插入操作,數(shù)據(jù)可以保持持續(xù)更新?tīng)顟B(tài).
3) 支持隱私保護(hù):第三方審計(jì)人員無(wú)法從云服務(wù)提供商端獲取用戶的任何相關(guān)信息.
4) 支持輕量高效性:在數(shù)據(jù)持有性證明方案中要盡可能地減少用戶生成文件標(biāo)簽和驗(yàn)證過(guò)程中產(chǎn)生的計(jì)算和通信開(kāi)銷.
5) 支持批量審計(jì):第三方審計(jì)者可以同時(shí)審計(jì)多個(gè)用戶的多個(gè)文件.
為了保證驗(yàn)證方案是安全的,數(shù)據(jù)持有性證明方案必須充分考慮其安全需求.安全需求主要包括:偽造攻擊、替換攻擊和重放攻擊.
偽造攻擊:云服務(wù)提供商為了通過(guò)驗(yàn)證者的驗(yàn)證,通常偽造用戶數(shù)據(jù)塊的標(biāo)簽生成證據(jù).
替換攻擊:云服務(wù)提供商為了通過(guò)驗(yàn)證者的驗(yàn)證,使用其他可用且未損壞的數(shù)據(jù)塊和對(duì)應(yīng)的標(biāo)簽來(lái)代替被挑戰(zhàn)的數(shù)據(jù)塊和標(biāo)簽.
重放攻擊:云服務(wù)提供商為了通過(guò)驗(yàn)證者的驗(yàn)證,使用之前驗(yàn)證通過(guò)的證據(jù)返回給用戶.
數(shù)據(jù)持有性證明方案必須抵御上述攻擊才可保證該驗(yàn)證方案的安全性.
數(shù)據(jù)持有性證明機(jī)制主要是用于驗(yàn)證云中數(shù)據(jù)的完整性.本節(jié)對(duì)主要的數(shù)據(jù)持有性證明方案進(jìn)行了歸納和分析.
基于實(shí)現(xiàn)原理的PDP驗(yàn)證機(jī)制分為基于HMAC函數(shù)的驗(yàn)證機(jī)制、基于RSA簽名的驗(yàn)證機(jī)制、基于BLS簽名的驗(yàn)證機(jī)制、基于身份的驗(yàn)證機(jī)制和基于代數(shù)簽名的驗(yàn)證機(jī)制.如圖4所示.
圖4 基于實(shí)現(xiàn)原理的PDP驗(yàn)證機(jī)制Fig.4 PDP verification mechanism based on realization principle
最初始的數(shù)據(jù)持有性證明機(jī)制是Deswarte等[4]首次利用HMAC函數(shù)構(gòu)造消息認(rèn)證碼,用以驗(yàn)證數(shù)據(jù)的完整性.用戶將數(shù)據(jù)上傳到云服務(wù)器前,預(yù)先計(jì)算數(shù)據(jù)的MAC值,并保存在本地.驗(yàn)證時(shí),用戶需要從云服務(wù)提供商中下載原數(shù)據(jù),并計(jì)算其MAC值,與保存在本地的MAC值對(duì)比驗(yàn)證,判斷存儲(chǔ)在云端的數(shù)據(jù)是否是完整的.由于驗(yàn)證過(guò)程中需要下載整個(gè)原數(shù)據(jù)且驗(yàn)證次數(shù)有限,給用戶帶來(lái)了巨大的計(jì)算和通信開(kāi)銷.
為此,Deswarte等[4]利用RSA簽名機(jī)制的同態(tài)特性來(lái)驗(yàn)證數(shù)據(jù)的完整性,該機(jī)制可以進(jìn)行無(wú)限次驗(yàn)證,但針對(duì)較大的數(shù)據(jù),計(jì)算開(kāi)銷還是很大.數(shù)據(jù)持有性證明這個(gè)概念是由Ateniese等[5]提出的,2007年,Ateniese等[2]最先對(duì)數(shù)據(jù)持有性證明方案進(jìn)行了形式化建模,提出了對(duì)數(shù)據(jù)文件進(jìn)行分塊的思想,降低了標(biāo)簽生成的代價(jià),并利用同態(tài)認(rèn)證標(biāo)簽將多個(gè)數(shù)據(jù)的標(biāo)簽聚合成一個(gè)值,有效地減少了計(jì)算和通信開(kāi)銷.驗(yàn)證時(shí),采取隨機(jī)抽樣的方法對(duì)云中數(shù)據(jù)進(jìn)行完整性驗(yàn)證,通過(guò)對(duì)部分?jǐn)?shù)據(jù)塊的檢測(cè)來(lái)推測(cè)整個(gè)數(shù)據(jù)的完整性.Ateniese等[5]提出的基于RSA的PDP驗(yàn)證機(jī)制示意如圖5所示.
圖5 基于RSA的PDP驗(yàn)證機(jī)制Fig.5 PDP authentication mechanism based on RSA
Boneh等[6]提出的BLS簽名機(jī)制是一種具有同態(tài)特性的短消息簽名機(jī)制,在同等安全條件下(模數(shù)的位數(shù)為1 024 bits),RSA的簽名位數(shù)是1 024 bits,而B(niǎo)LS的簽名位數(shù)大約為160 bits,因此,BLS簽名是比RSA簽名更短的簽名機(jī)制.此外,BLS簽名機(jī)制具有同態(tài)特性,可以將多個(gè)數(shù)據(jù)塊的值聚合成一個(gè)值,因此基于BLS的PDP驗(yàn)證機(jī)制有效地降低了存儲(chǔ)和通信開(kāi)銷,且基于BLS的PDP驗(yàn)證機(jī)制支持公開(kāi)驗(yàn)證,用戶將審計(jì)任務(wù)委托給第三方審計(jì),由第三方審計(jì)者代替用戶完成審計(jì)工作,進(jìn)而減輕了審計(jì)負(fù)擔(dān).基于BLS的數(shù)據(jù)持有性證明機(jī)制示意如圖6所示.
圖6 基于BLS的PDP驗(yàn)證機(jī)制Fig.6 PDP verification mechanism based on BLS
上述的PDP驗(yàn)證機(jī)制是基于公鑰基礎(chǔ)設(shè)施(public key infrastructure,PKI)的驗(yàn)證機(jī)制,需要耗費(fèi)資源來(lái)管理和維護(hù)證書(shū).為了減少繁雜的證據(jù)管理工作,2006年,GENTRY等[7]提出了基于身份的聚合簽名,使得驗(yàn)證的總消息最短. Zhao等[8]基于身份的集合簽名提出了第一個(gè)基于身份的公共驗(yàn)證方案,該方案只有私鑰生成器(private key generator,PKG)擁有傳統(tǒng)的公鑰,用戶只是保留其身份而不與證書(shū)綁定,簡(jiǎn)化了密鑰管理,減少了通信和計(jì)算開(kāi)銷.該方案在計(jì)算Diffie-Hellman假設(shè)的嚴(yán)格性條件下,在隨機(jī)預(yù)言模型中可證明是安全的.Li等[9]引入基于模糊身份的驗(yàn)證機(jī)制解決了云數(shù)據(jù)完整性中復(fù)雜密鑰管理問(wèn)題,通過(guò)利用生物識(shí)別技術(shù)作為模糊身份,提出了一種基于模糊身份的審計(jì)結(jié)構(gòu),且該協(xié)議有一定的容錯(cuò)性,但該方案所需的計(jì)算和通信開(kāi)銷較大.
基于代數(shù)簽名的PDP驗(yàn)證機(jī)制與其他的驗(yàn)證機(jī)制相比,只需低網(wǎng)絡(luò)帶寬且有較低的計(jì)算開(kāi)銷和較高的效率.代數(shù)簽名是指具有某些代數(shù)性質(zhì)的哈希函數(shù)將較大的數(shù)據(jù)文件壓縮成很小的比特串參與運(yùn)算和通信.Wang等[10]提出了一種基于代數(shù)簽名的遠(yuǎn)程數(shù)據(jù)審查方案,以驗(yàn)證存儲(chǔ)在云中數(shù)據(jù)的完整性.該方案中的代數(shù)簽名,運(yùn)算速度可能達(dá)到數(shù)十至數(shù)百兆字節(jié),在挑戰(zhàn)階段和響應(yīng)階段數(shù)據(jù)塊的大小僅為200 B和8 kB,進(jìn)一步減少了帶寬開(kāi)銷.當(dāng)云服務(wù)器中的一部分?jǐn)?shù)據(jù)塊損壞或刪除時(shí),第三方審計(jì)者只能驗(yàn)證少量的數(shù)據(jù)塊來(lái)檢查數(shù)據(jù)的完整性,但為了數(shù)據(jù)的絕對(duì)安全需要驗(yàn)證完整的數(shù)據(jù),因此需要較大的計(jì)算開(kāi)銷去保證數(shù)據(jù)的安全性.
為了滿足不同用戶的需求,不同應(yīng)用場(chǎng)景的PDP驗(yàn)證機(jī)制被相繼提出.
2.2.1 支持動(dòng)態(tài)操作的PDP驗(yàn)證機(jī)制
考慮到用戶會(huì)隨時(shí)更新存儲(chǔ)在云中的數(shù)據(jù),Ateniese等[11]提出了支持部分動(dòng)態(tài)的數(shù)據(jù)持有性證明方案,但該方案無(wú)法執(zhí)行插入操作.為了解決該問(wèn)題,Erway等[12]基于跳表結(jié)構(gòu)提出了支持全動(dòng)態(tài)操作的PDP機(jī)制,但每次在認(rèn)證過(guò)程中需要大量的輔助認(rèn)證消息,且認(rèn)證路徑過(guò)長(zhǎng),使其計(jì)算和通信開(kāi)銷較大.Wang等[13]提出基于Merkle-Tree的PDP驗(yàn)證機(jī)制,該動(dòng)態(tài)結(jié)構(gòu)相比跳表更為簡(jiǎn)單,且可確保數(shù)據(jù)節(jié)點(diǎn)在位置上的完整性.
2013年,Zhu等[14]引入了一個(gè)簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)(如表1),稱為索引哈希表(index hash table,IHT),用于記錄每個(gè)數(shù)據(jù)塊的變化.IHT的結(jié)構(gòu)就像一個(gè)一維數(shù)組,其中包含索引號(hào)、塊號(hào)、版本號(hào)和隨機(jī)值.基于IHT的PDP驗(yàn)證機(jī)制減少了存儲(chǔ)成本和通信開(kāi)銷.但在進(jìn)行插入和刪除操作上效率不高,因?yàn)樗鼈儠?huì)導(dǎo)致平均N/2個(gè)元素的調(diào)整,其中N是所有數(shù)據(jù)塊的總數(shù).大多數(shù)動(dòng)態(tài)PDP方案將數(shù)據(jù)塊的索引運(yùn)用到其標(biāo)簽的計(jì)算中,來(lái)認(rèn)證數(shù)據(jù)塊在云服務(wù)器中的位置的正確性,例如h(i‖v)、h(name‖i)等.但是,如果插入或刪除一個(gè)塊,所有后續(xù)塊的索引都會(huì)改變,那么這些塊的驗(yàn)證標(biāo)簽必須重新計(jì)算,這需要用戶耗費(fèi)巨大的計(jì)算資源.
表1 索引哈希表
為此,Tian等[15]基于新的動(dòng)態(tài)結(jié)構(gòu)(如圖7)-動(dòng)態(tài)哈希表(dynamic hash table,DHT)提出了新的標(biāo)簽構(gòu)建方式,該表由2種元素構(gòu)成:文件元素和塊元素.文件元素由序列號(hào)和ID號(hào)標(biāo)識(shí),塊元素由時(shí)間戳唯一標(biāo)識(shí),文件元素和塊元素之間由指針進(jìn)行連接,進(jìn)行插入刪除操作只需更改指針即可,有效地減少了通信成本且提高了效率.為了支持動(dòng)態(tài)操作,大部分?jǐn)?shù)據(jù)持有性證明方案都引入了動(dòng)態(tài)結(jié)構(gòu),但動(dòng)態(tài)結(jié)構(gòu)需要一定的存儲(chǔ)空間,為此Jin等[16]提出基于索引切換器的支持動(dòng)態(tài)和仲裁的公共審計(jì)方案,通過(guò)索引切換器將數(shù)據(jù)塊的序列號(hào)和索引號(hào)進(jìn)行切換,在沒(méi)有引入動(dòng)態(tài)結(jié)構(gòu)的前提下,有效地處理了數(shù)據(jù)動(dòng)態(tài)的問(wèn)題. 但Jin等[16]的方案沒(méi)有考慮到數(shù)據(jù)塊的序列號(hào)和索引號(hào)之間進(jìn)行切換所帶來(lái)的隱私泄露問(wèn)題.
圖7 動(dòng)態(tài)哈希表Fig.7 Dynamic hash table
為了提高動(dòng)態(tài)操作效率,跳表、Merkle-Tree、哈希表和雙鏈表等多種動(dòng)態(tài)結(jié)構(gòu)被相繼提出,支持動(dòng)態(tài)操作已經(jīng)成為目前多數(shù)PDP驗(yàn)證方案重要的功能,在不泄露用戶隱私且輕量級(jí)的情況下,需要設(shè)計(jì)出一套完整的動(dòng)態(tài)PDP驗(yàn)證機(jī)制,該機(jī)制支持將動(dòng)態(tài)操作應(yīng)用到各種場(chǎng)景,以滿足更多的應(yīng)用.
2.2.2 支持隱私保護(hù)的PDP驗(yàn)證機(jī)制
圖8 支持隱私保護(hù)的PDP驗(yàn)證機(jī)制Fig.8 PDP authentication mechanism supporting privacy protection
Wang等[19]利用環(huán)簽名概念構(gòu)造同態(tài)身份驗(yàn)證者并命名為“Oruta”,使得第三方審計(jì)者和云服務(wù)提供商無(wú)法知曉數(shù)據(jù),但不支持?jǐn)?shù)據(jù)動(dòng)態(tài)操作.Patil等[20]提出了利用Merkle哈希樹(shù)(MHT)對(duì)編碼數(shù)據(jù)進(jìn)行索引,有效地保護(hù)了用戶數(shù)據(jù)隱私且實(shí)現(xiàn)了動(dòng)態(tài)的公共審計(jì).它支持?jǐn)?shù)據(jù)進(jìn)行插入、修改和刪除操作,且所提出的審計(jì)方案使得通信和計(jì)算成本最小化.Kumar等[21]提出了一種增強(qiáng)保護(hù)數(shù)據(jù)隱私的系統(tǒng),利用RSA算法和AES算法對(duì)數(shù)據(jù)加密,在數(shù)據(jù)存儲(chǔ)到云端之前,這2種算法的混合為其提供了更好的機(jī)密性.
技術(shù)是保護(hù)隱私最直接的手段,基于隱私的PDP驗(yàn)證機(jī)制多數(shù)采用隨機(jī)掩碼技術(shù),對(duì)于多樣性和復(fù)雜性的大數(shù)據(jù)時(shí)代,有待進(jìn)一步開(kāi)發(fā)更多的技術(shù)來(lái)保護(hù)用戶的隱私.
2.2.3 支持多副本的PDP驗(yàn)證機(jī)制
為了防止云服務(wù)器被攻擊或發(fā)生故障導(dǎo)致數(shù)據(jù)永久丟失,Curtmola等[22]提出了第一個(gè)多副本PDP驗(yàn)證機(jī)制,該機(jī)制使用一組標(biāo)簽來(lái)驗(yàn)證任意一個(gè)副本,減少了驗(yàn)證標(biāo)簽所帶來(lái)的計(jì)算負(fù)擔(dān). 基于Ateniese等[5]設(shè)計(jì)RSA簽名的PDP機(jī)制,Curtmola等[22]對(duì)其進(jìn)行了擴(kuò)展,該驗(yàn)證機(jī)制的詳細(xì)步驟如圖9所示.
a.初始化過(guò)程;b.驗(yàn)證過(guò)程.圖9 支持多副本的PDP驗(yàn)證機(jī)制Fig.9 PDP verification mechanism supporting multiple copies
Merkle[23]提出了將每個(gè)副本文件組成一個(gè)Merkle哈希樹(shù),便于支持更新操作.Liu等[24]提出多副本動(dòng)態(tài)公共審計(jì)方案,將所有副本所包含文件塊的哈希值都組成一棵Merkle哈希樹(shù),與文獻(xiàn)[23]方案相比,減少了更新開(kāi)銷.然而,Merkle哈希樹(shù)的存儲(chǔ)空間隨著副本的數(shù)量增加而增大,給CSP帶來(lái)了負(fù)擔(dān).Guo等[25]提出的動(dòng)態(tài)多副本數(shù)據(jù)持有性證明(DPDPR)方案,設(shè)計(jì)了一個(gè)新的標(biāo)簽,只需在云服務(wù)器端存儲(chǔ)一棵基于原文件數(shù)據(jù)塊哈希值的隱式索引Merkle哈希樹(shù),減少了云服務(wù)提供商的存儲(chǔ)負(fù)擔(dān).但在數(shù)據(jù)上傳到云服務(wù)器時(shí),云服務(wù)提供商需驗(yàn)證每個(gè)數(shù)據(jù)塊的哈希值,為其帶來(lái)巨大的計(jì)算負(fù)擔(dān).在云存儲(chǔ)環(huán)境中,數(shù)據(jù)的完整性和可靠性是至關(guān)重要的安全問(wèn)題,而動(dòng)態(tài)更新也是必不可少的部分.現(xiàn)有的大部分方案都使用Merkle哈希樹(shù)來(lái)支持動(dòng)態(tài)操作,但是在驗(yàn)證過(guò)程中其結(jié)構(gòu)非常龐大.Zhao等[26]引入多分支樹(shù)來(lái)實(shí)現(xiàn)動(dòng)態(tài)更新,進(jìn)而簡(jiǎn)化了驗(yàn)證的結(jié)構(gòu).然而,在這些個(gè)方案中,數(shù)據(jù)副本和標(biāo)簽的生成都由用戶來(lái)完成,增加了用戶的計(jì)算壓力.
由于云服務(wù)提供商給用戶提供低價(jià)且海量的存儲(chǔ)空間,越來(lái)越多的用戶為了提高數(shù)據(jù)的可用性選擇采用多副本方式存儲(chǔ)數(shù)據(jù),如何確保云服務(wù)提供商按照用戶的要求進(jìn)行存儲(chǔ),這是一個(gè)值得深入研究的問(wèn)題.此外,在確保數(shù)據(jù)完整性的同時(shí)并支持對(duì)多個(gè)副本進(jìn)行動(dòng)態(tài)操作有待探索和進(jìn)一步研究.
2.2.4 支持批量的PDP驗(yàn)證機(jī)制
近些年來(lái),在云存儲(chǔ)環(huán)境中,人們?yōu)榱藘?yōu)化審計(jì)性能和提高更新效率,批量審計(jì)和批量更新也成為數(shù)據(jù)持有性證明機(jī)制不可缺少的功能.Qi等[27]針對(duì)基于秩的Merkle哈希平衡樹(shù),設(shè)計(jì)了一種基于更新鎖定的批處理更新方案,該方案消除了更新和重新平衡樹(shù)的相鄰分支之間的沖突.Guo等[28]基于Merkle哈希樹(shù)提出了一種批量更新算法,該算法可以1次執(zhí)行和驗(yàn)證多個(gè)更新操作,避免了重復(fù)的計(jì)算和傳輸.如圖10所示,挑戰(zhàn)w3和w72個(gè)葉節(jié)點(diǎn)的所需路徑分別為Ω3={w26,w22,w15,w4,w3}和Ω7={w26,w21,w17,w8,w7},相同的節(jié)點(diǎn)w26被檢索了2次,節(jié)點(diǎn)w25和根節(jié)點(diǎn)的哈希值被計(jì)算了2次,這僅僅是挑戰(zhàn)2個(gè)節(jié)點(diǎn),隨著挑戰(zhàn)節(jié)點(diǎn)數(shù)量的增多,那重復(fù)節(jié)點(diǎn)的檢索和計(jì)算必會(huì)浪費(fèi)巨大的計(jì)算和通信資源.為此,Guo等[28]的方案提出的方法使得被挑戰(zhàn)的節(jié)點(diǎn)同時(shí)進(jìn)行,必要的節(jié)點(diǎn)只檢索1次,必要節(jié)點(diǎn)的哈希值只計(jì)算1次,節(jié)省了大量的計(jì)算和傳輸成本,如圖11所示.
圖10 依次挑戰(zhàn)節(jié)點(diǎn)w3和w7Fig.10 Challenge w3and w7 nodes in turn
圖11 批量挑戰(zhàn)節(jié)點(diǎn)w3和w7Fig.11 Challenge w3 and w7 nodes in batches
為了便于動(dòng)態(tài)操作,基于批量的PDP驗(yàn)證機(jī)制的多數(shù)方案采用的動(dòng)態(tài)結(jié)構(gòu)為Merkle哈希樹(shù),但該動(dòng)態(tài)結(jié)構(gòu)所占存儲(chǔ)空間較大,如何利用更簡(jiǎn)單的動(dòng)態(tài)結(jié)構(gòu)確保云存儲(chǔ)環(huán)境下數(shù)據(jù)的完整性且高效實(shí)現(xiàn)批處理審計(jì)和更新需要進(jìn)行更深一步的研究.
2.2.5 支持共享的PDP驗(yàn)證機(jī)制
為了滿足多個(gè)用戶在云端共享數(shù)據(jù)文件,Wang等[29]通過(guò)使用代理重新簽名的思想,在多個(gè)用戶共享數(shù)據(jù)的同時(shí)能安全的實(shí)行用戶撤銷,是一種新穎的數(shù)據(jù)共享審核機(jī)制.該方案通過(guò)利用云當(dāng)作代理簽名者,減輕了用戶的負(fù)擔(dān),而且第三方審計(jì)也能驗(yàn)證共享數(shù)據(jù)的完整性,但該方案的通信開(kāi)銷耗費(fèi)較大.Trueman等[30]使用數(shù)據(jù)簽名算法生成配對(duì)密鑰,并用同態(tài)可認(rèn)證環(huán)簽名方案為每個(gè)數(shù)據(jù)塊生成有效的簽名,只有組內(nèi)用戶才能驗(yàn)證簽名,為其提供了有效的審核機(jī)制,且該方案使用覆蓋樹(shù)算法確保了數(shù)據(jù)的最新版本,但該方案的計(jì)算開(kāi)銷較大.Yang等[31]提出了一個(gè)有效的支持共享數(shù)據(jù)完整性驗(yàn)證方案,不僅保護(hù)了用戶的身份隱私,還實(shí)現(xiàn)了身份可追溯性.但該驗(yàn)證方案還不支持動(dòng)態(tài)操作功能.
隨著越來(lái)越多共享資源的出現(xiàn),支持共享的PDP驗(yàn)證機(jī)制越來(lái)越受到學(xué)術(shù)界和工業(yè)界的重視.在實(shí)現(xiàn)群組成員共享資源的同時(shí)能安全的實(shí)行用戶撤銷成為支持共享的PDP驗(yàn)證機(jī)制的基本功能.一個(gè)支持共享數(shù)據(jù)完整性驗(yàn)證方案,如何實(shí)現(xiàn)用戶高效且安全的撤銷并實(shí)現(xiàn)輕量級(jí)的驗(yàn)證是該機(jī)制的目標(biāo),此外,在功能上結(jié)合動(dòng)態(tài)操作的共享PDP驗(yàn)證機(jī)制有待于探索和研究.
針對(duì)單點(diǎn)故障,Raziqa等[32]基于分布式哈希表提出了一個(gè)分布式公共設(shè)計(jì)方案,在這項(xiàng)工作中有多個(gè)第三方審計(jì)者,基于點(diǎn)對(duì)點(diǎn)協(xié)議將審計(jì)者組成一個(gè)分布式哈希表,第三方審計(jì)者統(tǒng)一使用一致的哈希函數(shù),通過(guò)其物理標(biāo)識(shí)(例如IP地址、端口號(hào)或某個(gè)唯一數(shù)字)生成唯一的m位的關(guān)鍵值(A1,A3和A6),該值可以幫助第三方審計(jì)者組織成如圖12所示的適當(dāng)結(jié)構(gòu).圖12顯示了分布式哈希表環(huán)是以模為2m形成{0-(2m-1)}個(gè)地址空間,且每個(gè)外包的數(shù)據(jù)或文件都需經(jīng)過(guò)哈希處理形成一個(gè)m位的文件密鑰,該密鑰映射到{0-(2m-1)}個(gè)地址空間的公共審計(jì)模型,該模型審核每個(gè)審計(jì)者提供的文件密鑰及其唯一標(biāo)識(shí).例如,生成的文件密鑰f3、f4和f5可以通過(guò)A3進(jìn)行審核.該方案中使用關(guān)鍵值可以將外包的大文件進(jìn)行分組審核,該方案被稱為一種經(jīng)濟(jì)有效的解決方案且沒(méi)有單點(diǎn)依賴性.
圖12 多個(gè)TPA的云存儲(chǔ)模型Fig.12 Cloud storage model of multiple TPAs
針對(duì)多用戶的公共審計(jì)問(wèn)題,Yuan等[33]提出支持多用戶修改和高效撤銷某用戶的數(shù)據(jù)持有性證明方案.此外,為了提高數(shù)據(jù)的可用性和可靠性,用戶可能選擇多個(gè)云平臺(tái)來(lái)存儲(chǔ)自己的數(shù)據(jù),如何確??缭拼鎯?chǔ)數(shù)據(jù)的完整性,這也是需要深入研究的問(wèn)題.Zhu等[34-36]對(duì)跨平臺(tái)云存儲(chǔ)的數(shù)據(jù)完整性證明機(jī)制過(guò)程模型化,但對(duì)下一步的實(shí)現(xiàn)過(guò)程沒(méi)有詳細(xì)說(shuō)明,在實(shí)際應(yīng)用中需要設(shè)計(jì)該證明機(jī)制,進(jìn)而去滿足更多的應(yīng)用.
近些年來(lái)隨著區(qū)塊鏈技術(shù)迅速崛起,它被應(yīng)用到數(shù)據(jù)持有性證明中,Xu等[37]基于區(qū)塊鏈技術(shù)提出了分布式可仲裁數(shù)據(jù)審計(jì)方案,利用區(qū)塊鏈網(wǎng)絡(luò)作為自記錄通道實(shí)現(xiàn)了不可抵賴性驗(yàn)證.現(xiàn)如今已步入5G時(shí)代,區(qū)塊鏈和神經(jīng)網(wǎng)絡(luò)技術(shù)等各種應(yīng)用給人們的生活帶來(lái)了越來(lái)越大的影響,相信在不久的未來(lái),云存儲(chǔ)會(huì)結(jié)合各種應(yīng)用技術(shù)來(lái)實(shí)現(xiàn)高安全和高效率的驗(yàn)證方案.
針對(duì)數(shù)據(jù)持有性證明的模型和審計(jì)框架進(jìn)行了論述,并根據(jù)不同用戶的需求,對(duì)主要的數(shù)據(jù)持有性證明方案進(jìn)行了分類歸納,分析了數(shù)據(jù)持有性證明機(jī)制各個(gè)應(yīng)用場(chǎng)景的現(xiàn)狀和不足,并對(duì)其進(jìn)行了展望.隨著云存儲(chǔ)在生活中的大量應(yīng)用,用戶對(duì)數(shù)據(jù)完整性審計(jì)方案的效率和安全等要求不斷提高,但是現(xiàn)有的審計(jì)機(jī)制在性能上還未能實(shí)現(xiàn)理想中的輕量級(jí),在功能方面各有側(cè)重不能顧全,而且,云存儲(chǔ)和區(qū)塊鏈技術(shù)仍處于探索發(fā)展階段,且云存儲(chǔ)技術(shù)結(jié)合邊緣計(jì)算和神經(jīng)網(wǎng)絡(luò)的智能審計(jì)方案也有待探索和研究.