云端靜態(tài)數(shù)據(jù)加密存儲方案

原有的云存儲模式所存在的問題已經(jīng)困擾行業(yè)多年,在靜態(tài)數(shù)據(jù)加密存儲的過程中,只有實現(xiàn)真正意義上的數(shù)據(jù)私有化才能保證數(shù)據(jù)的安全,保障數(shù)據(jù)擁有者的利益。針對云存儲應(yīng)用中用戶數(shù)據(jù)安全存儲需求的提高,以Amazon S3(simple storage service)為例分析當前云存儲模式下靜態(tài)數(shù)據(jù)安全存在的普遍問題,我們設(shè)計了一套新的云端靜態(tài)數(shù)據(jù)加密存儲方案——分離密鑰存儲服務(wù)(separated key S3)解決方案。

一、云存儲應(yīng)用中的加密技術(shù)

云存儲應(yīng)用中的存儲安全包括認證服務(wù)、數(shù)據(jù)加密存儲、安全管理、安全日志和審計。對用戶來說,在上述4類存儲安全服務(wù)中,存儲加密服務(wù)尤為重要。加密存儲是保證客戶私有數(shù)據(jù)在共享存儲平臺的核心技術(shù),是對指定的目錄和文件進行加密后存儲,實現(xiàn)敏感數(shù)據(jù)存儲和傳送過程中的機密性保護。根據(jù)形態(tài)和應(yīng)用特點的差異,云存儲系統(tǒng)中的數(shù)據(jù)被分為兩類:動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)。動態(tài)數(shù)據(jù)是指在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù),而靜態(tài)數(shù)據(jù)主要是指存儲在磁盤、磁帶等存儲介質(zhì)中的數(shù)據(jù)。

1、云數(shù)據(jù)加密模式

(1)靜態(tài)數(shù)據(jù)加密

對于那些在云中存儲備份自己長期數(shù)據(jù)的客戶,他們可以將自己的數(shù)據(jù)加密,然后發(fā)送密文到云存儲提供商(cloud storage provider,CSP)。目前,大多數(shù)該類解決方案基于用戶的數(shù)字證書進行認證和加密。用戶使用數(shù)字證書向云管理系統(tǒng)進行身份認證,并使用對稱密鑰在本地加密云中存儲的數(shù)據(jù),同時使用證書公鑰加密對稱密鑰,然后將加密后的數(shù)據(jù)傳到云中進行存儲。這些客戶控制并保存密鑰,當客戶要獲取數(shù)據(jù)時,先將云中密文下載到本地,再由客戶自行解密該數(shù)據(jù)。

該模式的優(yōu)點是:只有客戶可以解密云中的存儲數(shù)據(jù),可以有效地保證數(shù)據(jù)的私密性。缺點是:客戶端需要較強的密碼運算能力來實現(xiàn)加密功能,同時用戶數(shù)據(jù)的加密密鑰必須保管安全,一旦丟失,將無法恢復數(shù)據(jù),且該模式只適用于客戶自己生成的靜態(tài)數(shù)據(jù)加密,對于在IaaS、PaaS、SaaS下在云中產(chǎn)生的動態(tài)數(shù)據(jù)無法使用該模式進行加密。

(2)動態(tài)數(shù)據(jù)加密

對于在云計算環(huán)境中產(chǎn)生的動態(tài)數(shù)據(jù),只能由云計算管理系統(tǒng)進行加密,雖然CSP的網(wǎng)絡(luò)比開放網(wǎng)絡(luò)安全。在多租戶的云計算應(yīng)用模式下,客戶租用云計算系統(tǒng)的計算能力,虛擬化技術(shù)使得一個客戶的應(yīng)用以不同層次與其他客戶的應(yīng)用共享物理資源,因此客戶在云計算環(huán)境中產(chǎn)生的數(shù)據(jù)不可避免地交由云計算環(huán)境進行加密。

