一種基于MapReduce的云存儲批量審計方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于云存儲和數(shù)據(jù)完整性驗證技術(shù)領(lǐng)域,涉及一種云存儲批量審計方法, 具體涉及一種基于MapReduce的云存儲批量審計方法。
【背景技術(shù)】
[0002] 云計算是下一代IT企業(yè)架構(gòu),但是云計算的安全問題阻礙了其大規(guī)模應(yīng)用,其中 一個主要的挑戰(zhàn)是遠(yuǎn)程公開地對不可信的云存儲服務(wù)器上的用戶數(shù)據(jù)進(jìn)行完整性檢驗。然 而由于用戶有限的資源、專業(yè)能力和計算能力,所以需要引入第三方審計,代替用戶執(zhí)行數(shù) 據(jù)完整性檢驗。然而,如果第三方審計運行效率低下,用戶所要求驗證的數(shù)據(jù)完整性反饋速 度較慢,這是云計算用戶很難接受的;此外,如果第三方審計的可用性較差,出現(xiàn)崩潰,無法 連接等問題,是云計算用戶絕對不能接受的。因此第三方審計TPA(Third Party Auditor) 的運行效率和是否具有良好可用性,成為用戶是否選擇使用云計算的重要因素。
[0003] 當(dāng)前針對云環(huán)境下用戶數(shù)據(jù)完整性的驗證問題,不少學(xué)者已經(jīng)有了一些研究。 2007 年,Ateniese 等人在"Provable data possession at untrustedstores"文中第一次 定義公開可驗證的數(shù)據(jù)持有證明(PDP)模型來實現(xiàn)公開可驗證數(shù)據(jù)完整性特性。這篇文章 利用基于RSA的同態(tài)認(rèn)證技術(shù)和隨機取樣方法,來解決用戶需要下載大規(guī)模數(shù)據(jù)再驗證其 正確性所導(dǎo)致的巨大通信代價,然而他們沒有考慮到云環(huán)境下數(shù)據(jù)的海量性,RSA簽名對于 大數(shù)據(jù)驗證所產(chǎn)生的代價是非常大的;與此同時,Juels等人提出一種可選擇性模型一一數(shù) 據(jù)可檢索性證明(P0R),使用點抽查和糾錯碼的方式來保證服務(wù)器對數(shù)據(jù)的擁有性和用戶 對數(shù)據(jù)的可取回性。然而,由于秘鑰個數(shù)的局限性導(dǎo)致挑戰(zhàn)驗證次數(shù)的有限性,用戶經(jīng)過一 定次數(shù)的驗證之后,需要下載數(shù)據(jù)重新標(biāo)記簽名。在這之后,Shacham等在"Compact Proofs of Retrievability"中基于BLS同態(tài)認(rèn)證技術(shù)實現(xiàn)了公開可驗證性,使用了同態(tài)認(rèn)證 (homomorphic authenticators)縮減了通信開銷,并且挑戰(zhàn)次數(shù)是無限的。2009年,Wang 等人在"Enabling public verifiability and data dynamics for storage security in cloud computing"中結(jié)合雙線性聚合簽名的特性將完整性驗證擴展到多用戶環(huán)境中,實現(xiàn) TPA批量審計;批量審計能將不同用戶的不同數(shù)據(jù)的簽名聚集到一個簽名上,對整體一個 簽名的完整性驗證如果通過,那么說明所有包含的數(shù)據(jù)完整性都得到保護(hù),這樣就大大提 高了可信第三方審計TPA的審計效率。然而,如果聚集簽名的驗證失敗,為了找出問題的數(shù) 據(jù),Wang在文章中所說的采用二分查找的方法可以提高查找效率,但是如果出問題的數(shù)據(jù) 不止一個,還是不得不像以前一樣,一個簽名一個簽名的驗證,效率依然非常低;此外,TPA 采用的是集中式系統(tǒng)驗證,一旦出現(xiàn)崩潰現(xiàn)象,云用戶的請求將會擱置,這是云用戶所不能 容忍的。
[0004] 綜上所述,當(dāng)前關(guān)于云存儲中數(shù)據(jù)完整性驗證的研究,可信第三方TPA的驗證效 率不是那么令人滿意,而且沒有一種方法提出分布式的審計系統(tǒng),來提高可信第三方審計 TPA的可用性。
【發(fā)明內(nèi)容】
[0005] 針對現(xiàn)有技術(shù)的缺陷,本發(fā)明提供了一種基于MapReduce的云存儲批量審計方 法,其能在批量審計失敗情況下,大大提高批量審計的效率,并且解決了集中式驗證適應(yīng)性 差的問題,體現(xiàn)了 TPA審計系統(tǒng)的良好可用性。
[0006] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是,一種基于MapReduce的云存儲批量 審計方法,其特征在于,包括以下步驟:
[0007] 步驟1、初始化:每個用戶首先初始化自己的公私鑰,將需要外包到云存儲服務(wù)器 的數(shù)據(jù)進(jìn)行分塊,利用私鑰對每個分塊進(jìn)行BLS簽名,用戶將文件標(biāo)簽、文件的分塊和分塊 的簽名發(fā)送到云存儲服務(wù)器存儲;用戶根據(jù)一個文件初始化一個Merkle Hash Tree,并用 私鑰加密該Merkle Hash Tree的根,用戶將該Merkle Hash Tree和加密后的根發(fā)送至可 信第三方審計TPA (Third Party Auditor)端進(jìn)行存儲;
[0008] 步驟2、請求驗證完整性:不同用戶能同時向第三方審計TPA請求驗證外包數(shù)據(jù)的 完整性,不同用戶將待驗證文件的文件標(biāo)簽發(fā)送至第三方審計TPA ;
[0009] 步驟3、挑戰(zhàn):第三方審計TPA端每接到一個用戶的請求,就向云存儲服務(wù)器發(fā)送 一個挑戰(zhàn),要求返回驗證所需的參數(shù),挑戰(zhàn)內(nèi)容包括文件標(biāo)簽和第三方審計TPA為每個審 計任務(wù)產(chǎn)生的隨機值;第三方審計TPA將文件標(biāo)簽及審計任務(wù)所需隨機值發(fā)送至云存儲服 務(wù)器進(jìn)行挑戰(zhàn);
[0010] 步驟4、提供證據(jù):云服務(wù)器收到一個挑戰(zhàn),就對應(yīng)產(chǎn)生一個證據(jù),證據(jù)內(nèi)容包 括文件標(biāo)簽和審計任務(wù)所需的驗證參數(shù),其中驗證參數(shù)包括數(shù)據(jù)塊的線性組合〇、聚集 簽名y和數(shù)據(jù)塊的哈希值其中i是文件塊的序號,若文件被分為n±夬,則 i G [1,n],而[sUc] e [U]是第三方審計TPA的隨機挑戰(zhàn)序號,云存儲服務(wù)器需要返回被挑 戰(zhàn)數(shù)據(jù)塊的哈希值;
[0011] 步驟5、數(shù)據(jù)完整性驗證:第三方審計TPA收到證據(jù)之后,首先驗證Merkle Hash Tree的完整性是否遭到破壞;然后驗證數(shù)據(jù)本身的完整性是否遭到破壞;
[0012] 步驟6、批量審計:第三方審計TPA每隔一段預(yù)設(shè)時間收集一次云存儲服務(wù)器發(fā)送 的證據(jù),對數(shù)據(jù)進(jìn)行一次統(tǒng)一驗證。
[0013] 作為優(yōu)選,步驟2的具體實現(xiàn)包括以下子步驟:
[0014] 步驟2. 1 :用戶通過本地保留的文件標(biāo)簽,找到需要驗證完整性的文件;
[0015] 步驟2. 2 :用戶將待驗證數(shù)據(jù)的文件標(biāo)簽發(fā)送至第三方審計TPA。
[0016] 作為優(yōu)選,步驟4的具體實現(xiàn)包括以下子步驟:
[0017] 步驟4. 1 :云存儲服務(wù)器收到第三方審計TPA發(fā)送的挑戰(zhàn),根據(jù)文件標(biāo)簽找到待驗 證的文件;
[0018] 步驟4. 2 :通過待驗證的文件、文件的簽名及審計任務(wù)隨機數(shù)計算數(shù)據(jù)塊的線性 組合。、聚集簽名y和數(shù)據(jù)塊的哈希值。,作為驗證所需證據(jù);
[0019] 步驟4. 3 :云存儲服務(wù)器將證據(jù)返還至第三方審計TPA。
[0020] 作為優(yōu)選,步驟5的具體實現(xiàn)包括以下子步驟:
[0021] 步驟5. 1 :第三方審計TPA收到證據(jù)之后,首先利用本地MerkleHashTree提供 的輔助驗證信息AAI(包括MerklrHashTree中沒有被挑戰(zhàn)到的數(shù)據(jù)塊的哈希值和中間節(jié) 點的哈希值)、加密的根和數(shù)據(jù)塊的哈希值HOiOsl <; 。計算出一個新MerkleHashTree 的根;
[0022] 步驟5. 2 :第三方審計TPA將新的Merkle Hash Tree的根與步驟1中加密的根進(jìn) 行比較,驗證Merkle Hash Tree的完整性是否遭到破壞;
[0023] 若驗證失敗,返還FASLE,本流程結(jié)束;
[0024] 否則,執(zhí)行下述步驟5. 3 ;
[0025] 步驟5. 3 :第三方審計TPA利用公鑰以及數(shù)據(jù)塊的線性組合〇和聚集簽名y驗 證數(shù)據(jù)的完整性是否遭到破壞;
[0026] 如果驗證通過,返還TRUE,本流程結(jié)束;
[0027]否則,返還FASLE,本流程結(jié)束。
[0028] 作為優(yōu)選,步驟6的具體實現(xiàn)包括以下子步驟:
[0029] 步驟6. 1 :第三方審計TPA每隔一段預(yù)設(shè)時間收集一次云存儲服務(wù)器發(fā)送的證 據(jù);
[0030] 步驟6. 2 :利用BLS簽名的同態(tài)認(rèn)證特性,第三方審計TPA將這段時間內(nèi)收集到的 證據(jù)所對應(yīng)的文件簽名聚集成一個簽名;
[0031 ] 步驟6. 3 :第三方審計TPA利用公私鑰及證據(jù)驗證聚集簽名;
[0032] 如果聚集簽名驗證通過,說明這段時間內(nèi)所有需驗證的文件完整性都得到保護(hù), 返回給每一個用戶TRUE,本流程結(jié)束;
[0033] 如果聚集簽名驗證不通過,利用Hadoop分布式系統(tǒng)的MapReduce計算框架,并行 地驗證