喬 娜
(國家圖書館 信息網絡部,北京100081)
隨著計算機和網絡技術的發展,大規模的共享數據需要更有效的存儲方式,云存儲的提出為數據的分布式存儲問題提供了可行的解決方案[1]。另一方面,受制于云存儲的開放性,其安全問題也受到很大的關注,特別是2011年出現的CSDN網站 “泄密門”事件,密碼在網站上以明文方式傳輸,600萬用戶密碼遭泄露,更增加了人們的擔憂。人們一般不大傾向于將一些重要數據 (如個人健康記錄、犯罪信息等)放在不大可信的云端,一旦泄露,后果嚴重。上例說明在云中托管信息必須要有強安全性的保護措施。因此提出安全的云存儲機制就成為了云計算發展和應用中急需解決的問題。
從技術層面來看,保證安全性的有效方法仍然是加密。加密分為對稱加密和基于公鑰的加密技術[2],前者具有高運算速度、低存儲和能量開銷的優點,但如何將共享會話密鑰安全分發給相應的通信方也是一個不簡單的問題。利用公鑰密碼技術來解決分布式網絡中的密鑰管理問題是很成功的解決方法。然而并不適合要求效率和大規模分布式網絡的即時性要求,
基于上述考慮,本文提出了基于引導密鑰加密的廣播加密的安全云存儲方案,利用了對稱密碼的優勢,同時由文件所有者掌握引導密鑰,解決了密鑰管理中密鑰傳遞的難題。利用廣播加密,使得密鑰可以在任意子集的用戶集合間共享,同時保證了只有合法用戶才知道文件的內容和訪問文件對象的密鑰。
云存儲是云計算的一個基礎架構技術[3],Hamdi研究了了云存儲中存在的各種安全攻擊、對抗攻擊的技術的發展以及研究趨勢,從服務、原則、需求等方面強調了安全管理的要素。類似的綜述還有文獻[4],提出了一系列的安全需求,除了傳統的數據完整性、機密性、認證和控制,還有配置安全、可信虛擬安全等。
針對云存儲的安全,主要有3個維度:安全體系架構[5]、協議策略[6]、數據管理[7]。邊根慶等人提出了一種分散式存儲的安全架構[5],采用信息擴散、分片存儲管理、數據恢復等技術,并用層次化的方式實現存儲數據的安全管理和傳輸,然而該算法開銷較大。林秦穎等人提出了一種面向云存儲的安全的存儲模型和策略[6],旨在解決云存儲中用戶的匿名性和數據安全性的問題,類似的還有田俊峰等人提出的可信的云存儲控制模型[8],通過定義一組協議策略實現數據的完整性、機密性和安全存儲。李茂等人提出了一種數據管理的新模型[7],通過詳細的定義數據模型的數據操作、約束條件和數據結構,保證了模型的完整性。上述算法的缺點是沒有從云端安全性、密碼認證、數據共享多方面來保證云存儲的安全性能。文獻[6]考察了強安全性的情況,但是缺乏秘密信息的高效保存機制,文獻[8]利用可信第三方存儲密鑰,不能解決大規模分布式存儲的密鑰管理問題。
在數據安全性認證方面,于洋洋等人提出了一種云存儲中的數據完整性驗證算法[9],結合MD5和可恢復性證明方法,可檢測出數據是否被損壞,但是該算法沒有恢復機制。文獻[10]提出了一種基于糾刪碼中的Tornado碼設計數據冗余系統以解決數據丟失恢復問題,并通過帶密鑰的哈希使Tornado碼具備糾錯功能從而解決數據的篡改問題。上述算法都沒有考慮問責機制,出現數據的損壞丟失不能迅速清晰的定位責任方。問責機制是強安全性的必備條件,目前已經引起多位研究者的關注,如文獻[11-13]。安寶宇提出了基于可信第三方的數據完整性問責方案[14],基于Merkel哈希樹建立憑單鏈條保證數據完整性,是一個有益的探索。
最后在云存儲的數據共享方面,廣播加密方案是一個有效的方法,目前出現了各種廣播加密算法,如基于公鑰密碼體制的廣播加密[15],基于身份的廣播加密算法[16],基于屬性的加密算法[17]和其他算法[18]等。基于公鑰密碼體制的廣播加密的缺點是計算量復雜,不太適合要求效率的場合;基于身份的廣播加密技術由Delerablee等提出[16],每個身份或ID與每個用戶一一對應。每個用戶可以從可信的權威機構獲得自己的私鑰,同時將ID作為自己的公鑰。一個具有基于屬性機制的BE方案 (ABBE)在[17]中提出,主要利用基于可表達屬性的訪問控制策略替代了簡單接收者列表。然而該算法適用一類模糊條件下的安全問題,而云存儲中共享的節點組是清晰的,而且相同的屬性并不代表合法的節點,所以不適用本文的云存儲環境。
綜上所述,就本文的強安全性要求的云存儲的場景而言,目前還沒有完美的解決方案。本文提出引導密鑰解決密鑰管理問題,考察了強安全性的條件,提出了一種由文件所有者掌握引導密鑰來生成所需要的加密密鑰的方案,確保了即使云端泄露用戶數據也不會造成嚴重的危害。本文的另一個特點是融合廣播加密機制到云存儲的過程中。為了滿足合法用戶的讀取要求,同時避免非法用戶的越權訪問,引入廣播加密方案。廣播加密使得密鑰可以在任意子集的用戶集合間共享,同時保證了只有合法用戶才知道文件的內容和訪問文件對象的密鑰。
設置一個應用場景如下:
(1)分布式云存儲系統中,用戶將自己的數據放在云端,并能隨時隨地讀取,而不需要重復認證。
(2)云端是不可信的,存在丟失和篡改數據的風險。
(3)數據在篡改時能夠定位并恢復數據。能夠在可信第三方的監察下,確定問責主體。
(4)能實現合法用戶的數據共享和非法用戶的拒絕訪問。
基于上述場景,給出技術上的實現功能框圖,如圖1所示。主要涉及4個部分的技術細節:數據處理、引導密鑰的加密和數據讀取、廣播加密方案和基于可信第三方的數據審計和問責。

