張雪松,王鴻磊,2
(1.徐州工業(yè)職業(yè)技術(shù)學(xué)院 信息管理技術(shù)學(xué)院,江蘇 徐州 221140;
2.徐州市工業(yè)信息網(wǎng)絡(luò)工程技術(shù)研究中心,江蘇 徐州 221000)
基于IDAs算法的云存儲(chǔ)系統(tǒng)研究
張雪松1,王鴻磊1,2
(1.徐州工業(yè)職業(yè)技術(shù)學(xué)院 信息管理技術(shù)學(xué)院,江蘇 徐州 221140;
2.徐州市工業(yè)信息網(wǎng)絡(luò)工程技術(shù)研究中心,江蘇 徐州 221000)
云存儲(chǔ)是基于云計(jì)算的在線網(wǎng)絡(luò)存儲(chǔ)模式,為用戶提供了直接訪問(wèn)大范圍資源和應(yīng)用程序的能力.為了進(jìn)一步提高用戶數(shù)據(jù)的安全性和隱私性,對(duì)信息傳播算法IDAs進(jìn)行了分析,在此基礎(chǔ)上提出了采用IDAs的云存儲(chǔ)系統(tǒng)結(jié)構(gòu),并詳細(xì)介紹了該系統(tǒng)的核心部件和寫文件的過(guò)程.結(jié)果表明:該系統(tǒng)可以提高云存儲(chǔ)數(shù)據(jù)的安全性、完整性和可用性.
IDAs算法;云存儲(chǔ);信息傳播算法;安全;代理服務(wù)器
云存儲(chǔ)服務(wù)為用戶提供以互聯(lián)網(wǎng)為基礎(chǔ)的在線存儲(chǔ)服務(wù)[1].云存儲(chǔ)中的數(shù)據(jù)被存儲(chǔ)在虛擬化的存儲(chǔ)池中,通常由第3方托管.托管公司管理大型數(shù)據(jù)中心,也負(fù)責(zé)為請(qǐng)求托管數(shù)據(jù)的用戶提供購(gòu)買或租用存儲(chǔ)容量的服務(wù).數(shù)據(jù)中心運(yùn)營(yíng)商根據(jù)客戶的要求來(lái)虛擬化資源,為用戶提供存儲(chǔ)池.用戶可以自己使用這些存儲(chǔ)池來(lái)存儲(chǔ)文件或者數(shù)據(jù)對(duì)象.理論上,這些資源可跨越多個(gè)服務(wù)器.
在云存儲(chǔ)的幫助下,企業(yè)只需要支付實(shí)際使用存儲(chǔ)和存儲(chǔ)管理的費(fèi)用,而且也能夠使用像自動(dòng)精簡(jiǎn)配置這樣的實(shí)際虛擬存儲(chǔ)功能.云存儲(chǔ)還為用戶提供了通過(guò)Web服務(wù)接口直接訪問(wèn)大范圍內(nèi)的資源和被其他組織托管的應(yīng)用程序的功能.
目前有很多知名的云存儲(chǔ)服務(wù).如:Amazon S3(Simple Storage Service)是一個(gè)公開、可靠性較高的在線存儲(chǔ)網(wǎng)絡(luò)服務(wù).S3涉及到位于各個(gè)地理位置的許多機(jī)器,它還可以處理所有復(fù)雜的服務(wù)請(qǐng)求,存儲(chǔ)數(shù)據(jù)并檢索數(shù)據(jù).Google云存儲(chǔ)是一個(gè)滿足REST的在線存儲(chǔ)網(wǎng)絡(luò)服務(wù),可以與Amazon S3相媲美.它允許開發(fā)者在Google的云中存儲(chǔ)和訪問(wèn)數(shù)據(jù),并為開發(fā)者提供直接訪問(wèn)Google擴(kuò)展性存儲(chǔ)的功能.EMC Atmos也是一個(gè)知名的云存儲(chǔ)服務(wù)平臺(tái),它采用基于策略的管理系統(tǒng)來(lái)創(chuàng)建不同層級(jí)的云存儲(chǔ).因此,能夠通過(guò)全球云存儲(chǔ)環(huán)境,協(xié)助客戶將大量非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行自動(dòng)管理.EMC Atmos的領(lǐng)先優(yōu)勢(shì)在于信息配送與處理的能力.
在云存儲(chǔ)中,由于第3方管理計(jì)算資源,從而使異地?cái)?shù)據(jù)存儲(chǔ)引發(fā)了許多安全和隱私的問(wèn)題.云存儲(chǔ)中的文件分布在一組機(jī)器中,往往會(huì)跨越國(guó)界.很難說(shuō)清楚這些異地資源信息是在哪個(gè)管轄區(qū)和數(shù)據(jù)保護(hù)法的監(jiān)管之下,同樣無(wú)法知道哪些人可以訪問(wèn)這些資源.而這將意味著數(shù)據(jù)的所有者失去了對(duì)自己資源的安全和隱私的控制.企業(yè)不能確定其數(shù)據(jù)是否已經(jīng)得到充分的保護(hù),防止偷竊者從“云”的內(nèi)部和外部攻擊數(shù)據(jù).特別敏感的用戶和私人數(shù)據(jù)需要得到妥善保護(hù),應(yīng)該嚴(yán)密限制訪問(wèn).但是,對(duì)于目前的云存儲(chǔ)實(shí)施方案來(lái)說(shuō),并不總是能滿足這點(diǎn).
雖然許多云存儲(chǔ)提供商采用最常用的加密數(shù)據(jù)方式來(lái)保護(hù)客戶數(shù)據(jù)的安全,但是他們通常是自己管理加密密鑰.因此,用戶由于不能影響文件加密的整個(gè)過(guò)程,而喪失了對(duì)誰(shuí)有權(quán)限訪問(wèn)自己數(shù)據(jù)的控制[2].為了保證數(shù)據(jù)的機(jī)密性,用戶通常不得不選擇最可靠的云存儲(chǔ)提供商,或者選擇在把自己的數(shù)據(jù)發(fā)送到云存儲(chǔ)設(shè)備以前加密這些數(shù)據(jù).為了保證數(shù)據(jù)的可用性和完整性,用戶通常還會(huì)復(fù)制其數(shù)據(jù),但是這些措施在公共的云環(huán)境中有一定的局限性.
以信息傳播算法(Information Dispersal Algorithms,IDAs)為基礎(chǔ)的云存儲(chǔ)系統(tǒng)將很好地解決所存儲(chǔ)數(shù)據(jù)的機(jī)密性、完整性和可用性的問(wèn)題.目前,對(duì)于使用IDAs的存儲(chǔ)系統(tǒng)的研究和商業(yè)實(shí)施表明,它非常適合靜態(tài)文件的存儲(chǔ)和檢索.
CleverSafe致力于使用信息傳播來(lái)劃分TCP/IP包,并把它們存儲(chǔ)在本地或遠(yuǎn)程服務(wù)器上,稱之為傳播存儲(chǔ)(Dispersed Storage).該公司的產(chǎn)品使用IDAs劃分?jǐn)?shù)據(jù).
Michael O.Rabin于1989年首次提出IDAs,被用來(lái)將數(shù)據(jù)文件劃分成字節(jié)數(shù)據(jù)片,當(dāng)劃分后的數(shù)據(jù)片通過(guò)網(wǎng)絡(luò)傳輸或存儲(chǔ)在存儲(chǔ)陣列中時(shí),如果用戶或設(shè)備沒有正確合法的密鑰,將沒有訪問(wèn)權(quán)限.使用正確合法的密鑰可以將分散的數(shù)據(jù)片重新組合成原始文件.Wikibon項(xiàng)目的合作伙伴和分析師邁克爾說(shuō):IDAs所以用一種非常安全的方式在不同的節(jié)點(diǎn)間傳播數(shù)據(jù),因?yàn)楣粽呖赡芡讌f(xié)一個(gè)節(jié)點(diǎn),但是不能妥協(xié)任何數(shù)據(jù).所以,研究人員已經(jīng)在研究用IDAs替代傳統(tǒng)的數(shù)據(jù)加密方法,來(lái)保證傳輸數(shù)據(jù)的安全性.
1)在IDAs中,文件被劃分為n片,只需要最小的m片(n>m)文件就可以重構(gòu)原始文件.執(zhí)行重構(gòu)操作的轉(zhuǎn)換矩陣有n行和m列[3].
假設(shè)F是原始文件,該文件是大小為N的字節(jié)隊(duì)列.F文件中的字節(jié)能夠被分成包含m字節(jié)的塊,則F為:
假設(shè)矩陣A有n行和m列,則矩陣A為:
假設(shè)矩陣B是輸入文件F的矩陣,矩陣c是轉(zhuǎn)換后的輸出矩陣.因此可以得到如下矩陣等式:
要獲取cn,因?yàn)閏n等于矩陣A的第一行和矩陣B的第一列的乘積,可以得到如下等式:
矩陣c的每一行對(duì)應(yīng)一個(gè)文件片.
假設(shè)文件的第1片到第m片被用來(lái)重構(gòu)原始文件.那么矩陣A′作為矩陣A的子矩陣具有列1到列m.假設(shè)矩陣A′是矩陣A的轉(zhuǎn)置矩陣,則:
在重構(gòu)原始文件F時(shí),轉(zhuǎn)換矩陣A-1被用于轉(zhuǎn)換已知的m片文件,而不是原有的n片文件,來(lái)獲取原始文件的矩陣.因此
由式(6)可知,IDAs可以成功地通過(guò)轉(zhuǎn)換矩陣將部分文件片矩陣重構(gòu)為原始文件矩陣,進(jìn)而得到原始文件.
2)在云存儲(chǔ)中,IDAs能夠被用來(lái)劃分文件到多個(gè)數(shù)據(jù)片,這些數(shù)據(jù)片將會(huì)被隨機(jī)存儲(chǔ)在多個(gè)隨機(jī)存儲(chǔ)節(jié)點(diǎn)上.信息傳播算法IDAs能夠提高存儲(chǔ)數(shù)據(jù)的安全性.在使用IDAs的云存儲(chǔ)系統(tǒng)中,一個(gè)攻擊者如果想讀取文件,就必須先妥協(xié)至少m片存儲(chǔ)數(shù)據(jù),或者竊聽m片數(shù)據(jù),并需要確定這m片數(shù)據(jù)在原始文件中的邏輯位置.除此之外,攻擊者還要猜測(cè)文件的轉(zhuǎn)換矩陣,并且把該矩陣應(yīng)用到正確的文件片序列.要想完成所有這些工作是非常困難的.因此,使用IDAs的云存儲(chǔ)系統(tǒng),比只使用數(shù)據(jù)加密的云存儲(chǔ)系統(tǒng)能更好地保證數(shù)據(jù)的安全性.為了進(jìn)一步提高以IDAs為基礎(chǔ)的云存儲(chǔ)系統(tǒng)的安全性,代理服務(wù)器(Proxy Server)可以在分發(fā)文件片到外部存儲(chǔ)服務(wù)器以前加密這些文件片,也可以為每個(gè)待存儲(chǔ)的文件隨機(jī)生成轉(zhuǎn)換矩陣,而不是讓所有文件使用同一個(gè)轉(zhuǎn)換矩陣,這樣更能保證文件的安全性[3].
為了克服在云計(jì)算網(wǎng)絡(luò)中存儲(chǔ)數(shù)據(jù)的安全和隱私問(wèn)題,提出了一種采用IDAs的云存儲(chǔ)系統(tǒng)架構(gòu).如圖1所示.
圖1 使用IDAs的云存儲(chǔ)系統(tǒng)結(jié)構(gòu)Fig.1 Structure of cloud storage system based on IDAs
1)代理服務(wù)器.圖1所示的基于IDAs的云存儲(chǔ)系統(tǒng)的結(jié)構(gòu)中,最關(guān)鍵的部件是位于可信任的企業(yè)局域網(wǎng)內(nèi)的代理服務(wù)器,負(fù)責(zé)整合從互聯(lián)網(wǎng)上獲取的外部存儲(chǔ)服務(wù),為局域網(wǎng)內(nèi)的客戶計(jì)算機(jī)提供新的存儲(chǔ)資源,并確保所有的數(shù)據(jù)在離開可信任網(wǎng)絡(luò)區(qū)域后可以被安全無(wú)誤地傳輸[4].
該代理服務(wù)器可以是一個(gè)以Linux為基礎(chǔ)的系統(tǒng),通常被放置在企業(yè)的可信任的局域網(wǎng)區(qū)域內(nèi).代理服務(wù)器的一個(gè)主要目標(biāo)是充當(dāng)中間媒介,無(wú)縫集成企業(yè)外部的云存儲(chǔ)服務(wù)到企業(yè)員工的桌面工作空間[4].因此,用戶在云存儲(chǔ)中存儲(chǔ)文件時(shí),不再需要添加任何額外的軟件組件.
通過(guò)通用互聯(lián)網(wǎng)文件系統(tǒng)(Common Internet File System,CIFS),用戶可以使用代理服務(wù)器在客戶端計(jì)算機(jī)上提供的額外存儲(chǔ)資源.基于客戶/服務(wù)器模式的CIFS協(xié)議能夠使程序訪問(wèn)遠(yuǎn)程計(jì)算機(jī)上的文件,還能夠使程序請(qǐng)求此計(jì)算機(jī)的服務(wù).一般來(lái)說(shuō),CIFS使用戶對(duì)文件的控制較FTP更好一些.它提供潛在的更直接地服務(wù)器程序接口,這比使用HTTP協(xié)議的瀏覽器更好.CIFS最典型的應(yīng)用是Windows用戶能夠從“網(wǎng)上鄰居”中找到網(wǎng)絡(luò)中的其他主機(jī)并訪問(wèn)其中的共享文件夾.
為了在代理服務(wù)器上啟動(dòng)傳播和加密算法,一個(gè)自定義的文件系統(tǒng)是必要的,它應(yīng)該使用戶具有“重寫”標(biāo)準(zhǔn)的文件系統(tǒng)的能力.著名用戶空間文件系統(tǒng)(Filesystem in Userspace,FUSE)可以滿足這一要求.FUSE是Linux中用于掛載某些網(wǎng)絡(luò)空間,如SSH,到本地文件系統(tǒng)的模塊.使用FUSE可以讓非特權(quán)用戶在不需要編輯內(nèi)核代碼的前提下,創(chuàng)建他們自己的文件系統(tǒng).
2)操作系統(tǒng)的編寫(如圖2所示).在圖1所示的云存儲(chǔ)系統(tǒng)結(jié)構(gòu)中,寫文件的過(guò)程將進(jìn)行如下操作:
圖2 寫操作過(guò)程Fig.2 Write operation process
寫文件的用戶(通常是企業(yè)的員工)復(fù)制一個(gè)文件,并要把它寫到網(wǎng)絡(luò)驅(qū)動(dòng)器上的一個(gè)目標(biāo)文件夾中.首先,這個(gè)文件將被緩存在代理服務(wù)器的共享文件夾(Shared Folder)中[5].幾乎在同一時(shí)間,代理服務(wù)器會(huì)為該文件隨機(jī)生成一個(gè)特殊的轉(zhuǎn)換矩陣.然后,代理服務(wù)器將使用這個(gè)矩陣轉(zhuǎn)換把文件劃分為多個(gè)數(shù)據(jù)片.為了安全起見,所有的數(shù)據(jù)片還要被加密.最后,這些數(shù)據(jù)片將通過(guò)一個(gè)協(xié)議適配器被存儲(chǔ)到某個(gè)云存儲(chǔ)服務(wù)商提供的存儲(chǔ)設(shè)備中.
3)元數(shù)據(jù)的數(shù)據(jù)庫(kù)(Metadata DB).為了保持文件和文件片的映射關(guān)系,可以采用類FileInfo和類FileSlice(如圖3所示).類FileInfo中包含的屬性有:用于劃分文件的IDAs轉(zhuǎn)換矩陣,文件片存儲(chǔ)的命名空間,以及文件的一般屬性等.類FileSlice包含一個(gè)文件片的信息,一個(gè)文件可以分成多個(gè)文件片,所有文件實(shí)例都被存儲(chǔ)在元數(shù)據(jù)的數(shù)據(jù)庫(kù)中.在整個(gè)寫操作的過(guò)程中,附加信息和元數(shù)據(jù)屬于外包文件將被存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi),有了這些存儲(chǔ)的信息,當(dāng)存儲(chǔ)程序成功完成后,代理服務(wù)器中的緩存文件就可以被刪除了.
圖3 元數(shù)據(jù)的數(shù)據(jù)庫(kù)Fig.3 Database of metadata
采用元數(shù)據(jù)的數(shù)據(jù)庫(kù),代理服務(wù)器可以管理文件片的存儲(chǔ)注冊(cè)和清除,以及對(duì)所有文件片存儲(chǔ)的健康和可用情況進(jìn)行追蹤.存儲(chǔ)元數(shù)據(jù)的數(shù)據(jù)庫(kù)可以是一個(gè)MySQL數(shù)據(jù)庫(kù),它應(yīng)該被復(fù)制,分發(fā),并得到充分保護(hù),以免受攻擊和出錯(cuò),通常采用維護(hù)數(shù)據(jù)庫(kù)安全的做法對(duì)其進(jìn)行維護(hù).
4)執(zhí)行測(cè)試.完成對(duì)IDAs存儲(chǔ)系統(tǒng)在讀和寫不同大小文件時(shí)的執(zhí)行情況后,進(jìn)行初步的性能測(cè)試,并將IDAs存儲(chǔ)系統(tǒng)與NFS的執(zhí)行性能進(jìn)行對(duì)比.在測(cè)試中,IDAs存儲(chǔ)系統(tǒng)以一個(gè)VMware ESXi 5.0私有云為基礎(chǔ),并采用4個(gè)存儲(chǔ)片.NFS的客戶機(jī)和服務(wù)器采用Ubuntu 10.10.此外,注冊(cè)中心服務(wù)器、片存儲(chǔ)和NFS服務(wù)器都是運(yùn)行在配置了1 GB內(nèi)存和1個(gè)虛擬CPU的虛擬機(jī)之上,沒有預(yù)訂資源.
從對(duì)測(cè)試結(jié)果的分析可以看出,讀寫所用時(shí)間會(huì)隨著文件尺寸的增大而線性增長(zhǎng).圖4表明,IDAs存儲(chǔ)系統(tǒng)的寫文件性能與NFS相當(dāng).為了提高IDAs存儲(chǔ)系統(tǒng)的讀文件性能,在測(cè)試中使用了一個(gè)預(yù)讀取緩存.因此,在圖4中,IDAs存儲(chǔ)系統(tǒng)的讀操作沒有顯著慢于NFS的讀操作.
圖4 IDAs存儲(chǔ)系統(tǒng)與NFS對(duì)比Fig.4 Comparison between IDAs storage system and NFS
理論研究證明IDAs的云存儲(chǔ)系統(tǒng)結(jié)構(gòu),可以提高云存儲(chǔ)數(shù)據(jù)的安全性、完整性和可用性.該系統(tǒng)的核心部件是一個(gè)位于企業(yè)局域網(wǎng)內(nèi)的代理服務(wù)器,它負(fù)責(zé)使用信息傳播算法IDAs劃分文件,然后分發(fā)文件到企業(yè)外部的云存儲(chǔ)服務(wù).為了進(jìn)一步提高存儲(chǔ)數(shù)據(jù)的安全性,代理服務(wù)器不使用公用轉(zhuǎn)換矩陣,而是為每個(gè)文件隨機(jī)生成獨(dú)特的轉(zhuǎn)換矩陣.另外,在分發(fā)文件片到企業(yè)外的云存儲(chǔ)服務(wù)之前,代理服務(wù)器還會(huì)加密文件片.由于所有這些操作都是在可信任的企業(yè)局域網(wǎng)內(nèi)完成,所以云存儲(chǔ)服務(wù)中通常的安全和隱私性問(wèn)題將得到較好地解決.
[1] 侯清燁,武永衛(wèi),鄭緯民,等.一種保護(hù)云存儲(chǔ)平臺(tái)上用戶數(shù)據(jù)私密性的方法[J].計(jì)算機(jī)研究與發(fā)展,2011,48(7):1147- 1154.
[2] 王志中,周城,牟宇飛.基于分離密鑰的云存儲(chǔ)加密解決方案[J].電信科學(xué),2013,29(1):51- 56.
[3] 司菁菁.線性網(wǎng)絡(luò)編碼的類型保持轉(zhuǎn)換矩陣[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(7):12- 15.
[4] 智西湖.分布存儲(chǔ)的流媒體代理服務(wù)器協(xié)作算法探討[J].洛陽(yáng)大學(xué)學(xué)報(bào),2004,19(2):50- 52.
[5] 楊戈,廖建新,朱曉民,等.基于段流行度的移動(dòng)流媒體代理服務(wù)器緩存算法[J].通信學(xué)報(bào),2007,28(2):33- 39.
On cloud storage system based on IDAs
ZHANG Xue-song1,WANG Hong-lei1,2
(1.Information Management Department,Xuzhou College of Industrial Technology,Xuzhou,Jiangsu 221140,China;2.Xuzhou Engineering Technology Research Center for Industrial Information Network,Xuzhou,Jiangsu 221000,China)
Cloud storage is a model of online network storage based on cloud computing,which provides users with immediate access to a broad range of resources and application.In order to improve the security and privacy of user data,this paper analyzes information dispersal algorithms(IDAs),puts forward cloud storage system adopting IDAs,and expounds the core block and file-writing process of the system.Results show that the system can improve the security,integrity and availability of cloud storage data.
IDAs;cloud storage;information dispersal algorithms;security;proxyserver
TP 368.1
A
2095- 3550(2014)02- 0033- 04
2014- 04- 10
2013年徐州市科技發(fā)展基金計(jì)劃 (XF13C035);2013年江蘇省高等學(xué)校大學(xué)生實(shí)踐創(chuàng)新訓(xùn)練計(jì)劃 (766);2012年校級(jí)科研課題 (XGY201213)
張雪松,女,江蘇徐州人,副教授,碩士,主要從事計(jì)算機(jī)技術(shù)研究.
E- mail:zxscedar1@163.com
(責(zé)任編輯:梁賽平)