王崛贛,柳毅
(廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,廣州510006)
云存儲(chǔ)服務(wù)以其存儲(chǔ)方便、價(jià)格低廉的特點(diǎn),吸引了大量的用戶,而眾多云存儲(chǔ)用戶上傳的海量數(shù)據(jù)中存在許多重復(fù)數(shù)據(jù)。為了節(jié)約存儲(chǔ)成本、減少網(wǎng)絡(luò)帶寬消耗,云存儲(chǔ)服務(wù)提供商(CSP)會(huì)采用數(shù)據(jù)去重技術(shù)?;驹矸浅:唵危慨?dāng)上載文件時(shí),存儲(chǔ)服務(wù)器都會(huì)檢查該文件是否是先前存儲(chǔ)的內(nèi)容的副本,如果存在,新副本將定向到相同副本的位置,不存在,則上傳內(nèi)容。而實(shí)際中,存在大量的內(nèi)容相似度高而細(xì)節(jié)不盡相同的文件,所以文件級重復(fù)數(shù)據(jù)刪除方案往往效率不高。實(shí)際中常應(yīng)用數(shù)據(jù)塊級去重,每個(gè)文件切分為若干數(shù)據(jù)塊,將冗余的數(shù)據(jù)塊從系統(tǒng)中刪除。
在數(shù)據(jù)上傳過程中,重復(fù)數(shù)據(jù)刪除技術(shù)的應(yīng)用還存在減少網(wǎng)絡(luò)帶寬消耗的可能??蛻舳巳ブ胤桨钢?,用戶只需要上傳數(shù)據(jù)的哈希值,云服務(wù)器對數(shù)據(jù)的哈希值進(jìn)行查驗(yàn),如果存在重復(fù)性,則無需上傳數(shù)據(jù),減少了數(shù)據(jù)上傳的網(wǎng)絡(luò)帶寬消耗。
盡管在客戶端實(shí)現(xiàn)跨用戶去重的方案有諸多優(yōu)點(diǎn),但是也存在著不足。在去重過程中,它為側(cè)通道攻擊的出現(xiàn)提供了可能性,攻擊者通過數(shù)據(jù)的去重是否發(fā)生就可以推斷出數(shù)據(jù)存在與否,進(jìn)而侵犯他人數(shù)據(jù)隱私。這存在一個(gè)去重悖論:一方面,必須暴露數(shù)據(jù)部分信息,用于做去重的依據(jù);另一方面,用戶不希望存儲(chǔ)在云中的數(shù)據(jù)信息暴露,被攻擊者獲取隱私信息。
本文提出了一種隱私保護(hù)的客戶端去重方案,在不借助可信第三方服務(wù)器、存儲(chǔ)網(wǎng)關(guān)等網(wǎng)絡(luò)設(shè)備的前提下,通過略微增加通信開銷,實(shí)現(xiàn)了更強(qiáng)的數(shù)據(jù)隱私保護(hù)。本文方案貢獻(xiàn)總結(jié)如下:
(1)重復(fù)性查詢時(shí),同時(shí)對兩個(gè)數(shù)據(jù)塊的重復(fù)度進(jìn)行查驗(yàn),設(shè)計(jì)獨(dú)特的反饋信號。使攻擊者無法判斷數(shù)據(jù)塊的存在性。
(2)不需要額外的第三方網(wǎng)絡(luò)設(shè)備,降低了系統(tǒng)成本,也降低了第三方設(shè)備被攻擊者劫持造成數(shù)據(jù)泄露的風(fēng)險(xiǎn)。
(3)對驗(yàn)證為可能是重復(fù)數(shù)據(jù)的數(shù)據(jù)塊進(jìn)行所有權(quán)證明驗(yàn)證,有效防止攻擊者僅憑借數(shù)據(jù)標(biāo)簽就可以取得用戶數(shù)據(jù)的情況發(fā)生。
(4)對數(shù)據(jù)進(jìn)行流行度劃分,流行度高的數(shù)據(jù)含有的隱私信息較少,可以直接向客戶端反饋這些數(shù)據(jù)的存儲(chǔ)狀況,無需上傳流行數(shù)據(jù)達(dá)到減少網(wǎng)絡(luò)帶寬消耗的目的。
關(guān)于云存儲(chǔ)去重已經(jīng)進(jìn)行了大量的研究。早期因?yàn)閿?shù)據(jù)加密方式的不同,導(dǎo)致數(shù)據(jù)去重和語義安全的加密不兼容,加密方式及密鑰等差異,即使同樣的明文數(shù)據(jù)得到不同的密文,不可能識(shí)別出數(shù)據(jù)是否重復(fù)。對此,文獻(xiàn)[1]提出收斂加密(Convergent Encryp?tion,CE)算法,CE為基于內(nèi)容的加密算法,由數(shù)據(jù)內(nèi)容計(jì)算得到加密密鑰,并用此密鑰加密原始數(shù)據(jù)得到密文。確保了相同的數(shù)據(jù)加密之后得到相同的密文,為云存儲(chǔ)去重提供了技術(shù)支持。出于降低存儲(chǔ)成本、網(wǎng)絡(luò)帶寬消耗的目的,云存儲(chǔ)服務(wù)供應(yīng)商往往會(huì)采用跨用戶客戶端重復(fù)數(shù)據(jù)刪除[2]。但是這種去重方案過程中可能會(huì)發(fā)生側(cè)信道攻擊造成用戶數(shù)據(jù)隱私泄露。
為了抵抗側(cè)信道攻擊,Harnik等人[3]提出了減輕惡意用戶利用側(cè)信道的方法,他們對每一個(gè)上傳文件設(shè)置一個(gè)隨機(jī)閾值tF。只有當(dāng)文件上傳次數(shù)超過閾值,才會(huì)啟用客戶端去重。因?yàn)殚撝惦S機(jī),所以當(dāng)服務(wù)器要求上傳文件時(shí),攻擊者無法判斷該數(shù)據(jù)是否原來就存在;但是當(dāng)服務(wù)器發(fā)出不需要上傳文件信號時(shí),攻擊者可以得出上傳文件一定存在的結(jié)論。Lee等人[4]對Harnik的方案進(jìn)行了改進(jìn),引入一個(gè)隨機(jī)數(shù)r(r∈{0,1,2}),文件去重閾值定義為tF-r,增加了文件去重的隨機(jī)性,降低了數(shù)據(jù)隱私泄露的可能性,提高了安全性。Wang等人[5]提出了用博弈論對去重中遇到的安全問題進(jìn)行建模,通過實(shí)驗(yàn)仿真證明該方案能夠有效地抵御側(cè)信道攻擊。Armknecht等人[6]對去重策略和其優(yōu)劣勢進(jìn)行建模分析,證明去重過程中必須權(quán)衡效率和安全。
以上方案歸根到底都屬于設(shè)置文件去重隨機(jī)閾值,所以都存在浪費(fèi)網(wǎng)絡(luò)帶寬的缺點(diǎn)。抵御側(cè)信道攻擊的另一種手段是使用額外的網(wǎng)絡(luò)設(shè)備來混淆上傳網(wǎng)絡(luò)流量。例如Heen等人[7]提出一種基于網(wǎng)關(guān)的去重模型,由網(wǎng)關(guān)對上傳數(shù)據(jù)進(jìn)行混淆操作,使得攻擊者無法依據(jù)數(shù)據(jù)包的上傳情況得出有效的信息。Shin等人[8]在Heen的基礎(chǔ)上引入差分隱私機(jī)制,通過上傳虛擬數(shù)據(jù)混淆上傳數(shù)據(jù),減少了數(shù)據(jù)信息泄露的風(fēng)險(xiǎn)。
上述存儲(chǔ)網(wǎng)絡(luò)方案往往造價(jià)高昂,不適合大規(guī)模部署。Yu等人[9]提出ZEUS方案,要求每次上傳兩個(gè)數(shù)據(jù)塊,設(shè)計(jì)特定的刪除響應(yīng)表、數(shù)據(jù)對的異或值上傳等手段,使得攻擊者無法確認(rèn)數(shù)據(jù)塊的存在性,但是造成了一定的網(wǎng)絡(luò)帶寬消耗。Pooranian等人[10]在此基礎(chǔ)上結(jié)合隨機(jī)化方法提出RARE方案,提高了安全性,但造成了更多的網(wǎng)絡(luò)帶寬消耗。
基于上述方案存在的問題,本文對ZEUS方案進(jìn)行改進(jìn),進(jìn)一步提高安全性能、降低網(wǎng)絡(luò)帶寬消耗。
重復(fù)數(shù)據(jù)刪除技術(shù)在云存儲(chǔ)中應(yīng)用廣泛,理想狀況下,云存儲(chǔ)服務(wù)器接收到相同的文件,就可以創(chuàng)建對原文件副本的引用鏈接,而無需上傳冗余數(shù)據(jù)。而根據(jù)重復(fù)數(shù)據(jù)刪除執(zhí)行的位置可分為客戶端去重和服務(wù)器去重,客戶端去重中需要用戶和服務(wù)器進(jìn)行信息交互,來判斷是否需要執(zhí)行去重。如圖1所示。
圖1 客戶端去重響應(yīng)模型
由用戶在客戶端發(fā)出數(shù)據(jù)刪除請求(dc請求),dc請求包含需要上傳數(shù)據(jù)F的哈希值,用來檢測數(shù)據(jù)是否重復(fù);服務(wù)器接收到請求后進(jìn)行檢測并將結(jié)果反饋給客戶端,確認(rèn)是否需要上傳數(shù)據(jù)。
去重方案中存在以下幾種側(cè)信道攻擊的可能:
(1)文件確認(rèn):攻擊者通過執(zhí)行重復(fù)檢查來驗(yàn)證某些文件,以重復(fù)數(shù)據(jù)刪除是否執(zhí)行判斷文件的存在性;
(2)學(xué)習(xí)剩余信息:攻擊者盡可能生成所有可能的數(shù)據(jù)進(jìn)行重復(fù)性檢查,通過數(shù)據(jù)刪除響應(yīng)確認(rèn)數(shù)據(jù)塊的存在,反復(fù)調(diào)用已確認(rèn)存在的數(shù)據(jù)塊來學(xué)習(xí)數(shù)據(jù)擁有者的敏感信息。
(3)相關(guān)塊攻擊:攻擊者根據(jù)特定文件拆分后數(shù)據(jù)塊之間的依賴性,給予某個(gè)文件的一定比例數(shù)據(jù)塊就可以確認(rèn)文件的存在性。
側(cè)信道攻擊主要利用去重方案中對重復(fù)數(shù)據(jù)刪除執(zhí)行的反饋信號確認(rèn),數(shù)據(jù)塊的存在性,進(jìn)行流量混淆,隱藏?cái)?shù)據(jù)塊的存在性是抵御上述側(cè)信道攻擊的有力手段。
所有權(quán)證明(Proof of Ownership,PoW)[11]能夠有效提高客戶端的去重的數(shù)據(jù)安全性能。云去重通過上傳數(shù)據(jù)的哈希值來檢測數(shù)據(jù)的存在與否,而攻擊者可能擁有某些數(shù)據(jù)的哈希值而并未擁有真實(shí)數(shù)據(jù),這可能出現(xiàn)嚴(yán)重的數(shù)據(jù)安全問題。Halevi提出的PoW方法[11],要求客戶端和服務(wù)器根據(jù)上傳數(shù)據(jù)的內(nèi)容建立默克爾哈希樹(Merkle Hash Tree,MHT),并以挑戰(zhàn)問答的形式由服務(wù)器發(fā)起驗(yàn)證挑戰(zhàn)。具體方式為:服務(wù)器根據(jù)已經(jīng)存在的數(shù)據(jù)D,計(jì)算其短消息值φ(D),同時(shí)客戶端計(jì)算φ'并運(yùn)行算法。當(dāng)φ'=φ(D)時(shí),則證明用戶確實(shí)擁有該數(shù)據(jù)。
數(shù)據(jù)內(nèi)容鮮為人知,數(shù)據(jù)的流行度[12]定義為非流行數(shù)據(jù),存在隱私信息的可能性高;數(shù)據(jù)被大量用戶擁有,這種數(shù)據(jù)定義為流行數(shù)據(jù),隱私信息存在的可能性低。不同的數(shù)據(jù)類型對隱私保護(hù)的需求是不一樣,可以根據(jù)數(shù)據(jù)流行度的高低對數(shù)據(jù)進(jìn)行不同程度的保護(hù)。數(shù)據(jù)流行度高即含隱私信息少,流行度低則意味著數(shù)據(jù)隱私信息多需要更高強(qiáng)度的保護(hù)。數(shù)據(jù)隱私度的劃分依據(jù)為該數(shù)據(jù)上傳用戶數(shù)量,將數(shù)據(jù)的合法上傳者數(shù)量設(shè)定為數(shù)據(jù)流行度的衡量依據(jù),設(shè)立一個(gè)數(shù)據(jù)流行度閾值(合法上傳者數(shù)量),當(dāng)某個(gè)數(shù)據(jù)塊合法上傳的用戶數(shù)超過閾值,數(shù)據(jù)類型標(biāo)識(shí)轉(zhuǎn)變?yōu)榱餍袛?shù)據(jù)。
本方案模型由云服務(wù)提供商(CSP)和用戶(User)兩個(gè)實(shí)體組成。方案是基于數(shù)據(jù)塊級去重的,當(dāng)用戶上傳文件時(shí),先由客戶端將文件進(jìn)行分割,數(shù)據(jù)塊大小固定,且需要保證文件分割后得到的數(shù)據(jù)塊數(shù)目為偶數(shù),當(dāng)文件自然分割后不滿足大小固定或數(shù)據(jù)為偶數(shù)時(shí),客戶端需要選擇隨機(jī)數(shù)進(jìn)行填充。去重交互過程中,每次同時(shí)上傳兩個(gè)數(shù)據(jù)塊的哈希值,向服務(wù)器發(fā)起刪除問詢(dc請求),服務(wù)器接收到dc請求處理后向客戶端發(fā)出刪除響應(yīng)(dc響應(yīng)),并據(jù)此決定是否上傳數(shù)據(jù)。單輪dc響應(yīng)及處理概述如圖2所示。
圖2 系統(tǒng)響應(yīng)模型
(1)客戶端將文件分割為若干數(shù)據(jù)塊,保證每個(gè)數(shù)據(jù)塊大小一致,保證最后分割出的數(shù)據(jù)塊數(shù)為偶數(shù)。
(2)上傳一對數(shù)據(jù)塊的哈希值進(jìn)行重復(fù)度查詢,如果數(shù)據(jù)塊存在,則發(fā)起PoW驗(yàn)證,驗(yàn)證通過則更改數(shù)據(jù)塊的流行度計(jì)數(shù)值。
(3)服務(wù)器根據(jù)上傳兩個(gè)數(shù)據(jù)塊存儲(chǔ)狀態(tài),參照設(shè)定的dc響應(yīng)表(表1)向客戶端做出dc響應(yīng)。
(4)客戶端根據(jù)dc響應(yīng),確認(rèn)數(shù)據(jù)塊是否需要上傳至服務(wù)器。
為了隱藏?cái)?shù)據(jù)塊的存儲(chǔ)狀態(tài),文獻(xiàn)[9]提出了同時(shí)上傳兩個(gè)數(shù)據(jù)塊,設(shè)計(jì)特定的dc響應(yīng)的方案。本文在其基礎(chǔ)上進(jìn)行效率改進(jìn),設(shè)計(jì)出新的dc響應(yīng)規(guī)則,如表1所示。
表1 dc響應(yīng)表
根據(jù)響應(yīng)設(shè)計(jì)存在三種處理方式:
(1)當(dāng)兩個(gè)數(shù)據(jù)塊(記作c1、c2)都不存在云服務(wù)器中時(shí),服務(wù)器將發(fā)送dc響應(yīng)值2給客戶端,此時(shí)客戶端需要將c1和c2上傳服務(wù)器,服務(wù)器根據(jù)上傳的c1、c2計(jì)算數(shù)據(jù)標(biāo)簽(h(c1)、h(c2))確保數(shù)據(jù)真實(shí)標(biāo)簽與重復(fù)性檢查時(shí)的標(biāo)簽一致,標(biāo)簽相同服務(wù)器存儲(chǔ)這兩個(gè)數(shù)據(jù)塊,用戶對數(shù)據(jù)簽名;兩次數(shù)據(jù)標(biāo)簽不同,終斷本次文件上傳。
(2)當(dāng)c1和c2中有且僅有一個(gè)數(shù)據(jù)塊存儲(chǔ)時(shí),服務(wù)器將發(fā)送dc響應(yīng)值1給客戶端,此時(shí)客戶端需要將c1和c2的異或值上傳服務(wù)器,服務(wù)器通過計(jì)算數(shù)據(jù)塊的異或值推斷出另一個(gè)數(shù)據(jù)塊。例如,服務(wù)器中c1存在,服務(wù)器通過計(jì)算(c1⊕c2)⊕c1就可以得到c2。對新數(shù)據(jù)塊進(jìn)行標(biāo)簽驗(yàn)證(同A中所述),驗(yàn)證通過服務(wù)器存儲(chǔ)該數(shù)據(jù)塊,并要求用戶給該數(shù)據(jù)塊簽名。驗(yàn)證不通過,中斷本次文件上傳。
(3)當(dāng)c1和c2都已存在時(shí),需要查驗(yàn)兩個(gè)數(shù)據(jù)塊的流行度,處理分兩種情況:①如果兩個(gè)數(shù)據(jù)塊都屬于流行數(shù)據(jù),服務(wù)器將發(fā)送dc響應(yīng)值0給客戶端,告訴客戶端無需上傳數(shù)據(jù);②存在非流行數(shù)據(jù)塊時(shí),服務(wù)器將發(fā)送dc響應(yīng)值1給客戶端,再要求用戶對非流行數(shù)據(jù)塊進(jìn)行簽名。
在上述dc響應(yīng)過程中,是依據(jù)數(shù)據(jù)標(biāo)簽(數(shù)據(jù)的哈希值)來判斷數(shù)據(jù)塊是否存在存儲(chǔ)系統(tǒng)中的,攻擊者可能擁有某些數(shù)據(jù)塊的哈希值而并未擁有該數(shù)據(jù),這里如果依舊簡單的執(zhí)行去重操作,這會(huì)導(dǎo)致?lián)碛性摂?shù)據(jù)用戶隱私泄露。所以當(dāng)憑借數(shù)據(jù)標(biāo)簽得出數(shù)據(jù)塊存在時(shí),服務(wù)器需要發(fā)起PoW驗(yàn)證挑戰(zhàn),客戶端響應(yīng)PoW挑戰(zhàn),通過驗(yàn)證證明用戶真實(shí)擁有該數(shù)據(jù);驗(yàn)證失敗則中斷本次文件上傳操作。
不同的數(shù)據(jù)類型對隱私保護(hù)的要求是不一樣的,如:收藏的電影視頻文件含有個(gè)人隱私的可能性低,基本上不會(huì)暴露用戶的隱私信息;而個(gè)人薪資單、病例表等文件往往含有的大量的用戶隱私,需要更嚴(yán)苛的隱私保護(hù)。為了減少去重復(fù)數(shù)據(jù)刪除過程中的網(wǎng)絡(luò)消耗,本文依照數(shù)據(jù)流行度的劃分對數(shù)據(jù)進(jìn)行差異性處理。在存儲(chǔ)系統(tǒng)中設(shè)置了一個(gè)流行度閾值t(非流行數(shù)據(jù)用戶上限數(shù)),系統(tǒng)維護(hù)一個(gè)文件列表(表2),數(shù)據(jù)標(biāo)簽用來做初步的數(shù)據(jù)存在性檢查,密文數(shù)據(jù)用來發(fā)起PoW驗(yàn)證挑戰(zhàn),當(dāng)PoW驗(yàn)證通過則要求數(shù)據(jù)上傳用戶給數(shù)據(jù)簽名,當(dāng)給數(shù)據(jù)簽名的用戶數(shù)超過流行度閾值t時(shí),流行度狀態(tài)轉(zhuǎn)為1,標(biāo)識(shí)著該數(shù)據(jù)為流行數(shù)據(jù),其含有用戶隱私的可能性低。
表2 文件列表
本方案的偽代碼描述如下,當(dāng)用戶需要將文件f上傳到云存儲(chǔ)系統(tǒng)中時(shí)。文件首先被分割(第一行代碼)。由于方案設(shè)定為一對數(shù)據(jù)塊同時(shí)上傳,所以需要保證文件被分割為偶數(shù)個(gè)數(shù)據(jù)塊(第6-9行)。一個(gè)文件被分割為n個(gè)數(shù)據(jù)塊,所以一次文件上傳需要執(zhí)行n/2輪數(shù)據(jù)問詢(第10行)。當(dāng)服務(wù)器接到重復(fù)查詢信號
算法客戶端去重
輸入:上傳文件f,數(shù)據(jù)塊大小ф
01.user partitionsfinto chunkc1,c2…cn//分割文件
02.user setsn=sizeo(ff)/ф
03.if size o(fcn)≠ф
04.dummy bytes are padded tocn//補(bǔ)齊數(shù)據(jù)塊
05.end if;
06.ifnis odd//數(shù)據(jù)塊數(shù)量為奇數(shù)
07.padded random chunkcn+1//填充一個(gè)數(shù)據(jù)塊
08.sets n=n+1//n+1保證數(shù)據(jù)塊數(shù)量為偶數(shù)
09.end if;
10.for i∈{1,3…n-1}
11.performs duplicate check on
12.ifci=0 andci+1=0//兩數(shù)據(jù)塊存儲(chǔ)狀況為零
13.uploadsciandci+1//上傳數(shù)據(jù)
14.else ifci=1 andci+1=1//數(shù)據(jù)塊都存在
15.if POW test pass//數(shù)據(jù)所有權(quán)驗(yàn)證
16.ifci=1 andci+1is popularity data//兩個(gè)數(shù)據(jù)塊均為流行數(shù)據(jù)
17.replies dc response 0//發(fā)送dc響應(yīng)0,告訴客戶端無需上傳數(shù)據(jù)
18.else
19.ci.sign(U),ci+1.sign(U)//數(shù)據(jù)擁有者對非流行數(shù)據(jù)
簽名
20.replies dc response 1//發(fā)送dc響應(yīng)1,要求上傳數(shù)據(jù)
21.end if;
22.else
23.exit;//所有權(quán)驗(yàn)證不通過中斷去重
24.else//僅有一個(gè)數(shù)據(jù)塊存儲(chǔ)在云中
25.replies dc response 1//發(fā)送dc響應(yīng)1,要求上傳數(shù)據(jù)
26.ifci⊕(ci⊕ci+1)//確認(rèn)存在的數(shù)據(jù)塊
27.storageci//存儲(chǔ)數(shù)據(jù)塊
28.ci+1sign(U) //數(shù)據(jù)擁有者簽名
29.else
30.storageci+1//存儲(chǔ)數(shù)據(jù)塊
31.ci.sign(U)//數(shù)據(jù)擁有者簽名
32.end if;
33.end if;
客戶端重復(fù)數(shù)據(jù)刪除方案是基于服務(wù)器和客戶端進(jìn)行信息交互,通過信息反饋來確認(rèn)數(shù)據(jù)是否需要上傳的。攻擊者根據(jù)此原理發(fā)動(dòng)側(cè)信道攻擊,獲取用戶數(shù)據(jù)隱私。為了隱藏?cái)?shù)據(jù)塊的存在性,本文通過改進(jìn)ZUES方案設(shè)計(jì)了一個(gè)新的dc響應(yīng)表(表1)。響應(yīng)狀態(tài)為0、1、2這3種,當(dāng)dc響應(yīng)為2時(shí),c1、c2兩個(gè)數(shù)據(jù)塊均不存在于存儲(chǔ)系統(tǒng)中,攻擊者無法獲取用戶的隱私;當(dāng)dc響應(yīng)為0時(shí),意味著c1、c2兩個(gè)數(shù)據(jù)塊均存在于存儲(chǔ)系統(tǒng)中,且c1、c2都為流行度高的數(shù)據(jù)塊,其含有隱私數(shù)據(jù)的可能性低,攻擊者通過流行數(shù)據(jù)獲取數(shù)據(jù)擁有用戶的隱私可能性低;當(dāng)dc響應(yīng)為1時(shí),意味著c1、c2至少有一個(gè)數(shù)據(jù)塊存在,此時(shí)服務(wù)器可以根據(jù)數(shù)據(jù)塊c1、c2的數(shù)據(jù)標(biāo)簽確認(rèn)數(shù)據(jù)塊的存在性,但是服務(wù)器并未將這些信息反饋給客戶端,所以攻擊者是無法判斷具體的數(shù)據(jù)塊的存在性;綜上dc響應(yīng)的設(shè)計(jì)能夠隱藏?cái)?shù)據(jù)的存在性,保護(hù)數(shù)據(jù)隱私不被泄露。
在本方案中,當(dāng)系統(tǒng)確認(rèn)某個(gè)數(shù)據(jù)塊在云存儲(chǔ)系統(tǒng)中存在時(shí),會(huì)先進(jìn)行PoW驗(yàn)證確保數(shù)據(jù)上傳者真實(shí)擁有該數(shù)據(jù),防止攻擊者僅憑借數(shù)據(jù)標(biāo)簽就可以獲取到原數(shù)據(jù)的鏈接,進(jìn)而侵犯數(shù)據(jù)真實(shí)擁有者的隱私。重復(fù)上傳數(shù)據(jù)會(huì)要求上傳者對數(shù)據(jù)進(jìn)行數(shù)字簽名,能夠防止惡意用戶重復(fù)上傳某些數(shù)據(jù)導(dǎo)致數(shù)據(jù)流行度遭受惡意修改,更好保護(hù)用戶數(shù)據(jù)的隱私不被泄露。
在云存儲(chǔ)系統(tǒng)去重方案中,會(huì)有一種惡意用戶上傳與文件標(biāo)簽不一致的密文數(shù)據(jù),造成數(shù)據(jù)被污染。例如,惡意用戶是文件F1的上傳者,F(xiàn)1對應(yīng)的數(shù)據(jù)標(biāo)簽為T1,在服務(wù)器要求上傳F1的密文C1時(shí),惡意用戶上傳的是F2的密文C2。當(dāng)后續(xù)上傳者需要下載此文件時(shí),下載解密之后得到的文件便不是F1而是惡意用戶上傳到的F2,造成數(shù)據(jù)污染。
在本文方案中,會(huì)要求在初傳者上傳數(shù)據(jù)時(shí)將數(shù)據(jù)標(biāo)簽與服務(wù)器根據(jù)真實(shí)上傳數(shù)據(jù)計(jì)算的數(shù)據(jù)標(biāo)簽作對比,如果對比通過則存儲(chǔ)數(shù)據(jù);不通過就認(rèn)定本次上傳為惡意上傳終止文件上傳。這樣可以有效避免數(shù)據(jù)被污染,保障用戶上傳數(shù)據(jù)的完整性。
本文方案在文獻(xiàn)[9]提出的ZEUS方案上做出改進(jìn),以犧牲網(wǎng)絡(luò)帶寬的方式提高數(shù)據(jù)隱私保護(hù),所以以通信開銷來評估方案性能。與文獻(xiàn)[9]的ZEUS和文獻(xiàn)[10]的RARE方案作對比。假定任意數(shù)據(jù)塊存儲(chǔ)在服務(wù)器的概率為p,數(shù)據(jù)塊大小為ф。
上傳兩個(gè)數(shù)據(jù)塊的通信開銷計(jì)算為:
文獻(xiàn)[9]中ZEUS方案在上傳數(shù)據(jù)時(shí),除原始數(shù)據(jù)塊之外還需要上傳數(shù)據(jù)對的異或值c1⊕c2(大小為ф),通信開銷計(jì)算為:
同樣的,文獻(xiàn)[10]的RARE方案通信開銷計(jì)算為:
在本文方案中,當(dāng)上傳的兩個(gè)數(shù)據(jù)塊均不在服務(wù)器中時(shí)通信開銷應(yīng)為公式(1)所示;當(dāng)服務(wù)器中存在數(shù)據(jù)塊時(shí),客戶端需要上傳c1、c2的異或值c1⊕c2,此時(shí)本文方案的通信消耗應(yīng)為公式(2)所示;本文方案中設(shè)計(jì)了數(shù)據(jù)流行度的查驗(yàn),當(dāng)數(shù)據(jù)流行度高時(shí),直接告知客戶端無需上傳數(shù)據(jù),此時(shí)通信開銷為零。
綜上分析,很容易得出3個(gè)方案的通信開銷結(jié)果,對比如下:
本方案是在AMD銳龍5的CPU、主頻2.1 GHz、內(nèi)存16 GB、系統(tǒng)為Windows 10的PC上實(shí)現(xiàn)的。使用編程語言為C++,借助OpenSSL庫實(shí)現(xiàn)哈希函數(shù)SHA-256,實(shí)驗(yàn)過程中忽略數(shù)據(jù)標(biāo)簽(數(shù)據(jù)哈希值)上傳造成的通信開銷。在實(shí)驗(yàn)中以上傳同一個(gè)文件的用戶數(shù)作為上傳數(shù)據(jù)的流行度衡量,實(shí)驗(yàn)中選擇一個(gè)大小為1 MB文件進(jìn)行上傳,切分?jǐn)?shù)據(jù)大小設(shè)定為64 KB,將數(shù)據(jù)流行度閾值設(shè)置為{20,30},通過創(chuàng)建不同用戶賬號進(jìn)行數(shù)據(jù)上傳,統(tǒng)計(jì)多次上傳的通信開銷。將本文方案與Original方案以及文獻(xiàn)[9]中的ZEUS方案的實(shí)驗(yàn)結(jié)果作對比,結(jié)果如圖3所示。
圖3 各方案在不同流行度下的通信開銷
由實(shí)驗(yàn)結(jié)果可以看出:Original方案只有在第一次上傳數(shù)據(jù)才有通信開銷,因?yàn)樵趯?shí)驗(yàn)中我們是通過許多不同的用戶賬戶對同一份文件進(jìn)行上傳以達(dá)到改變數(shù)據(jù)流行的目的,所以除第一次之外,其余上傳時(shí)Original方案認(rèn)定上傳數(shù)據(jù)為重復(fù)數(shù)據(jù)就不再將數(shù)據(jù)進(jìn)行上傳,所以在不考慮數(shù)據(jù)隱私的前提下Original的通信開銷是最低的。對比本文方案與ZEUS方案,可以看出當(dāng)數(shù)據(jù)類型為非流行數(shù)據(jù)時(shí),其通信開銷和ZEUS方案一致,當(dāng)數(shù)據(jù)存在于云存儲(chǔ)中但是其為非流行數(shù)據(jù)可能包含用戶的隱私,此時(shí)需要上傳數(shù)據(jù)用以混淆數(shù)據(jù)的存在性,保障用戶數(shù)據(jù)安全;當(dāng)數(shù)據(jù)類型轉(zhuǎn)變?yōu)榱餍袛?shù)據(jù)時(shí),本文方案的通信開銷不再增加,因?yàn)榱餍袛?shù)據(jù)所以含有用戶隱私的可能性低,系統(tǒng)直接執(zhí)行客戶端去重,不再要求上傳數(shù)據(jù),用以隱藏?cái)?shù)據(jù)的存在性。實(shí)驗(yàn)結(jié)果證明本文方案在保障用戶數(shù)據(jù)隱私不泄露的同時(shí)降低了通信開銷。
針對當(dāng)前面向數(shù)據(jù)塊級別的客戶端重復(fù)數(shù)據(jù)刪除方案中存在的缺陷,在ZEUS方案的基礎(chǔ)上,改進(jìn)其dc響應(yīng)的設(shè)計(jì),引入數(shù)據(jù)流行度的概念,根據(jù)流行度對數(shù)據(jù)進(jìn)行不同的處理,在保證數(shù)據(jù)隱私不被泄露的前提下,降低去重過程中網(wǎng)絡(luò)帶寬的消耗;對數(shù)據(jù)進(jìn)行所有權(quán)證明驗(yàn)證確保數(shù)據(jù)上傳者真實(shí)擁有該數(shù)據(jù),進(jìn)一步提高了數(shù)據(jù)安全性,保障用戶隱私。仿真實(shí)驗(yàn)證明本文方案是高效可行的,同時(shí)必須承認(rèn)在去重過程中,為了保證數(shù)據(jù)安全幾乎每一輪的重復(fù)度查詢之后都會(huì)執(zhí)行一次PoW驗(yàn)證,所以整個(gè)文件上傳過程會(huì)造成更多的時(shí)間消耗。如何在保障數(shù)據(jù)安全的前提下減少去重過程中的時(shí)間成本,是下一步研究的重點(diǎn)。