圖1 云存儲方案框架
基于圖1的框圖,在下一節中逐項給出相應的技術實現。
用戶文件首先被切割成分片,然后分片被發散存儲到不同的存儲節點。現有的大部分存儲系統都使用的這種存儲方式。分片處理的原因是由于文件的大小并不統一,整體存儲容易產生碎片。而且文件完整存儲在某個存儲節點上,容易導致信息泄露。為避免分片的節點的崩潰,需要引入冗余。
然后對分片的數據進行編碼,如Tornado碼[10],具有良好的糾刪能力。
進一步對數據碼進行哈希運算,實現檢測數據篡改功能。
這里使用一種帶密鑰的哈希函數,如HMAC-SHA1。對每個數據塊都使用HAMC-SHA1和密鑰Enck計算一個哈希值,并且將數據塊與對應的哈希值保存。對于數據塊x,攻擊者在沒有Enck的情況下,無法找到數據塊y≠x且Hmac(Enck,x)=Hmac(Enck,y),而且也無法使用 (y,Hmac(Enck,y))替換 (x,Hmac(Enck,x))。這種特性將保證我們可以檢測出數據是否被篡改,只要我們對數據進行相同的哈希并與保存的哈希值進行配對比較。
我們檢測到錯誤數據后,還需要去糾正它。先丟棄錯誤的數據塊,利用Tornado碼的良好糾刪能力可以實現數據塊的恢復。
這個方法是因為它涉及到密鑰的管理問題,代價較大,在這里,使用3.2里由引導密碼產生的加密密鑰Enck來解決這個問題。
根據Diffie-Hellman原理,一個密碼系統的安全性不能依賴于算法本身,而是密鑰,所以對密鑰的產生和管理是系統安全的關鍵。
該部分主要講述如何實現數據的強機密性,即除了用戶自己,任何人都無法獲取數據的有意義信息,哪怕是云服務提供商。為了達到這種安全性,傳統的由云端負責加密的架構已經不適用。數據在上傳到云端之前就需要在本地加密,且加密密鑰僅用戶所有。數據既然在本地被加密后存放到云端,則在下載回本地。進行數據讀取時也需要被解密,其中的過程都將牽涉到密鑰。
非對稱加密算法的速度較慢,在面對較大的文件時力不從心,很難達到理想的速度,因此我們選用對稱加密算法,用戶在上傳數據之前采用傳統的對稱加密技術 (如AES)對數據進行加密。
在云存儲中,由于存在大規模的用戶,用戶必須自己維護管理密鑰,而云存儲也喪失了簡單、隨地可用的特性。為了解決這個問題,我們引入引導密碼。如圖2所示。

