趙 洋,王士雨,吳松洋,熊 虎(. 電子科技大學(xué)計算機(jī)科學(xué)與工程學(xué)院 成都 673;. 公安部第三研究所 上海 徐匯區(qū) 004)
?
一種代理遠(yuǎn)程數(shù)據(jù)完整性審計協(xié)議
趙 洋1,王士雨1,吳松洋2,熊 虎1
(1. 電子科技大學(xué)計算機(jī)科學(xué)與工程學(xué)院 成都 611731;2. 公安部第三研究所 上海 徐匯區(qū) 201204)
【摘要】隨著云計算技術(shù)的快速發(fā)展,越來越多的用戶將個人數(shù)據(jù)存儲到遠(yuǎn)端云服務(wù)器上。為確保用戶的數(shù)據(jù)被正確地存儲在云服務(wù)器上,遠(yuǎn)程數(shù)據(jù)的完整性檢查受到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注??紤]到個人有限的計算資源和通信帶寬,用戶可以將遠(yuǎn)端數(shù)據(jù)的完整性審計任務(wù)委托給專業(yè)的代理。由于目前已有的代理遠(yuǎn)程數(shù)據(jù)完整性審計方案只能支持靜態(tài)數(shù)據(jù)的存儲,所以該文基于Merkle Hash樹和雙線性對技術(shù),提出了一種能夠支持動態(tài)操作的代理遠(yuǎn)端數(shù)據(jù)完整性審計方案。該方案不僅滿足遠(yuǎn)端數(shù)據(jù)完整性審計協(xié)議所需的安全要求,而且支持針對遠(yuǎn)端數(shù)據(jù)執(zhí)行插入、刪除及追加等動態(tài)操作。安全性證明和性能分析,表明該方案是安全和高效的。
關(guān) 鍵 詞審計協(xié)議; 云計算; 動態(tài)操作; 完整性檢查; 代理
A Proxy Auditing Protocol for Data Storage in Cloud Computing
ZHAO Yang1, WANG Shi-yu1, WU Song-yang2, and XIONG Hu1
(1. School of Computer Science and Engineering, University of Electronic Science and Technology of China Chengdu 611731; 2. The Third Research Institute of Ministry of Public Security Xuhui Shanghai 201204)
Abstract With the rapid development of cloud computing technology, more users will store their data on a remote cloud server. To ensure that the user’s data is correctly stored on the cloud server, remote data integrity checking has attracted widespread attention by academia and industry. By considering limited computing resources and communication bandwidth on the client side, users can delegate the auditing task of remote data integrity to a professional proxy. Currently, the proxy auditing scheme of remote data integrity can only support storing static data. But in this paper, we propose a proxy auditing scheme of remote data integrity for dynamics, which is based on Merkle Hash Tree and bilinear pairings technology. The proposed scheme can not only meet the security requirements of auditing protocol for the remote data, but also support the dynamic operations, such as inserting, deleting and appending. Security proof and performance analysis show that the proposed scheme is safe and effective.
Key words auditing protocol; cloud computing; dynamic operating; integrity checking; proxy
隨著計算機(jī)技術(shù)的快速發(fā)展,云計算[1]已經(jīng)成為計算機(jī)技術(shù)的一種應(yīng)用趨勢。由于個人有限的計算資源和通信帶寬等的限制,個人無法承擔(dān)越來越大的計算任務(wù),所以需要尋求一種新的方式將用戶從繁重的計算任務(wù)中解脫出來。云計算能夠?qū)⒃S多分散的計算機(jī)連接起來,形成一個巨大的分布式系統(tǒng),大大增強(qiáng)了計算機(jī)的計算能力。用戶將個人的數(shù)據(jù)存儲在云服務(wù)器,不僅減輕了本地存儲帶來的存儲負(fù)擔(dān),也使得數(shù)據(jù)可以被用戶隨時隨地訪問。
盡管云計算技術(shù)具有諸多優(yōu)點,但隨之而來的問題是如何確保數(shù)據(jù)的安全性[2]。用戶將個人數(shù)據(jù)存儲在云服務(wù)器上,但是云服務(wù)器為了自身的經(jīng)濟(jì)利益,可能故意刪除用戶的一部分?jǐn)?shù)據(jù);即使云服務(wù)器能夠誠實地存儲用戶數(shù)據(jù),也不可避免由于軟硬件故障而造成的數(shù)據(jù)損壞問題。當(dāng)上述問題發(fā)生時,云服務(wù)器可能會隱藏這些錯誤,使用戶相信數(shù)據(jù)仍然被正確地存儲在云服務(wù)器。為確保用戶存儲在云服務(wù)器上數(shù)據(jù)的正確性,需要定期地檢查云服務(wù)器上數(shù)據(jù)的完整性。
目前,有一些方案[3-18]已經(jīng)能夠檢測遠(yuǎn)端用戶數(shù)據(jù)的完整性??紤]到用戶的計算資源和通信帶寬有限的情況,或是有些用戶可能無法連接網(wǎng)絡(luò),用戶如果要檢查數(shù)據(jù)的正確性,可以委托專業(yè)的代理服務(wù)器進(jìn)行數(shù)據(jù)的完整性檢查。雖然文獻(xiàn)[14]提出了一種代理數(shù)據(jù)擁有協(xié)議,但是這種協(xié)議只支持靜態(tài)數(shù)據(jù)的存儲,不能實現(xiàn)用戶的插入、刪除和修改操作。
本文基于Merkle Hash樹[13,19]和雙線性對[13-14]技術(shù),對文獻(xiàn)[13-14]的方案進(jìn)行擴(kuò)展,提出了一種支持動態(tài)操作的代理遠(yuǎn)端數(shù)據(jù)完整性審計方案。獲得用戶授權(quán)的代理服務(wù)器,代替用戶執(zhí)行數(shù)據(jù)完整性檢查的任務(wù),這不僅大大減輕了用戶的負(fù)擔(dān),而且還能增強(qiáng)用戶對遠(yuǎn)端數(shù)據(jù)的隱私性保護(hù)。另外,本文的方案使用了一種有序的二叉樹結(jié)構(gòu)——Merkle Hash樹,使得該方案能夠很好地支持用戶的動態(tài)操作。最后,本文對方案進(jìn)行了安全性分析和性能分析,表明該方案是安全和高效的。
在這一部分中,首先介紹系統(tǒng)模型;然后描述系統(tǒng)的安全模型,即介紹系統(tǒng)模型中存在的安全性問題。
1.1 系統(tǒng)模型
系統(tǒng)模型如圖1所示,包含3個實體——用戶、云服務(wù)器和代理服務(wù)器。
圖1 系統(tǒng)模型
在系統(tǒng)模型中,用戶將個人數(shù)據(jù)存儲在云服務(wù)器上,并刪除本地數(shù)據(jù)副本,這樣可大大減輕用戶的存儲負(fù)擔(dān)。用戶將遠(yuǎn)端數(shù)據(jù)完整性檢查的任務(wù)委托給代理服務(wù)器,當(dāng)代理服務(wù)器擁有用戶的授權(quán)并通過授權(quán)的驗證時,就可以代替用戶執(zhí)行遠(yuǎn)端數(shù)據(jù)的完整性檢查。然后,代理服務(wù)器向云服務(wù)器發(fā)起數(shù)據(jù)完整性檢查的請求,云服務(wù)器生成一個證明并將其返回給代理服務(wù)器。最后,代理服務(wù)器對證明進(jìn)行驗證,并可將驗證的結(jié)果告知用戶。如果云服務(wù)器能夠通過數(shù)據(jù)完整性的驗證,就說明用戶的數(shù)據(jù)被正確地存儲在云服務(wù)器上;否則,就說明用戶存儲在云服務(wù)器上的數(shù)據(jù)被損壞。
1.2 安全模型
在云存儲系統(tǒng)中,不僅要確保用戶存儲在云服務(wù)器上數(shù)據(jù)的正確性,還要支持用戶更新數(shù)據(jù)的需求。由于云服務(wù)器是半可信的,且動態(tài)操作存在不安全的問題,所以系統(tǒng)可能會出現(xiàn)如下形式的攻擊:
2) 刪除數(shù)據(jù)塊的攻擊。云服務(wù)器可能預(yù)先計算并存儲聚合的“數(shù)據(jù)塊?簽名”,并將用戶存儲在云服務(wù)器上的“數(shù)據(jù)塊?簽名”刪除。當(dāng)代理服務(wù)器執(zhí)行遠(yuǎn)端數(shù)據(jù)的完整性檢查時,云服務(wù)器就可以將預(yù)先計算的“數(shù)據(jù)塊?簽名”發(fā)送給代理服務(wù)器,以欺騙代理服務(wù)器。
在這一部分中,首先介紹協(xié)議的基本方案,然后介紹協(xié)議的動態(tài)操作的算法。
2.1 基本方案
2.2 動態(tài)操作
對于遠(yuǎn)端數(shù)據(jù),動態(tài)操作包括3種類型——插入(insert)、修改(modify)和刪除(delete)。假設(shè)數(shù)據(jù)集合M、簽名Φ和簽名Rσ已經(jīng)生成,并存儲到云服務(wù)器上,同時云服務(wù)器已經(jīng)成功構(gòu)造MHT。動態(tài)操作協(xié)議包含3個角色,將分4個步驟進(jìn)行,下面詳細(xì)介紹其過程。
1) 生成更新操作的消息。該步驟生成更新操作的消息,即執(zhí)行算法PrepareUpdate(),下面將分3種情況進(jìn)行描述。
修改操作:修改操作的過程和插入操作類似,只需將更新消息修改成即將第i個位置的數(shù)據(jù)塊修改為m?。
最后,當(dāng)更新請求的消息Mu生成之后,用戶就將其發(fā)送給云服務(wù)器,以便執(zhí)行更新操作。
2) 執(zhí)行更新操作。當(dāng)云服務(wù)器收到更新請求的消息后,將會執(zhí)行算法ExecUpdate(),下面詳細(xì)介紹其過程。
圖2 MHT的結(jié)構(gòu)
3) 驗證更新操作。當(dāng)用戶收到云服務(wù)器發(fā)送的證明uP后,將執(zhí)行算法VerifyUpdate(),驗證云服務(wù)器是否正確地執(zhí)行更新操作,過程如下:
4) 執(zhí)行數(shù)據(jù)的完整性檢查。當(dāng)上述3個過程都正確執(zhí)行以后,代理服務(wù)器就可以向云服務(wù)器發(fā)起挑戰(zhàn),執(zhí)行遠(yuǎn)端數(shù)據(jù)的完整性檢查。如果云服務(wù)器通過完整性檢查,用戶就可以刪除本地數(shù)據(jù);否則,需要執(zhí)行多次遠(yuǎn)端數(shù)據(jù)的完整性檢查,以確信云服務(wù)器上的個人數(shù)據(jù)沒有被損壞。
這一部分將分析方案的安全性,解決方案中存在的安全性問題。
3.1 偽造攻擊和重放攻擊
本文方案將會移除標(biāo)簽中的數(shù)據(jù)塊索引值i,即將H( k , i )替換為這樣在對數(shù)據(jù)進(jìn)行更新時,會發(fā)生改變,MHT也會隨之發(fā)生改變??梢员幌到y(tǒng)中任意一個合法的實體生成,而本文方案中的卻只能由云服務(wù)器生成,所以需要驗證標(biāo)簽是否被惡意的云服務(wù)器偽造。
在驗證數(shù)據(jù)塊的正確性之前,需要對標(biāo)簽的正確性進(jìn)行驗證。如果標(biāo)簽通過驗證,則說明云服務(wù)器沒有偽造標(biāo)簽,可繼續(xù)進(jìn)一步的數(shù)據(jù)完整性驗證;否則,說明云服務(wù)器偽造了標(biāo)簽,將結(jié)束驗證的過程。因為用戶將數(shù)據(jù)存儲在云服務(wù)器或是執(zhí)行更新操作后,都對MHT的根進(jìn)行重新簽名,所以云服務(wù)器無法對MHT的根進(jìn)行偽造。根據(jù)抗碰撞Hash函數(shù)的單向性可知,云服務(wù)器偽造的標(biāo)簽不能以一個不可忽略的概率通過代理服務(wù)器的驗證。同理,如果云服務(wù)器使用過期版本的數(shù)據(jù)塊替換最新版本的數(shù)據(jù)塊,將不能通過代理服務(wù)器對標(biāo)簽的驗證過程。
3.2 數(shù)據(jù)塊的刪除
為防止云服務(wù)器使用任意組合的聚合“數(shù)據(jù)塊?簽名”欺騙代理服務(wù)器,需要對數(shù)據(jù)塊對應(yīng)的標(biāo)簽進(jìn)行驗證。假設(shè)云服務(wù)器已經(jīng)通過上述的驗證過程,當(dāng)代理服務(wù)器隨機(jī)地選擇sc個數(shù)據(jù)塊以執(zhí)行完整性檢查時,那么聚合的數(shù)據(jù)塊數(shù)量就存在種組合。同時代理服務(wù)器向云服務(wù)器發(fā)送了sc個隨機(jī)系數(shù),所以云服務(wù)器需要存儲的數(shù)據(jù)塊數(shù)量將遠(yuǎn)遠(yuǎn)大于n。通過上述分析可知,如果云服務(wù)器想要通過預(yù)先計算聚合數(shù)據(jù)塊的方式通過代理服務(wù)器的驗證是不現(xiàn)實的。
在這一部分中,首先對執(zhí)行遠(yuǎn)端數(shù)據(jù)完整性檢查的5種方案進(jìn)行性能比較,然后對本文和文獻(xiàn)[14]的方案進(jìn)行模擬分析。
假設(shè)n表示用戶總的數(shù)據(jù)塊數(shù)量,b表示損壞的數(shù)據(jù)塊數(shù)量,c表示代理服務(wù)器向云服務(wù)器發(fā)起遠(yuǎn)端數(shù)據(jù)完整性檢查時選擇的數(shù)據(jù)塊數(shù)量,那么可以計算出5種方案的檢查概率都相等,如表1所示。由于要支持動態(tài)操作,所以需要引入能夠支持動態(tài)操作的數(shù)據(jù)結(jié)構(gòu),本文使用的是MHT。如果修改某個數(shù)據(jù)塊,那么只會影響驗證路徑上結(jié)點的hash值,MHT的這種優(yōu)點將大大降低更新操作的復(fù)雜度。
表1 執(zhí)行遠(yuǎn)端數(shù)據(jù)完整性檢查的方案性能比較
下面將本文的方案和文獻(xiàn)[14]的方案進(jìn)行模擬分析比較,其中程序編碼主要基于版本0.5.11的PBC庫,并且使用BLS[20-21]作為簽名方案。模擬環(huán)境的配置如下:一臺裝有Ubuntu 13.10操作系統(tǒng)的計算機(jī),主頻為1.9 GHz的Intel Core 2 Duo CPU和2 GB RAM,文件系統(tǒng)為ext4。需要說明的是,兩種方案需要在相同的環(huán)境下進(jìn)行多次模擬計算,所以本文進(jìn)行了10次測試。
圖3 性能分析
為了實現(xiàn)遠(yuǎn)端數(shù)據(jù)的完整性檢查,需要對數(shù)據(jù)進(jìn)行預(yù)處理,其中最主要的步驟是對數(shù)據(jù)塊進(jìn)行簽名,預(yù)處理的時間如圖3a所示。從圖中可以看出,當(dāng)數(shù)據(jù)塊長度取64 KB或是128 KB時,預(yù)處理的時間將變得很小并且減小不再明顯。
當(dāng)代理服務(wù)器向云服務(wù)器發(fā)起遠(yuǎn)端數(shù)據(jù)完整性檢查后,云服務(wù)器需要生成證明并將其返回給代理服務(wù)器,然后代理服務(wù)器判斷證明的正確性。由于本文的方案需要支持動態(tài)操作,所以執(zhí)行完整性檢查的時間將會增大,如圖3b所示。兩種方案會出現(xiàn)這種差別,主要原因是本文的方案為抵御重放攻擊和偽造攻擊,需要對MHT的構(gòu)造進(jìn)行驗證。
云服務(wù)器生成證明后,需要將證明返回給代理服務(wù)器以便驗證遠(yuǎn)端數(shù)據(jù)的正確性,證明的長度曲線如圖3c所示??紤]到預(yù)處理的時間和執(zhí)行完整性檢查的時間,數(shù)據(jù)塊的長度不能選取的太小。從圖中可看出,數(shù)據(jù)塊長度可選取為64 KB或是128 KB,這樣在證明的長度基本不變的情況下,執(zhí)行完整性檢查的時間將會變得更加合理。
通過上述分析,表明用戶將數(shù)據(jù)存儲在云服務(wù)器上,并將遠(yuǎn)端數(shù)據(jù)的完整性檢查委托給代理服務(wù)器,可以大大減輕用戶的負(fù)擔(dān)。本文中為能夠支持用戶的動態(tài)操作而使用了MHT,雖然增加了計算和通信的開銷,但是如果適當(dāng)?shù)剡x取數(shù)據(jù)塊的長度,可使方案變得非常高效。
為確保用戶的數(shù)據(jù)被正確地存儲在云服務(wù)器上,用戶需要做遠(yuǎn)端數(shù)據(jù)的完整性檢查。但是當(dāng)用戶沒有能力執(zhí)行完整性檢查任務(wù)時,就可以將該任務(wù)委托給代理服務(wù)器。本文提出的支持動態(tài)操作的代理遠(yuǎn)程數(shù)據(jù)審計協(xié)議,代理服務(wù)器能夠代替用戶執(zhí)行遠(yuǎn)端數(shù)據(jù)的完整性檢查。在本文的方案中,為支持動態(tài)操作而引入MHT,不但能很好支持用戶的動態(tài)操作,而且可以大大減輕云服務(wù)器檢驗數(shù)據(jù)標(biāo)簽的簽名的負(fù)擔(dān)。最后,通過安全性分析和性能分析,說明本文的方案是安全和高效的。但是,本文沒有給出安全性證明,所以未來需要進(jìn)一步證明方案的安全性。
參 考 文 獻(xiàn)
[1] MELL P, GRANCE T. The NIST definition of cloud computing[J]. National Institute of Standards and Technology, 2009, 53(6): 50-57.
[2] 馮登國, 張敏, 張妍, 等. 云計算安全研究[J]. 軟件學(xué)報, 2011, 22(1): 71-83. FENG Deng-guo, ZHANG Min, ZHANG Yan, et al. Study on cloud computing security[J]. Journal of Software, 2011, 22(1): 71-83.
[3] GIUSEPPE A, RANDAL B, REZA C. Provable data possession at untrusted stores[C]//Proceedings of the 14th ACM Conference on Computer and Communications Security. [S.l.]: ACM, 2007: 598-609.
[4] ATENIESE G, DI P R, MANCINI L V, et al. Scalable and efficient provable data possession[C]//Proceedings of the 4th International Conference on Security and Privacy in Communication Networks. [S.l.]: ACM, 2008.
[5] ERWAY C, KüP?ü A, PAPAMANTHOU C, et al. Dynamic provable data possession[C]//Proceedings of the 16th ACM Conference on Computer and Communications Security. [S.l.]: ACM, 2009: 213-222.
[6] WANG C, WANG Q, REN K, et al. Privacy-preserving public auditing for data storage security in cloud computing[C]//Proceedings of the 28th IEEE INFOCOM. [S.l.]: IEEE, 2010: 1-9.
[7] WANG Q, WANG C, LI J, et al. Enabling public verifiability and data dynamics for storage security in cloud computing[M]//Computer Security. Berlin Heidelberg: Springer, 2009: 355-370.
[8] LIU C, CHEN J, YANG L, et al. Authorized public auditing of dynamic big data storage on cloud with efficient verifiable fine-grained updates[J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 25(9): 2234-2244.
[9] ETEMAD M, KüP?ü A. Transparent, distributed, and replicated dynamic provable data possession[M]//Applied Cryptography and Network Security. Berlin Heidelberg: Springer, 2013: 1-18.
[10] JUELS A, KALISKI Jr B S. PORs: Proofs of retrievability for large files[C]//Proceedings of the 14th ACM Conference on Computer and Communications Security. [S.l.]: ACM, 2007: 584-597.
[11] SHACHAM H, WATERS B. Compact proofs of retrievability[C]//Proceedings of the 14th International Conference on the Theory and Application of Cryptology and Information Security. Berlin Heidelberg: Springer, 2008: 90-107.
[12] YANG K, JIA X. An efficient and secure dynamic auditing protocol for data storage in cloud computing[J]. IEEE Transactions on Parallel and Distributed Systems, 2012, 24(9): 1717-1726.
[13] WANG Q, WANG C, REN K, et al. Enabling public auditability and data dynamics for storage security in cloud computing[J]. IEEE Transactions on Parallel and Distributed Systems, 2010, 22(5): 847-859.
[14] WANG H. Proxy provable data possession in public clouds[J]. IEEE Transactions on Services Computing, 2012, 6(4): 551-559
[15] WANG H. Identity-based distributed provable data possession in multi-cloud storage[J]. IEEE Transactions on Services Computing, 2014, 8(2): 328-340.
[16] REN Y, XU J, WANG J, et al. Designated-verifier provable data possession in public cloud storage[J]. International Journal of Security and Its Applications, 2013, 7(6): 11-20.
[17] LIU C, YANG C, ZHANG X, et al. External integrity verification for outsourced big data in cloud and IoT: a big picture[J]. Future Generation Computer Systems, 2015, 49: 58-67.
[18] ATENIESE G, BURNS R, CURTMOLA R, et al. Remote data checking using provable data possession[J]. ACM Transactions on Information and System Security (TISSEC), 2011, 14(1): 1165-1182.
[19] GOLLE P, JARECKI S, MIRONOV I. Cryptographic primitives enforcing communication and storage complexity[M]//Financial Cryptography. Berlin Heidelberg: Springer, 2003: 120-135.
[20] BONEH D, LYNN B, SHACHAM H. Short signatures from the Weil pairing[J]. Journal of Cryptology, 2004, 17(4): 297-319.
[21] BONEH D, GENTRY C, LYNN B, et al. Aggregate and verifiably encrypted signatures from bilinear maps[M]// Advances in Cryptology—EUROCRYPT 2003. Berlin Heidelberg: Springer, 2003: 416-432.
編 輯 漆 蓉
作者簡介:趙洋(1973 ? ),男,博士,副教授,主要從事信息安全、移動互聯(lián)網(wǎng)應(yīng)用方面的研究.
基金項目:國家自然科學(xué)基金(61003230, 61370026);中央高?;究蒲袠I(yè)務(wù)費(ZYGX2013J073)
收稿日期:2014 ? 10 ? 14;修回日期: 2015 ? 05 ? 31
中圖分類號TP309
文獻(xiàn)標(biāo)志碼A
doi:10.3969/j.issn.1001-0548.2016.01.013