林耿豪,周子集,唐 鑫,周藝騰,鐘宇琪,齊天旸
(國(guó)際關(guān)系學(xué)院 網(wǎng)絡(luò)空間安全學(xué)院,北京 100091)
云存儲(chǔ)提供以數(shù)據(jù)存儲(chǔ)和管理為核心的云計(jì)算服務(wù)。隨著互聯(lián)網(wǎng)數(shù)據(jù)的激增,越來越多的用戶選擇將數(shù)據(jù)外包給云服務(wù)提供商(Cloud Service Provider,CSP)來減輕本地壓力。由于云存儲(chǔ)具有數(shù)據(jù)量大、受眾范圍廣等特點(diǎn),云服務(wù)商面臨著冗余存儲(chǔ)的問題。有研究表明,近75%的云端存儲(chǔ)數(shù)據(jù)至少存在一份副本。此外,大量數(shù)據(jù)的重復(fù)上傳也給資源有限的用戶引入了沉重的通信開銷。鑒于此,Dropbox、Mozy、Mega、Bitcasa[1]、百度云、阿里云等云服務(wù)提供商都開始采用去重技術(shù)來解決數(shù)據(jù)冗余問題。根據(jù)發(fā)生位置的不同,可將去重技術(shù)分為目標(biāo)端去重(又稱云端去重)和源端去重[2](又稱客戶端去重)。在目標(biāo)端去重[3]中,客戶端不必與云服務(wù)器進(jìn)行去重響應(yīng)的交互,可以有效防范側(cè)信道攻擊,但是用戶必須先上傳完整的文件,再由云端判斷是否執(zhí)行重復(fù)數(shù)據(jù)刪除。由此帶來的是通信開銷與存儲(chǔ)開銷的增加。源端去重[4]在上傳數(shù)據(jù)之前,首先將其哈希指紋上傳到服務(wù)器,如果服務(wù)器索引中存在數(shù)據(jù)指紋,則不會(huì)上傳相應(yīng)的文件。該技術(shù)能在文件級(jí)、塊級(jí)和字節(jié)級(jí)檢測(cè)數(shù)據(jù)流中的相同數(shù)據(jù)對(duì)象,只傳輸和存儲(chǔ)惟一的數(shù)據(jù)對(duì)象,并使用指向惟一數(shù)據(jù)對(duì)象的指針替換其他重復(fù)副本,從而實(shí)現(xiàn)快速縮減海量數(shù)據(jù)的目的。具體來說,用戶在外包數(shù)據(jù)之前先計(jì)算目標(biāo)文件的哈希值作為查詢標(biāo)簽發(fā)送給云服務(wù)商,后者在本地查找確認(rèn)是否已經(jīng)存儲(chǔ)相同文件,如果是,則返回響應(yīng)阻止用戶的進(jìn)一步上傳。盡管這一方案提高了存儲(chǔ)效率和帶寬利用率,云服務(wù)商返回的確定性響應(yīng)卻為攻擊者創(chuàng)建了一個(gè)側(cè)信道[5],一旦不需要后續(xù)上傳,目標(biāo)文件的存在性隱私立即泄露。尤其對(duì)于包括電子郵件、企業(yè)合同、病歷、電子工資單、標(biāo)底書等在內(nèi)的含低最小熵敏感信息的文件,攻擊者完全可以猜測(cè)文件內(nèi)容并發(fā)動(dòng)文件確認(rèn)、學(xué)習(xí)剩余信息[6]和附加塊攻擊[7]等側(cè)信道攻擊,竊取合法用戶的身份、職業(yè)、敏感文件等隱私信息,嚴(yán)重危害用戶數(shù)據(jù)安全[8]。
為抵抗側(cè)信道攻擊,已有研究主要分為以下幾類:①添加可信網(wǎng)關(guān)[9]。在客戶端和云服務(wù)器之間設(shè)置一個(gè)第三方可信存儲(chǔ)網(wǎng)關(guān),由客戶端將數(shù)據(jù)先上傳至網(wǎng)關(guān)進(jìn)行存儲(chǔ),再由網(wǎng)關(guān)執(zhí)行去重后上傳至云服務(wù)器中。然而可信網(wǎng)關(guān)在現(xiàn)實(shí)場(chǎng)景中的部署開銷嚴(yán)重阻礙了實(shí)際應(yīng)用。②設(shè)置觸發(fā)閾值[10]。只有請(qǐng)求文件的云端副本數(shù)量超過設(shè)定的閾值后,才會(huì)觸發(fā)去重機(jī)制,使隱私程度較高的非流行文件得到更好的保護(hù)。然而云端需要存儲(chǔ)相同文件的多個(gè)副本,不可避免地引入大量開銷。并且一旦文件副本數(shù)量超過閾值,去重機(jī)制便失去了對(duì)文件存在性隱私的保護(hù)作用。③混淆響應(yīng)值。即引入響應(yīng)模糊化策略,使得無論請(qǐng)求文件中的目標(biāo)敏感塊是否存在于云端,返回的去重響應(yīng)對(duì)于攻擊者都是難以區(qū)分的。這在一定程度上提高了去重方案的安全性。然而考慮到隨機(jī)塊生成攻擊[11]這一更為復(fù)雜的側(cè)信道攻擊,現(xiàn)有方案的隱私泄露概率將急劇增加。具體來看,攻擊者可以將隨機(jī)生成的塊和含有敏感信息的目標(biāo)塊混合在一起生成去重請(qǐng)求發(fā)送給云服務(wù)提供商,由于隨機(jī)生成的塊在云端存在的概率極低,將其視為未命中塊。一旦響應(yīng)返回下邊界值,即要求用戶上傳的塊或線性組合的數(shù)量等于隨機(jī)生成塊的數(shù)量,目標(biāo)敏感塊的云端存在性將泄露給攻擊者。此外,現(xiàn)有方案并未重視請(qǐng)求塊的位置與響應(yīng)間的內(nèi)在聯(lián)系。對(duì)于低熵文件,攻擊者可以構(gòu)造特定排列的去重請(qǐng)求,結(jié)合學(xué)習(xí)剩余信息攻擊[12]和隨機(jī)塊生成攻擊提高成功竊取隱私的概率。
在此背景下,為實(shí)現(xiàn)抵抗側(cè)信道攻擊的安全性,筆者提出了一種新的基于隨機(jī)塊附加策略的云數(shù)據(jù)跨用戶安全去重技術(shù)(Random Chunks Attachment Strategy,RCAS)。RCAS是一個(gè)能夠很好地抵抗隨機(jī)塊生成攻擊的去重協(xié)議,尤其針對(duì)安全風(fēng)險(xiǎn)更高的可預(yù)測(cè)模板文件。具體來說,云服務(wù)商接收到用戶上傳的去重請(qǐng)求后,在請(qǐng)求末端附加一定數(shù)量且狀態(tài)未知的塊來模糊原有請(qǐng)求塊的存在狀態(tài),并通過亂序處理改變?cè)姓?qǐng)求塊間的位置關(guān)系,在新提的響應(yīng)表的幫助下擴(kuò)大響應(yīng)值的取值區(qū)間,從而降低下邊界值返回的概率。文中的工作主要概括如下:
(1) 提出了基于隨機(jī)塊附加策略的跨用戶去重架構(gòu),這是一種簡(jiǎn)單而有效的防御側(cè)信道攻擊的架構(gòu)。在用戶不清楚具體塊的存在狀態(tài)的前提下,支持通過上傳少量冗余數(shù)據(jù)塊(數(shù)量可調(diào)節(jié))來實(shí)現(xiàn)抗隨機(jī)塊生成攻擊、學(xué)習(xí)剩余信息攻擊等側(cè)信道攻擊的安全性。
(2) 提出了RCAS響應(yīng)表、基于添加隨機(jī)塊的存在狀態(tài)模糊化以及上傳塊亂序處理方法,在去重架構(gòu)的幫助下生成混淆響應(yīng)。有效改善已有工作在安全與效率關(guān)系上失衡的問題,實(shí)現(xiàn)了低熵文件的隱私保護(hù)。
(3) 在安全性分析基礎(chǔ)上,通過真實(shí)數(shù)據(jù)集將RCAS與當(dāng)前流行的ZEUS、ZEUS+、RARE、CIDER等方法對(duì)比,證實(shí)文中方法以增加少量開銷為代價(jià)提高了安全性。
本節(jié)將介紹已有抗側(cè)信道攻擊方案,并分析存在的缺陷。HARNIK等[1]首先提出基于隨機(jī)閾值的方法(Randomized Threshold Solution,RTS)和臟塊列表來降低去重響應(yīng)與文件存在性之間的相關(guān)性,并降低攻擊者利用側(cè)信道重復(fù)攻擊的能力。服務(wù)器為每個(gè)文件分配一個(gè)在范圍[2,d]內(nèi)隨機(jī)均勻選擇的閾值,其中d是一個(gè)公共的參數(shù)。當(dāng)文件為流行文件,即上傳次數(shù)超過閾值時(shí),才會(huì)啟用去重。然而,為保證安全性應(yīng)選取較大的參數(shù)d,這導(dǎo)致去重啟動(dòng)開銷較大。LEE等[13]在RTS基礎(chǔ)上提出了一種動(dòng)態(tài)隨機(jī)化確定去重閾值的方法,服務(wù)器將上傳文件的實(shí)際數(shù)量減去集合中的隨機(jī)數(shù)確定為去重閾值,使去重的發(fā)生具有一定的隨機(jī)性。WANG等[14]基于博弈論提出混合策略納什均衡(Mixed-Strategy Nash Equilibrium,MSNE)方法來確定去重閾值,將重復(fù)數(shù)據(jù)消除建模為攻擊者和云之間的動(dòng)態(tài)非合作博弈。但是,以上設(shè)置去重觸發(fā)閾值的方案需要用戶多次上傳文件副本,增加了去重的啟動(dòng)開銷。類似地,TANG等[15]設(shè)計(jì)了一種通過基于拉格朗日插值的聚合策略來支持標(biāo)簽去重和完整性審計(jì)的方案。該方案可以抵抗對(duì)文件所有權(quán)隱私的側(cè)信道攻擊。ZHANG等[16]提出一種基于k匿名策略的安全閾值去重方案,支持機(jī)密性保護(hù)和所有權(quán)驗(yàn)證。然而,類似于RTS,上述兩種方案均無法保證流行文件的存在性隱私。
對(duì)此,ZUO等[7]基于隱私信息僅存在于一個(gè)數(shù)據(jù)塊的假設(shè),提出了一種隨機(jī)冗余塊方法(Randomized Redundant Chunk Scheme,RRCS)。RRCS與RTS類似,設(shè)置一個(gè)取值范圍在[d1,d2]中的隨機(jī)數(shù)w。RRCS的隨機(jī)冗余塊策略指云端在命中塊中隨機(jī)選取w個(gè)塊,將它們標(biāo)記為未命中塊,需要額外上傳。若敏感塊存在,則云端要求用戶上傳w個(gè)塊;若敏感塊不存在,則需要上傳敏感塊,以及其他隨機(jī)選取的w-1個(gè)塊,從而保證每次都需上傳w個(gè)塊,云端通過觀察目標(biāo)敏感塊是否存在調(diào)整隨機(jī)選取塊的數(shù)目,實(shí)現(xiàn)無差別響應(yīng)。在此基礎(chǔ)上,ZUO等提出了一種新的威脅模型“附加塊攻擊”(Appending Chunks Attack,ACA),攻擊者可以生成任意數(shù)量的未命中塊附加在上傳請(qǐng)求中,由于敏感塊未命中時(shí)與附加塊均為未命中塊,云端將無法通過判斷敏感塊的存在狀態(tài)返回?zé)o差別響應(yīng)。在新模型下,RRCS的響應(yīng)值區(qū)間為可區(qū)分區(qū)間,隱私泄露的風(fēng)險(xiǎn)從零提升至1/(d2-d1+1)?;陧憫?yīng)值開展側(cè)信道攻擊的成功率較低,但從塊的位置信息推測(cè)敏感塊是否命中的成功概率極高。RRCS的響應(yīng)值并非未命中塊個(gè)數(shù),而是各個(gè)塊的序列號(hào)。一旦敏感塊命中且沒有包含在隨機(jī)選擇的塊中,攻擊者立即得知它的云端存在性,這種情況的泄露概率高達(dá)w/(n-1),其中n為塊總數(shù)。為此,TANG等[12]提出請(qǐng)求合并方案(Request Merging based Deduplication Scheme,RMDS),用戶上傳所有塊的內(nèi)容異或值。若敏感塊未命中,則云端可由其余存在塊和該異或值求出敏感塊內(nèi)容;若敏感塊命中,則用戶也需上傳異或值,以實(shí)現(xiàn)無差別混淆。對(duì)于附加塊攻擊,RMDS需要不同用戶對(duì)同一目標(biāo)文件請(qǐng)求去重至少兩次,云端可以根據(jù)兩次請(qǐng)求判斷附加塊的數(shù)量N,生成N+XOR作為響應(yīng)值(N為附加隨機(jī)塊塊數(shù)),對(duì)附加塊與其余塊采取不同上傳策略,從而抵抗附加塊攻擊。但是,RRCS與RMDS均假設(shè)敏感信息僅存在于一個(gè)塊,這顯然不符合現(xiàn)實(shí)去重情況。
YU等[17]擴(kuò)展了單敏感塊的應(yīng)用場(chǎng)景,提出隱私感知重復(fù)數(shù)據(jù)消除方案(ZEro knowledge dedUplication reSponse,ZEUS)和ZEUS+方案。ZEUS根據(jù)相鄰兩塊的存在狀態(tài)生成去重響應(yīng),當(dāng)兩個(gè)塊中至少有一個(gè)塊命中時(shí),響應(yīng)值為1,要求用戶上傳這兩個(gè)塊的異或值;否則響應(yīng)值為2,用戶需要上傳兩個(gè)完整塊。同時(shí),ZEUS引入了撤銷請(qǐng)求攻擊——攻擊者獲得響應(yīng)值后拒絕上傳或者上傳不合規(guī)的塊以期望執(zhí)行重復(fù)請(qǐng)求竊取隱私,以及“Sybil”攻擊——攻擊者可以操縱多個(gè)傀儡賬戶發(fā)起攻擊,增加泄露概率。為此,ZEUS設(shè)計(jì)臟塊列表抵御它們。當(dāng)任何塊不合規(guī)請(qǐng)求去重時(shí),該次請(qǐng)求去重的兩個(gè)塊均會(huì)被列入臟塊列表,標(biāo)記為臟塊。若在后續(xù)上傳中任意一個(gè)塊為臟塊,則云端不論這兩個(gè)塊是否存在,都要求上傳兩塊的內(nèi)容而不是兩塊的異或值。由此,臟塊列表使得同一敏感塊僅在第1次請(qǐng)求去重時(shí)存在泄露隱私的風(fēng)險(xiǎn)。在此基礎(chǔ)上,ZEUS+方案還額外引入隨機(jī)閾值的思想,進(jìn)一步保護(hù)數(shù)據(jù)塊的不存在性隱私。隨后,POORANIAN等[18]提出隨機(jī)響應(yīng)方案(RAndom REsponse,RARE),即在ZEUS基礎(chǔ)上采用了混淆性更強(qiáng)的響應(yīng)方案,當(dāng)兩個(gè)塊至少有一塊存在時(shí),云端要求用戶上傳異或值或者兩塊的內(nèi)容,兩種選擇的概率各為50%。然而,這些方案無法抵抗隨機(jī)塊生成攻擊[11],攻擊者可以構(gòu)造敏感塊+隨機(jī)塊的上傳請(qǐng)求,由于隨機(jī)塊未命中,一旦敏感塊命中,兩種方案的隱私泄露概率分別高達(dá)100%和50%。文獻(xiàn)[19]提出基于編碼的客戶端重復(fù)數(shù)據(jù)消除響應(yīng)方案(Coded clIent-side DEduplication Response,CIDER),將RARE的原理推廣到了兩個(gè)以上同時(shí)請(qǐng)求去重的數(shù)據(jù)塊。但是攻擊者仍可以構(gòu)造一個(gè)敏感塊多個(gè)隨機(jī)塊的組合,在第1次攻擊中以50%概率得知敏感塊的存在狀態(tài)。隨后,HA等[20]提出了一種基于分組異或的抗側(cè)信道攻擊去重方案。具體來說,云服務(wù)商根據(jù)存在狀態(tài)將請(qǐng)求塊劃分為命中和非命中兩個(gè)集合,根據(jù)兩集合中塊數(shù)的比值,采用不同的方法將集合中元素兩兩配對(duì),要求用戶上傳不同塊對(duì)的異或值。此方案在一定程度上擴(kuò)大了響應(yīng)的取值范圍。然而,一旦返回響應(yīng)區(qū)間的下邊界值,則存在性隱私立即暴露。
本節(jié)介紹采用隨機(jī)塊附加策略的云數(shù)據(jù)安全去重機(jī)制網(wǎng)絡(luò)模型,并通過定義威脅模型來展現(xiàn)潛在的攻擊手段與安全威脅。
文中的網(wǎng)絡(luò)模型包含兩個(gè)實(shí)體:云服務(wù)提供商以及用戶。一個(gè)云服務(wù)提供商具有強(qiáng)大的計(jì)算能力,可以同時(shí)為多個(gè)用戶提供云存儲(chǔ)、跨用戶去重以及下載服務(wù)。具體來說,接收到去重請(qǐng)求后,云服務(wù)商在本地存儲(chǔ)進(jìn)行比較,并根據(jù)去重協(xié)議生成響應(yīng)返回給用戶,阻止相同文件的后需上傳。而用戶則通過外包文件來減輕本地存儲(chǔ)壓力。用戶將要上傳的文件f以固定長(zhǎng)度φ劃分為多個(gè)塊Ci,i∈{1,2,…,n}。計(jì)算它們的哈希值Hi=Hash(Ci)作為查詢標(biāo)簽發(fā)送給云端,其中Hash(·)是哈希摘要函數(shù)(例如SHA-256)。根據(jù)云端返回響應(yīng)值R計(jì)算并上傳相應(yīng)數(shù)目的線性組合,以供云端解碼得到未命中塊。
側(cè)信道攻擊是跨用戶源端去重的主要威脅。攻擊者偽裝成普通用戶,通過分析敏感塊Ci的云端響應(yīng)值竊取該塊的存在狀態(tài),即試圖得知云存儲(chǔ)中是否已經(jīng)存在Ci的副本。在流量混淆策略下,響應(yīng)值的最小值根據(jù)敏感塊是否存在而變化,因此攻擊者可通過觀察去重響應(yīng)值是否等于已知未命中塊的塊數(shù)來判斷該敏感塊的存在狀態(tài)。如果云端響應(yīng)值R等于已知未命中塊的塊數(shù),則攻擊者得知敏感塊Ci已經(jīng)存儲(chǔ)在云端。
文中方案主要考慮兩種復(fù)雜的側(cè)信道攻擊、隨機(jī)塊生成攻擊[11]和學(xué)習(xí)剩余信息攻擊[6]。
3.2.1 隨機(jī)塊生成攻擊
攻擊者構(gòu)造一個(gè)內(nèi)容為隨機(jī)比特流、長(zhǎng)度為塊長(zhǎng)度φ的隨機(jī)塊。由于一個(gè)隨機(jī)塊被云端檢索到的概率極小可以忽略不計(jì),故認(rèn)為該塊為未命中塊。攻擊者可以構(gòu)造上傳請(qǐng)求,其包括一個(gè)含隱私信息狀態(tài)未知的塊、t個(gè)隨機(jī)塊和s個(gè)命中塊。除敏感塊以外所有塊的存在狀態(tài)已知。當(dāng)敏感塊存在于云端時(shí),云端響應(yīng)值的最小值為t;而敏感塊不存在時(shí),云端響應(yīng)值的最小值為t+1。故一旦攻擊者接收到的響應(yīng)值為t,則可判斷敏感塊命中。
3.2.2 學(xué)習(xí)剩余信息攻擊
對(duì)于低熵模板文件[21],攻擊者可以生成并請(qǐng)求上傳隱私信息的所有可能版本,以獲得它們各自的響應(yīng)值。結(jié)合隨機(jī)塊生成攻擊,一旦生成的敏感塊命中且返回響應(yīng)下邊界值,則該隱私信息的內(nèi)容立即泄露。
文中方案不考慮撤銷請(qǐng)求攻擊、Sybil攻擊與所有權(quán)認(rèn)證(Proof of OWnership,POW)問題。由于文中方案沿用ZEUS的臟塊列表機(jī)制,設(shè)計(jì)針對(duì)文件塊的黑名單機(jī)制,其可以在用戶抵賴、上傳內(nèi)容無法通過完整性檢驗(yàn)時(shí)將非法文件塊記錄為臟塊,阻止攻擊者通過撤銷請(qǐng)求攻擊、Sybil攻擊構(gòu)造去重請(qǐng)求獲取更多信息[17]。此外,在文中模型下,攻擊者可以構(gòu)造去重請(qǐng)求,則該請(qǐng)求的所有塊均為攻擊者所有,必然會(huì)通過所有權(quán)認(rèn)證。因此不考慮模糊去重、密文去重[22]等涉及的所有權(quán)驗(yàn)證威脅。
本節(jié)介紹基于上述系統(tǒng)模型構(gòu)建的采用隨機(jī)塊附加策略的云數(shù)據(jù)安全去重方法(RCAS),從設(shè)計(jì)動(dòng)機(jī)、去重模型框架和去重方法闡述該模型的設(shè)計(jì)與實(shí)現(xiàn)。
現(xiàn)有響應(yīng)模糊化去重策略無法抵御側(cè)信道攻擊的原因主要有如下4個(gè)方面。
4.1.1 響應(yīng)表的設(shè)計(jì)
現(xiàn)有流量混淆策略的去重模型將安全性僅依賴于響應(yīng)表的模糊化。隨著隨機(jī)塊生成攻擊[11]的出現(xiàn),攻擊者可以構(gòu)造僅含有敏感塊與隨機(jī)塊的上傳請(qǐng)求,ZEUS、RARE、CIDER的響應(yīng)表在這種攻擊中存在可區(qū)分響應(yīng),泄露隱私的概率分別為100%、50%和50%。并且,響應(yīng)表的設(shè)計(jì)需要平衡安全性與性能,被要求上傳的命中塊數(shù)越多,模糊性越強(qiáng),但額外通信開銷也越大。例如,若命中塊有50%概率被要求上傳,則側(cè)信道泄露隱私的概率降低至50%,但需要額外上傳50%的命中塊。因此,為實(shí)現(xiàn)安全級(jí)別較高的去重方案,僅憑借響應(yīng)表模糊化會(huì)帶來大量額外傳輸開銷。
4.1.2 多敏感塊的缺陷
現(xiàn)有方案將安全性依賴于多敏感塊的上傳請(qǐng)求。根據(jù)CIDER[19],當(dāng)多個(gè)敏感塊分散在l個(gè)分組中,當(dāng)且僅當(dāng)各分組響應(yīng)值均等于分組內(nèi)未命中塊數(shù)時(shí)泄露隱私,每個(gè)分組泄露隱私概率為50%,因此含l個(gè)敏感塊的上傳請(qǐng)求泄露所有敏感塊隱私的概率為2-l。但攻擊者可以構(gòu)造多個(gè)獨(dú)立的上傳請(qǐng)求,每次請(qǐng)求僅包含單一敏感塊,每次請(qǐng)求泄露單個(gè)敏感塊隱私的概率為50%。攻擊者雖然竊取所有隱私的概率較低,但能夠以較大概率竊取半數(shù)敏感塊。
4.1.3 響應(yīng)值區(qū)間大小的局限
現(xiàn)有方案通過擴(kuò)大響應(yīng)值區(qū)間大小以提高安全性,需要付出高昂傳輸開銷代價(jià)。在RTS方案中,門限最大值d的增大可以擴(kuò)大門限取值區(qū)間;在RRCS中,隨機(jī)選取w個(gè)命中塊標(biāo)記為未命中塊,w∈[d1,d2],該區(qū)間的擴(kuò)大也可以提升安全性??蓞^(qū)分響應(yīng)泄露隱私的概率取決于響應(yīng)值等于其取值下界的概率,而以上策略為了降低該概率需要提高d和d2兩個(gè)參數(shù),它們與隱私泄露概率的關(guān)系為d-1和(d2-d1+1)-1,與開銷的關(guān)系為d和(d2-d1)。因此,隨著參數(shù)變大,安全性提升速度減緩,開銷提高速度不變。文中方案考慮一種新型的隨機(jī)塊附加策略,以較小開銷為代價(jià)實(shí)現(xiàn)安全性大幅提升。將隨機(jī)塊定義為云端生成的存在狀態(tài)未知的塊,結(jié)合范德蒙德編碼方案模糊響應(yīng)值和塊位置間的關(guān)系[19],可以在降低額外通信開銷的同時(shí)為去重方案帶來更高的安全性。以該機(jī)制結(jié)合CIDER為例,假設(shè)一個(gè)分組內(nèi)有k個(gè)狀態(tài)隨機(jī)的附加塊,原有t個(gè)未命中塊和1個(gè)敏感塊,附加塊為命中塊概率α,則響應(yīng)值區(qū)間由[t,t+1]擴(kuò)大至[t,t+k+1],響應(yīng)值為下邊界t時(shí)泄露隱私,隱私泄露概率p降低至αkp。
4.1.4 位置關(guān)系的泄露
現(xiàn)有方案未對(duì)塊與塊位置關(guān)系模糊化處理?,F(xiàn)有方案中敏感塊在上傳請(qǐng)求的位置固定,因此攻擊者可以構(gòu)造含有敏感塊的單一分組,該分組響應(yīng)值由組內(nèi)命中塊與非命中塊數(shù)目決定,響應(yīng)值區(qū)間較小,模糊性較差。當(dāng)采用位置關(guān)系模糊化處理時(shí),敏感塊以等可能概率分布在任意分組,攻擊者僅能通過檢查整個(gè)上傳請(qǐng)求的響應(yīng)值竊取隱私,響應(yīng)值區(qū)間擴(kuò)大。以概率計(jì)算為例,出現(xiàn)隱私泄露的排列為事件A,響應(yīng)表泄露隱私為事件B,則現(xiàn)有方案泄露隱私的概率為P(B),在特定排列下且泄露隱私為事件A∩B,概率為P(AB),小于等于P(B)。因此,未進(jìn)行位置模糊化處理是現(xiàn)有方案泄露隱私概率高的原因之一。
文中方案分別對(duì)以上4種因素采取措施:設(shè)計(jì)RCAS響應(yīng)表,平衡模糊性與去重性能;所有實(shí)驗(yàn)考慮一次上傳請(qǐng)求中僅含一個(gè)敏感塊的情形,在此基礎(chǔ)上開展安全性實(shí)驗(yàn);設(shè)計(jì)存在狀態(tài)模糊化機(jī)制,云端在每個(gè)上傳請(qǐng)求末尾附加k個(gè)狀態(tài)未知的塊,從而將特殊情況下泄露隱私的概率降低至原本的αk,其中α是每個(gè)附加塊為命中塊的概率;云端收到上傳請(qǐng)求后進(jìn)行亂序處理,對(duì)請(qǐng)求中各塊位置模糊處理。
另外,文中方案沿用了3個(gè)現(xiàn)有方案的去重機(jī)制:①參考ZEUS在一定程度上改進(jìn)臟塊列表,阻止攻擊者通過抵賴或上傳不符合完整性校驗(yàn)的塊獲取額外信息并降低傳輸開銷。②參考CIDER響應(yīng)表設(shè)計(jì)響應(yīng)值新下邊界值,考慮攻擊者構(gòu)造的1個(gè)敏感塊加n-1命中塊的上傳請(qǐng)求,其中n為該次上傳的總塊數(shù),當(dāng)敏感塊命中時(shí),該上傳將消除亂序帶來的混淆性,將響應(yīng)值下限從0提升至1,以阻止敏感塊命中帶來的可區(qū)分響應(yīng)。③參考CIDER采用范德蒙德編碼解碼機(jī)制,云端只需發(fā)送未命中塊的數(shù)量信息以保護(hù)未命中塊的位置信息,阻止攻擊者通過判斷位置已知的敏感塊是否需要上傳來竊取信息。
基于隨機(jī)塊附加策略的明文去重方法,去重的流程通常由用戶發(fā)送去重請(qǐng)求開始。如圖1去重模型概念圖所示,首先用戶將文件分塊,并分別計(jì)算每個(gè)塊的哈希值作為查詢標(biāo)簽發(fā)送給云端。接下來,通過圖1中響應(yīng)值處理模塊的6個(gè)子模塊得到響應(yīng)值:①云端從數(shù)據(jù)庫查詢用戶上傳的指紋,檢查各請(qǐng)求去重的塊的哈希值是否存在,獲取擬上傳塊的存在狀態(tài)數(shù)組;查詢臟塊列表,檢查每個(gè)塊是否被標(biāo)記為臟塊,如果是,則在存在狀態(tài)數(shù)組中修改對(duì)應(yīng)數(shù)據(jù)塊的臟塊狀態(tài)標(biāo)識(shí);②附加塊生成器向存在狀態(tài)數(shù)組附加k個(gè)狀態(tài)隨機(jī)的標(biāo)簽;③執(zhí)行亂序處理;④根據(jù)響應(yīng)表生成針對(duì)該次上傳請(qǐng)求的響應(yīng)值;⑤根據(jù)響應(yīng)值的下邊界值修改響應(yīng)值,令其最小為1;⑥返回響應(yīng)值。用戶根據(jù)云服務(wù)提供商返回的響應(yīng)值上傳指定數(shù)目的線性組合,非正常上傳的塊將被加入臟塊列表。云端對(duì)用戶上傳的線性組合解碼還原出相應(yīng)的未命中塊,并在本地?cái)?shù)據(jù)庫保存。此外,云服務(wù)提供商維護(hù)已存儲(chǔ)文件的塊列表,塊列表存儲(chǔ)文件所含塊在數(shù)據(jù)庫的實(shí)際地址。
圖1 采用隨機(jī)塊附加策略的云數(shù)據(jù)安全去重模型概念圖
以用戶A和用戶B的去重為例,在圖2所示基于隨機(jī)塊附加策略的云數(shù)據(jù)跨用戶安全去重模型框架圖中,用戶A將請(qǐng)求上傳的文件fA分割成n個(gè)長(zhǎng)度相等的塊C1,C2,…,Cn,生成每個(gè)塊的標(biāo)簽H1,H2,…,Hn,并以標(biāo)簽集tagA的形式發(fā)送給云服務(wù)提供商作為去重請(qǐng)求。 接收到請(qǐng)求以后,云端首先查詢本地?cái)?shù)據(jù)庫,分別比對(duì)tagA中H1,H2,…,Hn的存在狀態(tài),生成存在狀態(tài)數(shù)組D。 接著,云端逐個(gè)檢查Hi,i∈[1,n]對(duì)應(yīng)的數(shù)據(jù)塊是否為臟塊。 在圖中的例子里,經(jīng)檢查,云服務(wù)提供商發(fā)現(xiàn)臟塊列表為空,所有請(qǐng)求去重的數(shù)據(jù)塊都不是臟塊。再下來,云端使用附加塊生成器生成k個(gè)狀態(tài)隨機(jī)的塊附加在存在狀態(tài)數(shù)組D末尾,然后將存在狀態(tài)數(shù)組重新排列,形成亂序數(shù)組Dshuffle。 云將該數(shù)組的元素按照相鄰順序排列,兩兩分為一組,根據(jù)RCAS響應(yīng)表計(jì)算每小組的響應(yīng)值rai。最后,執(zhí)行求和算法計(jì)算總響應(yīng)值RA,并將RA的最小值限定為1。云服務(wù)提供商將RA發(fā)送給用戶A。 用戶A通過范德蒙德矩陣編碼,計(jì)算并上傳包含C1,C2,…,Cn信息的RA個(gè)線性組合。
對(duì)用戶B,其準(zhǔn)備上傳的文件fB與用戶A上傳的文件fA是相似文件。fB被用戶B分割成n個(gè)長(zhǎng)度相等的塊C1,C2,C′3,…,C′n,其中C1和C2兩塊已由用戶A上傳,屬于命中塊,存在狀態(tài)為1。 在用戶B發(fā)送此去重請(qǐng)求之前,由于某用戶C未按要求上傳,導(dǎo)致C2被標(biāo)記為臟塊。 因此通過查詢臟塊列表,云服務(wù)提供商將用戶B的去重請(qǐng)求標(biāo)簽集tagB中的H2值更新為0。 接下來,云端生成k個(gè)狀態(tài)隨機(jī)的附加塊,再經(jīng)過亂序、響應(yīng)生成等流程,最終生成響應(yīng)值RB。 用戶B計(jì)算并上傳RB個(gè)線性組合。 接收到用戶發(fā)來的線性組合后,云服務(wù)提供商解碼并恢復(fù)出fB。 由于fB所有塊最終都正常上傳,沒有塊被記錄為臟塊。
圖2 采用隨機(jī)塊附加策略的云數(shù)據(jù)安全去重模型框架
去重模型的基本流程大致可以劃分為4個(gè)步驟:用戶請(qǐng)求上傳、云端響應(yīng)、數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)還原。采用隨機(jī)塊附加策略的云數(shù)據(jù)安全去重模型(RCAS)偽代碼描述如下。
算法1RCAS。
輸出:filefwith chunk sizeφ,and user partitionsfinto chunksC1,C2,…,Cn
① if bit length |Cn|≠φ
② user performs padding toCnwith 0 最后一塊用比特0將長(zhǎng)度補(bǔ)齊至塊長(zhǎng)
③ if 0 ④ user addsT-nchunks to the end of filef ⑤ user setsn=T ⑥ user obtainsHi=Hash(Ci)(1≤i≤n) and uploads tag={H1,H2,…,Hn} 計(jì)算上傳請(qǐng)求標(biāo)簽tag ⑦ CSP obtains listD=IsExist(tag) 云端檢查用戶上傳塊的存在狀態(tài)D并檢查臟塊列表 ⑧D′=RandRsp(D,α,k) 執(zhí)行RandRsp函數(shù),附加k個(gè)塊 ⑨Dshuffle=Shuffle(D′,w) 執(zhí)行Shuffle函數(shù),對(duì)D′亂序,w是置亂密鑰 ⑩R=GenRsp(Dshuffle) 執(zhí)行GenRsp函數(shù),獲取響應(yīng)值R 4.2.1 用戶請(qǐng)求上傳階段 用戶對(duì)文件執(zhí)行4個(gè)操作:分塊(Input行)、塊內(nèi)補(bǔ)齊(步驟①~②行)、塊數(shù)補(bǔ)齊(步驟③~⑤)、計(jì)算上傳請(qǐng)求標(biāo)簽(步驟⑥)。首先用戶按照給定的數(shù)據(jù)劃分策略——固定塊長(zhǎng)φ(字節(jié))將文件f分割成n個(gè)小的數(shù)據(jù)對(duì)象塊C1,C2,…,Cn。若最后一個(gè)塊長(zhǎng)度不足φ,則補(bǔ)齊至φ。若塊數(shù)n不足閾值T,則用T-n個(gè)數(shù)據(jù)塊將文件補(bǔ)齊至T塊,這T-n個(gè)塊的內(nèi)容為全0比特。特別地,全0比特塊由于存在于云端,無需額外傳輸開銷,但可以擴(kuò)大響應(yīng)值取值范圍從而保護(hù)敏感信息。用戶在本地基于每個(gè)數(shù)據(jù)塊的內(nèi)容計(jì)算其哈希值作為指紋。塊指紋是數(shù)據(jù)庫存的惟一標(biāo)識(shí),一般選擇SHA-1和MD5等抗沖突加密哈希值作為其指紋。將塊指紋作為上傳請(qǐng)求標(biāo)簽發(fā)送至云端。 4.2.2 云端響應(yīng)階段 云服務(wù)提供商接收用戶發(fā)來的哈希值之后執(zhí)行4個(gè)元算法:IsExist、RandRsp、Shuffle和GenRsp。他們分別對(duì)應(yīng)塊存在性狀態(tài)查詢(步驟⑦)、添加附加塊(步驟⑧)、文件塊打亂(步驟⑨)和響應(yīng)值生成(步驟⑩)。在IsExist算法的執(zhí)行過程中,云服務(wù)提供商從本地?cái)?shù)據(jù)庫中對(duì)用戶上傳的塊指紋進(jìn)行查詢,獲取上傳塊的存在狀態(tài)數(shù)組D。接下來,云端創(chuàng)建用戶ID和文件指紋,文件內(nèi)建立塊列表,將命中塊在數(shù)據(jù)庫的實(shí)際地址保存至塊列表。在RandRsp算法的執(zhí)行過程中,云服務(wù)提供商在用戶擬上傳塊的存在狀態(tài)數(shù)組D尾部添加k個(gè)隨機(jī)塊。然后,云端執(zhí)行Shuffle算法打亂存在狀態(tài)數(shù)組的排序,執(zhí)行GenRsp算法獲取響應(yīng)值R,并限制R的最小值為1(步驟~行)。最后,將響應(yīng)值R發(fā)送給用戶(步驟)。 4.2.3 數(shù)據(jù)存儲(chǔ)階段 用戶執(zhí)行VandEnc算法,云服務(wù)提供商執(zhí)行VandDec算法。在接收到云端的響應(yīng)值R后(步驟),用戶端執(zhí)行VandEnc算法(步驟),以R作為輸入,輸出R個(gè)線性表達(dá)式并將它們上傳至云端(步驟)。云端執(zhí)行VandDec算法對(duì)用戶上傳的R個(gè)線性表達(dá)式進(jìn)行解碼(步驟),從而恢復(fù)出用戶發(fā)送的請(qǐng)求中未命中塊的內(nèi)容。云服務(wù)提供商將未命中塊的實(shí)際地址保存到塊列表中,便于后續(xù)開展去重檢測(cè)和文件還原時(shí)使用(步驟)。 4.2.4 數(shù)據(jù)還原階段 云服務(wù)提供商首先對(duì)用戶開展身份認(rèn)證,檢查用戶對(duì)文件的所有權(quán)。云根據(jù)用戶標(biāo)識(shí)符ID以及文件指紋在云端查詢目標(biāo)文件。若找到目標(biāo)文件,根據(jù)目標(biāo)文件的塊列表提供的各塊實(shí)際地址,將各塊內(nèi)容按序拼接,還原文件。 本小節(jié)介紹實(shí)現(xiàn)文中方法所使用的核心算法,如存在狀態(tài)模糊化、上傳塊亂序、RCAS響應(yīng)生成、范德蒙德矩陣編解碼和臟塊處理等內(nèi)容。 4.3.1 存在狀態(tài)模糊化 存在狀態(tài)模糊化是一種通過對(duì)用戶請(qǐng)求去重的文件對(duì)應(yīng)的數(shù)據(jù)塊標(biāo)簽中,附加一定數(shù)量狀態(tài)隨機(jī)的塊,以實(shí)現(xiàn)混淆命中塊塊數(shù)的方法。 云服務(wù)提供商在接收到用戶發(fā)送的查詢標(biāo)簽Hi之后,先分別檢查每一個(gè)標(biāo)簽在云端的存在狀態(tài),并將存在狀態(tài)存儲(chǔ)在一個(gè)數(shù)組D中。 數(shù)組中元素di,可表示為 (1) 由式(1)可知,D= {0,1}n,其中n為用戶本輪請(qǐng)求去重的文件中數(shù)據(jù)塊標(biāo)簽的總數(shù)。接著,云服務(wù)提供商在D的末尾附加k個(gè)元素,每個(gè)元素以概率α取1,以概率1-α取0。 存在狀態(tài)模糊化通過對(duì)存在狀態(tài)數(shù)組D做出一定改變,可在響應(yīng)值得出過程中實(shí)現(xiàn)有效混淆。 從實(shí)現(xiàn)上看,獲取存在狀態(tài)以及存在狀態(tài)模糊化可以用原算法形式表示如下: (1)D←IsExist(tag),其中輸入為集合tag,表示用戶上傳的請(qǐng)求去重的數(shù)據(jù)塊標(biāo)簽的集合;輸出為數(shù)組D,表示云服務(wù)提供商返回的用戶擬上傳數(shù)據(jù)塊在云端的存在性狀態(tài)。 函數(shù)IsExist()用來判斷tag中的每個(gè)數(shù)據(jù)塊標(biāo)簽是否存在于云端,并將結(jié)果記入D中。 (2)D′←RandRsp(D,α,k),其中輸入為數(shù)組D,附加元素取值概率α以及附加元素個(gè)數(shù)k,輸出為數(shù)組D′。 函數(shù)RandRsp()表示響應(yīng)模糊化函數(shù),向數(shù)組D中添加k個(gè)元素,其中每個(gè)元素以概率α取1,以概率1-α取0。 4.3.2 上傳塊亂序 亂序是將敏感塊等可能地分散至任一分組,從而擴(kuò)大響應(yīng)值的取值區(qū)間,以實(shí)現(xiàn)對(duì)攻擊者的混淆。 為了實(shí)現(xiàn)亂序,通常采用專門實(shí)現(xiàn)置亂的庫函數(shù),輸入有序序列,得到等長(zhǎng)亂序序列。 從實(shí)現(xiàn)上看,亂序可以用元算法形式表示如下: Dshuffle←Shuffle(D′,w),其中w為置亂密鑰,由CSP隨機(jī)生成。 該算法以經(jīng)過云端模糊化處理的文件塊存在狀態(tài)數(shù)組D′為輸入,將亂序后的數(shù)組Dshuffle作為輸出。 4.3.3RCAS響應(yīng)生成 R←GenRsp(Dshuffle),其中輸入是亂序后的存在狀態(tài)數(shù)組Dshuffle,輸出是該數(shù)組的響應(yīng)值R。 該函數(shù)表示由存在狀態(tài)數(shù)組生成響應(yīng)值的函數(shù)。 表1 RCAS響應(yīng)表 4.3.4 范德蒙德矩陣編解碼 范德蒙德矩陣編解碼[19]由客戶端范德蒙德編碼與云端范德蒙德解碼組成。 假設(shè)待上傳的文件含有n個(gè)塊,其中t個(gè)為未命中塊,文件塊矩陣C=[C1,C2,…,Cn]T,云端返回的響應(yīng)值為r。 客戶端線性表達(dá)式計(jì)算如下:用戶與云端約定了一個(gè)r×n的范德蒙德矩陣Vr,矩陣的秩R(Vr)=r。 用戶計(jì)算mr=VrCr,并將矩陣mr上傳至云端。 云端得到mr后,取其前t行,記為mt,云端由參數(shù)t計(jì)算矩陣Vt,計(jì)算(n-t)×n的In-t,In-t的內(nèi)容為(E(n-t)×(n-t)?0(n-t)×t),E為單位矩陣,0為零矩陣;由于云端已經(jīng)擁有n-t個(gè)塊,云端由這些塊得出矩陣Cn-t=[C1,C2,…,Cn-t]T;接著將In-t和Vt拼接,形成n×n的矩陣;將Cn-t與mt拼接,形成n×φ的矩陣。 由式(4),可得出C=[C1,C2,…,Cn]T。Vr、mr、Cn表達(dá)式為 (2) mr=VrCr, (3) (4) 從實(shí)現(xiàn)上看,范德蒙德編碼與解碼可以用元算法形式表示如下: (1)m←VandEnc(V,C),其中輸入為矩陣V和C,輸出為矩陣m,該函數(shù)表示范德蒙德編碼。 (2)C←VandDec(m,V),其中輸入為矩陣V和m,輸出為矩陣C,該函數(shù)表示范德蒙德解碼。 4.3.5 臟塊處理 云端設(shè)置臟塊列表,將所有未上傳的或上傳后未通過完整性校驗(yàn)的塊定義為臟塊,記錄在臟塊列表中[17]。在請(qǐng)求去重階段,云服務(wù)提供商收到用戶發(fā)來的文件塊標(biāo)簽后首先檢索它們是否在臟塊列表中。有別于ZEUS、CIDER的臟塊處理機(jī)制,若塊Ci為臟塊,則云端僅將該塊的存在性狀態(tài)設(shè)置為不存在,即0。無需將本組所有塊狀態(tài)設(shè)置為不存在,此改進(jìn)可以有效減少傳輸開銷。 本節(jié)從理論上分析RCAS去重策略面對(duì)隨機(jī)塊生成攻擊的安全性。 定理1面對(duì)隨機(jī)塊生成攻擊時(shí),當(dāng)上傳塊數(shù)n遠(yuǎn)大于附加塊k時(shí),RCAS的響應(yīng)值泄露隱私的概率小于目標(biāo)敏感塊在云端存在概率的1%。 證明:假設(shè)攻擊者構(gòu)造包含n個(gè)塊的去重請(qǐng)求,其中含1個(gè)狀態(tài)未知的目標(biāo)敏感塊,目標(biāo)敏感塊在云端存在概率為p,包含s個(gè)命中塊和t個(gè)未命中塊,n=s+t+1。 云端附加的隨機(jī)塊數(shù)為k,n>>k。令泄露隱私為事件A,云端響應(yīng)值為響應(yīng)值下邊界是事件B,敏感塊為命中塊是事件C,事件B|C為事件X,云端k個(gè)附加塊中有i個(gè)塊為命中塊是事件Zi。P(C)=p。 對(duì)于隨機(jī)塊生成攻擊,當(dāng)敏感塊存在于云端且云端響應(yīng)值為響應(yīng)值下邊界時(shí)泄露隱私,此時(shí)有 P(A)=P(BC)=P(C)P(B|C)=pP(B|C) 。 (5) 計(jì)算全概率公式: P(B|C)=P(X)=P(Z0)P(X|Z0)+P(Z1)P(X|Z1)+…+P(Zk)P(X|Zk) 。 (6) 由于單個(gè)附加塊命中概率α,未命中概率1-α,且各個(gè)附加塊是否命中相互獨(dú)立,可得 (7) 因此,求P(X|Zi)可得P(A)。 事件X出現(xiàn)情景如下:當(dāng)n+k個(gè)塊,所有命中塊靠左側(cè)排列,而所有非命中塊靠右排列時(shí),根據(jù)RCAS響應(yīng)表,響應(yīng)值即為下邊界值,等于未命中塊塊數(shù),泄露敏感塊存在性隱私,此時(shí)有 (8) 將式(7)、(8)代入式(5),可得 (9) 展開式(9),可得 (10) (11) (12) (13) (14) 定理2當(dāng)上傳數(shù)據(jù)中含有臟塊,且上傳塊數(shù)n遠(yuǎn)大于附加塊k時(shí),泄露隱私的概率小于敏感塊在云端存在概率的1%。 證明:考慮以下場(chǎng)景,攻擊者可能無法從一次攻擊得知敏感塊狀態(tài),因此考慮對(duì)同一敏感塊的多次攻擊。比如攻擊目標(biāo)的薪資收入是40美元,攻擊者需要反復(fù)上傳驗(yàn)證該具體數(shù)值。 一旦該敏感塊存儲(chǔ)至云端,竊取該塊存在性隱私的攻擊將沒有效果。 為保證后續(xù)驗(yàn)證時(shí)目標(biāo)塊未存儲(chǔ)于云端,攻擊者在得到第1次請(qǐng)求的響應(yīng)后會(huì)選擇中斷上傳。 根據(jù)臟塊機(jī)制,中斷上傳將導(dǎo)致后續(xù)請(qǐng)求中包含臟塊。 假設(shè)后續(xù)請(qǐng)求總塊數(shù)為n,其中含1個(gè)敏感塊,目標(biāo)敏感塊在云端存在概率為p,請(qǐng)求還包含s個(gè)命中塊和t個(gè)未命中塊,n=s+t+1。 若敏感塊為臟塊,且此外含若干臟塊。因?yàn)榕K塊的存在狀態(tài)為0,即為非命中塊,故響應(yīng)值下界大于等于t+1,大于t。 又因?yàn)楫?dāng)且僅當(dāng)敏感塊為命中塊且響應(yīng)值為t時(shí)泄露隱私,故敏感塊為臟塊時(shí)不會(huì)泄露隱私。 泄露隱私概率為0,小于0.01p。 通過實(shí)驗(yàn)來測(cè)試文中方案抵抗側(cè)信道攻擊的安全性以及去重性能。比較對(duì)象為DEDUP、ZEUS[17]、ZEUS+[17]、RARE[18]、CIDER4[19]、CIDER8[19],其中DEDUP為未設(shè)置任何模糊化處理的跨用戶源端去重,CIDER4為每次上傳4個(gè)塊為一個(gè)分組的CIDER去重模型。實(shí)驗(yàn)采用Python實(shí)現(xiàn)采用隨機(jī)塊附加策略的云數(shù)據(jù)安全去重方法。在該去重系統(tǒng)中,哈希摘要函數(shù)采用SHA-256算法。選取亞馬遜EC2來部署云端程序,選取一組配置為 Intel(R) Core(TM) i7-8565U CPU @ 1.80 GHz、8 GB RAM內(nèi)存和512 GB容量 7 200 轉(zhuǎn)硬盤的服務(wù)器部署用戶端程序。在安全性驗(yàn)證實(shí)驗(yàn)部分采用UCI機(jī)器學(xué)習(xí)知識(shí)庫的薪資數(shù)據(jù)集Census Income[23],其包含48 842條薪資數(shù)據(jù)。在去重性能實(shí)驗(yàn)部分采用Enron電子郵件數(shù)據(jù)集[24],其大小為1.5 GB。 模型中,塊大小φ為實(shí)驗(yàn)變量,φ∈{64,128,256,512},單位為字節(jié)(B)。附加塊為公開塊的概率α,設(shè)置為0.5。附加塊塊數(shù)k為實(shí)驗(yàn)變量,k∈{2,4,6},單位為塊。文件所含塊數(shù)閾值T默認(rèn)為30,隨著塊數(shù)增加,安全性逐漸增強(qiáng),當(dāng)塊數(shù)大于等于30塊時(shí),安全性趨于定值,因此選取T=30。 使用UCI機(jī)器學(xué)習(xí)知識(shí)庫的薪資數(shù)據(jù)集Census Income測(cè)試比較各個(gè)方法面對(duì)隨機(jī)塊生成攻擊結(jié)合學(xué)習(xí)剩余信息的混合攻擊時(shí),泄露目標(biāo)敏感塊存在性隱私的概率。場(chǎng)景如下:數(shù)據(jù)機(jī)構(gòu)A將某公司員工工資信息表存放于云端,該文件只含部分敏感數(shù)據(jù),其余部分均為公開數(shù)據(jù)。具體地,工資信息表包含年齡、階層、婚姻狀況等公開信息以及學(xué)位、每小時(shí)薪資、資本收入敏感信息。攻擊者在未經(jīng)許可的情況下想要獲知其他員工的學(xué)位、薪資、資本收入,只需按照模板格式生成目標(biāo)員工的公開信息,同時(shí)附加上猜測(cè)的敏感信息生成工資信息表,并生成去重請(qǐng)求,發(fā)送給云服務(wù)提供商觀察響應(yīng)。一旦云服務(wù)提供商在本地發(fā)現(xiàn)相同的工資信息條目,則會(huì)阻斷當(dāng)次上傳。此時(shí)該攻擊者就可確認(rèn)猜測(cè)的學(xué)位、薪資、資本收入即為目標(biāo)對(duì)象的真實(shí)信息。 該數(shù)據(jù)集含有3類低最小熵的可預(yù)測(cè)敏感信息,每條敏感信息存在于單一數(shù)據(jù)塊之中。在攻擊策略上,攻擊者采用學(xué)習(xí)剩余信息,即暴力字典攻擊,例如,攻擊者可以枚舉學(xué)位的所有可能選項(xiàng),學(xué)士學(xué)位、碩士學(xué)位、博士學(xué)位,逐一構(gòu)造含有以上選項(xiàng)的上傳請(qǐng)求,觀察各上傳請(qǐng)求是否被云端阻止。一旦某次上傳請(qǐng)求的敏感信息等于目標(biāo)敏感信息,且上傳請(qǐng)求被阻斷,則泄露隱私。以上構(gòu)造的多次上傳請(qǐng)求被視作一次學(xué)習(xí)剩余信息攻擊。由于目標(biāo)敏感信息必然在上述可能選項(xiàng)之中,因此目標(biāo)敏感塊在云端存在的概率p的值固定為1。對(duì)于學(xué)習(xí)剩余信息攻擊的每次上傳請(qǐng)求,攻擊者采用隨機(jī)塊生成攻擊策略,構(gòu)造內(nèi)容為1個(gè)敏感塊加s個(gè)命中塊加t個(gè)未命中塊的上傳請(qǐng)求。若目標(biāo)敏感塊在云端存在,且響應(yīng)值等于未命中塊數(shù)t,則泄露隱私。本實(shí)驗(yàn)假設(shè)攻擊者試圖竊取所有可預(yù)測(cè)敏感信息,對(duì)每個(gè)目標(biāo)敏感信息構(gòu)造一次學(xué)習(xí)剩余信息攻擊,期望在所有可預(yù)測(cè)敏感信息中猜對(duì)盡可能多的信息。 實(shí)驗(yàn)設(shè)置上,云端數(shù)據(jù)方面,將數(shù)據(jù)集所有薪資數(shù)據(jù)共48 842條上傳至云端數(shù)據(jù)庫。待去重的用戶端數(shù)據(jù)方面,薪資數(shù)據(jù)含有三類敏感信息,共146 526個(gè)敏感數(shù)據(jù)。隨機(jī)選取其中100 000個(gè)敏感數(shù)據(jù)作為敏感數(shù)據(jù),攻擊者采用學(xué)習(xí)剩余信息策略構(gòu)建含有敏感數(shù)據(jù)的上傳請(qǐng)求。若單次學(xué)習(xí)剩余信息攻擊構(gòu)造的所有上傳請(qǐng)求中任意一次響應(yīng)值為t,則此次攻擊成功竊取目標(biāo)敏感信息,記錄100 000次攻擊中成功竊取隱私的次數(shù)。 接下來分別測(cè)試了所提方案與現(xiàn)有工作在上述場(chǎng)景中隱私泄露的概率。 6.2.1 響應(yīng)值下限機(jī)制下RCAS的安全性 為了檢測(cè)設(shè)置響應(yīng)值下限對(duì)隱私保護(hù)的作用,實(shí)驗(yàn)首先測(cè)試了未設(shè)置該機(jī)制時(shí)模型的安全性。如圖3所示,在未命中塊數(shù)量t=0的場(chǎng)景下,隱私泄露率并沒有隨塊數(shù)增加而提升,而是固定在25%、6.25%和1.56%,此時(shí)有極大概率泄露隱私。原因如下:當(dāng)未命中塊數(shù)t=0,且附加的k個(gè)塊全為命中塊時(shí),該情況概率為αk,攻擊者構(gòu)造的上傳請(qǐng)求全部為命中塊,響應(yīng)值以100%概率等于0,即等于未命中塊塊數(shù),從而泄露隱私。而當(dāng)k個(gè)塊不全為命中塊時(shí),此時(shí)t≥1,響應(yīng)值等于未命中塊數(shù)的概率降低。因此泄露隱私的概率P(A)約等于附加的k個(gè)塊全為命中塊的概率αk。具體如圖3所示,當(dāng)k=2時(shí),P(A)=25%;當(dāng)k=4時(shí),P(A)=6.25%;當(dāng)k=6時(shí),P(A)=1.56%,與上述理論值相符。因此,未設(shè)置響應(yīng)值下限時(shí),方案有較高概率泄露敏感信息存在性隱私。 圖3 未設(shè)置響應(yīng)值最小值時(shí)RCAS泄露隱 私次數(shù)圖(其中未命中塊數(shù)t=0) 圖4、5、6展示了設(shè)置響應(yīng)值下限時(shí)模型的安全性。由于未命中塊數(shù)t=0時(shí),響應(yīng)值最小值為1而不為0,此時(shí)隱私泄露概率為0。方案僅在t≥1時(shí)泄露隱私。當(dāng)附加塊數(shù)k=2時(shí),模型泄露隱私概率均小于7%,而當(dāng)k≥2時(shí),模型泄露隱私概率降低至1%以下,體現(xiàn)了所提方法在側(cè)信道攻擊下的安全性。k和t的值越高,所提方法的安全性越強(qiáng)。隨著n的值增加,方法的安全性趨于穩(wěn)定。用戶可以設(shè)置k的值,動(dòng)態(tài)調(diào)整安全性。 圖4 RCAS泄露隱私次數(shù)圖(其中未命 中塊數(shù)t=1,已設(shè)置響應(yīng)值下限) 圖5 RCAS泄露隱私次數(shù)圖(其中未命 中塊數(shù)t=2,已設(shè)置響應(yīng)值下限) 圖6 RCAS泄露隱私次數(shù)圖(其中未命 中塊數(shù)t=4,已設(shè)置響應(yīng)值下限) 6.2.2 RCAS與現(xiàn)有工作安全性性能對(duì)比 RCAS與比較對(duì)象在相同輸入?yún)?shù)下的隱私泄露次數(shù)如表2所示。在100 000次攻擊中,對(duì)照組方案DEDUP以及ZEUS隱私泄露的次數(shù)是100 000次,RARE、CIDER(4)、CIDER(8)方案隱私泄露的次數(shù)分別是50 054、50 090、49 986次。RCAS在不同的參數(shù)設(shè)置下,隱私泄露的次數(shù)分別為25 016、6 256、1 561、475和66次,顯著低于對(duì)比方案,并且用戶可以根據(jù)自己的需求設(shè)置不同附加塊塊數(shù)k以實(shí)現(xiàn)安全性的動(dòng)態(tài)調(diào)整。因此,RCAS在面對(duì)隨機(jī)塊生成攻擊結(jié)合學(xué)習(xí)剩余信息攻擊的混合攻擊時(shí),具有較高的安全性。產(chǎn)生這種現(xiàn)象的原因在于,在對(duì)照組DEDUP方案中,云服務(wù)提供商未對(duì)響應(yīng)值做任何模糊化處理,響應(yīng)值等于未命中塊塊數(shù),因此暴露隱私的概率是100%;在ZEUS方案中,請(qǐng)求去重的塊被成對(duì)檢查,攻擊者構(gòu)造目標(biāo)敏感塊和未命中塊的配對(duì),當(dāng)目標(biāo)塊命中時(shí),響應(yīng)值固定為1,要求用戶上傳這兩個(gè)塊的異或值,否則響應(yīng)值固定為2,要求用戶上傳兩個(gè)塊本身。因此,攻擊者可以根據(jù)響應(yīng)值為1確定目標(biāo)塊的存在;而RARE對(duì)ZEUS方案的這兩種情況做了進(jìn)一步混淆,具體為當(dāng)敏感塊命中時(shí),響應(yīng)值等概率分布為U(1,2)。只要攻擊者接收到響應(yīng)值等于下邊界值1,即未命中塊數(shù),便能推測(cè)出敏感塊命中,因此隱私泄露概率為50%。對(duì)于CIDER,盡管將場(chǎng)景從兩個(gè)塊擴(kuò)展到多個(gè)塊,本質(zhì)上與RARE原理相同,當(dāng)敏感塊命中,一旦響應(yīng)返回下邊界,即未命中塊數(shù),隱私立即泄露。 表2 安全性性能表 通過在Enron電子郵件數(shù)據(jù)集上開展去重實(shí)驗(yàn),比較各方案的去重效率。開展傳輸開銷與塊長(zhǎng)關(guān)系實(shí)驗(yàn),探究保證效率下的最佳塊長(zhǎng);開展傳輸開銷與附加塊塊數(shù)關(guān)系實(shí)驗(yàn),探究方案參數(shù)附加塊塊數(shù)對(duì)去重效率的影響;開展上傳開銷與未命中塊比例關(guān)系實(shí)驗(yàn),比較各方案在不同未命中塊比例下的去重效率。 6.3.1 用戶端上傳開銷與文件塊長(zhǎng)度的關(guān)系 實(shí)驗(yàn)通過比較各模型在不同塊長(zhǎng)下的傳輸開銷探究最佳塊長(zhǎng)。塊長(zhǎng)越小,去重的強(qiáng)度越高。然而,塊長(zhǎng)越小,元數(shù)據(jù)量也會(huì)相應(yīng)增加,客戶端指紋數(shù)目增加,指紋的傳輸開銷更高。為此,設(shè)計(jì)實(shí)驗(yàn)以研究塊長(zhǎng)對(duì)傳輸開銷的影響。 實(shí)驗(yàn)設(shè)置如下:待去重的客戶端數(shù)據(jù)測(cè)試集為Enron電子郵件數(shù)據(jù)集中may-l文件夾,含1 600個(gè)總共大小為5.84 MB的文本數(shù)據(jù)文件。云端數(shù)據(jù)為該數(shù)據(jù)集除去測(cè)試集的所有文件夾內(nèi)數(shù)據(jù),包含51萬個(gè)文件共約1.5 GB的文本數(shù)據(jù)。場(chǎng)景如下:某公司的大多員工已經(jīng)將各自的電子郵件數(shù)據(jù)存儲(chǔ)在云端,員工May最后一個(gè)上傳她的郵件。由于不同電子郵件間形式上極為相似,對(duì)于May,使用源端去重相比于目標(biāo)端去重能夠節(jié)省更多傳輸開銷。除了ZEUS等方案,還比較了DEDUP和RAW兩個(gè)對(duì)照組模型的去重開銷。DEDUP為不經(jīng)任何模糊化處理的源端去重方案,所有命中塊無需上傳。而RAW為目標(biāo)端去重方案,所有塊無論命中與否都需要上傳。選取塊長(zhǎng)φ為自變量,φ∈{64,128,256,512},單位字節(jié)(B)。參數(shù)選取k=2,α=0.5。 塊長(zhǎng)與總傳輸開銷的關(guān)系如圖7所示。當(dāng)塊長(zhǎng)為128 B時(shí),所有方案均有最佳的去重表現(xiàn),所需總傳輸開銷維持在最低水平。而當(dāng)塊長(zhǎng)為64 B或256 B時(shí),各方案去重傳輸開銷均有所上升,而塊長(zhǎng)達(dá)到512 B時(shí),需要額外傳輸大量數(shù)據(jù)。因此,128 B為各方案最佳塊長(zhǎng)度。 圖7 各方案?jìng)鬏旈_銷與分塊長(zhǎng)度的關(guān)系圖 6.3.2 用戶端上傳開銷與附加塊數(shù)量的關(guān)系 附加塊數(shù)量作為方案的可變參數(shù),其與傳輸開銷的關(guān)系值得進(jìn)一步研究。實(shí)驗(yàn)沿用以上實(shí)驗(yàn)的設(shè)置,調(diào)整附加塊數(shù)量k,觀察不同塊長(zhǎng)下的傳輸開銷。如圖8所示,當(dāng)附加塊數(shù)增加時(shí),傳輸開銷沒有顯著變化。原因如下:①對(duì)每個(gè)上傳請(qǐng)求僅執(zhí)行一次隨機(jī)塊附加算法,附加次數(shù)少,因此總附加塊數(shù)遠(yuǎn)少于總塊數(shù)。②每個(gè)附加塊有α概率為命中塊,根據(jù)響應(yīng)值表,命中塊僅有在特殊位置才會(huì)增加傳輸開銷,這進(jìn)一步減少了附加塊數(shù)量對(duì)傳輸開銷的影響。③由于采用真實(shí)數(shù)據(jù)集開展實(shí)驗(yàn),被測(cè)數(shù)據(jù)含有一定數(shù)量的命中塊與未命中塊,多次測(cè)試中在亂序后由響應(yīng)表帶來的額外傳輸開銷各不相同,存在一定的隨機(jī)性。在此隨機(jī)性因素下觀察附加塊數(shù)帶來的影響比較困難。 圖8 RCAS方案?jìng)鬏旈_銷與附加塊數(shù)量的關(guān)系圖 6.3.3 用戶端上傳開銷與未命中塊比例的關(guān)系 將文中模型RCAS在不同命中塊比例下傳輸開銷與ZEUS、RARE和CIDER進(jìn)行比較。采用10%、50%和80%作為未命中塊比例的取值。這3個(gè)取值能夠較為全面地體現(xiàn)不同模型在低、中、高未命中塊比例下的傳輸開銷。具體實(shí)現(xiàn)上,每個(gè)文件將按照最佳塊長(zhǎng)128 B進(jìn)行分塊。以數(shù)據(jù)集所有文件作為云端數(shù)據(jù)選取范圍,隨機(jī)選取90%、50%、20%的文件預(yù)先存放在云端作為云端數(shù)據(jù),因此未上傳的文件為未命中塊,比例分別為10%、50%和80%。選取may-l文件夾中所有文件作為待去重的用戶端數(shù)據(jù),上傳用戶端所有數(shù)據(jù),記錄總傳輸開銷。傳輸開銷由哈希傳輸開銷、未命中塊傳輸開銷組成。分別測(cè)試以上4種方案,各方案總傳輸開銷如圖9所示,額外傳輸開銷如圖10所示。在未命中塊比例較小時(shí),RCAS需要10%的額外傳輸開銷,低于其他方案。當(dāng)未命中塊占比達(dá)到50%時(shí),根據(jù)圖10可知,RARE與ZEUS+的開銷過大,遠(yuǎn)遠(yuǎn)高于RCAS,而CIDER的性能則比RCAS要好。當(dāng)未命中塊比例達(dá)到80%時(shí),RCAS總傳輸開銷稍高于RARE以外的方案??偟膩碚f,未命中塊比例較小時(shí),文中方案在開銷上稍優(yōu)于其他模型,而隨著自變量增大,傳輸開銷與比較對(duì)象持平。產(chǎn)生這種現(xiàn)象的原因如下: 圖9 各方案總傳輸開銷與未命中塊比例的關(guān)系圖 圖10 各方案額外傳輸開銷與未命中塊比例的關(guān)系圖 (1) ZEUS。根據(jù)ZEUS的響應(yīng)表,當(dāng)且僅當(dāng)一個(gè)分組的兩個(gè)塊均為命中塊時(shí),ZEUS會(huì)額外產(chǎn)生一個(gè)塊長(zhǎng)的開銷。當(dāng)未命中塊比例較低時(shí),一個(gè)分組的兩個(gè)塊大概率均為命中塊,此時(shí)ZEUS會(huì)產(chǎn)生更多的額外開銷。而未命中塊比例較高時(shí),兩塊均為命中塊的概率大大降低,ZEUS的額外開銷降低。 (2) ZEUS+。當(dāng)云端存儲(chǔ)的文件塊副本數(shù)較少時(shí),文件塊的存在狀態(tài)被調(diào)整為不存在,響應(yīng)表與ZEUS保持一致,因此ZEUS+會(huì)由于閾值帶來比ZEUS更高傳輸開銷。 (3) RARE。根據(jù)RARE響應(yīng)表,RARE在未命中塊比例較低時(shí),分組內(nèi)均為命中塊概率較高,額外開銷大。當(dāng)未命中塊比例較高時(shí),分組內(nèi)均為未命中塊概率較高,額外開銷小。但額外開銷仍會(huì)高于同類型的ZEUS。 (4) CIDER。選取組內(nèi)塊數(shù)分別為4和8的CIDER4和CIDER8作為RCAS比較的對(duì)象。在未命中塊數(shù)小于組內(nèi)總塊數(shù)時(shí),響應(yīng)值為未命中塊數(shù)和未命中塊數(shù)+1的概率相等,因此額外傳輸開銷約等于一個(gè)塊的大小;否則,不存在額外開銷。因此,隨著未命中塊比例的增加,組內(nèi)未命中塊塊數(shù)等于組內(nèi)總塊數(shù)的概率增大,帶來的額外傳輸開銷減小。由于CIDER每4或8個(gè)塊產(chǎn)生一個(gè)塊長(zhǎng)的額外傳輸開銷,因此傳輸開銷低于ZEUS。 (5) RCAS。根據(jù)RCAS響應(yīng)表,當(dāng)未命中塊比例較低時(shí),組內(nèi)未命中塊+命中塊比例由未命中塊塊數(shù)決定,該組合比例較低,帶來的額外傳輸開銷較少。當(dāng)未命中塊塊數(shù)中等水平時(shí),該組合概率達(dá)到最大值。當(dāng)未命中塊比例較高時(shí),該組合比例由命中塊塊數(shù)決定,比例同樣較低。但是此時(shí)未命中塊+命中塊組合比命中塊+命中塊組合比例更高,而前者增加RCAS額外傳輸開銷,不增加ZEUS的開銷,因此RCAS傳輸開銷比ZEUS高。 文中提出一種采用隨機(jī)塊附加策略的云數(shù)據(jù)安全去重方法RCAS,實(shí)現(xiàn)了抗隨機(jī)塊生成攻擊以及學(xué)習(xí)剩余信息攻擊等側(cè)信道攻擊的安全性。具體來說,該策略采用附加隨機(jī)塊、文件塊亂序、構(gòu)造響應(yīng)表等技術(shù)隱藏文件塊的存儲(chǔ)狀態(tài)和位置信息,擴(kuò)大響應(yīng)值的取值區(qū)間,在增加少量開銷的情況下,使響應(yīng)值出現(xiàn)下邊界值的概率極大降低,從而將安全風(fēng)險(xiǎn)降低到概率可接受范圍。安全性分析和實(shí)驗(yàn)結(jié)果表明,與當(dāng)前流行技術(shù)相比,該方法以增加少量開銷為代價(jià)提高了抗側(cè)信道攻擊的安全性,在包括電子郵件、電子工資單、企業(yè)合同、病歷、標(biāo)底書等在內(nèi)的低熵文件去重領(lǐng)域擁有廣泛的應(yīng)用前景。 但是,文中方法仍有進(jìn)一步優(yōu)化的空間。在接下來的研究中,針對(duì)附加塊為命中塊的概率α,可探究α的不同取值對(duì)去重方案抗側(cè)信道攻擊的安全性與通信開銷的影響;針對(duì)響應(yīng)表的設(shè)計(jì),可探究只有一個(gè)塊命中時(shí)響應(yīng)值取非整數(shù)對(duì)通信開銷的優(yōu)化效果。4.3 采用隨機(jī)塊附加策略的云數(shù)據(jù)安全去重方法
5 安全性分析
6 實(shí)驗(yàn)驗(yàn)證及結(jié)果分析
6.1 模型參數(shù)設(shè)置
6.2 安全性測(cè)試
6.3 去重效率
7 結(jié)束語