圖2 引導密碼
引導密碼是一個類似于郵箱密碼或MSN密碼的一個普通密碼字符串,它的作用相當于一個密鑰生成種子,通過它來生成加密所需的加密密鑰。引導密碼由兩部分組成:第一部分是由用戶輸入的記憶密碼,第二部分是自動加上的當前加密的文件名或其它的文件唯一標識符。這樣用戶可以通過相同的記憶密碼為不同的文件產生不同的引導密碼,進而生成不同的加密密鑰。相比直接使用加密密鑰,使用更易于記憶的引導密碼可以使用戶避開密鑰的管理等難題,用戶只需要記憶自己輸入的記憶密碼即可。
引導密鑰的獲取需要一個密鑰產生函數,這個函數的輸入是引導密碼,輸出是加密密鑰。密鑰產生函數應該具備的第一個特性是只要而且只有輸入相同,產生的輸出相同。第二個特性是它應該將長度較短的引導密碼發散成長度固定的加密密鑰,如AES所需要的最短加密密鑰長度128位。很明顯,哈希函數MD5或SHA1都具備這兩種特性,可以充當我們的密鑰產生函數。
用戶每次上傳 (下載)文件,都需要先輸入記憶密碼,組裝成引導密碼,通過哈希函數計算出加密密鑰,然后對文件進行加密 (解密)。引導密碼只有用戶知道,因此即使云提供商也無法獲取數據的有意義信息。不足的地方是數據機密性不再取決于AES的安全性,降低到了引導密碼的安全性。但這種安全性并非所想的那么不堪,對于一個16位長的沒有任何社會規律的密碼,不考慮其它途徑如中毒導致的密碼泄露,使用一臺普通PC窮舉攻擊獲取這個密碼所需的時間以億年計。而且相對于直接使用加密密鑰帶來的幾乎無法接受的密鑰管理問題,這是可以接受的。
為了使得合法數據得到共享,同時禁止非法用戶獲取資源,采用廣播加密方案 (broadcast encryption scheme)來解決。
廣播加密方案是發送者向所有節點頒發加密的消息,只允許授權解密的用戶能成功解密的密碼系統。已廣泛應用于有償電視 (pay-TV)系統、版權資料發布和CD/DVD內容保護等等。
最基本的廣播加密方案一般由以下3個算法組成:
-Setup:輸入用戶u∈U,且構造一個私有信息Pu∈P。
-Broadcast:輸入revoked用戶集R和會話密鑰k∈K,輸出廣播消息B,其中B=(u1,F(Ku(1),M)) ( (uN-r,F(Ku(N-r),M));
-Decrypt:輸入B,Pu和u,并計算共同密鑰 (,輸出對應的明文F-1(k,c)=M。否則失敗。
本文的廣播加密方案是在最新的方案 (文獻[19])的基礎上改進的。
初始化:用戶首先生成一個足夠健壯的私有主密鑰MSK,主密鑰即為足夠長度的引導密鑰,然后將私有主密鑰與目標接收點的身份ID和密鑰版本串聯在一起,并對該整體進行哈希運算,將得到的結果 (聯合私鑰skIDi)作為該對象的對應于本次版本下的一個加密密鑰。
加密:對于私鑰skIDi和一個用戶的身份集合S={ID1,…,IDs},s為用戶節點數目,經過3.1節所提出的哈希處理,加密密鑰即為skIDi,輸出為一對 (H,K),其中H為S的哈希后的值,K是加密方案的密鑰集合,為s個私鑰skIDi的集合。
廣播:當需要將消息M∈{0,1}廣播給s中的所有或部分用戶時,廣播者先生成 (H,K)←H (s,skIDi),然后根據加密算法生成 (Hdr,S,CM)←Encrypt(H,K,M),CM為消息 M 的加密信息。廣播者廣播 (Hdr,S,CM)。(Hdr,S)作為整個報頭,CM作為廣播主體。
解密:利用解密算法計算Decrypt(S,ID,Hdr,skIDi),在已知子集S={ID1,…,IDs}、某個接收者的身份ID和其私鑰skID的情況下,可以解析報頭Hdr,得到該合法節點加密密鑰,再對消息解CM解密,從而恢復消息M。
其中加密和解密算法采用了文獻[19]中的設計過程,此處就不再重復敘述了。改進后的算法融合了本文的引導密鑰機制和帶密鑰的哈希運算,相對于原文獻,靈活性和安全性有進一步的提高。
融合上述的引導密鑰機制和廣播加密方案,進一步提出基于引導密鑰加密的廣播加密方案的云存儲方案如圖3所示。

圖3 安全云存儲架構
實線表示實際的路徑,用戶將數據通過加密,傳到網上,通過公共接口達到云存儲服務器端,寫入云端。虛線表示透明功能選項,本文的加密機制采用引導密鑰加密,從用戶角度來看,就是直接加密數據放到云端,并用引導密鑰讀取數據;云端的加密密鑰是采用廣播方式發送到用戶端,合法的認證用戶可以提取數據。上述的引導密鑰只對文件所有者或共享者所有的,對云端也是保密的,安全性進一步提高。
為了實現強安全性的審計功能,本文引入了可信第三方參與。引入可信第三方之后的數據流向圖如圖4所示。
圖中SSP(storage service provider)表示云存儲服務提供商,TTP表示可信第三方。相對于圖3,圖4增加了可信第三方以及基于第三方的審計功能,圖中描述了3種獨立的數據流:文件讀/寫數據流,該數據流只存在于用戶和SSP之間;憑單生成數據流,關于數據流的交互憑據,存放在SSP上;問責審計數據流。

圖4 用戶、云端、可信第三方的數據流向
審計和問責的過程如下:
(1)在文件讀寫的過程中分別增加憑據流和審計流,可信第三方負責認證信息的收集和證言的判斷。用戶讀寫數據流 (R\W flow)時,按照版本遞增的原則給每條操作設置一個字符串—憑據,為用戶讀取和寫入的文件提供完整性保護的同時為審計提供證據。
(2)當通過3.1中描述的方法檢測出數據不完整或者丟失篡改時,由于云端的不可信,用戶很可能與云端發生錯誤歸屬的爭議。這時SSP可以提取和驗證在數據交互中產生的憑單鏈條來實現相關操作的舉證。
(3)可信第三方在認證各方以及憑據的合法性后,出示證言,進行追責,或是用戶的操作錯誤,或是云端的惡意操作,然后主張權責歸屬。
該方案,在圖3對云端保密數據的基礎上,進一步確保了云端的強安全性。
所提方案具有較好的靈活性和較高的安全性。
(1)本方案采用用戶引導密碼來生成主密鑰,在保證系統機密性要求的前提下,使得用戶能夠在任何時間、任何地點和任何一臺機器上實現對密鑰數據的有效管理。這實質上是引入了人的管理因素,每個人只需要記住涉及自己的若干個密碼,就可以維護自己的數據以及與他人進行廣播共享,而若干密碼可以由用戶設置的引導密碼來完成加密解密。這樣可以避免云端管理密鑰帶來的可能的泄漏或者負擔過重的問題。
(2)用戶內容對云端保密。本文方案通過用戶來管理密鑰,同時對具體內容進行加密傳輸并儲存在云端。這樣云端或可信第三方都無法知道文件內容,就可以避免前述的存儲在云端的數據不會被泄露 (至少泄露信息可控),另一方面云端很難有意或無意的更改存儲的數據。特別是將重要敏感的數據交給云端托管時,這些措施很有必要。傳統的云存儲都是用明文存放數據后在云端加密,因此數據的安全性依賴于對云端的信任,而一旦云端的訪問控制機制出現問題后果不堪設想。
(3)本文的廣播加密的作用類似于數字版權保護。文件對象的創建者通過廣播加密向允許訪問該文件對象的用戶范圍廣播該對象的加密密鑰,只有處于創建者指定的集合中的用戶才能解密收到的消息從而獲得加密密鑰。密鑰輪換用來在需要變更能夠訪問該文件的用戶范圍時使用,文件對象的創建者將對新的能夠訪問該對象的用戶集合廣播新的密鑰,同時更改密鑰版本 (版本號加1)。
(4)所提方案使用一種帶密鑰的哈希函數對數據塊進行加密。這種哈希函數與普通哈希函數的區別是它的哈希結果不僅與輸入數據有關,而且與輸入密鑰也有關。對于同一個數據塊,輸入不同的密鑰產生的哈希結果也是不同的。相對普通哈希解決方案不能檢測內容和哈希值同時被替換的情況,提高了篡改檢測的準確性和安全性。
(5)問責的效果和抗攻擊。云提供商故意修改或破壞存放的數據對象:由于存放在云端的數據經過了分片和單向函數的置亂,云提供商SSP無法偽造一個合法簽名的數據對象;同時由于每個數據對象每次合理的修改后,都會產生一個憑據,這樣就形成了一個憑據鏈,本方案引入了可信第三方的簽名認證,這樣方案中涉及到的關鍵動作均有三方簽名的憑據做保障,可信第三方負責確保憑據鏈的完整性和最新性。若出現云提供商的違規,是可以定位SSP的責任的。如果SSP想刪除某個對象時,由于每個數據對象每次合理的修改后的版本號是遞增的關系,不同的版本之間也構成了一個可認證的憑據鏈,刪除對象會造成憑據鏈條的跳躍情況,很容易被發現。如果云端想用替換的方法,如用一個相同版本號的憑據替換惡意操作部分的憑據,則需要同時偽造TTP和用戶的簽名,這是非常困難的。
同理用戶出現上述的違規行為,或抵賴自身行為,或污蔑對方,也是可以通過對方 (SSP)舉證,可信第三方認證雙方身份,并出示證言,而判斷各自的權責歸屬的。
本文關注并解決了強安全性的條件下的數據安全問題。提出了一種由文件所有者掌握引導密鑰來生成所需要的廣播加密密鑰的方案,確保了即使云端泄露用戶數據也不會造成嚴重的危害,同時解決了傳統對稱數據加密中密鑰難以管理和保存的問題。另外,引入了審計問責機制,實現了用戶和云存儲服務商的責任歸屬,從而進一步約束行為,加強了數據的安全性。分析表明本文算法具有較高的安全性和靈活性。下一步的工作進一步完善和優化廣播加密方案,使之安全性能更高,更符合云計算的服務提供需求。引導密鑰用于廣播加密以及其自身的強安全性也值得進一步研究。
[1]WU Jiyi.Study on DHT based open P2Pcloud storage services systems[D].Hangzhou:University of Zhejiang,2011:17-18(in Chinese).[吳吉義.基于DHT的開放對等云存儲服務系統研究[D].杭州:浙江大學,2011:17-18.]
[2]Tang Yang,Lee Patrick P C,Lui John C S.Secure overlay cloud storage with access control and assured deletion[J].IEEE Transactions on Dependable and Secure Computing,2012,9(6):903-916.
[3]Hamdi M.Security of cloud computing,storage,and networking[C]//International Conference on Collaboration Technologies and Systems,2012:1-5.
[4]YU Nenghai,HAO Zhuo,XU Jiajia,et al.Review of cloud computing security[J].Journal of Electronic.2013,41 (2):371-381(in Chinese).[俞能海,郝卓,徐甲甲,等.云安全研究進展綜述[J].電子學報,2013,41 (2):371-381.]
[5]BIAN Genqing,GAO Song,SHAO Bilin.Security structure of cloud storage based on dispersal[J].Journal of Xi'an Jiaotong University,2011,45 (4):41-45(in Chinese).[邊根慶,高松,邵必林.面向分散式存儲的云存儲安全架構[J].西安交通大學學報,2011,45 (4):41-45.]
[6]LIN Qinying,GUI Xiaolin,SHI Deqin,et al.Study of the secure access strategy of cloud storage[J].Journal of Computer Research and Development,2011,48 (Suppl):240-243 (in Chinese).[林秦穎,桂小林,史德琴,等.面向云存儲的安全存儲策略研究[J].計算機研究與發展,2011,48 (Suppl):240-243.]
[7]LI Mao,JIA Hong,LI Yanming,et al.New data model for cloud data management[J].Computer Engineering and Design,2012,33 (10):3870-3876(in Chinese).[李茂,賈宏,李艷明,等.云數據管理的新數據模型[J].計算機工程與設計,2012,33 (10):3870-3876.]
[8]TIAN Junfeng,WU Zhijie.Trusted control model of cloud storage[J].Journal of Chinese Computer Systems,2013,34 (4):789-795(in Chinese).[田俊峰,吳志杰.一種可信的云存儲控制模型[J].小型微型計算機系統,2013,34 (4):789-795.]
[9]YU Yangyang,YU Huiqun,FAN Guisheng.An approach to verifying the data integrity of cloud storage[J].Journal of East China University of Science and Technology(Natural Science Edition),2013,39 (2):211-216(in Chinese).[于洋洋,虞慧群,范貴生.一種云存儲數據完整性驗證方法[J].華東理工大學學報 (自然科學版),2013,39 (2):211-216.]
[10]FU Yongkang,Sun bin.A scheme of data confidentiality and fault-tolerance in Cloud Storage[C]//Proceedings of 2nd IEEE International Conference on Cloud Computing and Intelligence Systems,2012:293-298.
[11]Yemerefendi A R,Chase J S.Strong accountability for network storage[J].ACM Transactions on Strorage,2007,3(3):11-33.
[12]Andreas Haeberlen.A case for accountable cloud[J].ACM SIGOPS Operating Systems Review,2010,44 (2):52-57.
[13]Yao J H,Chen S P,Wang C,et al.Accountability as a service for the cloud[C]//Proceeding of IEEE International Conference on Services Computing,2010:81-88.
[14]AN Baoyu.Research on the key technologies of data integrity protection in cloud storage[D].Beijing:Beijing University of Posts and Telecommunications,2012:55-79(in Chinese).[安寶宇.云存儲中數據完整性保護關鍵技術研究[D].北京:北京郵電大學,2012:55-79.]
[15]WANG Shyh Yih,YANG Wuchuan,Tzeng Show-Shiow.A symmetric-key broadcast encry-ption scheme with shorter transmissions[C]//IEEE International Symposium on Next-Generation Electronics,2013:275-278.
[16]Delerabl'ee C.Identity-based broadcast encry-ption with constant size cipher-texts and private keys[G].LNCS 4833:Kurasawa,k.(ed.)ASIACRYPT,2007:200-215.
[17]Lubicz D,Sirvent T.Attribute-based broadcast encryption scheme made efficient[C]//Progress in 1st International Conference on Cryptology in Africa,2008:325-342.
[18]Dua A,Bulusu N.Resource aware broadcast encryption for selective sharing in mobile social sensing[C]//IEEE Eighth International Conference on Intelligent Sensors,Sensor Networks and Information Processing,2013:195-200.
[19]ZHANG Mingwu,Tsuyoshi T.Efficient constructions of anonymous multi-receiver encryption protocol and their deployment in group e-mail system with privacy preservation[J].IEEE Systems Journal,2013,7 (3):410-419.