該模式的優(yōu)點是:客戶不需要為不同的云應(yīng)用保管各種不同的密鑰,而是交由云計算環(huán)境統(tǒng)一管理,具有更高計算服務(wù)提供商,同時云計算管理系統(tǒng)需要提供一個統(tǒng)一、有效、可擴展的云計算密鑰管理框架,用于為各類客戶提供各種類型密鑰的統(tǒng)一管理,實現(xiàn)各種密鑰操作。

2、數(shù)據(jù)加密存儲技術(shù)研究現(xiàn)狀

目前云存儲加密的研究較多,有面向云存儲的安全存儲模型及存取策略,給有基于層次屬性加密實現(xiàn)的細粒度訪問控制的云存儲系統(tǒng),有基于加密策略增強云存儲的安全性,有云存儲密文策略屬性基加密方案,但此類所采用的方式均為上文所述的客戶加密數(shù)據(jù)模式,無法克服該方法本身所具有的缺點。據(jù)目前可檢索到的文獻分析,還沒有一種靜態(tài)數(shù)據(jù)加密方法既突破客戶加密數(shù)據(jù)上傳的傳統(tǒng)云存儲模式,又能較好地保證數(shù)據(jù)私有化實現(xiàn)靜態(tài)數(shù)據(jù)的安全。

靜態(tài)數(shù)據(jù)一直是通過公鑰基礎(chǔ)設(shè)施(PKI)技術(shù)保護。在IaaS環(huán)境中,使用多種提供商和第三方工具加密靜態(tài)數(shù)據(jù)很普遍。在PaaS環(huán)境中加密靜態(tài)數(shù)據(jù)一般會較復雜,需要提供商提供的或?qū)iT定制的設(shè)備。在SaaS環(huán)境中加密靜態(tài)數(shù)據(jù)是云用戶無法直接實施的,需要向他們的提供商請求。2011年8月來自微軟的安全研究員Kristin Lauter和同事為基于同態(tài)加密的加密技術(shù)研究出存儲原型,該技術(shù)的產(chǎn)生及在云端領(lǐng)域的應(yīng)用,將極大提升云端數(shù)據(jù)安全性,除了存放者本人外,他人無法破譯。初創(chuàng)安全公司Porticor在2012年3月推出了一個解決方案,專門解決云環(huán)境中靜態(tài)數(shù)據(jù)安全問題,該公司提供了一種加密解決方案,并聲稱云客戶是唯一知道主密鑰的人。

二、Amazon S3模式云存儲加密解決方案

保證云端靜態(tài)數(shù)據(jù)安全的最大挑戰(zhàn)在于密鑰管理。網(wǎng)絡(luò)安全傳輸過程中加密數(shù)據(jù)的存在往往只有幾毫秒到幾秒的時間,但是存儲系統(tǒng)中的加密數(shù)據(jù)需要保存的時間可以到幾年甚至上百年,如果加密系統(tǒng)的實現(xiàn)方式不當或加密算法的強度不夠,會導致攻擊者有充裕的時間用于嘗試 不同的攻擊手段,極大增加存儲系統(tǒng)的風險。下面就以主 流云存儲服務(wù)Amazon S3 (simple storage service,簡單存儲服務(wù))模式為例進行分析。

1、Amazon S3云存儲服務(wù)的數(shù)據(jù)加密及密鑰管理方案

Amazon公司是最早推出云存儲服務(wù)的企業(yè),也是最成功的企業(yè)。為了利用閑置的硬件資源,Amazon公司從2006年開始對外出租云存儲服務(wù),即S3,該服務(wù)是Arnazon網(wǎng)絡(luò)服務(wù)(Amazon web service,AWS)的一部分o Amazon網(wǎng)絡(luò)服務(wù)由4個部分組成:簡單排列服務(wù)(simple queuing service)、簡單存儲服 務(wù)(simple storage service)、彈性計算云(elasticcompute cloud,EC2)和簡單數(shù)據(jù)庫(simple DB)。由于存儲費用低廉、服務(wù)穩(wěn)定,S3獲得了大量客戶的青睞。此外,Amazon還推出了彈性塊存儲(elastic block storage,EBS)技術(shù),支持數(shù)據(jù)的持續(xù)性存儲。其中S3和EC2標志著云計算發(fā)展進入新階段。

