隨著信息科技的現(xiàn)代化發(fā)展,人們對(duì)計(jì)算能力的要求也不斷提高,作為與計(jì)算密不可分的存儲(chǔ)技術(shù),也伴隨著計(jì)算模型的升級(jí),從最初的單機(jī)存儲(chǔ)、網(wǎng)絡(luò)存儲(chǔ)、分布式存儲(chǔ)發(fā)展到現(xiàn)在的云存儲(chǔ)。云存儲(chǔ)是在云計(jì)算概念上延伸發(fā)展出來的一個(gè)新概念,是實(shí)現(xiàn)云計(jì)算的系統(tǒng)架構(gòu)中重要組成部分之一。與云計(jì)算類似,云存儲(chǔ)是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量不同類型的存儲(chǔ)設(shè)備通過虛擬化軟件集合起來協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問功能,是對(duì)虛擬化存儲(chǔ)資源的管理和使用。
盡管很多研究機(jī)構(gòu)認(rèn)為云計(jì)算提供了可靠安全的數(shù)據(jù)存儲(chǔ)中心,但安全問題依然是云存儲(chǔ)中存在的主要問題之一。從用戶角度考慮,數(shù)據(jù)的保存都交給云存儲(chǔ)供應(yīng)商,因此數(shù)據(jù)的可用性及安全性也成為云存儲(chǔ)系統(tǒng)突出的問題。在2010年3月召開的云計(jì)算中國峰會(huì)(The cloud Computing China Congress-CCCC 2010)中指出,隨著云計(jì)算技術(shù)的逐步成熟,云安全問題將日益突出,云計(jì)算的數(shù)據(jù)安全正在成為人們關(guān)注的重要問題。
目前,在國內(nèi)外的研究中,對(duì)云存儲(chǔ)安全方面的研究還比較少。Bowers等提出了分布式加密系統(tǒng),Cachin等通過使用加密工具來解決數(shù)據(jù)完整性和一致性問題,研究數(shù)據(jù)可恢復(fù)機(jī)制,典型的包括Weatherspoon的Antiquity與Kotla的SafeSrore,Antiquity是OceanStore的最新改進(jìn)版本,它被設(shè)計(jì)用于文件系統(tǒng)和備份的應(yīng)用程序存儲(chǔ)服務(wù)系統(tǒng)。國內(nèi)清華大學(xué)、華中科技大學(xué)、國防科技大學(xué)等科研院校也開始在云存儲(chǔ)技術(shù)相關(guān)領(lǐng)域進(jìn)行基礎(chǔ)性研究工作。如何在復(fù)雜的網(wǎng)絡(luò)環(huán)境中保障數(shù)據(jù)發(fā)布及存儲(chǔ)服務(wù)中的隱私,實(shí)現(xiàn)云存儲(chǔ)對(duì)用戶數(shù)據(jù)的安全性與可信性,是目前亟需解決的問題。
1 云存儲(chǔ)系統(tǒng)安全威脅分析
1.1云存儲(chǔ)系統(tǒng)結(jié)構(gòu)
從實(shí)際應(yīng)用和服務(wù)的角度考慮,云存儲(chǔ)首先利用了網(wǎng)絡(luò),其次它可以按需分配,此外它的虛擬化主要用于存儲(chǔ)和數(shù)據(jù)管理。與傳統(tǒng)的存儲(chǔ)相比,云存儲(chǔ)不僅是一個(gè)硬件,而且是一個(gè)由網(wǎng)絡(luò)設(shè)備、存儲(chǔ)設(shè)備、服務(wù)器、應(yīng)用軟件、公用訪問接口、接入網(wǎng)和客戶端程序等多個(gè)部分組成的復(fù)雜系統(tǒng)。各部分以存儲(chǔ)設(shè)備為核心,通過應(yīng)用軟件來對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問服務(wù)。云存儲(chǔ)系統(tǒng)的體系結(jié)構(gòu)有以下4層,如圖1所示。
圖1 云存儲(chǔ)系統(tǒng)結(jié)構(gòu)
(1)存儲(chǔ)層是云存儲(chǔ)最基礎(chǔ)的部分,它由各種各樣的存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備組成。同時(shí),還有一個(gè)存儲(chǔ)管理系統(tǒng),負(fù)責(zé)對(duì)硬件設(shè)備的集中管理、狀態(tài)監(jiān)控以及維護(hù)升級(jí)等。
(2)基礎(chǔ)管理層是云存儲(chǔ)最為核心的部分,也是最復(fù)雜的部分?;A(chǔ)管理層大量采用了集群管理技術(shù)和分布式存儲(chǔ)系統(tǒng)的成熟方法,在實(shí)現(xiàn)良好的可擴(kuò)展性的同時(shí),也滿足了可用性及性能的需求,它還負(fù)責(zé)數(shù)據(jù)加密、備份及容災(zāi)等任務(wù)。
(3)應(yīng)用接口層是利用云存儲(chǔ)資源進(jìn)行應(yīng)用開發(fā)的關(guān)鍵部分。云存儲(chǔ)供應(yīng)商通過應(yīng)用接口層對(duì)客戶提供統(tǒng)一的協(xié)議和編程接口,以進(jìn)行應(yīng)用程序的開發(fā)。通常這種協(xié)議都是基于網(wǎng)絡(luò)的跨平臺(tái)協(xié)議。
(4)訪問層是基于云存儲(chǔ)開發(fā)的應(yīng)用程序的入口。任何一個(gè)授權(quán)用戶都可以通過標(biāo)準(zhǔn)的公用應(yīng)用接口來登錄云存儲(chǔ)系統(tǒng),共享云存儲(chǔ)所提供的服務(wù)。
1.2 云存儲(chǔ)系統(tǒng)安全分析
靈活性、易于使用的服務(wù)和易于共享基礎(chǔ)設(shè)施是云計(jì)算的優(yōu)勢(shì),然而數(shù)據(jù)通過互聯(lián)網(wǎng)在各層之間進(jìn)行傳輸并存儲(chǔ),用戶對(duì)于敏感數(shù)據(jù)存取時(shí),無法對(duì)風(fēng)險(xiǎn)進(jìn)行直接控制??梢哉f,云存儲(chǔ)自身的特點(diǎn)決定了它在現(xiàn)有的技術(shù)方面存在一些安全問題,具體表現(xiàn)如下。
(1)傳統(tǒng)的安全域劃分無效。由于云存儲(chǔ)中服務(wù)必須是可伸縮的,對(duì)外部來講并不是透明的,因此云存儲(chǔ)中無法清晰地定義安全邊界及保護(hù)設(shè)備,為具體保護(hù)措施的實(shí)施增加了一定的難度。
(2)云存儲(chǔ)是通過網(wǎng)絡(luò)來傳輸數(shù)據(jù)的,其中包括網(wǎng)絡(luò)中的惡意攻擊等造成的服務(wù)中斷、數(shù)據(jù)破壞、信息被竊取和篡改等,對(duì)實(shí)現(xiàn)數(shù)據(jù)的安全存儲(chǔ)造成一定的影響,數(shù)據(jù)的安全通信、訪問認(rèn)證與保密性也是有待解決的問題。
(3)數(shù)據(jù)存儲(chǔ)的安全性防護(hù)包括最終存儲(chǔ)數(shù)據(jù)的存放位置、數(shù)據(jù)完整性、數(shù)據(jù)間分散存放等。此外,即使數(shù)據(jù)采用加密技術(shù),也只是在網(wǎng)絡(luò)上加密傳輸,數(shù)據(jù)在處理和存儲(chǔ)時(shí)也需要保護(hù)。
(4)數(shù)據(jù)的可靠性、可用性。數(shù)據(jù)在存儲(chǔ)系統(tǒng)的容錯(cuò)性、可恢復(fù)性和完整性面臨一些問題,如何避免在災(zāi)難(停電、地震、水災(zāi)、火災(zāi)等)發(fā)生時(shí)帶來的服務(wù)中斷乃至數(shù)據(jù)介質(zhì)被直接破壞等問題。
(5)如何實(shí)現(xiàn)數(shù)據(jù)之間的邏輯卷管理、存儲(chǔ)虛擬化管理和多鏈路冗余管理將會(huì)是一個(gè)巨大的難題,也將是整個(gè)云存儲(chǔ)架構(gòu)的性能瓶頸,而且還會(huì)帶來后期容量和性能擴(kuò)展難等一系列問題。
由此可見,數(shù)據(jù)的安全性問題貫穿于整個(gè)云架構(gòu)的各個(gè)層次,單獨(dú)討論云存儲(chǔ)在某一層中的安全性是毫無意義的??傮w而言,對(duì)該方面的研究存在兩種思路:
①借鑒信息安全的C.I.A特性(機(jī)密性、完整性、可用性),為某一特定應(yīng)用提出專門的實(shí)現(xiàn)思路(如增強(qiáng)文件服務(wù)器的安全性、客戶端加密文件系統(tǒng)、對(duì)磁盤磁帶全盤靜態(tài)加密、客戶端直接訪問磁盤的認(rèn)證機(jī)制等),即將適用于信息安全的措施(如加密技術(shù)、完整性技術(shù))移植到存儲(chǔ)系統(tǒng)中;
②從存儲(chǔ)系統(tǒng)的體系結(jié)構(gòu)入手,尋找安全高效的網(wǎng)絡(luò)存儲(chǔ)與安全管理模式。為此,本文設(shè)計(jì)了一種面向分散式分片存儲(chǔ)管理來解決云存儲(chǔ)和應(yīng)用過程中的數(shù)據(jù)安全性問題。
[page]
2 云存儲(chǔ)安全架構(gòu)設(shè)計(jì)
根據(jù)云存儲(chǔ)中數(shù)據(jù)的安全性分析,從數(shù)據(jù)傳輸?shù)酱鎯?chǔ),都需要建立相應(yīng)的保護(hù)措施進(jìn)行層與層之間的防范。按照云存儲(chǔ)的層次結(jié)構(gòu),通過不同的保護(hù)策略逐層對(duì)需要存儲(chǔ)的數(shù)據(jù)進(jìn)行保護(hù),從而實(shí)現(xiàn)從數(shù)據(jù)傳輸?shù)酱鎯?chǔ)位置的全面防護(hù)。該安全架構(gòu)采用信息擴(kuò)散法、分散式存儲(chǔ)管理、數(shù)據(jù)自舉恢復(fù)等技術(shù),分層實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)在云存儲(chǔ)中完成應(yīng)用系統(tǒng)的數(shù)據(jù)安全存儲(chǔ)管理和傳輸,其系統(tǒng)總體安全框架結(jié)構(gòu)如圖2所示。
圖2 面向分散式存儲(chǔ)的云存儲(chǔ)安全架構(gòu)
2.1 訪問層到應(yīng)用接口層的設(shè)計(jì)
通過訪問控制與身份認(rèn)證,采用加密技術(shù)SSL對(duì)用戶存儲(chǔ)數(shù)據(jù)進(jìn)行保護(hù),使數(shù)據(jù)在網(wǎng)絡(luò)傳輸中得到較為安全的保障。用戶與云存儲(chǔ)服務(wù)器相互認(rèn)證,對(duì)雙方安全證書和身份進(jìn)行鑒別,成功后用戶代理通過安全API和云通信連接進(jìn)行數(shù)據(jù)存儲(chǔ)服務(wù)。
2.2 基礎(chǔ)管理層設(shè)計(jì)
通過信息擴(kuò)散法,數(shù)據(jù)分片后在網(wǎng)絡(luò)傳輸和數(shù)據(jù)存儲(chǔ)時(shí)具有相對(duì)的保密性和安全性。在云存儲(chǔ)的基礎(chǔ)管理層中利用IDA思想,通過分片器把存儲(chǔ)信息分片,使數(shù)據(jù)變成無法被其他非認(rèn)證系統(tǒng)所識(shí)別的數(shù)據(jù)片段。對(duì)于每一個(gè)單獨(dú)的數(shù)據(jù)片段來說,這些數(shù)據(jù)片段是不具有任何意義的,如果數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中被他人截獲,被植入的木馬病毒掃描獲取或在存儲(chǔ)設(shè)備上被意外竊取,由于截取方只是獲得信息的部分?jǐn)?shù)據(jù)片段,截取的信息并不具有任何實(shí)際含義,這樣就能夠保證數(shù)據(jù)分片后不會(huì)產(chǎn)生保密信息泄露或擴(kuò)散。此外,當(dāng)這些分片后的數(shù)據(jù)放入地理位置不同的存儲(chǔ)器中,即便被其他用戶誤操作提取時(shí),也能保證需要保護(hù)的信息不會(huì)被分析出來。數(shù)據(jù)的分散式存儲(chǔ)機(jī)制也使存儲(chǔ)系統(tǒng)具備一定的容錯(cuò)、容災(zāi)能力,提高了信息的可用性。
分片器根據(jù)IDA算法將數(shù)據(jù)分片后,云存儲(chǔ)服務(wù)器將每個(gè)分片數(shù)據(jù)用一個(gè)固定不變的64位句柄對(duì)其進(jìn)行標(biāo)識(shí),這些句柄也是唯一的,讀取數(shù)據(jù)時(shí)根據(jù)存儲(chǔ)服務(wù)器中虛擬視圖中句柄和字節(jié)范圍來進(jìn)行,在主服務(wù)器中建立一個(gè)數(shù)據(jù)列表,用來存儲(chǔ)系統(tǒng)中的元數(shù)據(jù),其中包括用戶存儲(chǔ)的文件名、對(duì)應(yīng)的句柄號(hào)和文件大小等信息。
數(shù)據(jù)的存儲(chǔ)無論在內(nèi)容上還是在存儲(chǔ)設(shè)備中都是分散的,當(dāng)用戶需要對(duì)云存儲(chǔ)中的數(shù)據(jù)進(jìn)行訪問或者操作時(shí),分散存儲(chǔ)管理器(DSM)需要把分散的數(shù)據(jù)整合起來,提供給用戶一個(gè)虛擬的視圖,這些分散數(shù)據(jù)對(duì)于用戶來說是透明的。用戶可以根據(jù)提供的視圖,對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行管理。此外,DSM還支持對(duì)元數(shù)據(jù)的管理,便于用戶對(duì)數(shù)據(jù)進(jìn)行創(chuàng)建、檢索和刪除等操作。
2.3 存儲(chǔ)層設(shè)計(jì)
在存儲(chǔ)層設(shè)計(jì)中,為了實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的安全策略,云存儲(chǔ)中需要滿足用戶存儲(chǔ)海量數(shù)據(jù)的需求,存儲(chǔ)系統(tǒng)規(guī)模及存儲(chǔ)容量都在不斷增長(zhǎng),與存儲(chǔ)相關(guān)的出錯(cuò)率將越來越高。為了確保云存儲(chǔ)安全系統(tǒng)中數(shù)據(jù)存儲(chǔ)的高可用性和可靠性,系統(tǒng)存儲(chǔ)層中的設(shè)備都必須異地存放,并且互為冗余,這樣能夠提高設(shè)備容錯(cuò)能力和存儲(chǔ)利用率。系統(tǒng)使用Reed -Solomon碼提供任意高錯(cuò)誤恢復(fù)技術(shù),保證系統(tǒng)在發(fā)現(xiàn)問題后能夠被迅速檢測(cè)到。如果設(shè)備上的數(shù)據(jù)損壞、丟失,存儲(chǔ)系統(tǒng)中自動(dòng)化檢測(cè)過程會(huì)發(fā)現(xiàn)這個(gè)問題,通過檢查可用片重新計(jì)算數(shù)據(jù)片中所有的數(shù)據(jù),根據(jù)其他存儲(chǔ)設(shè)備中完好的數(shù)據(jù)恢復(fù)被破壞的數(shù)據(jù)。通過這樣的數(shù)據(jù)自舉恢復(fù),提高了云存儲(chǔ)系統(tǒng)的平均無故障時(shí)間。
[page]
2.4 面向分散式存儲(chǔ)的云存儲(chǔ)數(shù)據(jù)存取過程
面向分散式存儲(chǔ)的云存儲(chǔ)用戶進(jìn)行數(shù)據(jù)存取的過程如圖3所示,當(dāng)用戶(個(gè)人或企業(yè))存取數(shù)據(jù)時(shí),在客戶端通過系統(tǒng)安全認(rèn)證后將信息進(jìn)行SSL加密,傳送到Internet中,通過云存儲(chǔ)服務(wù)器管理,用分片器將數(shù)據(jù)分片,然后再把數(shù)據(jù)片傳給分散在各地物理位置不同的存儲(chǔ)介質(zhì)中去;當(dāng)用戶讀取數(shù)據(jù)或者查詢數(shù)據(jù)時(shí),在云存儲(chǔ)服務(wù)器通過身份驗(yàn)證后,用戶通過分散存儲(chǔ)管理器提供的虛擬視圖,完成數(shù)據(jù)的檢索或者刪除等操作,此后分散存儲(chǔ)管理器再通過設(shè)備上的記錄表,對(duì)存儲(chǔ)層中的存儲(chǔ)設(shè)備進(jìn)行相應(yīng)的操作,最后將操作結(jié)果返回給用戶。
圖3 用戶DSM存取過程
DSM主要負(fù)責(zé)將數(shù)據(jù)轉(zhuǎn)發(fā)給分片器,記錄路徑并為用戶建立虛擬視圖,具體工作過程如下:
(1)接收用戶數(shù)據(jù)的DSM請(qǐng)求;
(2)轉(zhuǎn)發(fā)給分片器并記錄數(shù)據(jù)存取路徑,等待分片器返還數(shù)據(jù)狀態(tài)信息;
(3)創(chuàng)建用戶虛擬視圖表。
分片器根據(jù)IDA算法進(jìn)行數(shù)據(jù)分片,分片規(guī)則為每個(gè)數(shù)據(jù)片中包含的信息內(nèi)容不會(huì)被泄露,其具體工作過程如下:
(1)從分散存儲(chǔ)管理器中提取數(shù)據(jù);
(2)根據(jù)IDA算法進(jìn)行數(shù)據(jù)分片;
(3)將分片后的信息傳輸?shù)礁鞯氐拇鎯?chǔ)設(shè)備中;
(4)將存儲(chǔ)完成后的狀態(tài)信息(成功或者錯(cuò)誤)、存儲(chǔ)設(shè)備號(hào)、存儲(chǔ)位置等返回給分散存儲(chǔ)管理器。
存儲(chǔ)器主要實(shí)現(xiàn)數(shù)據(jù)最終存取,并帶有定期檢測(cè)數(shù)據(jù)、自動(dòng)發(fā)現(xiàn)存儲(chǔ)數(shù)據(jù)錯(cuò)誤功能,并根據(jù)其他互為冗余的存儲(chǔ)設(shè)備數(shù)據(jù)修復(fù)受損數(shù)據(jù),以提高信息的可用性,其工作過程如下:
(1)存儲(chǔ)數(shù)據(jù)后同時(shí)在其他存儲(chǔ)設(shè)備中寫入校驗(yàn)碼;
(2)向分片器返回?cái)?shù)據(jù)存儲(chǔ)信息;
(3)定期自動(dòng)檢查數(shù)據(jù)的完整性。
3 系統(tǒng)分析與驗(yàn)證
用戶保存數(shù)據(jù)時(shí),系統(tǒng)首先在訪問層實(shí)現(xiàn)用戶身份認(rèn)證、授權(quán)、防止非法訪問和越權(quán)訪問,并將保存數(shù)據(jù)進(jìn)行加密,當(dāng)數(shù)據(jù)在訪問層和應(yīng)用接口層被攔截時(shí),攔截者不會(huì)得到有效的數(shù)據(jù)信息。
數(shù)據(jù)在基礎(chǔ)管理層被分片后,每個(gè)信息中單獨(dú)的片段也是無效的,在數(shù)據(jù)從基礎(chǔ)管理層到存儲(chǔ)層傳輸?shù)倪^程中,假設(shè)此時(shí)數(shù)據(jù)被攔截(木馬病毒掃描獲取),截獲者得到的只是數(shù)據(jù)片段,無法對(duì)數(shù)據(jù)的有效性加以分析。
在數(shù)據(jù)最終存放的存儲(chǔ)層中,分片的數(shù)據(jù)也因?yàn)槠鋯为?dú)被獲取后,獲取者由于沒有完整的分片數(shù)據(jù)信息,并且即使得到所有數(shù)據(jù)分片,也因其沒有數(shù)據(jù)合成的方法,最終不能得到完整的數(shù)據(jù)。此外,當(dāng)數(shù)據(jù)被破壞時(shí),存儲(chǔ)層中互為冗余的數(shù)據(jù)也可將其恢復(fù),保證了數(shù)據(jù)的安全性和可用性。
可以看出,本系統(tǒng)根據(jù)云存儲(chǔ)的層次結(jié)構(gòu),通過相應(yīng)的保護(hù)策略逐層對(duì)數(shù)據(jù)進(jìn)行保護(hù),從數(shù)據(jù)傳輸?shù)酱鎯?chǔ),都建立了相應(yīng)的保護(hù)措施進(jìn)行云存儲(chǔ)層以及層與層之間的防范,實(shí)現(xiàn)了數(shù)據(jù)的全面防護(hù),防止了需要保密的數(shù)據(jù)泄漏后造成不必要的損失。該方法在Windows環(huán)境下通過系統(tǒng)仿真加以了認(rèn)證。
4 結(jié)論
由于云計(jì)算的復(fù)雜性以及用戶的動(dòng)態(tài)性,云存儲(chǔ)主要存在數(shù)據(jù)間分開存放、數(shù)據(jù)恢復(fù)、數(shù)據(jù)加密、數(shù)據(jù)完整性保護(hù)等問題。本文提出的云存儲(chǔ)安全架構(gòu)對(duì)于數(shù)據(jù)保密性要求高、基于內(nèi)容存儲(chǔ)的用戶,在安全性、可靠性和可用性方面具有較大的優(yōu)勢(shì),具備一定的容災(zāi)、數(shù)據(jù)恢復(fù)及容錯(cuò)能力。然而,這些需要通過空間和時(shí)間上的代價(jià)來滿足安全性需求。因此,根據(jù)本文提出的安全架構(gòu)特點(diǎn),通過增強(qiáng)動(dòng)態(tài)分析明確最佳的性能所在,優(yōu)化數(shù)據(jù)存取路徑,提高數(shù)據(jù)整體讀取性能,以實(shí)現(xiàn)更具有存儲(chǔ)空間效率的存儲(chǔ)策略,增強(qiáng)云存儲(chǔ)服務(wù)效率等,將是我們下一步要研究的重點(diǎn)問題。