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