圖1是S3的工作原理示意。如圖1所示,S3服務(wù)數(shù)據(jù)存儲方案如下:

云端靜態(tài)數(shù)據(jù)加密存儲方案

(1)客戶首次登錄云服務(wù)器后上傳加解密主密鑰master S3 key,S3密鑰管理服務(wù)將其保存在服務(wù)器上,其 中主密鑰保存的形式可能是明文也可能是密文。加密函數(shù)為E,主密鑰記為K。

(2)數(shù)據(jù)加密時,S3密鑰管理服務(wù)依據(jù)自身密鑰生成算法產(chǎn)生加密配對密鑰孟,由云服務(wù)器對客戶上傳的需要加密存儲數(shù)據(jù)M進行加密并存儲到云存儲服務(wù)器上,數(shù)學表達式為:

云端靜態(tài)數(shù)據(jù)加密存儲方案

(3)S3密鑰管理服務(wù)用客戶主密鑰依據(jù)加密算法對配對密鑰k進行加密并存儲到云服務(wù)器上,數(shù)學表達式為:

云端靜態(tài)數(shù)據(jù)加密存儲方案

(4)數(shù)據(jù)解密時按照加密逆序過程進行,解密函數(shù)D作用于Ck、0產(chǎn)生解密密鑰k與數(shù)據(jù)M,數(shù)學表達式為:

云端靜態(tài)數(shù)據(jù)加密存儲方案

事實上,幾大主流云存儲服務(wù)商所使用的數(shù)據(jù)加密技術(shù)大同小異,唯一的差別是當使用Amazon S3服務(wù)器端加密功能時,密鑰在Amazon手上,而使用Dropbox時,密鑰在Dropbox手上。這兩種方式實質(zhì)上都一樣,雖然客戶上傳的信息在供應(yīng)商的服務(wù)器上都是保持加密的,但真正的信息擁有者客戶卻無法控制這些加密密鑰。

2、Amazon S3云存儲服務(wù)的安全問題

事實上,S3靜態(tài)數(shù)據(jù)加密服務(wù)并不像看起來那么完美、安全,其中一個重大的限制是,這個解決方案沒有提供外部密鑰管理的功能,主密鑰跟S3認證相連結(jié),云端默認登錄賬戶即合法賬戶,如果云端賬戶認證被入侵,黑客就可以輕而易舉地竊取客戶存儲在云服務(wù)端的一切數(shù)據(jù)。要黑掉一個云端賬號并不用很高深的技術(shù)和太高的成本,合理地運用社會工程學及一些簡單木馬病毒就可以很容易地獲取云端賬號及密碼。

另一方面不能保證對CSP的絕對信任,客戶的所有數(shù)據(jù)都被Amazon掌控著,包括密鑰,客戶所謂的安全只能寄希望于服務(wù)端的絕對安全與服務(wù)商及管理人員的絕對良知,顯然事實并非如此,特權(quán)管理人員的存在始終是無法逾越的安全隱患。事實上,云存儲的幾個重要服務(wù)商如亞馬遜、谷歌等都曾出現(xiàn)過各種安全問題,并導致了嚴重的后果。因此,尋找一種對于客戶來說安全可靠的靜態(tài)數(shù)據(jù)加密解決方案顯得尤為重要。傳統(tǒng)的云加密解決方案將用戶加密密鑰交付給了云服務(wù)商,增加了泄露密鑰的可能性,要解決靜態(tài)數(shù)據(jù)的安全問題,必須使加密密鑰受用戶控制,不存儲在云中,不暴露在風險中。

三、分離密鑰云存儲加密解決方案

從上面的分析中發(fā)現(xiàn),終端數(shù)據(jù)安全的壓力主要集中在兩個方面:一是Amazon S3認證的安全問題,二是主密鑰的安全問題。針對以上問題,本文設(shè)計了一套新的密鑰管理方法分離密鑰存儲服務(wù)(separated key S3),試圖解決上述兩個問題。分離密鑰存儲服務(wù)的核心是虛擬密鑰管理(virtual key management,VKM)服務(wù)。

