苗 麗,彭月英
(1.廣西經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院,廣西 南寧 530021;2.廣西師范學(xué)院,廣西 南寧 530023)
在云計算模式下,靜態(tài)數(shù)據(jù)以存儲為主要目的,用戶只需將數(shù)據(jù)和應(yīng)用進行托管.云計算大規(guī)模、高可擴展性及按需服務(wù)等特點,與傳統(tǒng)IT技術(shù)相比,都有著明顯的優(yōu)勢.但是自云計算誕生以來,發(fā)生的很多安全事件讓云用戶對云存儲產(chǎn)生了很多的不信任.由于這種數(shù)據(jù)外包的服務(wù)使用戶失去了對數(shù)據(jù)的控制,對用戶而言,托管至云端的數(shù)據(jù)一般不再保存數(shù)據(jù)副本,這對數(shù)據(jù)的安全存儲來說無疑是一個隱患.畢竟云服務(wù)商的可信性不可評估:首先,存在不可預(yù)知的云服務(wù)器機械故障或管理失責(zé);其次,云服務(wù)商若發(fā)生數(shù)據(jù)破壞,會盡量隱瞞,是半可信的;再次,即使用戶追究云服務(wù)商的責(zé)任,由于涉及商業(yè)機密,調(diào)查細節(jié)往往難以實現(xiàn)[1].那么如何建立用戶對云端靜態(tài)數(shù)據(jù)存儲的信任,促成數(shù)據(jù)合法并安全的使用,數(shù)據(jù)可信存儲便成了需要解決的關(guān)鍵問題.
云計算采用虛擬化技術(shù),虛擬軟件的安全、虛擬服務(wù)器和客戶端的安全均是研發(fā)人員所面臨的挑戰(zhàn),云安全方面的研究主要集中在三個方面:數(shù)據(jù)的保密性,查詢隱私保護和數(shù)據(jù)的完整性.而其中用戶數(shù)據(jù)完整性主要是指存儲在云端的數(shù)據(jù)有沒有被隨意篡改、刪除或者偽造,數(shù)據(jù)的完整性是數(shù)據(jù)安全中最基本的安全要求,現(xiàn)階段數(shù)據(jù)完整性保護的研究領(lǐng)域主要集中在外包數(shù)據(jù)庫、數(shù)據(jù)發(fā)布、遠程存儲以及云存儲相關(guān)領(lǐng)域.鑒于云服務(wù)商的半可信性特點,用戶必須定期對數(shù)據(jù)進行測試,尤其是對于長時間沒有被訪問的數(shù)據(jù),當(dāng)用戶訪問時才發(fā)現(xiàn)文件被篡改或者丟失,就為時已晚.對用戶來說,將數(shù)據(jù)存儲在云端,希望保證數(shù)據(jù)的完整狀態(tài),而且當(dāng)數(shù)據(jù)被破壞時,希望知道并且可以定位出哪臺數(shù)據(jù)服務(wù)器有問題,從而追究云服務(wù)商的責(zé)任,進而最大程度的進行數(shù)據(jù)補救.
云計算中對數(shù)據(jù)完整性測試可以分為兩個方面:數(shù)據(jù)擁有者和非數(shù)據(jù)擁有者對數(shù)據(jù)的完整性測試.數(shù)據(jù)擁有者是指個人或企業(yè),非數(shù)據(jù)擁有者一般是第三方.已有的完整性測試方案有:
1)PDP(Provable Data Possression).
該方案是測試遠程數(shù)據(jù)的完整性方案,可以檢測到外包數(shù)據(jù)中大于某個比例的數(shù)據(jù)破壞.用戶通過對服務(wù)器發(fā)送挑戰(zhàn)值進行數(shù)據(jù)測試,服務(wù)器收到挑戰(zhàn)之后,隨時抽樣生成概率性的測試結(jié)果,最終反饋給用戶.
2)POR(Proof of Retrievability).
該方案是可證明性數(shù)據(jù)恢復(fù)方案,事先在數(shù)據(jù)文件上植入一些數(shù)據(jù)塊,用來檢測數(shù)據(jù)文件是否被篡改,在隨機抽樣生成的概率性結(jié)果的基礎(chǔ)上,再結(jié)合糾錯碼,最終對被破壞的數(shù)據(jù)進行一定程度的修復(fù).
3)基于哈希樹驗證結(jié)構(gòu)的方法.
哈希完整驗證方法需要用戶存儲所有數(shù)據(jù)文件用來計算哈希值,這本身與用戶使用云存儲的目的相違背,而且測試一次都需要下載整個文件,通信開銷較大.所以,基于哈希計算的完整性測試不適用于云計算環(huán)境.
4)副本修復(fù)策略.
副本修復(fù)策略是系統(tǒng)為對象創(chuàng)建副本后,系統(tǒng)試圖在整個過程中修復(fù)維護對象的副本.有兩種不同的修復(fù)策略:一種是主動修復(fù)策略,檢測到任何一份備份“死去”就立刻創(chuàng)建新的副本;另一種是基于閾值的修復(fù)策略,只有當(dāng)備份數(shù)量小于某些閾值才修復(fù),如Total Re-call[2].
云計算中靜態(tài)數(shù)據(jù)可信存儲的關(guān)鍵在于數(shù)據(jù)的完整性,包括租戶與云服務(wù)器之間傳輸數(shù)據(jù)時的數(shù)據(jù)完整性和已在云端保存的數(shù)據(jù)的完整性.針對云服務(wù)商的信譽和技術(shù),用戶和云服務(wù)商之間需要形成一定的測試規(guī)則.對用戶而言,希望能夠及時了解云端數(shù)據(jù)的完整性狀態(tài),當(dāng)數(shù)據(jù)出現(xiàn)不完整信息的反饋時,用戶能夠及時確定是哪一臺服務(wù)器上的數(shù)據(jù),并且希望能夠?qū)?shù)據(jù)進行較高比例的修復(fù).筆者致力于設(shè)計更為有效的完整性測試算法,利用某種形式的挑戰(zhàn)-應(yīng)答協(xié)議[1],用戶可以及時了解數(shù)據(jù)的完整性情況,還能夠在部分?jǐn)?shù)據(jù)出現(xiàn)損壞時,僅用少量數(shù)據(jù)便能夠進行最大程度的修復(fù)[3],此設(shè)計還巧妙的引入第三方機制,有效地防止云服務(wù)商對數(shù)據(jù)破壞的隱瞞,從而進一步達到數(shù)據(jù)可信存儲的目標(biāo).
數(shù)據(jù)可信存儲的架構(gòu)包含三類實體:租戶、第三方服務(wù)器和云端服務(wù)器(如圖1所示).租戶端即將大量數(shù)據(jù)存儲在云端的租戶,也是完整性測試方案的實施者;第三方是租戶和服務(wù)商進行通信的一個可信的媒介,能夠?qū)τ脩暨M行身份認(rèn)證,并且可以根據(jù)用戶發(fā)出的響應(yīng)值對數(shù)據(jù)完整性進行測試,并將測試結(jié)果返回給租戶;云端存儲服務(wù)器用來存儲用戶的數(shù)據(jù)[4].
圖1 完整性測試方案架構(gòu)Fig.1Integrity verification solution architecture
基于可證明性測試方案和數(shù)字簽名的啟發(fā),筆者提出的完整性測試方案采用多副本存儲,在整個完整性測試過程中,包括3個初始化函數(shù),3個完整性測試函數(shù)和1個數(shù)據(jù)修復(fù)函數(shù).假設(shè)用F表示租戶要保存在云端服務(wù)器上的文件.
1)密鑰生成函數(shù)[1]:Setup(π)→(Pk,Sk),該函數(shù)由租戶設(shè)置,輸入值為安全參數(shù)π,生成租戶的公開密鑰Pk和秘密密鑰Sk,Sk由租戶自己保存,Pk被公開.
2)副 本 生 成 算 法[6]:Duplicate (F,Sk,s,n,m)→ (F1,F(xiàn)2,…,F(xiàn)s).租戶在客戶端采用副本生成算法對源數(shù)據(jù)進行加密,生成s個加密副本,再將加密副本劃分成n個數(shù)據(jù)塊,每個數(shù)據(jù)塊劃分為m個子塊.加密密鑰Sk只有1個,所以要想得到s個不同的副本,可以將副本序號與文件進行連接,然后采用AES等,諸如此類具有強混淆能力的算法進行加密.
綜上,租戶如果需要解密從云端服務(wù)器獲得的數(shù)據(jù),那么只需要保存一個Sk就能可以做到,在一定程度上保證了數(shù)據(jù)不被非法用戶使用,也為后期的數(shù)據(jù)恢復(fù)做好準(zhǔn)備.由此得到,每個副本又被分解為:
3)測試碼生成函數(shù):Key(Pk,Sk,F(xiàn))→ Key,該函數(shù)由租戶設(shè)置,以Pk,Sk,F(xiàn)為輸入,輸出為對文件F的一個測試碼Key.租戶將Key公開為面向第三方的數(shù)據(jù)完整性公開測試.
4)挑戰(zhàn)函數(shù):Chal(X)→Chal:該函數(shù)在租戶端執(zhí)行,輸入為隨機函數(shù)X,輸出值為挑戰(zhàn)值Chal,請求第三方開展對文件F的完整性證明.
5) 響 應(yīng) 函 數(shù):Response(Pk,F(xiàn),Chal) →Ture/Res,該函數(shù)由第三方執(zhí)行,以公開密鑰Pk、F和挑戰(zhàn)值為輸入,如果測試通過,返回正確信息給租戶,如果測試沒通過,則以Pk和F1…Fs數(shù)據(jù)分塊為輸入,將輸出響應(yīng)值Res發(fā)送至租戶端,由租戶確定哪個數(shù)據(jù)分塊出錯.
6)測試函數(shù)[1]:Verify(Res,Key)→ Ture/False,該函數(shù)在租戶端執(zhí)行,輸入值為響應(yīng)值Res和測試碼Key,輸出為對響應(yīng)Res的測試結(jié)果.若結(jié)果為True,則表明第i個數(shù)據(jù)分塊Fi的完整性測試通過,基于文獻[7]提出的SESS秘密共享方案的性質(zhì),證明該文件分塊沒有問題;當(dāng)測試結(jié)果為False時,則說明測試的第i(1≤i≤s)個數(shù)據(jù)塊發(fā)生了損壞.這時可以利用文件F的冗余性,如果測試結(jié)果為False,則執(zhí)行n=n+1,以此來測試n與門限值ε的大小關(guān)系.
7)數(shù)據(jù)修復(fù)算法:Repair(Fj|1<j<n-k)→F/⊥:K為(1<k<n)的整數(shù),該函數(shù)以測試通過的n-k個副本為輸入,其中,ε是秘密共享方案的門限值,該算法執(zhí)行基于閾值的懶惰的修復(fù)策略[8],這種策略只有當(dāng)樣本數(shù)量小于某些閾值時,才嘗試從云存儲服務(wù)器上恢復(fù)原始數(shù)據(jù).如果恢復(fù)成功,則輸出正確的數(shù)據(jù)文件,并進行文件的重新存儲;如果恢復(fù)失敗,則終止.
該方案借助第三方對云端數(shù)據(jù)進行完整性測試,當(dāng)測試出現(xiàn)數(shù)據(jù)錯誤時,借助副本恢復(fù)機制進行數(shù)據(jù)恢復(fù).整個方案首先需要租戶對公開密鑰和私密密鑰進行初始化,另外租戶在存儲文件的同時進行副本的創(chuàng)建,保證數(shù)據(jù)不被非法用戶使用,也為后期的數(shù)據(jù)恢復(fù)做準(zhǔn)備,測試及恢復(fù)過程是由租戶向第三方發(fā)起測試挑戰(zhàn)值開始的,第三方收到挑戰(zhàn)之后進行云端數(shù)據(jù)的測試過程,如果測試通過,返回正確信息給租戶,如果沒有通過,則記錄錯誤信息,并返回一系列響應(yīng)值給租戶,由租戶確定出錯的數(shù)據(jù)塊,并確定損壞副本數(shù)量是否小于一定的閾值,如在閾值范圍內(nèi),則執(zhí)行數(shù)據(jù)恢復(fù)函數(shù)進行文件修復(fù).
在該方案中,主要完成了兩大任務(wù):
一是由第三方完成數(shù)據(jù)的完整性測試,這樣在發(fā)生數(shù)據(jù)完整性問題時,云服務(wù)商的責(zé)任不可推卸;
二是完成一定程度的數(shù)據(jù)恢復(fù),當(dāng)挑戰(zhàn)次數(shù)低于一定的閾值ε就可以借助副本機制和秘密共享算法進行數(shù)據(jù)恢復(fù),當(dāng)然如果挑戰(zhàn)次數(shù)大于閾值ε,則證明存儲的數(shù)據(jù)到了比較嚴(yán)重的損壞程度,則無法進行修復(fù).
筆者提出的支持公開驗證和數(shù)據(jù)恢復(fù)的數(shù)據(jù)完整性測試方案為用戶提供了遠程數(shù)據(jù)完整性證明和數(shù)據(jù)的可恢復(fù)性等安全機制,可以使用戶及時知道云上數(shù)據(jù)的完整性狀態(tài),較以往的方法相比,很好地解決了目前云服務(wù)商半可信性等問題所帶來的隱患,并且當(dāng)數(shù)據(jù)損壞小于一定程度時,可以借助副本機制以較高概率修復(fù)數(shù)據(jù),在一定程度上保證了云計算的可信存儲.除此之外,如何保證用戶數(shù)據(jù)不被云服務(wù)商非法泄露,防止被非授權(quán)第三方使用也是需要進一步研究的課題,而對于動態(tài)數(shù)據(jù)的實時性完整性測試也是下一步需要研究的課題.
[1]劉婷婷.面向云計算的數(shù)據(jù)安全保護關(guān)鍵技術(shù)研究[D].鄭州:解放軍信息工程大學(xué),2013.
[2]BHAGWAN R,TATI K.Total recall:System support for automated availability management[C]∥NSDI.2004:337-350.
[3]賀元香,史寶明,張永.帶消息恢復(fù)功能的基于身份的代理簽名方案[J].計算機應(yīng)用與軟件,2014,31(4):313-315.
[4]李琳.云環(huán)境下多租戶數(shù)據(jù)完整性保護機制研究[D].濟南:山東大學(xué),2014.
[5]游歷.云端數(shù)據(jù)完整性測試和數(shù)據(jù)恢復(fù)機制研究[D].成都:電子科技大學(xué),2013.
[6]李超零,陳越,譚鵬許,等.基于同態(tài)hash的數(shù)據(jù)多副本持有性證明方案[J].計算機應(yīng)用研究,2013,30(1):266-268.
[7]Parakh A,Kak S.Space efficient secret sharing for implicit data security[J].Information Science s,2011,181(2):335-341.
[8]宮婧,王文君.大數(shù)據(jù)存儲中的容錯關(guān)鍵技術(shù)綜述[J].南京郵電大學(xué)學(xué)報(自然科學(xué)版),2014,34(4):21-25.