尹勤勤
廣東工業(yè)大學 計算機學院,廣州 510006
當前網(wǎng)絡信息爆炸式增長以及用戶的數(shù)據(jù)存儲需求不斷增加,眾多企業(yè)及個人用戶傾向于將數(shù)據(jù)外包給擁有巨大容量且價格相對低廉的云存儲提供商以便于節(jié)省存儲開支及管理成本。數(shù)據(jù)去重技術(也稱為重復數(shù)據(jù)刪除技術)是云存儲系統(tǒng)中一種非常重要的數(shù)據(jù)管理和存儲優(yōu)化方法,通過數(shù)據(jù)去重技術可以消除冗余的數(shù)據(jù),相同的文件只保存一個物理副本,大大減少了用戶上傳帶寬以及存儲空間。常見的備份應用中,數(shù)據(jù)去重技術能夠達到90%以上的去重率,該技術廣泛應用于商業(yè)云存儲及數(shù)據(jù)備份服務,如Dropbox、Mozy和Memopal等。
隨著安全云存儲系統(tǒng)的提出,加密數(shù)據(jù)的去重技術已經(jīng)成為研究熱點問題。加密數(shù)據(jù)去重技術的難點在于傳統(tǒng)加密方式下不同的用戶針對相同內容的文件可能采用不同的密鑰進行加密,導致相同的文件內容產(chǎn)生不同的加密密文,使得數(shù)據(jù)加密和去重技術彼此沖突。近來成為研究熱點的收斂加密技術[1](convergent encryption)可以解決該沖突。收斂加密被廣泛用于構造安全的數(shù)據(jù)去重系統(tǒng)[2-4],但是收斂加密也面臨數(shù)據(jù)泄露、復制偽造攻擊、選擇明文攻擊、內容分發(fā)網(wǎng)絡攻擊等多種危險[5-8]。為了提高去重的安全性和數(shù)據(jù)的隱私性,Bellare等[9]提出了DupLESS安全去重模型,引入了基于PRF協(xié)議的第三方密鑰服務器產(chǎn)生密鑰,將可預測數(shù)據(jù)文件加密生成不可預測數(shù)據(jù)文件從而抵抗暴力破解攻擊。與DupLESS方案在客戶端部署密鑰服務器不同,Miguel等[10]提出使用同態(tài)加密去重HEDup方案,在公有云存儲服務提供商上部署密鑰服務器Key Server,并且客戶端采用Ren等[11]提出的同態(tài)XOR對會話請求進行加密,提高數(shù)據(jù)保密性。Stanek等[12]根據(jù)數(shù)據(jù)的不同流行度提出新穎的加密方案,該方案提出流行度高的數(shù)據(jù)隱私性較小,可以使用傳統(tǒng)的數(shù)據(jù)加密;對于不流行的隱私數(shù)據(jù)進行兩層加密模式增強數(shù)據(jù)的保密性。Yan等[13]在實現(xiàn)加密數(shù)據(jù)去重的同時,使用代理重加密技術實現(xiàn)離線數(shù)據(jù)分享,支持數(shù)據(jù)所有權認證并且優(yōu)化了訪問控制機制。Li等[14]提出了高可靠性的分布式去重系統(tǒng),通過將密文數(shù)據(jù)分發(fā)到多臺服務器實現(xiàn)了數(shù)據(jù)密文的分布式容錯存儲,解決了密鑰單點失效問題。
從去重細粒度區(qū)分,數(shù)據(jù)去重技術可以分為文件級去重技術[15]和塊級去重技術[16]?;跀?shù)據(jù)塊級的數(shù)據(jù)去重技術能獲得較高的壓縮率,也是目前為止使用最廣泛的數(shù)據(jù)去重技術。隨著文件塊劃分得越小,提高去重效率的同時產(chǎn)生大量的密鑰,密鑰數(shù)目隨著上傳數(shù)據(jù)塊的增長而呈線性相關增長。Puzio等[17]提出ClouDedup方案,在傳統(tǒng)云存儲系統(tǒng)中增加了兩個系統(tǒng)實體server和metadata manager,實現(xiàn)了用戶的數(shù)據(jù)塊級別去重和細粒度訪問控制,同時提出哈希密鑰加密鏈機制應對密鑰管理難題。Li等[18]提出的Dekey方案使用(n,k,r)RSSS[19](Ramp Secret Sharing Scheme)實現(xiàn)密鑰共享,通過訪問大于r個密鑰管理服務器(KM-CSP)重構得到收斂密鑰,實現(xiàn)了密鑰容錯機制。Zhou等[20]提出高效安全的去重方案SecDep,基于文件細粒度執(zhí)行不同加密算法,并且使用文件密鑰對塊密鑰進行加密實現(xiàn)密鑰管理,減少了密鑰存儲空間的開銷。Li等[21]提出基于混合云的認證去重系統(tǒng)模型,只有當用戶滿足文件的訪問權限,才可以訪問私有云服務器獲得權限密鑰生成重復檢測標簽,從而進行數(shù)據(jù)去重。
本文旨在解決惡意用戶發(fā)起的猜測攻擊和暴力破解攻擊難題,改進現(xiàn)有混合云存儲系統(tǒng)模型[21],提出一種基于布隆過濾器的混合云存儲安全去重方案BFHDedup。本文提出的BFHDedup方案主要貢獻如下:
(1)在文獻[21]基礎上改進混合云存儲模型,在私有云部署密鑰服務器Key Server,基于布隆過濾器驗證用戶權限,無相應權限密鑰的用戶無法獲取重復檢測標簽進行數(shù)據(jù)訪問操作,實現(xiàn)了細粒度的用戶訪問控制。
(2)實現(xiàn)文件級去重和文件塊級去重的相結合,提高數(shù)據(jù)去重率。
(3)使用雙層加密機制,在傳統(tǒng)收斂加密技術基礎上增加新的額外加密算法,增強數(shù)據(jù)的保密性。
(4)使用密鑰加密鏈思想改進密鑰管理方案,減少用戶本地的存儲空間,有效避免了單點失效性。
本章介紹方案中引入的符號說明和關鍵技術及算法,其中包括布隆過濾器、收斂加密算法。
符號說明如表1所示。
表1 符號說明
布隆過濾器(Bloom Filter)是一種具有較高空間效率的隨機數(shù)據(jù)結構,由一個很長的二進制向量和k個相互獨立的哈希函數(shù)組成,用于判斷某個元素是否屬于特定的集合。Bloom Filter的主要優(yōu)點在于快速、省空間,但是其存在一定的誤識別率。
假定Bloom Filter有m比特,集合中有n個元素,每個元素通過k個哈希函數(shù){Hash1,Hash2,…,Hashk}映射到{1,2,…,m}的范圍中。對于任意一個元素x,第i(1≤i≤k)個哈希函數(shù)映射的位置Hashi(x)置為1。當插入某個數(shù)據(jù)對象 s時,計算{Hash1(s),Hash2(s),…,Hashk(s)}并且將映射值對應的k個位置都為1,具體映射方法如圖1。查詢數(shù)據(jù)對象s是否在集合時,查詢Bloom Filter的k個位置{Hash1(s),Hash2(s),…,Hashk(s)}是否全為1,如果不全為1,則集合中不包含s;否則s可能存在集合中。假設元素存在的誤識別率為P,則P=[1-(1-1/m)kn]k≈(1-e-kn/m)k。本文使用m比特布隆過濾器,用來判斷用戶權限是否存在于已知文件權限集合中,假設一個權限數(shù)據(jù)用16比特存儲,k=8,則誤判率為5/10 000,在本方案應用環(huán)境下,誤判情況是可以容忍的。
圖1 Bloom Filter的映射方法
收斂加密是一種確定性加密算法,加密密鑰由數(shù)據(jù)內容產(chǎn)生,一個收斂加密方案由以下基本密碼原語構成:
KeyGenCE(M)=>K:收斂密鑰產(chǎn)生算法,以數(shù)據(jù)明文作為輸入,收斂加密密鑰K作為輸出。
EncCE(K,M)=>C:加密算法,以收斂加密密鑰K和明文M作為輸入,加密后的密文C作為輸出。
DecCE(K,C)=>M :解密算法,以收斂加密密鑰K和密文C作為輸入,解密后的明文M作為輸出。
TagGen(M)=>TM:標簽產(chǎn)生算法,以數(shù)據(jù)明文M作為輸入,標簽TM作為輸出。
本文方案改進的混合云存儲系統(tǒng)包括三個實體如圖2所示,即用戶實體,私有云實體(Private Cloud)以及公有云存儲服務提供商實體(S-CSP),其中用戶實體包括數(shù)據(jù)所有者(Data Owner)和數(shù)據(jù)擁有者(Data User)。
圖2 基于布隆過濾器的安全去重混合云模型
用戶實體(Data Owner/Data User):用戶為了節(jié)省管理成本和存儲開銷,將數(shù)據(jù)外包給云存儲服務器提供商進行存儲。基于本文提出的BFHDedup方案而言,對于每一份不同的數(shù)據(jù)塊或者文件,首次上傳的用戶認定為數(shù)據(jù)所有者(Data Owner),后續(xù)有相同權限的用戶(Data User)上傳相同的數(shù)據(jù)時,S-CSP將不再重復存儲相同數(shù)據(jù),只需將指向數(shù)據(jù)的訪問指針分發(fā)給用戶。
私有云實體(Private Cloud):私有云部署密鑰服務器(Key Server)負責管理并分發(fā)用戶的權限密鑰ks,生成權限標簽實現(xiàn)用戶和S-CSP之間的重復檢測操作,過濾部分無權限且非誠信的用戶。在數(shù)據(jù)加密階段,私有云增加了額外加密機制,將收斂加密的密文進行重加密保護數(shù)據(jù)的隱私,防止收斂加密在可預測文件前提下容易遭到的窮舉攻擊。
公有云存儲服務提供商實體(S-CSP):提供廉價的數(shù)據(jù)存儲服務,負責存儲用戶上傳的數(shù)據(jù),并且通過使用數(shù)據(jù)去重技術僅存儲一份不同的數(shù)據(jù)副本節(jié)省存儲空間和管理成本。
本文提出的BFHDedup方案主要考慮到兩種類型的威脅攻擊:外在攻擊和內在攻擊。外在攻擊者一般企圖通過公共信道盡可能對公有云和私有云發(fā)起猜測攻擊截取信息。任何一個有權訪問公有云存儲服務的用戶都可以被認為是潛在的內在攻擊者,他們擁有部分權限并設法從公有云或私有云服務器中竊取部分感興趣的數(shù)據(jù)內容。其中,未通過權限認證的內在攻擊者相當于外在攻擊者,無法訪問數(shù)據(jù),可能與其他實體共謀獲取信息。
基于私有云實體是可信第三方的前提條件,該方案安全性能基于以下的目標。
(1)重復檢測標簽的安全性:未經(jīng)認證的用戶沒有訪問權限或者文件,無法獲取進行去重檢測的標簽,并且無法下載數(shù)據(jù)密文。S-CSP是誠信并且好奇的,一旦收到重復檢測請求,可以執(zhí)行重復檢測操作。由于權限密鑰是私有云部署的Key Server驗證文件信息以及用戶身份權限產(chǎn)生的,未認證用戶即使與公有云服務器同謀也無法偽造權限密鑰生成重復檢測標簽進行去重檢測訪問數(shù)據(jù)。
(2)數(shù)據(jù)保密性:本方案的數(shù)據(jù)加密在傳統(tǒng)的收斂加密基礎上添加重加密機制,重加密之后,系統(tǒng)內單個實體無法解密密文數(shù)據(jù)獲取明文,即使S-CSP和私有云同謀,由于收斂密鑰的未知也無法解密數(shù)據(jù)。只有當擁有相應的權限的用戶和私有云交互才能解密密文獲取明文信息。合法用戶基于自身利益不會選擇與私有云同謀,并且無法獲取其他用戶的權限和信息,無法攻擊不屬于自身的數(shù)據(jù)文件。
為了實現(xiàn)安全去重云存儲系統(tǒng),本文方案改進混合云存儲系統(tǒng)模型,在私有云服務器上部署密鑰服務器支持布隆過濾器認證用戶的權限身份,只有當用戶權限滿足文件訪問權限集合,則私有云根據(jù)Key Server分發(fā)的權限密鑰生成重復檢測標簽。沒有相應權限的用戶未通過認證,則無法獲取到對應的重復檢測標簽,無法與公有云服務器交互進行去重檢測以及訪問數(shù)據(jù)。通過認證的用戶發(fā)送重復檢測標簽給S-CSP進行去重。如果數(shù)據(jù)不重復,則首先用戶進行收斂加密,再將密文上傳到私有云進行重加密,私有云再上傳重加密密文到SCSP。并且用戶使用加密鏈的機制對收斂密鑰進行管理,節(jié)省存儲密鑰的本地空間。
4.2.1 系統(tǒng)設置
步驟1(權限密鑰初始化階段)系統(tǒng)權限全集定義為S={s1,s2,s3,…,sj},私有云部署的密鑰服務器Key Server對每個權限屬性sj生成權限密鑰ksj并且存儲。
步驟2(用戶權限初始化階段)假設系統(tǒng)中有N個用戶,每個用戶在注冊登錄系統(tǒng)時獲取自身的身份權限集合SU,用戶定義文件F的訪問權限集合為SF。
步驟3(Bloom Filter初始化階段)私有云初始化選擇k個哈希函數(shù){Hash1,Hash2,…,Hashk},文件訪問權限集合SF可通過k個哈希函數(shù)映射到文件F對應的m比特布隆過濾器。
4.2.2 文件上傳
文件上傳的主要流程如圖3,包括(a)權限標簽生成流程,(b)數(shù)據(jù)去重流程,(c)數(shù)據(jù)加密流程。其中詳細階段如下:
圖3 文件上傳流程圖
(1)請求權限驗證階段(用戶→私有云):用戶U向私有云發(fā)送權限驗證請求,輸入自身的權限集合SU以及文件F的標簽?F=H(F)。如果進行塊級別去重,則用戶將文件F分成固定大小的文件塊{Bi},發(fā)送塊標簽?Bi=H(Bi)及SU給私有云。
(2)權限驗證階段(私有云→Bloom Filter,私有云→用戶):私有云收到請求?F及SU,首先查詢是否已存儲該文件標簽?F。如果標簽已存在,則私有云查詢Bloom Filter是否已存儲權限集合SU中的權限。如果已存儲,則權限驗證通過。如果未存儲,用戶證明文件的所有權,證明通過則更新Bloom Filter,證明失敗則中止操作。
(3)Bloom Filter查詢及更新權限階段(私有云→Bloom Filter):如果私有云請求查詢權限,輸入用戶權限{sj,sj∈SU},用k個哈希函數(shù)計算得到{Hash1(sj),Hash2(sj),…,Hashk(sj)}k個位置,并比較已存儲的Bloom Filter中對應的k個位是否全為1,如果全為1,表示權限已存在,即用戶權限通過認證;否則,權限未通過認證。如果當前私有云請求更新權限,將用戶輸入的權限集合{sj,sj∈SU}用k個哈希函數(shù)計算映射到m比特布隆過濾器上存儲,即將布隆過濾器中對應的{Hash1(sj),Hash2(sj),…,Hashk(sj)}k個比特位設為1。
(4)權限標簽生成階段(私有云→用戶):用戶U通過權限認證之后,私有云部署的密鑰服務器根據(jù)用戶的權限{sj,sj∈SU}選擇對應的權限密鑰ksj,并且計算文件權限標簽{TF,sj=TagGen(H(F)⊕ksj),sj∈SU}發(fā)送給用戶。塊標簽生成階段類似,計算塊權限標簽{TBi,sj=TagGen(H(Bi)⊕ksj),sj∈SU}發(fā)送給用戶。
(5)數(shù)據(jù)去重階段(用戶?S-CSP):用戶首先上傳文件權限標簽{TF,sj}給S-CSP進行文件重復檢測,如果該標簽存在重復,則該文件重復,S-CSP將發(fā)送簽名信息{σ(TF,sj)}及指向文件的指針給用戶,用戶保存該指針以便日后訪問文件。如果文件不重復,則將進行塊級去重操作。用戶將會上傳塊權限標簽{TBi,sj}給S-CSP進行塊重復檢測,如果塊重復,則用戶將會獲取到塊指針以及塊簽名信息{σ(TBi,sj)}與文件重復類似。如果塊不重復,則進行數(shù)據(jù)塊加密上傳階段。
(6)數(shù)據(jù)塊加密上傳階段(私有云?用戶→S-CSP):用戶在上傳非重復塊之前,首先使用收斂加密算法加密數(shù)據(jù)塊。用戶計算收斂密鑰Ki=KeyGenCE(Bi),使用收斂密鑰加密數(shù)據(jù)塊{Bi}得到密文塊Ci=EncCE(Bi,Ki)。并且將密文塊上傳到私有云,私有云使用權限密鑰ksj進行雙層加密得到密文塊Cksi=E(Ci,ksj)并返回給用戶。用戶將密文塊{Cksi}上傳到S-CSP進行存儲。
(7)密鑰管理階段(用戶→S-CSP):數(shù)據(jù)塊加密時,每個文件塊Bi加密產(chǎn)生塊哈希密鑰Ki,當i≥2,計算密鑰密文CKi=E(Ki-1,Ki)。用戶將密鑰密文{CKi}上傳到S-CSP進行存儲。用戶只需要本地保存每個文件塊F的第一個塊B1的收斂密鑰K1,則可以恢復整個文件F。
(8)權限標簽更新階段(私有云?用戶→S-CSP):用戶上傳文件F,且可以更新文件F的訪問權限為SF={sj},則用戶通過更新權限可以實現(xiàn)文件F的分享。用戶輸入權限及S-CSP的簽名信息給私有云,私有云執(zhí)行Bloom Filter更新權限階段,并且對于更新的權限生成權限標簽。本方案中該權限更新階段分為三種情況:
①當文件重復時,用戶的權限標簽已存在,僅需要更新文件權限和用戶權限的差集{sj,sj∈SF-SU},且對于差集中的權限計算權限標簽{TF,sj=TagGen(H(F)⊕ksj),sj∈SF-SU}并發(fā)送給用戶。用戶上傳權限檢測標簽{TF,sj,sj∈SF-SU}給S-CSP存儲進行更新標簽,以便用來共享用戶進行去重檢測,不需要重復上傳文件。
②當文件不重復時部分塊重復,操作與文件重復時類似,輸入發(fā)送文件F的權限集合SF={sj}及{σ(TBi,sj)}給私有云。私有云驗證且計算差集的塊權限集合{TBi,sj=TagGen(H(Bi)⊕ksj),sj∈SF-SU}返回給用戶。用戶上傳塊權限標簽{TBi,sj,sj∈SF-SU}給S-CSP存儲進行更新標簽。
③當文件塊不重復,用戶的權限標簽不存在,待更新的權限集合為{sj,sj∈SF},權限生成階段中私有云將計算{TBi,sj=TagGen(H(Bi)⊕ksj),sj∈SF}發(fā)送給用戶。用戶上傳塊權限標簽{TBi,sj,sj∈SF}給S-CSP存儲進行更新標簽。
4.2.3 文件下載
步驟1用戶U下載文件F,首先發(fā)送文件ID和權限集合SU={si}給私有云。
步驟2一旦收到請求,私有云檢測文件F對應的布隆過濾器是否包含用戶權限{si}。如果權限驗證失敗,私有云發(fā)送中止信號給用戶表示驗證失敗。權限驗證通過,則私有云計算并發(fā)送權限標簽{TBi,sj}給用戶,用戶將權限標簽{TBi,sj}發(fā)送到S-CSP。
步驟3 S-CSP發(fā)送對應標簽的密文塊{Cksi}和{CKi}給用戶。用戶下載文件,首先使用本地存儲的K1解密下一個塊的收斂密鑰密文CK2得到K2,遞歸解密完得到所有的{Ki}。用戶將{Cksi}發(fā)送到私有云,私有云解密返回密文塊{Ci},然后使用{Ki}解密{Ci},得到Bi=DecCE(Ki,Ci),將{Bi}恢復成文件F,完成文件的下載,具體流程如圖4。
圖4 數(shù)據(jù)下載流程圖
為了避免惡意用戶針對收斂加密發(fā)起的猜測攻擊以及暴力破解攻擊等,本文提出一種基于布隆過濾器的安全去重方案BFHDedup,鑒于私有云是可信第三方,公有云是誠實且好奇的實體的前提條件,該方案的安全性主要從以下幾方面分析。
本方案的重復檢測標簽的產(chǎn)生算法與傳統(tǒng)去重檢測標簽產(chǎn)生算法不同,傳統(tǒng)去重標簽檢測算法是基于數(shù)據(jù)內容的哈希值,即TM=TagGen(M)使得攻擊者可以隨意發(fā)送數(shù)據(jù)內容M的哈希值TM猜測云存儲中是否已存儲該數(shù)據(jù)M。本文提出的BFADedup方案基于用戶的權限信息sj獲取權限密鑰ksj產(chǎn)生重復檢測標簽TM,sj=TagGen(H(M)⊕ksj)。沒有相應權限sj的外在攻擊者無法通過驗證獲取權限密鑰ksj,并且無法生成對應文件的重復檢測標簽TM,sj。即使是系統(tǒng)內在攻擊者能竊取到重復檢測標簽,也無法分辨對應的權限和數(shù)據(jù)文件?;谟脩舻挠邢迿嘞捱M行細粒度訪問控制,可以有效避免攻擊者發(fā)起猜測攻擊以及暴力破解攻擊。同時,權限密鑰ksj是由Key Server產(chǎn)生,私有云計算權限標簽TM,sj發(fā)送給用戶,因此用戶無法直接獲取到權限密鑰ksj,避免了用戶之間同謀產(chǎn)生新的權限集合偽造不屬于自身權限的重復檢測標簽進行去重,并且未經(jīng)認證的用戶與公有云同謀也無法偽造權限密鑰進行去重檢測。
用戶在上傳數(shù)據(jù)到S-CSP之前,首先進行收斂加密將數(shù)據(jù)明文M 生成密文C=EncCE(M,KCE),隨后將密文上傳到私有云,私有云使用權限密鑰ksj進行重加密,再將重加密密文Cksj=EncSE(C,ksj)上傳到公有云進行存儲。基于重加密機制,使得可預測數(shù)據(jù)信息加密后生成的密文不可預測,可以避免攻擊者對S-CSP發(fā)起的暴力破解及字典攻擊。即使未認證的用戶與S-CSP同謀,也無法獲取到重加密的權限密鑰ksj,無法解密數(shù)據(jù)密文。本方案假設私有云是可信的且不會與S-CSP進行同謀,但即使私有云和S-CSP同謀也只能獲取到收斂加密的密文C,無法得知收斂密鑰KCE解密密文C,只是會降低系統(tǒng)安全等級使其等同于傳統(tǒng)的收斂加密。其中收斂密鑰KCE被用戶進行加密管理。尤其是在塊級別去重加密階段,為了節(jié)省密鑰管理成本,本方案提出使用密鑰鏈機制,使用前一個塊的收斂密鑰加密下一個塊的收斂密鑰生成密鑰密文進行外包存儲,用戶只需要存儲首個文件塊的收斂密鑰,系統(tǒng)其他實體無法獲取到密鑰解密密文。
本章將文獻[21]Li的方案時間開銷與本文提出的BFHDedup方案進行仿真實驗對比。在網(wǎng)絡正常的情況下,基于Myeclipes軟件,使用Java語言編程測試兩種方案的時間開銷,表2為仿真實驗測試環(huán)境。
表2 仿真實驗測試環(huán)境
實驗1不同大小文件的上傳時間開銷對比。參照文獻[21]的實驗,選擇大小為10 MB、50 MB、100 MB、200 MB、400 MB的文件,設置默認分塊大小為4 MB。BFHDedup方案與Li的方案相比,部署了布隆過濾器可以減少權限的驗證時間,但是當文件不重復時涉及到分塊,塊標簽的哈希計算以及大量加密計算開銷等使得本方案時間開銷多于Li的方案。參照圖5實驗結果,可以得知文件越大,塊級別去重時間開銷更大,與Li的方案僅實現(xiàn)文件去重相比時間開銷差異增加。
圖5 不同大小文件的上傳時間開銷
實驗2不同重復率條件下的文件上傳時間開銷對比。實驗選擇兩組相同的文件,每組都由50份100 MB不重復的文件組成,首先上傳其中一組文件,再根據(jù)0、25%、50%、75%、100%不同重復比率上傳另一組文件,記錄文件上傳時間。實驗結果如圖6,兩種方案隨著文件重復率的增加,標簽計算時間不改變但加密操作逐漸減少,因此文件上傳時間開銷逐步減少。并且文件重復率增加的同時,塊級別去重操作將減少,大量文件重復使得相應的數(shù)據(jù)分塊、塊標簽計算、加密等操作將減少,因此兩種方案的時間差異隨之減少。在文件重復率為100%時,BFHDedup方案無需進行文件塊級去重,文件上傳開銷時間與Li的方案時間開銷基本相同。BFHDedup方案雖然時間開銷稍高于Li的方案,但實現(xiàn)了更高的去重比率且減少了存儲開支,犧牲時間開銷換取空間開銷,可以適用于常用的備份系統(tǒng)。
圖6 不同重復率下的文件上傳時間開銷
實驗3不同權限屬性數(shù)目下生成權限標簽的時間開銷對比。選取100份10 MB不同權限屬性數(shù)目的文件上傳,實驗結果如圖7,當權限屬性數(shù)目增加100倍,相應的查詢時間增加,則生成權限密鑰及生成權限標簽的時間也會增加。與Li的方案相比,BFHDedup方案在驗證權限階段采用的Bloom Filter實現(xiàn)高效查詢,減少了權限驗證時間。
圖7 不同權限屬性數(shù)目下生成權限標簽的時間開銷
在本地存儲空間開銷方面,本文BFHDedup方案在上傳加密階段,使用密鑰鏈加密機制將前一個文件塊密鑰加密后一個文件塊密鑰生成密鑰密文塊上傳到公有云,用戶僅需本地存儲每個文件的第一個文件塊的密鑰,即該文件塊的哈希值。文獻[21]Li的方案中僅涉及到文件級別的去重,即對于每個文件僅需要存儲一個固定比特的文件哈希值用于解密文件。因此,理論上兩個方案的本地密鑰相當于固定比特的哈希值,所占存儲空間基本相同,但是本方案實現(xiàn)了塊級別去重與文件級去重的結合,其采用的密鑰鏈加密機制大大減少了用戶本地的存儲空間且實現(xiàn)了更高的去重比率。
本文提出基于Bloom Filter的混合云存儲安全去重方案BFHDedup,BFHDedup方案將文件級與塊級去重結合實現(xiàn)了細粒度去重,并且使用加密鏈機制管理龐大數(shù)目的塊密鑰減少了存儲空間。Bloom Filter是一種空間利用率高的算法,用于BFHDedup方案中權限集合的查找驗證,盡管存在一定的誤判率,但即使部分用戶錯誤獲取到權限標簽由于沒有收斂密鑰也無法解密密文。在可容忍的時間開銷代價下,本方案保障了較高的數(shù)據(jù)去重比率,實現(xiàn)了數(shù)據(jù)的機密性且減少了存儲空間。安全性分析證明無論是內在攻擊者還是外在攻擊者,都無法解密密文獲取明文信息。下一步研究的工作主要集中在云存儲系統(tǒng)中數(shù)據(jù)下載恢復階段的完整性審計方面,嘗試探索高效驗證在云存儲系統(tǒng)中的數(shù)據(jù)完整性相關課題。
:
[1]Douceur J R,Adya A,Bolosky W J,et al.Reclaiming space from duplicate files in a serverless distributed file system[C]//InternationalConference on Distributed Computing Systems,2002:617-624.
[2]Storer M W,Greenan K,Long D D E,et al.Secure data deduplication[C]//ACM Workshop on StorageSecurity and Survivability,Storagess 2008,Alexandria,VA,USA,October,2008:1-10.
[3]González-Manzano L,Orfila A.An efficient confidentialitypreserving proof of ownership for deduplication[J].Journal of Network&Computer Applications,2015,50:49-59.
[4]GNUnet.GNUnet,a framework for secure peer-to-peer networking[EB/OL].https://gnunet.org/.
[5]Perttula.Attacks on convergent encryption[EB/OL].http://bit.ly/yQxyvl.
[6]Anderson P,Zhang L.Fast and secure laptop backups with encrypted de-duplication[C]//International Conference on Large Installation System Administration,2010:1-8.
[7]Bitcasa.Bitcasa inifinite storage[EB/OL].http://blog.bitcasa.com/tag/patented_deduplication/.
[8]Harnik D,Pinkas B,Shulman-Peleg A.Side channels in cloud services:deduplication in cloud storage[J].IEEE Security&Privacy,2010,8(6):40-47.
[9]Bellare M,Keelveedhi S,Ristenpart T.DupLESS:serveraided encryption for deduplicated storage[C]//Usenix Conference on Security,2013:179-194.
[10]Miguel R,Aung K M M.HEDup:secure deduplication with homomorphic encryption[C]//IEEE International Conference on Networking,Architecture and Storage,2015:215-223.
[11]Ren S Q,Tany B H M,Sundaram S,et al.Homomorphic exclusive-or operation enhance secure searching on cloud storage[C]//IEEE International Conference on Cloud Computing Technology and Science,2014:989-994.
[12]Stanek J,Sorniotti A,Androulaki E,et al.A secure data deduplication scheme forcloud storage[M]//Financial Cryptography and Data Security.Berlin Heidelberg:Springer,2014:99-118.
[13]Yan Z,Ding W,Yu X,et al.Deduplication on encrypted big data in cloud[J].IEEE Transactions on Big Data,2016,2(2).
[14]Li J,Chen X,Huang X,et al.Secure distributed deduplication systems with improved reliability[J].Transactions on Computers IEEE,2015,64(12):3569-3579.
[15]Wilcox-O’Hearn Z,Warner B.Tahoe:the least-authority file system[C]//ACM Workshop on Storage Security and Survivability,Storagess 2008,Alexandria,VA,USA,October 2008:21-26.
[16]Li J,Chen X,Xhafa F,et al.Secure deduplication storagesystemssupporting keyword search[J].Journalof Computer&System Sciences,2015,81(8):1532-1541.
[17]Puzio P,Molva R,Onen M,et al.Block-level de-duplication with encrypted data[J].Ronpub Ug,2014,1:10-18.
[18]Li J,Chen X,Li M,et al.Secure deduplication with efficient and reliable convergent key management[J].IEEE Transactions on Parallel&Distributed Systems,2014,25(6):1615-1625.
[19]Blakley G R,Meadows C.Security of ramp schemes[C]//Advances in Cryptology,Proceedings of CRYPTO’84,Santa Barbara,California,USA,August 19-22,1984:242-268.
[20]Zhou Y,F(xiàn)eng D,Xia W,et al.SecDep:a user-aware efficient fine-grained secure deduplication scheme with multi-level key management[C]//2015 31st Symposium on Mass Storage Systems and Technologies(MSST),2015:1-14.
[21]Li J,Li Y K,Chen X,et al.A hybrid cloud approach forsecure authorized deduplication[J].IEEE Transactions on Parallel and Distributed Systems,2015,26(5):1206-1216.