1、虛擬密鑰管理服務(wù)框架

在風險管理方面,為了達到數(shù)據(jù)的安全,虛擬密鑰管理服務(wù)部署在云端服務(wù)器和存儲服務(wù)器之間,以確保云端服務(wù)器和存儲服務(wù)器間的每字節(jié)數(shù)據(jù)都被加密了,并且從存儲服務(wù)器移動到云服務(wù)器的每字節(jié)數(shù)據(jù)都只能通過客戶來解密。虛擬密鑰管理服務(wù)使用VPD(virtual private data)應(yīng)用程序,VPD是使用加密算法(如AES-256)解密任何磁盤或存儲陣列的虛擬設(shè)備。在數(shù)據(jù)進行存儲和讀取操作時,VPD負責檢索服務(wù)器配對密鑰以及請求客戶密鑰,完成存儲數(shù)據(jù)的加解密。圖2是其服務(wù)框架示意,為簡化敘述以下只介紹虛擬密鑰管理服務(wù)實現(xiàn)數(shù)據(jù)加密的流程。

云端靜態(tài)數(shù)據(jù)加密存儲方案

(1)客戶向云服務(wù)器遞交數(shù)據(jù)加解密申請。

(2)云服務(wù)器驗證客戶的加密申請后向虛擬密鑰管理服務(wù)器發(fā)出數(shù)據(jù)加密指令。

(3)虛擬密鑰管理服務(wù)器在處理加密的過程中需要向客戶請求主密鑰。

(4)客戶通過對密鑰請求的驗證后返回主密鑰,并將需加密的數(shù)據(jù)傳輸給虛擬密鑰管理服務(wù)器。

(5)虛擬密鑰管理服務(wù)器依據(jù)主密鑰產(chǎn)生數(shù)據(jù)加密密鑰對客戶數(shù)據(jù)進行加密并配對分配存儲到對應(yīng)的云存儲服務(wù)器上,在此過程中主密鑰和最終用于數(shù)據(jù)加密的密鑰并不會以任何方式存放在服務(wù)器上,這是保證數(shù)據(jù)安全的關(guān)鍵。

(6)數(shù)據(jù)加密存儲完成后云存儲服務(wù)器向虛擬密鑰服務(wù)器返回驗證信息。

(7)虛擬密鑰管理服務(wù)器向云服務(wù)器返回驗證信息。

(8)云服務(wù)器向客戶返回驗證信息。

圖2中(3)、(4)這兩個環(huán)節(jié)是數(shù)據(jù)加解密的關(guān)鍵步驟,客戶參與了每一次數(shù)據(jù)加解密的過程并起到了決定性作用,只有當客戶持有主密鑰來參與才能完成上述加解密過程,也就是說,當客戶的數(shù)據(jù)完成加密存儲之后,如需解密就必須提供主密鑰,否則,數(shù)據(jù)就不能被解密,于是客戶成為唯一可以解密數(shù)據(jù)的人,實現(xiàn)了將數(shù)據(jù)存儲到云端而又保證數(shù)據(jù)的完全私有化。

2、分離密鑰存儲服務(wù)存儲加密解決方案

該方法主要受到銀行保險箱模式的啟發(fā),依據(jù)保險箱模式設(shè)置兩個密鑰,一個交給客戶保管,將它稱為主密鑰K,另一個交給VKM服務(wù),由VKM依據(jù)客戶數(shù)據(jù)及生成規(guī)則產(chǎn)生服務(wù)器配對密鑰忌。在數(shù)據(jù)進行加密之前,虛擬密鑰管理服務(wù)請求客戶主密鑰根據(jù)主密鑰K與服務(wù)器配對密鑰孟依據(jù)本文所采用的安全算法B,產(chǎn)生新的數(shù)據(jù)加密密鑰K’對存儲數(shù)據(jù)進行加密存儲,其數(shù)學式表達為:

