柳玉東 王緒安 涂廣升 王涵
摘 要:海量數(shù)據(jù)的產(chǎn)生給用戶帶來了極大的存儲(chǔ)和計(jì)算負(fù)擔(dān),云服務(wù)器的出現(xiàn)很好地解決了這一問題,但數(shù)據(jù)外包給用戶帶來便利的同時(shí),也引起了一些的安全問題。針對(duì)數(shù)據(jù)在外包過程中的安全性問題,結(jié)合經(jīng)典的字符串相等檢測(cè)協(xié)議和基于等級(jí)的默克爾哈希樹(RMHT)算法,設(shè)計(jì)并實(shí)現(xiàn)了一種理論更簡(jiǎn)化、效率更高的全生命周期的云外包數(shù)據(jù)安全審計(jì)協(xié)議。該協(xié)議不僅可以保證外包存儲(chǔ)數(shù)據(jù)的完整性,用戶可以定期對(duì)數(shù)據(jù)的完整性進(jìn)行審計(jì);而且可以保證數(shù)據(jù)的安全遷移;此外,還可以防止惡意的云服務(wù)器保留遷移數(shù)據(jù)的副本,更好地保護(hù)用戶的隱私。安全性分析和效率分析顯示,該協(xié)議足夠安全并較為高效,外包數(shù)據(jù)在整個(gè)生命周期的安全性將得到較好的保護(hù)。
關(guān)鍵詞:云存儲(chǔ);外包數(shù)據(jù);全生命周期;可證明安全;審計(jì)協(xié)議
Abstract: The generation of massive data brings a huge storage and computational burden to users, and the emergence of cloud servers solves this problem well. However, data outsourcing brings convenience to users while it also causes some security problems. In order to solve the security problem of data in the outsourcing process, a simpler and more efficient cloud outsourcing data security auditing protocol throughout whole lifecycle was designed and implemented, which was combined with classical distributed string equality checking protocol and Rank-based Merkel Hash Tree (RMHT) algorithm. The protocol not only can protect the integrity of outsourced storage data, allowing users periodically audit its integrity, but also can guarantee the secure transfer of cloud data. Besides, the copy of transfer data can avoid being reserved by malicious cloud servers, protecting users privacy well. The analyses of security and efficiency show that the proposed protocol is sufficiently secure and comparatively efficient, the security of outsourcing data throughout its whole lifecycle will be protected well.
Key words: cloud storage; outsourcing data; whole lifecycle; provable security; auditing protocol
0 引言
在大數(shù)據(jù)時(shí)代,海量數(shù)據(jù)的產(chǎn)生給用戶的存儲(chǔ)和計(jì)算帶來了極大的負(fù)擔(dān),云服務(wù)器應(yīng)運(yùn)而生,它可以提供安全可靠、簡(jiǎn)單高效、處理能力可彈性伸縮的存儲(chǔ)和計(jì)算服務(wù),其管理方式比物理服務(wù)器更為簡(jiǎn)單高效[1]。用戶不再需要花費(fèi)大量的費(fèi)用來購(gòu)買昂貴的硬件或者軟件,只需向云服務(wù)器購(gòu)買或者租賃存儲(chǔ)和計(jì)算服務(wù)。數(shù)據(jù)外包給用戶帶來方便的同時(shí),也帶來一定的信任問題,數(shù)據(jù)的完整性和可用性受到了巨大的挑戰(zhàn)[2-3]。用戶對(duì)云服務(wù)的安全性、可用性和可靠性問題有所擔(dān)心,對(duì)于云服務(wù)的使用還有所顧忌[4]。當(dāng)數(shù)據(jù)外包之后,用戶喪失了對(duì)數(shù)據(jù)的控制權(quán),此時(shí)數(shù)據(jù)的安全審計(jì)變得尤為重要[5-6]。由于用戶本地沒有保存外包數(shù)據(jù)的副本,數(shù)據(jù)的完整性無法得到保證[7]。
在現(xiàn)實(shí)生活中,為了保證此處是保護(hù),還是保證?請(qǐng)明確外包數(shù)據(jù)的完整性,用戶需要定期對(duì)外包存儲(chǔ)數(shù)據(jù)的完整性進(jìn)行審計(jì)。采用傳統(tǒng)的方法,用戶需要將要審計(jì)的數(shù)據(jù)全部下載下來,這種方法一方面給用戶帶來的通信代價(jià)比較大,另一方面給用戶本地也造成了巨大的存儲(chǔ)負(fù)擔(dān)[8]。解決這個(gè)問題的思想是可證明的數(shù)據(jù)持有協(xié)議(Provable Data Possession)[9-10]:用戶不再需要下載審計(jì)的數(shù)據(jù),只需發(fā)送一個(gè)完整性審計(jì)請(qǐng)求給云,云根據(jù)審計(jì)請(qǐng)求生成一個(gè)完整性證明返回給用戶,用戶進(jìn)行驗(yàn)證即可完成審計(jì)[11]。數(shù)據(jù)持有性審計(jì)技術(shù)的研究對(duì)于安全云存儲(chǔ)的發(fā)展有著重要的意義[12]。此外,不同的云存儲(chǔ)提供商所提供的服務(wù)是有差異的,例如價(jià)格的高低、訪問速度的快慢、安全性和可靠性等方面?;谶@些不同的考慮,用戶可能會(huì)選擇不同的云服務(wù)提供商,以便最大限度地降低成本,獲取高質(zhì)量的服務(wù);有時(shí)不同的用戶可能為了完成某項(xiàng)任務(wù)需要共享彼此云上的數(shù)據(jù),這些現(xiàn)實(shí)需求使得外包數(shù)據(jù)在不同云服務(wù)器之間安全有效的遷移變得不可避免,故尋找一種能夠確保數(shù)據(jù)安全有效的遷移機(jī)制成為該領(lǐng)域亟需解決的問題。目前能夠有效地解決這個(gè)問題的思想是可證明的數(shù)據(jù)遷移協(xié)議(Provable Data Transfer)[13-14]:用戶發(fā)送數(shù)據(jù)遷移請(qǐng)求給云服務(wù)器,云執(zhí)行遷移請(qǐng)求發(fā)送遷移數(shù)據(jù)至目標(biāo)云服務(wù)器,目標(biāo)云服務(wù)器對(duì)收到的遷移數(shù)據(jù)的完整性進(jìn)行驗(yàn)證,如果驗(yàn)證通過則將遷移數(shù)據(jù)存儲(chǔ)到本地,并通知用戶數(shù)據(jù)遷移成功,否則拒絕存儲(chǔ)并通知用戶數(shù)據(jù)遷移失敗。還需注意的是,當(dāng)外包數(shù)據(jù)從一個(gè)半可信的云傳輸?shù)搅硪粋€(gè)半可信的云時(shí),用戶同樣需要檢查負(fù)責(zé)遷移數(shù)據(jù)的云是否刪除了已遷移的數(shù)據(jù),如果負(fù)責(zé)遷移數(shù)據(jù)的云保留了遷移數(shù)據(jù)的副本,那么用戶的隱私將直接受到威脅。明星隱私照片泄露事件的背后其實(shí)是信息安全門,當(dāng)時(shí)明星雖然已刪除了照片,但惡意云保留了遷移數(shù)據(jù)的副本才導(dǎo)致了該事件的發(fā)生,那么如何才能確保云服務(wù)器安全完整地刪除了數(shù)據(jù)?解決這個(gè)問題的思想是可證明的數(shù)據(jù)刪除協(xié)議(Provable Data Deletion)[15]:用戶發(fā)送刪除驗(yàn)證請(qǐng)求給負(fù)責(zé)刪除數(shù)據(jù)的云,如果云未按要求刪除數(shù)據(jù),生成的證明將無法通過用戶驗(yàn)證。
學(xué)者們對(duì)于上述三種協(xié)議已做了很多研究工作,但總的來說他們的研究工作相對(duì)分散。外包數(shù)據(jù)的整個(gè)生命周期主要包括存儲(chǔ)、更新、遷移和刪除。如果能夠確保外包數(shù)據(jù)在這些過程中是安全的,數(shù)據(jù)的機(jī)密性、完整性和可用性將不會(huì)遭到破壞[16],因此,如果能將可證明的數(shù)據(jù)持有協(xié)議、可證明的數(shù)據(jù)遷移協(xié)議和可證明的數(shù)據(jù)刪除協(xié)議結(jié)合在一起,外包數(shù)據(jù)的安全性將得到保證。在本文中,完整地將可證明的數(shù)據(jù)持有協(xié)議、可證明的數(shù)據(jù)遷移協(xié)議和可證明的數(shù)據(jù)刪除協(xié)議結(jié)合在一起,設(shè)計(jì)并實(shí)現(xiàn)了一種全生命周期的云外包數(shù)據(jù)安全審計(jì)協(xié)議,確保外包存儲(chǔ)的數(shù)據(jù)在全生命周期的安全性。
1 本文協(xié)議
1.1 系統(tǒng)參數(shù)及定義
本文提出的全生命周期的云外包數(shù)據(jù)安全審計(jì)協(xié)議所涉及的參數(shù)符號(hào)如表1所示。
1.2 系統(tǒng)模型
該協(xié)議的系統(tǒng)模型如圖1所示。
為了降低自身的存儲(chǔ)負(fù)擔(dān)和計(jì)算開銷,用戶選擇云服務(wù)器A(以下簡(jiǎn)稱“云A”)來存儲(chǔ)他的數(shù)據(jù)。用戶對(duì)數(shù)據(jù)的管理主要包括以下內(nèi)容:一是定期審查存儲(chǔ)在云服務(wù)器上的數(shù)據(jù)是否完好無損;二是當(dāng)用戶想要轉(zhuǎn)移整體或者部分?jǐn)?shù)據(jù)的存儲(chǔ)位置時(shí),使用傳統(tǒng)的方法,用戶需要將遷移的數(shù)據(jù)從云A上取回,然后再傳輸給云服務(wù)器B(以下簡(jiǎn)稱“云B”)進(jìn)行存儲(chǔ)。為了降低通信開銷,用戶可以直接向云A發(fā)送數(shù)據(jù)遷移請(qǐng)求,云A對(duì)收到的遷移請(qǐng)求進(jìn)行驗(yàn)證,如果驗(yàn)證通過則按照遷移請(qǐng)求將用戶想要遷移的數(shù)據(jù)傳輸給云B,并在本地上將已遷移的數(shù)據(jù)刪除。為了確定云A是否已真正地刪除了遷移的數(shù)據(jù),用戶可以向云A發(fā)送刪除驗(yàn)證請(qǐng)求來進(jìn)行審計(jì),云A根據(jù)請(qǐng)求生成刪除證明返回給用戶,用戶對(duì)收到的證明進(jìn)行驗(yàn)證即可確定云A是否保留有遷移數(shù)據(jù)的副本。最后,用戶仍然可以發(fā)送完整性審計(jì)請(qǐng)求定期檢查云A上剩余數(shù)據(jù)以及云B上新存儲(chǔ)的數(shù)據(jù)的完整性。
1.3.1 密鑰生成
在密鑰生成算法中,可以根據(jù)安全水平來為本文協(xié)議選擇參數(shù),隨機(jī)選擇一個(gè)大素?cái)?shù)p并將其公開,參數(shù)p的長(zhǎng)度至少應(yīng)該不低于安全水平λ。例如,如果安全水平是128位,那么參數(shù)p的長(zhǎng)度應(yīng)該大于或者等于128位。p選擇完成后,從群Z*p中隨機(jī)選擇兩個(gè)參數(shù)g和r。用戶生成一對(duì)簽名的公私鑰對(duì)(ssk,spk) ← Sign()和一個(gè)AES方案的密鑰k,偽隨機(jī)函數(shù)FK1(·)可以是由以密鑰K1為索引的偽隨機(jī)函數(shù)家族{FK1(·)}中任意安全的一個(gè)[17],F(xiàn)K1(i)為FK1(·)輸入i之后的輸出。定義兩個(gè)公開的哈希函數(shù)H1:{0,1}* → Z*p和H2:{0,1}* → Z*p,分別用于構(gòu)造默克爾哈希樹和加密,因此,系統(tǒng)的公鑰為PK={p,g,spk},用戶私鑰為SK={r,K,ssk}。
1.3.2 數(shù)據(jù)外包存儲(chǔ)
為了外包一個(gè)文件F′,用戶首先使用糾錯(cuò)碼生成文件F,然后將F分為n′塊,用戶在隨機(jī)的位置添加(n-n′)個(gè)哨兵塊到n′塊中,并將哨兵塊的位置記錄在一個(gè)表PF中,因此,文件F被表示成為F=(m1,m2,…,mn),其中mi代表一個(gè)數(shù)據(jù)塊,n為數(shù)據(jù)塊的總數(shù)量,然后,用戶用密鑰k加密哨兵表PF:
1.3.3 數(shù)據(jù)完整性審計(jì)
在完整性審計(jì)模塊,本文參考Chen等[18]此處是否應(yīng)該為文獻(xiàn)[17],文獻(xiàn)18的作者不是Chen,請(qǐng)作相應(yīng)調(diào)整?;貜?fù):在參考文獻(xiàn)中,誤將文獻(xiàn)17和18的位置放反了,此處修改文中順序保持不變,在參考文獻(xiàn)中,將[17]和{18]兩篇參考文獻(xiàn)位置互換.的工作,使用改進(jìn)的字符串相等檢測(cè)協(xié)議。首先,回顧一下經(jīng)典的字符串相等檢測(cè)協(xié)議[18]:該協(xié)議的目的是確定Alice擁有字符串x∈{0,1}n和Bob擁有的字符串y∈{0,1}n是否相等。它的概念更簡(jiǎn)單、效率更高,因?yàn)樗鶇⑴c的運(yùn)算只有內(nèi)積運(yùn)算,其通信開銷為O(log n)。假設(shè)有一個(gè)公開的隨機(jī)字符串池S{0,1}n,該協(xié)議的具體工作如下:
1)Alice隨機(jī)選擇一個(gè)字符串s∈S,將s和〈x,s〉mod 2一起發(fā)送給Bob。
2)Bob計(jì)算〈y,s〉mod 2,并驗(yàn)證該結(jié)果與〈x,s〉mod 2是否相等,如果不相等,則Bob告訴Alice;否則,該協(xié)議繼續(xù)。
3)Alice和Bob重復(fù)這個(gè)過程100次,如果等式〈x,s〉=〈y,s〉一直成立,則Bob告知Alice兩個(gè)字符串相等,該協(xié)議終止。
以上協(xié)議的原理如下:如果x=y成立,那么等式〈x,s〉=〈y,s〉將總是成立。如果x≠y,那么在1次循環(huán)中:Prs[〈x,s〉mod 2=〈y,s〉mod 2]=1/2,100次循環(huán)中,等式〈x,s〉=〈y,s〉一直成立的概率為1/2100,所以該協(xié)議發(fā)生錯(cuò)誤的概率為1/2100,基本可以忽略。
為了更好地將字符串相等檢測(cè)協(xié)議運(yùn)用于云存儲(chǔ)數(shù)據(jù)的完整性審計(jì)中,令A(yù)lice模擬用戶,Bob模擬云服務(wù)器,將該協(xié)議作出以下改進(jìn):1)工作空間改為Znp(替代{0,1}n),外包數(shù)據(jù)文件F=(m1,m2,…,mn)為Znp上的一個(gè)向量,此改進(jìn)不僅可以降低錯(cuò)誤率,而且可以提升效率;2)為了節(jié)省通信開銷,使用偽隨機(jī)函數(shù)FK1(·)來代替公開的隨機(jī)字符串池S直接生成字符串。具體的完整性審計(jì)過程如下。
當(dāng)用戶需要確定存儲(chǔ)在云上的部分?jǐn)?shù)據(jù)的完整性時(shí),可以采用選擇性審計(jì)的方式,即從序列{1,2,…,n}選擇出需要審計(jì)的L個(gè)數(shù)據(jù)塊的序列索引{i1,i2,…,iL},然后從ZLp上選擇一個(gè)隨機(jī)序列(ei1,ei2…,eiL),用戶的審計(jì)請(qǐng)求為χ={{i1,i2,…,iL},(ei1,ei2…,eiL)}。當(dāng)需要審計(jì)整個(gè)數(shù)據(jù)文件時(shí),用戶生成一個(gè)密鑰為K2(λ位)的偽隨機(jī)函數(shù)FK2(·),然后將K2發(fā)送給云,審計(jì)請(qǐng)求為χ=K2。根據(jù)審計(jì)方式的不同,云服務(wù)器生成證明的方式也有兩種。對(duì)于部分?jǐn)?shù)據(jù)的審計(jì),云服務(wù)器進(jìn)行如下計(jì)算:
計(jì)算完成后,云將生成的完整性證明φ={α, β}返回給用戶,α中包含云服務(wù)器一側(cè)的內(nèi)積運(yùn)算, β中包含用戶一側(cè)的內(nèi)積運(yùn)算。用戶通過驗(yàn)證式(8)或者式(9)是否成立來確定所審計(jì)的數(shù)據(jù)是否完整。如果相等則返回1(接受);否則返回0(拒絕)。
1.3.4 數(shù)據(jù)遷移
當(dāng)用戶想要從云A遷移部分?jǐn)?shù)據(jù)或者整個(gè)文件到云B時(shí),它首先調(diào)用完整性審計(jì)算法來驗(yàn)證存儲(chǔ)在云A上的數(shù)據(jù)的完整性,如果文件損壞,則返回錯(cuò)誤;否則,用戶從云A取回文件標(biāo)簽τ,并使用簽名公鑰spk驗(yàn)證簽名τ。如果驗(yàn)證不通過則用戶丟棄;否則,用戶使用密鑰k解密C來獲得表PF中哨兵塊的位置,然后,用集合Ψ來記錄需要遷移的數(shù)據(jù)塊的索引,之后生成一個(gè)數(shù)據(jù)遷移請(qǐng)求式(10)(Ψ為要遷移的數(shù)據(jù)塊索引的集合)和一個(gè)新的文件標(biāo)簽式(11):
其中:n*為需要遷移的數(shù)據(jù)塊的總數(shù);C*為遷移的數(shù)據(jù)塊中加密的哨兵表。最后,用戶發(fā)送(Q,τ*)給云A,云A驗(yàn)證簽名Signssk(fname‖Ψ),如果驗(yàn)證通過,則云A發(fā)送{(mi,Si)i∈ψ,Q,τ*,φ}和輔助認(rèn)證信息Ω*。輔助認(rèn)證信息為默克爾樹中從葉子節(jié)點(diǎn)h(mi‖1)i∈ψ到根節(jié)點(diǎn)路徑上的兄弟節(jié)點(diǎn)。例如:m1的輔助認(rèn)證信息為Ω1={h2,hd,hb},如圖2所示。云B收到信息之后,它首先驗(yàn)證簽名Signssk(fname‖Ψ)和Signssk(fname‖n*‖C*)的正確性,如果驗(yàn)證通過,則利用輔助認(rèn)證信息Ω*和數(shù)據(jù)塊mi(i∈Ψ)重構(gòu)基于等級(jí)的默克爾哈希樹(相比原始的默克爾哈希樹,基于等級(jí)的默克爾哈希樹是在計(jì)算節(jié)點(diǎn)的哈希值時(shí)加入了該節(jié)點(diǎn)所包含的葉子節(jié)點(diǎn)的數(shù)量)[19],獲得根節(jié)點(diǎn)hR*。最后,云B使用簽名公鑰spk解密簽名φ來驗(yàn)證hR*與hR是否相等:如果相等,則將{(mi,Si)i∈χ,Q,τ*,φ,Ω*}存儲(chǔ)在本地;否則拒絕存儲(chǔ)并通知用戶數(shù)據(jù)遷移失敗。
1.3.5 數(shù)據(jù)刪除
當(dāng)數(shù)據(jù)塊成功地從云A遷移到云B之后,云A執(zhí)行數(shù)據(jù)刪除命令刪除已遷移的數(shù)據(jù),圖3展示的是刪除一個(gè)數(shù)據(jù)塊后默克爾哈希樹的更新重構(gòu)過程。為了確定云A是否已從本地刪除了遷移的數(shù)據(jù),用戶可以發(fā)送刪除驗(yàn)證來進(jìn)行驗(yàn)證。具體驗(yàn)證過程如下:首先,用戶向云A發(fā)送一個(gè)刪除驗(yàn)證請(qǐng)求:
然后,云A對(duì)收到的請(qǐng)求進(jìn)行驗(yàn)證,如果驗(yàn)證通過,云A將輔助認(rèn)證信息{H(mi‖i),Ωi}i∈Ψ,根節(jié)點(diǎn)的簽名值Signssk(hR)以及利用本地剩余的數(shù)據(jù)塊重構(gòu)基于等級(jí)的默克爾哈希樹(RMHT)所獲得根節(jié)點(diǎn)hR*一并返回給用戶,用戶根據(jù)收到的輔助認(rèn)證信息重構(gòu)基于等級(jí)的默克爾哈希樹獲得根節(jié)點(diǎn)hR′。最后,用戶通過判斷h*R和hR′是否相等來確定遷移的數(shù)據(jù)塊是否已被刪除。
2 協(xié)議分析
2.1 安全性分析
在完整性審計(jì)模塊,如果用戶外包存儲(chǔ)在云上的數(shù)據(jù)遭到破壞,那么云服務(wù)器將無法生成偽造的證明來欺騙用戶。接下來通過兩個(gè)步驟來分析證明這個(gè)結(jié)論。
步驟1 當(dāng)云上存儲(chǔ)的數(shù)據(jù)遭到破壞時(shí),云服務(wù)器不可能以一個(gè)不可忽略的概率來欺騙用戶。首先,假如在本文的協(xié)議中使用的是一個(gè)真隨機(jī)函數(shù),讓Pr[Unbound]表示一個(gè)云服務(wù)器成功欺騙用戶的概率。根據(jù)線性代數(shù)理論知:Pr[Unbound]=negl(λ),然后,本文在原始協(xié)議中使用的是偽隨機(jī)函數(shù),由于惡意的云服務(wù)器有區(qū)分偽隨機(jī)函數(shù)和真隨機(jī)函數(shù)的概率,所以有Adv[PRF]≥Pr[Cheat]-Pr[Unbound],因此,Pr[Cheat]≤Adv[PRF]+Pr[Unbound]。
步驟2 本文展示如果Pr[Cheat]是不可忽略的,那么用戶可以使用重構(gòu)算法以Pr[Recover]=1-negl(λ)的概率來重構(gòu)數(shù)據(jù)。其基本思想是用戶可以獲得外包數(shù)據(jù)和挑戰(zhàn)向量的內(nèi)積的線性方程組,然后求解方程組來獲取外包的數(shù)據(jù),早期的云存儲(chǔ)證明過程[20]也有相似的處理方法。
可證明的數(shù)據(jù)遷移協(xié)議的安全性是以可證明的數(shù)據(jù)持有協(xié)議的安全性為基礎(chǔ)的,因?yàn)檫w移數(shù)據(jù)之前,首先要對(duì)云上數(shù)據(jù)的完整性進(jìn)行審計(jì)??勺C明的數(shù)據(jù)遷移協(xié)議和可證明的數(shù)據(jù)刪除協(xié)議的安全性是以基于等級(jí)的默克爾哈希樹和數(shù)字簽名的安全性來保證的,具體的證明過程與文獻(xiàn)[19]給出的過程一致。有興趣的讀者可以參考Xue等[19]中的安全性證明工作。
2.2 效率分析
一個(gè)編碼好的外包數(shù)據(jù)文件F擁有n個(gè)數(shù)據(jù)塊,在數(shù)據(jù)外包存儲(chǔ)之前,用戶生成n個(gè)可驗(yàn)證的標(biāo)簽一共需要計(jì)算n個(gè)模乘和n個(gè)模指數(shù)運(yùn)算,在構(gòu)造基于等級(jí)的默克爾哈希樹時(shí),用戶需要計(jì)算(2n-1)個(gè)哈希函數(shù),加密哨兵表需要計(jì)算1次AES加密算法,生成文件標(biāo)簽以及給根節(jié)點(diǎn)簽名各需計(jì)算1次簽名運(yùn)算。在完整性審計(jì)模塊,對(duì)于部分文件的審計(jì)(L個(gè)數(shù)據(jù)塊),云服務(wù)器生成完整性證明需要計(jì)算(2L-1)個(gè)模乘運(yùn)算和L個(gè)模指數(shù)運(yùn)算,用戶驗(yàn)證返回的完整性證明需要計(jì)算(L+1)個(gè)模乘和1個(gè)模指數(shù)運(yùn)算;對(duì)于整個(gè)文件的審計(jì)(n個(gè)數(shù)據(jù)塊),云服務(wù)器生成完整性證明需要計(jì)算(2n-1)個(gè)模乘運(yùn)算和n個(gè)模指數(shù)運(yùn)算;用戶驗(yàn)證返回的完整性證明需要計(jì)算(n+1)個(gè)模乘和1個(gè)模指數(shù)運(yùn)算。整個(gè)完整性審計(jì)過程中,僅使用了模乘和模指數(shù)運(yùn)算,沒有使用雙線性映射等復(fù)雜運(yùn)算,因此概念更簡(jiǎn)單,效率更高。在數(shù)據(jù)遷移模塊,用戶首先要調(diào)用上述的完整性審計(jì)算法對(duì)外包數(shù)據(jù)的完整性進(jìn)行審計(jì),該代價(jià)不再進(jìn)行贅述。如果完整性審計(jì)通過,用戶執(zhí)行一次簽名運(yùn)算驗(yàn)證取回的文件標(biāo)簽、一次AES解密運(yùn)算解密哨兵表和一次AES加密運(yùn)算加密遷移數(shù)據(jù)的哨兵表,生成遷移請(qǐng)求和新的文件標(biāo)簽各需執(zhí)行1次簽名運(yùn)算;云A驗(yàn)證遷移請(qǐng)求需要執(zhí)行1次簽名運(yùn)算,如果驗(yàn)證通過則執(zhí)行遷移請(qǐng)求發(fā)送數(shù)據(jù)至目標(biāo)云B;云B收到的遷移數(shù)據(jù)后,驗(yàn)證請(qǐng)求和文件標(biāo)簽各需執(zhí)行1次簽名運(yùn)算。如果驗(yàn)證通過,根據(jù)輔助認(rèn)證信息重構(gòu)基于等級(jí)的默克爾哈希樹需要計(jì)算若干個(gè)哈希運(yùn)算,之后執(zhí)行1次簽名解密運(yùn)算。在刪除驗(yàn)證模塊,用戶生成刪除驗(yàn)證請(qǐng)求需要執(zhí)行1次簽名運(yùn)算,云A對(duì)收到的請(qǐng)求進(jìn)行驗(yàn)證需要執(zhí)行1次簽名運(yùn)算,如果驗(yàn)證通過則返回證明給用戶,用戶重構(gòu)基于等級(jí)的默克爾哈希樹需要計(jì)算多個(gè)哈希函數(shù),之后對(duì)獲取的根節(jié)點(diǎn)執(zhí)行1次簽名運(yùn)算。計(jì)算復(fù)雜度方面,模乘、模指數(shù)和哈希函數(shù)的計(jì)算代價(jià)較低;通信開銷方面,用戶與云服務(wù)器之間以及不同云服務(wù)器之間的交互主要是發(fā)送請(qǐng)求和返回證明,因此通信代價(jià)也很小,所以從理論上講,用戶端和云服務(wù)器端都很輕量。
為了更好地驗(yàn)證本協(xié)議的實(shí)用性和運(yùn)行效率,本文在Windows操作系統(tǒng)下,安裝JDK1.8并配置了相關(guān)的Java虛擬機(jī)環(huán)境,使用Java語言編程對(duì)其進(jìn)行了軟件實(shí)現(xiàn)。經(jīng)運(yùn)行測(cè)試,其實(shí)際運(yùn)行時(shí)間消耗與理論分析基本一致,在文件外包即文件上傳過程中時(shí)間耗費(fèi)相對(duì)較多,但是文件在一次上傳后可以進(jìn)行多次的審計(jì),多次改變外包數(shù)據(jù)的存儲(chǔ)位置,因此,該協(xié)議具有較高的效率和較好的實(shí)用性。
3 結(jié)語
本文以云存儲(chǔ)數(shù)據(jù)的安全為研究對(duì)象,考慮到數(shù)據(jù)從外包給云服務(wù)器進(jìn)行存儲(chǔ)、更新、在不同云服務(wù)器之間遷移以及數(shù)據(jù)刪除等過程中的安全性,完整地將可證明安全的數(shù)據(jù)持有協(xié)議、可證明安全的數(shù)據(jù)遷移協(xié)議和可證明安全的數(shù)據(jù)刪除協(xié)議結(jié)合在一起,設(shè)計(jì)并實(shí)現(xiàn)了一種全生命周期的云外包數(shù)據(jù)安全審計(jì)協(xié)議,用戶可以在全生命周期內(nèi)對(duì)數(shù)據(jù)進(jìn)行跟蹤審計(jì)。安全性分析表明該協(xié)議是安全的,效率分析也表明該協(xié)議較為高效??偟膩碚f,本協(xié)議對(duì)于安全云存儲(chǔ)的發(fā)展有一定的促進(jìn)作用。如何設(shè)計(jì)更安全、更高效的數(shù)據(jù)審計(jì)協(xié)議來保證外包數(shù)據(jù)在整個(gè)生命周期的安全性是下一步的研究方向。
參考文獻(xiàn) (References)
[1] 楊娜.云計(jì)算與云存儲(chǔ)技術(shù)研究[J].黑龍江科學(xué),2014(12):234-234.(YAN N. Research on cloud computing and cloud storage technology[J]. Heilongjiang Science, 2014(12): 234-234.)
[2] SUN W, LIU X, LOU W, et al. Catch you if you lie to me: efficient verifiable conjunctive keyword search over large dynamic encrypted cloud data [C]// Proceedings of the 2015 IEEE Conference on Computer Communications. Piscataway, NJ: IEEE, 2015: 2110-2118.
[3] LIU X, ZHANG Y, WANG B, et al. Mona: secure multiowner data sharing for dynamic groups in the cloud [J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(6): 1182-1191.
[4] 陳蘭香,許力.云存儲(chǔ)服務(wù)中可證明數(shù)據(jù)持有及恢復(fù)技術(shù)研究[J].計(jì)算機(jī)研究與發(fā)展,2012,49(s1):19-25.(CHEN L X, XU L. Research on data hold and recovery technology in cloud storage service[J]. Journal of Computer Research and Development, 2012, 49(s1): 19-25.)
[5] LIU J, HUANG K, RONG H, et al. Privacy-preserving public auditing for regenerating-code-based cloud storage[J]. IEEE Transactions on Information Forensics and Security, 2015, 10(7): 1513-1528.
[6] XIANG T, LI X, CHEN F, et al. Achieving verifiable, dynamic and efficient auditing for outsourced database in cloud[J]. Journal of Parallel and Distributed Computing, 2018, 112: 97-107.
[7] 譚霜,賈焰,韓偉紅.云存儲(chǔ)中的數(shù)據(jù)完整性證明研究及進(jìn)展[J].計(jì)算機(jī)學(xué)報(bào),2015,38(1):164-177.(TAN S, JIA Y, HAN W H, Research and development of data integrity proof in cloud storage[J]. Chinese Journal of Computers, 2015, 38(1): 164-177.)
[8] SHEN W, QIN J, YU J, et al. Enabling identity-based integrity auditing and data sharing with sensitive information hiding for secure cloud storage[J]. IEEE Transactions on Information Forensics and Security, 2019, 14(2): 331-346.
[9] ATENIESES G, BURNS R, CURTMOL R, et al. Provable data possession at untrusted stores [C]// Proceedings of the 2007 ACM Conference on Computer and Communications Security. New York: ACM, 2007: 598-609.
[10] ZHU Y, HU H, AHN G J, et al. Cooperative provable data possession for integrity verification in multicloud storage[J]. IEEE Transactions on Parallel and Distributed Systems, 2012, 23(12): 2231-2244.
[11] 張毅.云存儲(chǔ)服務(wù)中可證明數(shù)據(jù)持有及恢復(fù)技術(shù)分析[J].電子設(shè)計(jì)技術(shù),2014(2):25-33.(ZHANG Y. Data storage and recovery technology analysis in cloud storage services[J]. Electronic Design Technology, 2014(2): 25-33.)
[12] 徐葵.云存儲(chǔ)環(huán)境下數(shù)據(jù)持有性審計(jì)技術(shù)研究與應(yīng)用[D].長(zhǎng)沙:湖南大學(xué),2013:32-39.(XU K. Research and application of data holding audit technology in cloud storage environment [D]. Changsha: Hunan University, 2013: 32-39.)
[13] YU Y, NI J, WU W, et al. Provable data possession supporting secure data transfer for cloud storage [C]// Proceedings of the 2016 International Conference on Broadband and Wireless Computing. Piscataway, NJ: IEEE, 2016: 88-96.
[14] HAN J, SUSILO W, MU Y, et al. Attribute-based data transfer with filtering scheme in cloud computing [J]. Computer Journal, 2014, 57(4): 579-591.
[15] KLONOWSKI M, PRZYKUCKI M, STRUMINSKI T. Data deletion with provable security[C]// WISA 2008: Proceedings of the 2008 International Workshop on Information Security Applications. Berlin: Springer, 2008: 240-255.
[16] 馮登國(guó),張敏,張妍,等.云計(jì)算安全研究[J].軟件學(xué)報(bào),2011,22(1):71-83.(FENG D G, ZHANG M, ZHANG Y, et al. Cloud computing security research[J]. Journal of Software, 2011, 22(1): 71-83.)
[17] Wikipedia. Communication complexity [EB/OL]. [2018-10-12]. http://en.wikipedia.org/wiki/ Communication complexity.
[18] CHEN F, XIANG T, YANG Y, et al. Secure cloud storage hits distributed string equality checking: more efficient, conceptually simpler, and provably secure[C]// Proceedings of the 2014 IEEE Conference on Computer Communications. Piscataway, NJ IEEE, 2014: 2389-2397.
[19] XUE L, NI J, LI Y, et al. Provable data transfer from provable data possession and deletion in cloud storage[J]. Computer Standards and Interfaces, 2016, 54(1): 46-54.
[20] WANG C, CHOW S S M, WANG Q, et al. Privacy-preserving public auditing for secure cloud storage[J]. IEEE Transactions on Computers, 2013, 62(2): 362-375.