魏東平
(九江學(xué)院信息科學(xué)與技術(shù)學(xué)院 江西九江 332005)
云存儲系統(tǒng)中數(shù)據(jù)安全的研究
魏東平
(九江學(xué)院信息科學(xué)與技術(shù)學(xué)院 江西九江 332005)
文章利用文獻(xiàn)資料法、邏輯推理法描述云存儲系統(tǒng)、數(shù)據(jù)特性及層次架構(gòu),探索云存儲系統(tǒng)中文件數(shù)據(jù)加密解密技術(shù)、密鑰生成、密鑰分發(fā)、密鑰管理的研究現(xiàn)狀,提出未來安全云存儲系統(tǒng)的主要研究方向是基于密文的搜索、重復(fù)數(shù)據(jù)刪除、數(shù)據(jù)持有性證明等方面。
云存儲,密碼技術(shù),密鑰管理
云存儲系統(tǒng)整合存儲資源,降低運(yùn)營成本,具備負(fù)載均衡、故障冗余功能,能夠?qū)崿F(xiàn)規(guī)模效應(yīng)和彈性擴(kuò)展,但企業(yè)用戶不采用云存儲系統(tǒng)的主要顧慮在于安全問題。云存儲系統(tǒng)的數(shù)據(jù)分散存儲于云端等特性使得用戶失去了對數(shù)據(jù)的監(jiān)控能力,用戶很難信任云存儲服務(wù)是安全的。從用戶對數(shù)據(jù)保護(hù)的需求上去研究云存儲系統(tǒng)是否安全是很有必要的。
云存儲將大量的存儲設(shè)備整合為一個(gè)整體性的存儲資源池,基于分布式文件系統(tǒng),為用戶或企業(yè)提供存儲服務(wù)。
分布式文件系統(tǒng)有三部分組成:塊數(shù)據(jù)服務(wù)器(Chunk Data Server,CDS)、元數(shù)據(jù)服務(wù)器(Meta Data Server,MDS)、客戶端(Client)。塊數(shù)據(jù)服務(wù)器負(fù)責(zé)存儲文件塊。元數(shù)據(jù)服務(wù)器負(fù)責(zé)分配并記錄每個(gè)文件的各個(gè)文件塊存儲位置??蛻舳舜鎯ξ募r(shí),將文件分塊,然后傳輸?shù)皆獢?shù)據(jù)服務(wù)器指定的塊服務(wù)器上,由塊服務(wù)器寫到存儲位置上;客戶端讀取文件時(shí),從元數(shù)據(jù)服務(wù)器上查詢文件塊的位置信息,然后到所查到的塊數(shù)據(jù)服務(wù)器上讀取數(shù)據(jù)塊。
1.1 云存儲系統(tǒng)中的數(shù)據(jù)特性
客戶端和元數(shù)據(jù)服務(wù)器之間傳輸?shù)氖窃獢?shù)據(jù),客戶端和塊數(shù)據(jù)服務(wù)器之間傳輸?shù)氖俏募K數(shù)據(jù)[2]。元數(shù)據(jù)一般是文件塊存儲位置等信息,數(shù)據(jù)量小、離散性強(qiáng)、突發(fā)性強(qiáng),而文件塊數(shù)據(jù)是用戶文件所分割的數(shù)據(jù)塊,數(shù)據(jù)量大、離散性不強(qiáng)、突發(fā)性不強(qiáng)。
1.2 安全云存儲系統(tǒng)
用戶對使用云存儲系統(tǒng)來存儲數(shù)據(jù)的主要顧慮在于:用戶數(shù)據(jù)上傳到云端后的數(shù)據(jù)隱私安全問題。對云端用戶數(shù)據(jù)私密安全的威脅來自兩個(gè)方面:一是用戶擔(dān)心隱私數(shù)據(jù)被云端的管理員竊取,二是用戶擔(dān)心私密數(shù)據(jù)被其他租戶惡意竊取。
安全云存儲系統(tǒng)自底向上可分為數(shù)據(jù)存儲層、基礎(chǔ)管理層、應(yīng)用接口層和用戶訪問層,其結(jié)構(gòu)如圖1所示。
圖1 安全云存儲系統(tǒng)層次框架圖
在安全云存儲系統(tǒng)的層次框架圖中,數(shù)據(jù)在用戶訪問層進(jìn)行加密,數(shù)據(jù)密文通過公有應(yīng)用接口層上傳,云存儲服務(wù)器在基礎(chǔ)管理層對密文數(shù)據(jù)進(jìn)行分塊、索引,以便支持?jǐn)?shù)據(jù)密文搜索等功能[1]。最后,基礎(chǔ)管理層將密文數(shù)據(jù)、元數(shù)據(jù)等保存到數(shù)據(jù)存儲層。數(shù)據(jù)存儲層對數(shù)據(jù)進(jìn)行壓縮、刪冗處理,以提高存儲效率。
目前,客戶端Client、服務(wù)器Server和云存儲服務(wù)提供商CSP是安全云存儲系統(tǒng)主要組件部分。Client對應(yīng)用戶訪問層,Sever對應(yīng)基礎(chǔ)管理層和應(yīng)用接口層,CSP對應(yīng)數(shù)據(jù)存儲層。Client通過API與Server完成數(shù)據(jù)的上傳與下載,Server通過高速的可信網(wǎng)絡(luò)與Cloud傳輸數(shù)據(jù)。Server是半信任的,可誠實(shí)地執(zhí)行數(shù)據(jù)存儲,同時(shí)又對數(shù)據(jù)的內(nèi)容是好奇的,企圖獲取數(shù)據(jù)的明文。服務(wù)器記錄數(shù)據(jù)的相關(guān)信息,為用戶提供密文搜索等功能。
安全網(wǎng)絡(luò)存儲系統(tǒng)有Plutus、SANDS、Corslet、Cryptographic Cloud Storage等。在Plutus系統(tǒng)中,數(shù)據(jù)以密文形式存儲。數(shù)據(jù)擁有者Owner負(fù)責(zé)密鑰分發(fā)與管理,為防止密鑰生成與分發(fā)負(fù)載過重,采用文件分組,相同共享用戶群使用相同的密鑰。在共享過程中為用戶數(shù)據(jù)與元數(shù)據(jù)提供網(wǎng)絡(luò)完整性,server負(fù)責(zé)驗(yàn)證用戶是否具有寫權(quán)限。SANDS系統(tǒng)的核心技術(shù)是IBM的SAN,是主要針對異構(gòu)客戶端訪問共享數(shù)據(jù)的文件系統(tǒng)。將文件元數(shù)據(jù)從文件原始數(shù)據(jù)隔離出來,元數(shù)據(jù)由元數(shù)據(jù)服務(wù)器提供給客戶,客戶使用元數(shù)據(jù)信息獲知數(shù)據(jù)的存儲物理位置,直接訪問SAN。SANDS中,文件名空間是一個(gè)全局命名空間,使用分布式鎖機(jī)制和租賃機(jī)制來維護(hù)數(shù)據(jù)的一致性和完整性。Corslet系統(tǒng)可以在不修改現(xiàn)有文件系統(tǒng)的情況下,保證數(shù)據(jù)的機(jī)密性和完整性。Corslet引入可信第三方服務(wù)器,去除了用戶對底層存儲系統(tǒng)的依賴性,Corslet系統(tǒng)對讀寫的訪問權(quán)限控制進(jìn)行了區(qū)分。Microsoft的Cryptographic Cloud Storage系統(tǒng)由3個(gè)部分組成:數(shù)據(jù)處理(Data Processor,DP)、數(shù)據(jù)驗(yàn)證(Data Verifier,DV)和令牌環(huán)生成(Token Generator,TG)。DP負(fù)責(zé)數(shù)據(jù)發(fā)送到云端之前的數(shù)據(jù)處理,一般用加密方法保護(hù)數(shù)據(jù)的機(jī)密性。DV負(fù)責(zé)檢查云端存儲得數(shù)據(jù)是否被篡改,用審計(jì)方法保護(hù)數(shù)據(jù)的持有性。TG負(fù)責(zé)生成令牌環(huán),以便檢索用戶的數(shù)據(jù),提供細(xì)粒度的訪問控制功能。
關(guān)于云存儲的加密與解密,仍有一些問題需要解決:文件的某一部分?jǐn)?shù)據(jù)的修改之后,為保證副本一致性,遠(yuǎn)程設(shè)備是重新在本地解密、加密(消耗了計(jì)算資源),還是通過通信網(wǎng)絡(luò)傳輸已修改的加密文件(消耗了通信資源)?云端某節(jié)點(diǎn)失效或者被俘虜時(shí),其他節(jié)點(diǎn)會因此做哪些工作?會不會導(dǎo)致其他節(jié)點(diǎn)進(jìn)行數(shù)據(jù)重加密?
上述3個(gè)問題是相關(guān)的,關(guān)鍵在于云端的容錯管理是如何實(shí)現(xiàn)的。如果是采用副本方式進(jìn)行容錯,那么檢測到某部分?jǐn)?shù)據(jù)被損壞時(shí),可以直接由其他節(jié)點(diǎn)上的數(shù)據(jù)去替代被篡改的數(shù)據(jù),不需要加解密操作,只是單純地復(fù)制數(shù)據(jù)。至于失效節(jié)點(diǎn)的處理,還是看云端的處理方式,在傳統(tǒng)的容錯處理領(lǐng)域,方式應(yīng)該很多。比如拜占庭錯誤的處理,存活節(jié)點(diǎn)通過投票踢出失效節(jié)點(diǎn),選擇一個(gè)新的節(jié)點(diǎn),將數(shù)據(jù)復(fù)制過去等。
密鑰技術(shù)包括密鑰如何生成、密鑰如何分發(fā)以及密鑰怎樣管理。
2.1 密鑰生成
密鑰生成的主要問題是維護(hù)盡可能少量的密鑰、自適應(yīng)密鑰的動態(tài)更新。云存儲系統(tǒng)中,數(shù)據(jù)有多個(gè)副本,且加密存儲,同一文件的多個(gè)副本加密算法一般相同,所用密鑰可以相同,可以不同,不同密鑰可以采用“副本號||明文的hash值”。
目前,安全云存儲系統(tǒng)的密鑰生成機(jī)制主要有3種:
(1)隨機(jī)生成密鑰(Randomly Key Generation)。這種方法私密性好,可擴(kuò)展性好,速度也快是生成密鑰最直接的方法。但因,密鑰用途單一,不能用作簽名等其他用途。這種方法生成的數(shù)據(jù)密文隨機(jī)性較強(qiáng),在后期作重復(fù)數(shù)據(jù)刪除操作時(shí)也不高效。Plutus系統(tǒng)中,對稱密鑰的產(chǎn)生方法就用了隨機(jī)生成密鑰的方法。
(2)數(shù)據(jù)收斂加密(Convergent Encryption)。使用明文數(shù)據(jù)的屬性生成密鑰,對數(shù)據(jù)進(jìn)行加密,使得相同明文數(shù)據(jù)經(jīng)過加密后,生成的密文也相同。Corslet系統(tǒng)根據(jù)收斂加密,提出了數(shù)據(jù)白加密(密鑰用文件塊的散列值和偏移量,加密文件塊數(shù)據(jù)內(nèi)容)。數(shù)據(jù)白加密的過程如圖2所示。
圖2 數(shù)據(jù)白加密過程圖
數(shù)據(jù)收斂加密的好處在于:①因?yàn)槊荑€的生成方式與數(shù)據(jù)的散列值是相關(guān)的,所以密鑰將來可以做數(shù)據(jù)完整性驗(yàn)證;②因?yàn)樾薷臄?shù)據(jù)的時(shí)候,密鑰也需要修改,所以適合懶惰權(quán)限撤銷(Lazy Revocation)。懶惰權(quán)限撤銷與立即撤銷(Immediately Revocation)相對應(yīng),都是安全云存儲系統(tǒng)中的撤銷方法。懶惰撤銷指的是,用戶的訪問權(quán)限如果要被撤銷,系統(tǒng)不立即修改密鑰對數(shù)據(jù)重加密,而是推后一段時(shí)間,等到某個(gè)特定的事件發(fā)生或者某個(gè)時(shí)刻到來時(shí),才對數(shù)據(jù)重加密。這里使用白加密技術(shù)后,系統(tǒng)在某個(gè)用戶的訪問權(quán)限被撤銷時(shí),只需刪除此用戶在訪問控制信息中的相關(guān)信息,等下次寫操作時(shí),再對數(shù)據(jù)重加密;③因?yàn)橄嗤瑑?nèi)容的文件在數(shù)據(jù)收斂加密后,密文的內(nèi)容也相同,所以適合密文數(shù)據(jù)操作,比如重復(fù)數(shù)據(jù)刪除、密文檢索等[1]。
(3)通過特殊計(jì)算生成。Vanish系統(tǒng)提出了(n,m)門限機(jī)制的密鑰生成方法。具體地,密鑰分成m份,用戶只需要取得其中n份就能夠解密文件。這種方法提供了可信刪除機(jī)制。但是這種通過特殊計(jì)算生成的密鑰,往往只是突出了某個(gè)特定的功能,通用性不會很強(qiáng)。
上述密鑰均針對數(shù)據(jù)加密而生成,文獻(xiàn)[22]針對密鑰加密提出了盲加密協(xié)議的實(shí)施方案(IND-CCA2-secure),該方案中,用戶與密鑰持有者之間通過密文交互,如此,用戶獲得密文解密,而密鑰持有者學(xué)習(xí)不到密鑰所加密的密文。
2.2 密鑰分發(fā)
安全云存儲系統(tǒng)的密鑰分發(fā)有3種方式:
(1)由客戶端分發(fā)。Owner是數(shù)據(jù)的擁有者,Owner為其他用戶分發(fā)密鑰。這種分發(fā)方式下,服務(wù)器無論如何都接觸不到任何形式的密鑰,所以安全程度很高[1]。但這種方法有兩個(gè)弊端:①Owner得一直在線,否則,其他用戶會因?yàn)樯暾埐坏矫荑€,而無法進(jìn)行數(shù)據(jù)訪問。②Owner來分發(fā)密鑰,會給Owner帶來很大負(fù)載和瓶頸。
(2)由云存儲分發(fā)。密鑰在Owner上加密后,上傳存放在云存儲。用戶訪問數(shù)據(jù)時(shí),從云存儲下載數(shù)據(jù)密文、加密后的密鑰,然后解密出密鑰明文,接著再解密出數(shù)據(jù)明文。這種密鑰分發(fā)的方法缺陷:這里只是將密鑰的訪問移交給云存儲了,密鑰的生成仍然由Owner負(fù)責(zé),不適合大量復(fù)雜數(shù)據(jù)的情形。這種方式的優(yōu)點(diǎn)是Owner可以離線,用戶申請密鑰是訪問云存儲而得的,不會在Owner處造成通信瓶頸。目前,SpiderOak等系統(tǒng)都是采用這種方式進(jìn)行密鑰分發(fā)。
(3)通過第三方機(jī)構(gòu)進(jìn)行分發(fā)。密鑰分發(fā)除了通過客戶端和云存儲進(jìn)行之外,還可以通過第三方(獨(dú)立于客戶端和服務(wù)器)進(jìn)行。FADE系統(tǒng)和Corslet系統(tǒng)使用一個(gè)可信的第三方服務(wù)器,用來集中管理分發(fā)密鑰;Vanish系統(tǒng)通過DHT網(wǎng)絡(luò)進(jìn)行密鑰分發(fā)。通過第三方機(jī)構(gòu)的密鑰分發(fā)方式結(jié)合以上兩種方式的優(yōu)點(diǎn),但對應(yīng)用場景的依賴較強(qiáng),因此大都出現(xiàn)在某些特定的應(yīng)用中[1]。
2.3 密鑰管理
目前的安全云存儲系統(tǒng)大都采用分層密鑰管理方式,其基本思想是用金字塔的形式排列好所有的密鑰,出于金字塔上層的密鑰用來加密或解密下層的密鑰[1]。這種層次密鑰管理方式下,用戶只需要保證金字塔最上層密鑰的安全,金字塔其他層的密鑰都可以在不可信的環(huán)境中存儲,在不可信的信道中分發(fā)。因此,分層密鑰管理方式很大地提高了用戶管理密鑰的方便性,同時(shí)安全性又沒有損失。
安全云存儲系統(tǒng)大都將分層密鑰管理的層數(shù)定為2層或3層,一般可將管理層次看作兩層(最上層和其他層)。為安全性和高效性,一般地,最上層的密鑰體系都使用PKI體系中的公私鑰算法,或采用可信第三方進(jìn)行密鑰生成和分發(fā),其他層的密鑰可以直接存放在不可信的云存儲系統(tǒng)中,合法用戶在需要時(shí),從云存儲中下載后,用最上層密鑰層層解密即可得到所有分層的密鑰。
分層密鑰管理使云存儲系統(tǒng)可以高效地安全地組織所有的密鑰。在保證數(shù)據(jù)私密性和完整性的同時(shí),大量減少了用戶在密鑰管理方面的存儲開銷[1],但需要花費(fèi)一些計(jì)算代價(jià),用來計(jì)算其他各層的密鑰,即用時(shí)間換取了空間和便宜性。
云存儲系統(tǒng)數(shù)據(jù)安全是云存儲領(lǐng)域中的一個(gè)重要研究方向,Hsiao-YingLin等人在2012年6月的TPDS上發(fā)表題為《Asecureerasurecode-basedcloudstoragesystemwithsecuredataforwarding》的論文中將分散消除編碼(decentralizederasurecode)集成到門限代理重加密方案中,實(shí)現(xiàn)了對加密消息的直接轉(zhuǎn)發(fā),使用文中所提方案,消息擁有者轉(zhuǎn)發(fā)消息給其他用戶時(shí),不需要經(jīng)歷從云存儲服務(wù)器取回?cái)?shù)據(jù)、解碼、解密等階段。YanZhu等人在TPDS上尚未發(fā)表但已錄用的題為《Cooperative provable data possession for integrity verification in multi-cloud storage》的論文中,基于同態(tài)可驗(yàn)證響應(yīng)(homomorphic verifiable response)和hash索引層次結(jié)構(gòu)提出了協(xié)作可證明的數(shù)據(jù)持有(Cooperative Provable data Possession,CPDP),以對抗對數(shù)據(jù)泄漏攻擊和標(biāo)記偽造攻擊,論文在多證人零知識證明系統(tǒng)(multi-prover zero-knowledge proof system)上證明了CPDP的安全性。不難預(yù)見,未來云存儲系統(tǒng)的安全研究方向集中在基于密文的搜索、重復(fù)數(shù)據(jù)刪除、數(shù)據(jù)持有性證明等方面。
[1]傅穎勛,羅圣美,舒繼武.安全云存儲系統(tǒng)與關(guān)鍵技術(shù)綜述[J].計(jì)算機(jī)研究與發(fā)展,2013,50(1):136.
[2]曾令仿.基于對象的網(wǎng)絡(luò)存儲智能處理方法研究[M].武漢:華中科技大學(xué),2006.77.
(責(zé)任編輯胡安娜)
2014-9-12
魏東平,870928273@qq.com。
TP 393
A
1674-9545(2014)04-0044-(04)