云端靜態(tài)數(shù)據(jù)加密存儲方案

正如銀行保險箱一樣,客戶如果不提供服務(wù)商提供的服務(wù)器配對密鑰,就無法解密數(shù)據(jù),同樣,如果服務(wù)商不提供客戶持有的主密鑰,也無法解密數(shù)據(jù)。其密鑰關(guān)系如圖3所示。

云端靜態(tài)數(shù)據(jù)加密存儲方案

除了將密鑰分別交由客戶和虛擬密鑰管理服務(wù)保管外,為了解決服務(wù)器配對密鑰尼的安全問題,將服務(wù)器配對密鑰通過客戶的主密鑰來加密,而主密鑰只有客戶本人保管,其數(shù)學式表達為:

云端靜態(tài)數(shù)據(jù)加密存儲方案

因此,雖然上文所提到的特權(quán)管理人員可以通過入侵服務(wù)器持有配對密鑰尼的存儲密文Ck,但卻不能讀取密鑰,因為它已經(jīng)被加密了,并且他所能入侵的程度僅限于此,因為遺留在服務(wù)器上的存儲控制信息只有這么多,在不知道客戶主密鑰K以及配對密鑰七’的情況下,特權(quán)管理人員無法獲取最終的數(shù)據(jù)加密密鑰K’,依據(jù)AES算法的安全性,入侵客戶數(shù)據(jù)的企圖無法得逞。服務(wù)商尚不能破解客戶存儲在云端的數(shù)據(jù),那么黑客就更無能為力了,就算黑客侵入云端服務(wù)器,他 所能竊取的也只是一堆毫無用處的密文,存儲在云端的數(shù)據(jù)M就不會被泄露,數(shù)據(jù)實現(xiàn)了真正意義上的私有化,達到了數(shù)據(jù)安全的條件。此外,通過使用客戶的主密鑰來加密服務(wù)器配對密鑰,完全緩解了終端數(shù)據(jù)保護的壓力。其工作原理如圖4所示。

云端靜態(tài)數(shù)據(jù)加密存儲方案

從上面的分析和對比中很容易就可以發(fā)現(xiàn)分離密鑰加密存儲方案的巨大優(yōu)勢,在該套方案中,云端認證和客戶數(shù)據(jù)加解密分離,在數(shù)據(jù)加密過程中將密鑰實現(xiàn)了分離,這樣一來主密鑰成為了保證數(shù)據(jù)安全的唯一關(guān)鍵,而客戶成了世界上唯一知曉主密鑰的人,主密鑰可以被存放在只有客戶本人才知道的地方,實現(xiàn)了真正意義上的云端 靜態(tài)數(shù)據(jù)私有化。

四、數(shù)據(jù)安全性

通過圖2,可以分析出云環(huán)境中可能出現(xiàn)的兩種隱私攻擊。

·內(nèi)部攻擊:由于數(shù)據(jù)存放在服務(wù)商提供的存儲服務(wù)器上,內(nèi)部攻擊者可以訪問客戶的數(shù)據(jù)。

·外部攻擊:數(shù)據(jù)在傳遞的過程中,外部攻擊者可以通過竊聽等方式竊取數(shù)據(jù)或者通過攻擊服務(wù)器竊取資料。

本文討論的方案主要針對第一種攻擊。首先,破解加密數(shù)據(jù)的關(guān)鍵數(shù)據(jù)加密密鑰K’并沒有以任何方式存放在服務(wù)器上,當且僅當數(shù)據(jù)進行加解密操作時生成并使用,這是與傳統(tǒng)的云存儲方式相比最大的安全性改進;其次,假設(shè)攻擊者突破了服務(wù)器的安全防護措施,攻擊者最多只能竊取客戶存儲在存儲服務(wù)器上的數(shù)據(jù)密文CM和存儲在虛擬密鑰服務(wù)器上的服務(wù)器配對密鑰密文伉,依據(jù)分離密鑰加密算法,在不知道客戶主密鑰的情況下,攻擊者無法解密服務(wù)器配對密鑰后,也不能得到數(shù)據(jù)解密密鑰K’,即無法解密加密后的數(shù)據(jù)密文CM,客戶存儲在云端的私密數(shù)據(jù)不能被泄露,數(shù)據(jù)的安全性得到驗證。對于第二種攻擊,數(shù)據(jù)由靜態(tài)成為動態(tài),可使用安全的HTTPS加密傳輸協(xié)議保證私有數(shù)據(jù)和主密鑰在傳輸過程中的安全。

