柳玉東 王緒安 涂廣升 王涵



摘 要:海量數據的產生給用戶帶來了極大的存儲和計算負擔,云服務器的出現很好地解決了這一問題,但數據外包給用戶帶來便利的同時,也引起了一些的安全問題。針對數據在外包過程中的安全性問題,結合經典的字符串相等檢測協議和基于等級的默克爾哈希樹(RMHT)算法,設計并實現了一種理論更簡化、效率更高的全生命周期的云外包數據安全審計協議。該協議不僅可以保證外包存儲數據的完整性,用戶可以定期對數據的完整性進行審計;而且可以保證數據的安全遷移;此外,還可以防止惡意的云服務器保留遷移數據的副本,更好地保護用戶的隱私。安全性分析和效率分析顯示,該協議足夠安全并較為高效,外包數據在整個生命周期的安全性將得到較好的保護。
關鍵詞:云存儲;外包數據;全生命周期;可證明安全;審計協議
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 引言
在大數據時代,海量數據的產生給用戶的存儲和計算帶來了極大的負擔,云服務器應運而生,它可以提供安全可靠、簡單高效、處理能力可彈性伸縮的存儲和計算服務,其管理方式比物理服務器更為簡單高效[1]。用戶不再需要花費大量的費用來購買昂貴的硬件或者軟件,只需向云服務器購買或者租賃存儲和計算服務。數據外包給用戶帶來方便的同時,也帶來一定的信任問題,數據的完整性和可用性受到了巨大的挑戰[2-3]。用戶對云服務的安全性、可用性和可靠性問題有所擔心,對于云服務的使用還有所顧忌[4]。當數據外包之后,用戶喪失了對數據的控制權,此時數據的安全審計變得尤為重要[5-6]。由于用戶本地沒有保存外包數據的副本,數據的完整性無法得到保證[7]。
在現實生活中,為了保證此處是保護,還是保證?請明確外包數據的完整性,用戶需要定期對外包存儲數據的完整性進行審計。采用傳統的方法,用戶需要將要審計的數據全部下載下來,這種方法一方面給用戶帶來的通信代價比較大,另一方面給用戶本地也造成了巨大的存儲負擔[8]。解決這個問題的思想是可證明的數據持有協議(Provable Data Possession)[9-10]:用戶不再需要下載審計的數據,只需發送一個完整性審計請求給云,云根據審計請求生成一個完整性證明返回給用戶,用戶進行驗證即可完成審計[11]。數據持有性審計技術的研究對于安全云存儲的發展有著重要的意義[12]。此外,不同的云存儲提供商所提供的服務是有差異的,例如價格的高低、訪問速度的快慢、安全性和可靠性等方面。基于這些不同的考慮,用戶可能會選擇不同的云服務提供商,以便最大限度地降低成本,獲取高質量的服務;有時不同的用戶可能為了完成某項任務需要共享彼此云上的數據,這些現實需求使得外包數據在不同云服務器之間安全有效的遷移變得不可避免,故尋找一種能夠確保數據安全有效的遷移機制成為該領域亟需解決的問題。目前能夠有效地解決這個問題的思想是可證明的數據遷移協議(Provable Data Transfer)[13-14]:用戶發送數據遷移請求給云服務器,云執行遷移請求發送遷移數據至目標云服務器,目標云服務器對收到的遷移數據的完整性進行驗證,如果驗證通過則將遷移數據存儲到本地,并通知用戶數據遷移成功,否則拒絕存儲并通知用戶數據遷移失敗。還需注意的是,當外包數據從一個半可信的云傳輸到另一個半可信的云時,用戶同樣需要檢查負責遷移數據的云是否刪除了已遷移的數據,如果負責遷移數據的云保留了遷移數據的副本,那么用戶的隱私將直接受到威脅。明星隱私照片泄露事件的背后其實是信息安全門,當時明星雖然已刪除了照片,但惡意云保留了遷移數據的副本才導致了該事件的發生,那么如何才能確保云服務器安全完整地刪除了數據?解決這個問題的思想是可證明的數據刪除協議(Provable Data Deletion)[15]:用戶發送刪除驗證請求給負責刪除數據的云,如果云未按要求刪除數據,生成的證明將無法通過用戶驗證。
學者們對于上述三種協議已做了很多研究工作,但總的來說他們的研究工作相對分散。外包數據的整個生命周期主要包括存儲、更新、遷移和刪除。如果能夠確保外包數據在這些過程中是安全的,數據的機密性、完整性和可用性將不會遭到破壞[16],因此,如果能將可證明的數據持有協議、可證明的數據遷移協議和可證明的數據刪除協議結合在一起,外包數據的安全性將得到保證。在本文中,完整地將可證明的數據持有協議、可證明的數據遷移協議和可證明的數據刪除協議結合在一起,設計并實現了一種全生命周期的云外包數據安全審計協議,確保外包存儲的數據在全生命周期的安全性。
1 本文協議
1.1 系統參數及定義
本文提出的全生命周期的云外包數據安全審計協議所涉及的參數符號如表1所示。
1.2 系統模型
該協議的系統模型如圖1所示。
為了降低自身的存儲負擔和計算開銷,用戶選擇云服務器A(以下簡稱“云A”)來存儲他的數據。用戶對數據的管理主要包括以下內容:一是定期審查存儲在云服務器上的數據是否完好無損;二是當用戶想要轉移整體或者部分數據的存儲位置時,使用傳統的方法,用戶需要將遷移的數據從云A上取回,然后再傳輸給云服務器B(以下簡稱“云B”)進行存儲。為了降低通信開銷,用戶可以直接向云A發送數據遷移請求,云A對收到的遷移請求進行驗證,如果驗證通過則按照遷移請求將用戶想要遷移的數據傳輸給云B,并在本地上將已遷移的數據刪除。為了確定云A是否已真正地刪除了遷移的數據,用戶可以向云A發送刪除驗證請求來進行審計,云A根據請求生成刪除證明返回給用戶,用戶對收到的證明進行驗證即可確定云A是否保留有遷移數據的副本。最后,用戶仍然可以發送完整性審計請求定期檢查云A上剩余數據以及云B上新存儲的數據的完整性。
1.3.1 密鑰生成
在密鑰生成算法中,可以根據安全水平來為本文協議選擇參數,隨機選擇一個大素數p并將其公開,參數p的長度至少應該不低于安全水平λ。例如,如果安全水平是128位,那么參數p的長度應該大于或者等于128位。p選擇完成后,從群Z*p中隨機選擇兩個參數g和r。用戶生成一對簽名的公私鑰對(ssk,spk) ← Sign()和一個AES方案的密鑰k,偽隨機函數FK1(·)可以是由以密鑰K1為索引的偽隨機函數家族{FK1(·)}中任意安全的一個[17],FK1(i)為FK1(·)輸入i之后的輸出。定義兩個公開的哈希函數H1:{0,1}* → Z*p和H2:{0,1}* → Z*p,分別用于構造默克爾哈希樹和加密,因此,系統的公鑰為PK={p,g,spk},用戶私鑰為SK={r,K,ssk}。
1.3.2 數據外包存儲
為了外包一個文件F′,用戶首先使用糾錯碼生成文件F,然后將F分為n′塊,用戶在隨機的位置添加(n-n′)個哨兵塊到n′塊中,并將哨兵塊的位置記錄在一個表PF中,因此,文件F被表示成為F=(m1,m2,…,mn),其中mi代表一個數據塊,n為數據塊的總數量,然后,用戶用密鑰k加密哨兵表PF:
1.3.3 數據完整性審計
在完整性審計模塊,本文參考Chen等[18]此處是否應該為文獻[17],文獻18的作者不是Chen,請作相應調整?;貜停涸趨⒖嘉墨I中,誤將文獻17和18的位置放反了,此處修改文中順序保持不變,在參考文獻中,將[17]和{18]兩篇參考文獻位置互換.的工作,使用改進的字符串相等檢測協議。首先,回顧一下經典的字符串相等檢測協議[18]:該協議的目的是確定Alice擁有字符串x∈{0,1}n和Bob擁有的字符串y∈{0,1}n是否相等。它的概念更簡單、效率更高,因為所參與的運算只有內積運算,其通信開銷為O(log n)。假設有一個公開的隨機字符串池S{0,1}n,該協議的具體工作如下:
1)Alice隨機選擇一個字符串s∈S,將s和〈x,s〉mod 2一起發送給Bob。
2)Bob計算〈y,s〉mod 2,并驗證該結果與〈x,s〉mod 2是否相等,如果不相等,則Bob告訴Alice;否則,該協議繼續。
3)Alice和Bob重復這個過程100次,如果等式〈x,s〉=〈y,s〉一直成立,則Bob告知Alice兩個字符串相等,該協議終止。
以上協議的原理如下:如果x=y成立,那么等式〈x,s〉=〈y,s〉將總是成立。如果x≠y,那么在1次循環中:Prs[〈x,s〉mod 2=〈y,s〉mod 2]=1/2,100次循環中,等式〈x,s〉=〈y,s〉一直成立的概率為1/2100,所以該協議發生錯誤的概率為1/2100,基本可以忽略。
為了更好地將字符串相等檢測協議運用于云存儲數據的完整性審計中,令Alice模擬用戶,Bob模擬云服務器,將該協議作出以下改進:1)工作空間改為Znp(替代{0,1}n),外包數據文件F=(m1,m2,…,mn)為Znp上的一個向量,此改進不僅可以降低錯誤率,而且可以提升效率;2)為了節省通信開銷,使用偽隨機函數FK1(·)來代替公開的隨機字符串池S直接生成字符串。具體的完整性審計過程如下。
當用戶需要確定存儲在云上的部分數據的完整性時,可以采用選擇性審計的方式,即從序列{1,2,…,n}選擇出需要審計的L個數據塊的序列索引{i1,i2,…,iL},然后從ZLp上選擇一個隨機序列(ei1,ei2…,eiL),用戶的審計請求為χ={{i1,i2,…,iL},(ei1,ei2…,eiL)}。當需要審計整個數據文件時,用戶生成一個密鑰為K2(λ位)的偽隨機函數FK2(·),然后將K2發送給云,審計請求為χ=K2。根據審計方式的不同,云服務器生成證明的方式也有兩種。對于部分數據的審計,云服務器進行如下計算:
計算完成后,云將生成的完整性證明φ={α, β}返回給用戶,α中包含云服務器一側的內積運算, β中包含用戶一側的內積運算。用戶通過驗證式(8)或者式(9)是否成立來確定所審計的數據是否完整。如果相等則返回1(接受);否則返回0(拒絕)。
1.3.4 數據遷移
當用戶想要從云A遷移部分數據或者整個文件到云B時,它首先調用完整性審計算法來驗證存儲在云A上的數據的完整性,如果文件損壞,則返回錯誤;否則,用戶從云A取回文件標簽τ,并使用簽名公鑰spk驗證簽名τ。如果驗證不通過則用戶丟棄;否則,用戶使用密鑰k解密C來獲得表PF中哨兵塊的位置,然后,用集合Ψ來記錄需要遷移的數據塊的索引,之后生成一個數據遷移請求式(10)(Ψ為要遷移的數據塊索引的集合)和一個新的文件標簽式(11):
其中:n*為需要遷移的數據塊的總數;C*為遷移的數據塊中加密的哨兵表。最后,用戶發送(Q,τ*)給云A,云A驗證簽名Signssk(fname‖Ψ),如果驗證通過,則云A發送{(mi,Si)i∈ψ,Q,τ*,φ}和輔助認證信息Ω*。輔助認證信息為默克爾樹中從葉子節點h(mi‖1)i∈ψ到根節點路徑上的兄弟節點。例如:m1的輔助認證信息為Ω1={h2,hd,hb},如圖2所示。云B收到信息之后,它首先驗證簽名Signssk(fname‖Ψ)和Signssk(fname‖n*‖C*)的正確性,如果驗證通過,則利用輔助認證信息Ω*和數據塊mi(i∈Ψ)重構基于等級的默克爾哈希樹(相比原始的默克爾哈希樹,基于等級的默克爾哈希樹是在計算節點的哈希值時加入了該節點所包含的葉子節點的數量)[19],獲得根節點hR*。最后,云B使用簽名公鑰spk解密簽名φ來驗證hR*與hR是否相等:如果相等,則將{(mi,Si)i∈χ,Q,τ*,φ,Ω*}存儲在本地;否則拒絕存儲并通知用戶數據遷移失敗。
1.3.5 數據刪除
當數據塊成功地從云A遷移到云B之后,云A執行數據刪除命令刪除已遷移的數據,圖3展示的是刪除一個數據塊后默克爾哈希樹的更新重構過程。為了確定云A是否已從本地刪除了遷移的數據,用戶可以發送刪除驗證來進行驗證。具體驗證過程如下:首先,用戶向云A發送一個刪除驗證請求:
然后,云A對收到的請求進行驗證,如果驗證通過,云A將輔助認證信息{H(mi‖i),Ωi}i∈Ψ,根節點的簽名值Signssk(hR)以及利用本地剩余的數據塊重構基于等級的默克爾哈希樹(RMHT)所獲得根節點hR*一并返回給用戶,用戶根據收到的輔助認證信息重構基于等級的默克爾哈希樹獲得根節點hR′。最后,用戶通過判斷h*R和hR′是否相等來確定遷移的數據塊是否已被刪除。
2 協議分析
2.1 安全性分析
在完整性審計模塊,如果用戶外包存儲在云上的數據遭到破壞,那么云服務器將無法生成偽造的證明來欺騙用戶。接下來通過兩個步驟來分析證明這個結論。
步驟1 當云上存儲的數據遭到破壞時,云服務器不可能以一個不可忽略的概率來欺騙用戶。首先,假如在本文的協議中使用的是一個真隨機函數,讓Pr[Unbound]表示一個云服務器成功欺騙用戶的概率。根據線性代數理論知:Pr[Unbound]=negl(λ),然后,本文在原始協議中使用的是偽隨機函數,由于惡意的云服務器有區分偽隨機函數和真隨機函數的概率,所以有Adv[PRF]≥Pr[Cheat]-Pr[Unbound],因此,Pr[Cheat]≤Adv[PRF]+Pr[Unbound]。
步驟2 本文展示如果Pr[Cheat]是不可忽略的,那么用戶可以使用重構算法以Pr[Recover]=1-negl(λ)的概率來重構數據。其基本思想是用戶可以獲得外包數據和挑戰向量的內積的線性方程組,然后求解方程組來獲取外包的數據,早期的云存儲證明過程[20]也有相似的處理方法。
可證明的數據遷移協議的安全性是以可證明的數據持有協議的安全性為基礎的,因為遷移數據之前,首先要對云上數據的完整性進行審計??勺C明的數據遷移協議和可證明的數據刪除協議的安全性是以基于等級的默克爾哈希樹和數字簽名的安全性來保證的,具體的證明過程與文獻[19]給出的過程一致。有興趣的讀者可以參考Xue等[19]中的安全性證明工作。
2.2 效率分析
一個編碼好的外包數據文件F擁有n個數據塊,在數據外包存儲之前,用戶生成n個可驗證的標簽一共需要計算n個模乘和n個模指數運算,在構造基于等級的默克爾哈希樹時,用戶需要計算(2n-1)個哈希函數,加密哨兵表需要計算1次AES加密算法,生成文件標簽以及給根節點簽名各需計算1次簽名運算。在完整性審計模塊,對于部分文件的審計(L個數據塊),云服務器生成完整性證明需要計算(2L-1)個模乘運算和L個模指數運算,用戶驗證返回的完整性證明需要計算(L+1)個模乘和1個模指數運算;對于整個文件的審計(n個數據塊),云服務器生成完整性證明需要計算(2n-1)個模乘運算和n個模指數運算;用戶驗證返回的完整性證明需要計算(n+1)個模乘和1個模指數運算。整個完整性審計過程中,僅使用了模乘和模指數運算,沒有使用雙線性映射等復雜運算,因此概念更簡單,效率更高。在數據遷移模塊,用戶首先要調用上述的完整性審計算法對外包數據的完整性進行審計,該代價不再進行贅述。如果完整性審計通過,用戶執行一次簽名運算驗證取回的文件標簽、一次AES解密運算解密哨兵表和一次AES加密運算加密遷移數據的哨兵表,生成遷移請求和新的文件標簽各需執行1次簽名運算;云A驗證遷移請求需要執行1次簽名運算,如果驗證通過則執行遷移請求發送數據至目標云B;云B收到的遷移數據后,驗證請求和文件標簽各需執行1次簽名運算。如果驗證通過,根據輔助認證信息重構基于等級的默克爾哈希樹需要計算若干個哈希運算,之后執行1次簽名解密運算。在刪除驗證模塊,用戶生成刪除驗證請求需要執行1次簽名運算,云A對收到的請求進行驗證需要執行1次簽名運算,如果驗證通過則返回證明給用戶,用戶重構基于等級的默克爾哈希樹需要計算多個哈希函數,之后對獲取的根節點執行1次簽名運算。計算復雜度方面,模乘、模指數和哈希函數的計算代價較低;通信開銷方面,用戶與云服務器之間以及不同云服務器之間的交互主要是發送請求和返回證明,因此通信代價也很小,所以從理論上講,用戶端和云服務器端都很輕量。
為了更好地驗證本協議的實用性和運行效率,本文在Windows操作系統下,安裝JDK1.8并配置了相關的Java虛擬機環境,使用Java語言編程對其進行了軟件實現。經運行測試,其實際運行時間消耗與理論分析基本一致,在文件外包即文件上傳過程中時間耗費相對較多,但是文件在一次上傳后可以進行多次的審計,多次改變外包數據的存儲位置,因此,該協議具有較高的效率和較好的實用性。
3 結語
本文以云存儲數據的安全為研究對象,考慮到數據從外包給云服務器進行存儲、更新、在不同云服務器之間遷移以及數據刪除等過程中的安全性,完整地將可證明安全的數據持有協議、可證明安全的數據遷移協議和可證明安全的數據刪除協議結合在一起,設計并實現了一種全生命周期的云外包數據安全審計協議,用戶可以在全生命周期內對數據進行跟蹤審計。安全性分析表明該協議是安全的,效率分析也表明該協議較為高效。總的來說,本協議對于安全云存儲的發展有一定的促進作用。如何設計更安全、更高效的數據審計協議來保證外包數據在整個生命周期的安全性是下一步的研究方向。
參考文獻 (References)
[1] 楊娜.云計算與云存儲技術研究[J].黑龍江科學,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] 陳蘭香,許力.云存儲服務中可證明數據持有及恢復技術研究[J].計算機研究與發展,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] 譚霜,賈焰,韓偉紅.云存儲中的數據完整性證明研究及進展[J].計算機學報,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] 張毅.云存儲服務中可證明數據持有及恢復技術分析[J].電子設計技術,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] 徐葵.云存儲環境下數據持有性審計技術研究與應用[D].長沙:湖南大學,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] 馮登國,張敏,張妍,等.云計算安全研究[J].軟件學報,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.