此外,該方案的特點是能在很短的時間內(nèi)創(chuàng)建一個安全的環(huán)境,可以將信任安全廠商或者云供應(yīng)商的需求直接忽略掉。

五、性能測試

筆者采用已在校園內(nèi)使用的Linkl系統(tǒng),Linkl是為學校內(nèi)用戶提供服務(wù)的海量數(shù)據(jù)存儲平臺,由客戶端和服務(wù)器端組成,安裝客戶端后可以與服務(wù)器端進行交互上傳和下載數(shù)據(jù)。分別在服務(wù)器端物理主機上部署模擬Amazon S3及分離密鑰存儲服務(wù),模擬實際Intemet環(huán)境下的云存儲服務(wù)。需要說明的是,為便于比較服務(wù)器參數(shù),這里將分離密鑰存儲服務(wù)直接部署到物理主機上,而沒有另外部署,這與設(shè)計方案略有出入。基于這種架構(gòu),進行了數(shù)據(jù)傳輸測試,測試環(huán)境:網(wǎng)絡(luò)壞境為100 Mbit/s以太網(wǎng);服務(wù)器端為一臺IBM System x3500 M4臺式機,CPU為Xeon E5 4核2.4 GHz,內(nèi)存8 GB,硬盤為SATA 300 GB(7 200轉(zhuǎn)),網(wǎng)卡為1 000 Mbit/s以太網(wǎng);客戶端為一臺華碩S400E3217CA,CPU為Intel酷睿3雙核1.8 GHz,內(nèi)存4GB,硬盤為SATA 500 GB(5 400轉(zhuǎn)),網(wǎng)卡為1 000 Mbit/s以太網(wǎng)卡。

筆者使用了一個1 GB的文件進行大文件傳輸測試,其中“Origin”代表現(xiàn)有的存儲環(huán)境,沒有加密功能狀態(tài)下的性能;“Amazon”代表部署了具有普通數(shù)據(jù)加密功能,并不能保證數(shù)據(jù)私密性模擬Amazon S3后的性能;“Separated”代表部署了可以保證數(shù)據(jù)的安全性和私密性的分離密鑰存儲服務(wù)后的性能。表1、圖5為測試結(jié)果。

云端靜態(tài)數(shù)據(jù)加密存儲方案

表1和圖5表現(xiàn)了服務(wù)器端在原始、加入Amazon S3和加入分離密鑰存儲服務(wù)這3種狀態(tài)下CPU占用率與下載速度之比,在3種狀態(tài)下,除回復主密鑰外客戶端并未有附加運行程序,所以CPU占用率和下載速度并沒有明顯變化。從表1和圖5中可以看到,在服務(wù)器端和原始的情況相比,Arnazon S3的部署引入了13倍多的性能損失,而分離密鑰存儲服務(wù)則引入了3倍多的性能損失。

從性能測試的情況來看,分離密鑰存儲服務(wù)引入的性能損失遠小于使用Amazon S3引入的性能損失,為了保護客戶數(shù)據(jù)的私密性,實現(xiàn)數(shù)據(jù)的私有化,這樣的損失對于應(yīng)用來說是可以接受的。

小知識之靜態(tài)數(shù)據(jù)

從程序員的角度看,靜態(tài)數(shù)據(jù)是,當我們的客戶 在查看數(shù)據(jù)的時候它已經(jīng)被生成好了,沒有和服務(wù)器數(shù)據(jù)庫進行交互的數(shù)據(jù),直接在客戶端創(chuàng)建完畢,這種我們叫做靜態(tài)數(shù)據(jù)。