如何設(shè)計(jì)云存儲(chǔ)服務(wù)端數(shù)據(jù)存儲(chǔ)加密機(jī)制
云存儲(chǔ)是一種新型的網(wǎng)絡(luò)存儲(chǔ)形式。隨著云存儲(chǔ)的廣泛使用,云存儲(chǔ)中的數(shù)據(jù)安全問題,如數(shù)據(jù)泄漏、數(shù)據(jù)篡改,也成了用戶廣泛關(guān)注的問題。云存儲(chǔ)可以分為訪問層、應(yīng)用接口層、基礎(chǔ)管理層和存儲(chǔ)層,云存儲(chǔ)安全可以分為訪問層安全、應(yīng)用接口層安全、基礎(chǔ)層安全和存儲(chǔ)層安全。為保證云存儲(chǔ)中服務(wù)端數(shù)據(jù)存儲(chǔ)的機(jī)密性,文章設(shè)計(jì)了數(shù)據(jù)存儲(chǔ)加密機(jī)制,在基于云桌面的辦公系統(tǒng)個(gè)人存儲(chǔ)的應(yīng)用環(huán)境中,實(shí)現(xiàn)了基礎(chǔ)管理層和存儲(chǔ)層加密機(jī)制。
一、云存儲(chǔ)
云存儲(chǔ)是云計(jì)算的延伸和發(fā)展,是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式系統(tǒng)等將網(wǎng)絡(luò)中大量各種不同類型的存儲(chǔ)設(shè)備通過應(yīng)用軟件結(jié)合起來阱同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問功能的系統(tǒng)。
如圖l所示,云存儲(chǔ)從上往下可以分為四層,分別為訪問層、應(yīng)用接口層、基礎(chǔ)管理層和存儲(chǔ)層訪問層是云存儲(chǔ)的最頂層,其主要服務(wù)對(duì)象為一般用戶,主要包括三方面內(nèi)容:1)個(gè)人空間服務(wù)和運(yùn)營(yíng)商空間租賃等;2)企事業(yè)單位或者服務(wù)器實(shí)現(xiàn)數(shù)據(jù)備份、數(shù)據(jù)歸檔、集中存儲(chǔ)和遠(yuǎn)程共享等;3)視頻監(jiān)控、IPTV(Interactive Personality TV:個(gè)性化互動(dòng)電視)等系統(tǒng)的集中存儲(chǔ)、網(wǎng)站大容量在線存儲(chǔ)等。應(yīng)用接口層是云存儲(chǔ)的第二層,其主要服務(wù)對(duì)象為二次應(yīng)用開發(fā)的用戶口應(yīng)用接口層可以分為兩層,上層主要包含網(wǎng)絡(luò)接人、用戶認(rèn)證和授權(quán)管理等,下層主要包含公用應(yīng)用程序編程接口API(Application Programming Interface)、應(yīng)用軟件和網(wǎng)絡(luò)服務(wù)等。第三層為基礎(chǔ)管理層,主要包含三方面內(nèi)容:l)集群系統(tǒng)、分布式文件系統(tǒng);2)內(nèi)容分發(fā)、重復(fù)數(shù)據(jù)刪除和數(shù)據(jù)壓縮;3)數(shù)據(jù)加密、數(shù)據(jù)備份和數(shù)據(jù)容災(zāi)。最底層為存儲(chǔ)層,其主要而向底層硬件存儲(chǔ)服務(wù)器,可以分為兩層。上層主要包含存儲(chǔ)虛擬化、存儲(chǔ)集中管理、狀態(tài)監(jiān)控和維護(hù)升級(jí)等,稱之為網(wǎng)絡(luò)管理層;下層主要包含NAS( Network AttachedStorage:網(wǎng)絡(luò)附加存儲(chǔ))、SAN(Storae AreA Network:存儲(chǔ)區(qū)域網(wǎng)絡(luò))等存儲(chǔ)設(shè)備,稱之為硬件存儲(chǔ)層。
網(wǎng)絡(luò)附加存儲(chǔ)是一種專門的數(shù)據(jù)存儲(chǔ)技術(shù)的名稱,它可以直接連接在電腦網(wǎng)絡(luò)上,對(duì)異質(zhì)網(wǎng)絡(luò)用戶提供了集中式數(shù)據(jù)訪問服務(wù)。
網(wǎng)絡(luò)附加存儲(chǔ)是文件級(jí)存儲(chǔ),用的是以文件為單位的通信協(xié)議,如NFS(Network File System)、SMB/CIFS (ServerMessage Block/Common Internet File System)或者AFP(Apple Talk File ProLocol)等。網(wǎng)絡(luò)附加存儲(chǔ)設(shè)備上有簡(jiǎn)單的操作系統(tǒng)(包括文本服務(wù)和相關(guān)的通信協(xié)議)。操作系統(tǒng)只提供數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)訪問和相關(guān)的管理功能。
在數(shù)據(jù)量大的環(huán)境中,網(wǎng)絡(luò)附加存儲(chǔ)為用戶提供存儲(chǔ)空間。網(wǎng)絡(luò)附加存儲(chǔ)可以給系統(tǒng)(如負(fù)載均衡系統(tǒng)、容錯(cuò)電子郵件系統(tǒng)和網(wǎng)絡(luò)服務(wù)系統(tǒng)等)提供存儲(chǔ)服務(wù),從而使系統(tǒng)簡(jiǎn)單,并且花費(fèi)更低。網(wǎng)絡(luò)附加存儲(chǔ)可以為網(wǎng)絡(luò)中的其他服務(wù)器提供文件服務(wù),提高了文件的使用率。當(dāng)服務(wù)器被關(guān)閉后,用戶仍然可以和網(wǎng)絡(luò)附加存儲(chǔ)設(shè)備通信,從而避免了因?yàn)榉?wù)器關(guān)閉而無法使用數(shù)據(jù)的情況。
存儲(chǔ)區(qū)域網(wǎng)絡(luò)是一種連接外接存儲(chǔ)設(shè)備和服務(wù)器的架構(gòu)。人們采用包括光纖通道技術(shù)、磁盤陣列、磁帶柜、光盤等各種技術(shù)進(jìn)行實(shí)現(xiàn)。該架構(gòu)的特點(diǎn)是,連接到服務(wù)器的存儲(chǔ)設(shè)備,將被操作系統(tǒng)視為直接連接的存儲(chǔ)設(shè)備。
存儲(chǔ)區(qū)域網(wǎng)絡(luò)是塊級(jí)數(shù)據(jù)存儲(chǔ),用的是以區(qū)塊為單位的通信協(xié)議,一般是通過SCSI再轉(zhuǎn)為光纖通道或者iSCSIo存儲(chǔ)區(qū)域網(wǎng)絡(luò)不提供文件虛擬,只提供塊級(jí)數(shù)據(jù)存儲(chǔ)操作。
存儲(chǔ)區(qū)域網(wǎng)絡(luò)可以提高計(jì)算機(jī)存儲(chǔ)資源的可擴(kuò)展性和可靠性,降低實(shí)施成本,減少管理成本。存儲(chǔ)區(qū)域網(wǎng)絡(luò)用于要求可用性、可伸縮性和性能的計(jì)算環(huán)境中。例如,視頻編輯工作組對(duì)于數(shù)據(jù)的傳輸速率要求非常高,存儲(chǔ)區(qū)域網(wǎng)絡(luò)可以很好地滿足這方面的性能要求。
存儲(chǔ)區(qū)域網(wǎng)絡(luò)可以卸掉主網(wǎng)上大量的數(shù)據(jù)流量,減免數(shù)據(jù)擁塞。
網(wǎng)絡(luò)附加存儲(chǔ)與存儲(chǔ)區(qū)域網(wǎng)絡(luò)比較如下:
1)相同點(diǎn)
網(wǎng)絡(luò)附加存儲(chǔ)和存儲(chǔ)區(qū)域網(wǎng)絡(luò)都依靠于網(wǎng)絡(luò)。在網(wǎng)絡(luò)中為用戶提供存儲(chǔ)服務(wù)。與傳統(tǒng)的存儲(chǔ)不同,二者在可用性和擴(kuò)展性方面有很大的提高。
2)不同點(diǎn)
首先,使用的通信協(xié)議是不同的。網(wǎng)絡(luò)附加存儲(chǔ)是文件級(jí)數(shù)據(jù)存儲(chǔ),使用以文件為單位的通信協(xié)議;存儲(chǔ)區(qū)域網(wǎng)絡(luò)是塊級(jí)數(shù)據(jù)存儲(chǔ),用的是以塊為單位的通信協(xié)議。
其次,技術(shù)上實(shí)施不同。網(wǎng)絡(luò)附加存儲(chǔ)通常是一個(gè)服務(wù)器群:郵件服務(wù)器、應(yīng)用服務(wù)器等,存儲(chǔ)設(shè)備附加于系統(tǒng)之上;存儲(chǔ)區(qū)域網(wǎng)絡(luò)大多部署于電子商務(wù)應(yīng)用中,大量的數(shù)據(jù)備份和其他應(yīng)用數(shù)據(jù)在網(wǎng)絡(luò)中傳輸。
硬件存儲(chǔ)設(shè)備可以通過Internet小型計(jì)算機(jī)系統(tǒng)接口iSCSI( Internet Small Computer System Interface) 實(shí)現(xiàn)。iSCSI協(xié)議嘲利用TC P/IPfs.q網(wǎng)絡(luò)傳送本機(jī)的SCSI協(xié)議,把SCSI數(shù)據(jù)塊映射成以太網(wǎng)數(shù)據(jù)包。由于iSCSI協(xié)議是服務(wù)器架構(gòu),因此可以實(shí)現(xiàn)在線擴(kuò)容以及動(dòng)態(tài)部署。
iSCSI又稱為IP-SAN是一種基于因特網(wǎng)及SCSI-3協(xié)議下的存儲(chǔ)技術(shù),由IETF提出,并于2003年2月11日成為正式的標(biāo)準(zhǔn)。
iSCSI協(xié)議本身提供了一些基本安全措施。IPSec(Internei Protocol Security:Internet協(xié)議安全)在IP層為iSCSI通信兩端iscsi PDU(Protocol Data Unit:協(xié)議數(shù)據(jù)單元)的傳輸提供數(shù)據(jù)完整性、認(rèn)證和機(jī)密保護(hù)。帶內(nèi)認(rèn)證對(duì)始發(fā)端( Initiator)和目標(biāo)端(Target)在登錄階段對(duì)對(duì)方進(jìn)行身份認(rèn)證。IPSec和帶內(nèi)認(rèn)證提供了基礎(chǔ)管理層的安全保護(hù)。甚于已有商、存儲(chǔ)Arnazon S3的增強(qiáng)系
統(tǒng)和網(wǎng)關(guān),可以保護(hù)應(yīng)用接口層的安全。但基于iSCSI的云存儲(chǔ),沒有提供對(duì)存儲(chǔ)服務(wù)端用戶數(shù)據(jù)機(jī)晰性的保護(hù)機(jī)制。
本文研究的云存儲(chǔ)服務(wù)端數(shù)據(jù)存儲(chǔ)加巒機(jī)制主要保護(hù)用戶數(shù)據(jù)的機(jī)懈性。本文的主要工作包括:l)設(shè)計(jì)了一種對(duì)用戶透明的云存儲(chǔ)數(shù)據(jù)加密機(jī)制,給出了由展礎(chǔ)管理層和存儲(chǔ)層組成的二層架構(gòu);2)基于JAVA、JSP等技術(shù),實(shí)現(xiàn)了基礎(chǔ)管理層;3)甚于Bash腳本等技術(shù),實(shí)現(xiàn)了基礎(chǔ)管理層與存儲(chǔ)層的接口;4)基于開源項(xiàng)目TGT實(shí)現(xiàn)了存儲(chǔ)層數(shù)據(jù)加解密機(jī)制,保證數(shù)據(jù)的機(jī)密性。測(cè)試表明,本文實(shí)現(xiàn)的加密機(jī)制適用于基于云桌面的辦公系統(tǒng)個(gè)人存儲(chǔ)的應(yīng)用環(huán)境,而且用戶無需參與加密過程。
二、加密機(jī)制基本架構(gòu)
本文的設(shè)計(jì)主要針對(duì)云存儲(chǔ)的基礎(chǔ)管理層和存儲(chǔ)層,如圖2所示?;A(chǔ)管理層主要包含存儲(chǔ)虛擬化、存儲(chǔ)集中管理、狀態(tài)監(jiān)控和維護(hù)升級(jí)等,實(shí)現(xiàn)對(duì)存儲(chǔ)層硬件服務(wù)器的管理;存儲(chǔ)層主要包含硬件服務(wù)器、操作系統(tǒng)及軟件。可信第三方負(fù)責(zé)發(fā)放和存儲(chǔ)密鑰。
1、基礎(chǔ)管理層
基礎(chǔ)管理層面對(duì)的對(duì)象足存儲(chǔ)系統(tǒng)的管理角色,其主要功能模塊如圖3所示,管理角色對(duì)整個(gè)存儲(chǔ)進(jìn)行管理。
存儲(chǔ)虛擬化將硬件存儲(chǔ)資源進(jìn)行抽象化表現(xiàn),將多臺(tái)物理存儲(chǔ)服務(wù)器J超擬成一個(gè)存儲(chǔ)池,在管理和建立存儲(chǔ)時(shí)不用考慮存儲(chǔ)實(shí)際所建的物明機(jī)器。存儲(chǔ)集中管理對(duì)存儲(chǔ)進(jìn)行集中管理,包括存儲(chǔ)的添加、刪除和修改。狀態(tài)監(jiān)控對(duì)物理存儲(chǔ)進(jìn)行狀態(tài)監(jiān)控,包括CPU使用宰,設(shè)置CPU使用率的正常值范范圍,超出該范鬧給出警告;內(nèi)存空閑率,設(shè)置內(nèi)存空閑了的正常值的范圍,超出該范圍,給出警告;其他相關(guān)參數(shù)的監(jiān)控。維護(hù)升級(jí)對(duì)物理存儲(chǔ)的軟件進(jìn)行升級(jí),保證物理存儲(chǔ)的可用性和安全性,并網(wǎng)收系統(tǒng)的垃圾存儲(chǔ)。
存儲(chǔ)管理接口將底層的添加存儲(chǔ)、修改存儲(chǔ)和刪除存儲(chǔ)等功能通過接口提供給存儲(chǔ)管理層。
2、存儲(chǔ)層
存儲(chǔ)層主要是硬件服務(wù)器、操作系統(tǒng)和軟件,它們組成了云存儲(chǔ)的服務(wù)端。如圖3所示,它包括存儲(chǔ)管理接口、添加存儲(chǔ)、修改存儲(chǔ)和刪除存儲(chǔ),存儲(chǔ)管理接口為基礎(chǔ)管理層提供添加、修改和刪除存儲(chǔ)的接口;它還包括存儲(chǔ)服務(wù)接口、登錄存儲(chǔ)模塊、讀寫模塊和加解密模塊,存儲(chǔ)服務(wù)接口直接為客戶端提供登錄存儲(chǔ)和瀆寫存儲(chǔ)的接口;讀寫存儲(chǔ)調(diào)用加解密模塊,保證客戶端存儲(chǔ)數(shù)據(jù)的機(jī)密性。用戶與服務(wù)端、服務(wù)端與可信第三方交互流程如圖4所示。
1)用戶獲得存儲(chǔ)
(1)首先,用戶發(fā)起存儲(chǔ)清求,可以指定存儲(chǔ)大小系統(tǒng)默認(rèn)大??;
(2)服務(wù)端接收到請(qǐng)求后,建立存儲(chǔ)并選擇算法;
(3)服務(wù)端向可信第三方請(qǐng)求密鑰;
(4)可信第三方接收到密鑰請(qǐng)求后,返回密鑰;
(5)服務(wù)端使用密鑰初始化存儲(chǔ);
(6)服務(wù)端將存儲(chǔ)分配給用戶;
(7) 用戶登錄存儲(chǔ);
(8)服務(wù)端對(duì)用戶名和密碼進(jìn)行驗(yàn)證,當(dāng)用戶名和密碼驗(yàn)證通過后,建立會(huì)話。
2)用戶讀寫數(shù)據(jù)
(1)用戶寫數(shù)據(jù),服務(wù)端將數(shù)據(jù)加密,然后寫入存儲(chǔ);
(2)用戶讀數(shù)據(jù),服務(wù)端解密數(shù)據(jù),然后將數(shù)據(jù)返回給用戶。
三、原型實(shí)現(xiàn)
本文基于JAVA、JSP、Bash腳本等,實(shí)現(xiàn)了綦礎(chǔ)管理層基本功能;基于開源項(xiàng)目TGT實(shí)現(xiàn)了物理存儲(chǔ)服務(wù)器解密功能和可信度艘。本文存儲(chǔ)的應(yīng)用環(huán)境為云桌面用戶存儲(chǔ),用戶在存儲(chǔ)中存放自己的文件。
1、基礎(chǔ)管理層實(shí)現(xiàn)
基于web圖形界面,實(shí)現(xiàn)氈礎(chǔ)管理層的可視化操作,包括存儲(chǔ)虛擬化管理界面,集中存儲(chǔ)管理界面,狀態(tài)監(jiān)控界面和升級(jí)維護(hù)界面口管理員可以方便快捷管理存儲(chǔ),不用了解和熟悉底層的管理命令。
管理員通過存儲(chǔ)創(chuàng)建界面選擇創(chuàng)建存儲(chǔ)的大小,可以指定物理服務(wù)器,也可以不指定物理服務(wù)器,如圖5所示。
管理員可以通過圖6所示界面查看物力存儲(chǔ)存儲(chǔ)的信息。
管理員可以通過物理存儲(chǔ)狀態(tài)監(jiān)控界面奩看物理存儲(chǔ)當(dāng)前的狀態(tài),包括內(nèi)存、CPU使用率等,如圖7所示。
2、存儲(chǔ)層加密機(jī)制實(shí)現(xiàn)
服務(wù)端操作系統(tǒng)為thel-server-6.4-x86—64,iSCSI軟件為iscsitargel-1.4.20.20如圖8所示,主要修改的文件為file-io.c和bloc-io.c,并新建立了AES.h、AES.c、DFS.h、DES.c. 3DES.h. 3DES.c\ rc4.h. rc4.c等文件。我們修改了file-io.t;和bloc-io.c的部分。file-io.e中~J static irit f'ileio_niake_request(struct iet. volume *lu, structIio *tio.int r函數(shù),其中rw為凌取或行寫入符號(hào)。在rw為READ時(shí),讀出數(shù)據(jù)后,使用解密函數(shù)對(duì)數(shù)據(jù)進(jìn)行解密;否則,在寫入數(shù)據(jù)前,函數(shù)對(duì)數(shù)據(jù)進(jìn)行加密。bloc-io.c中 static int blockio_make_request(struci et_volume*volume, struct tio*tio, intr州,rw為波取或暫寫入符。在rw為READ時(shí),讀出數(shù)據(jù)后,使用解密函數(shù)對(duì)數(shù)據(jù)進(jìn)行解密;否則,在寫人數(shù)據(jù)前,使用加密函數(shù)對(duì)數(shù)據(jù)進(jìn)行加密。
AES.h, AES.c、 I)F:S.h, DFS.c. 3DES.Il, 3DES.c, rr4.h,rc4.c等文件分別實(shí)現(xiàn)了AES算法、DES算法、3DES算法和rc4算法。
3、數(shù)據(jù)測(cè)試
硬件
處理器:InteI(R) Core(TM) i7-3770 CPU@3.40(;Hz3.40GHz
系統(tǒng)內(nèi)存( RAM):4.OO(;B
軟件
操作系統(tǒng):Windo.vs 7專業(yè)版
系統(tǒng)類型:32位操作系統(tǒng)
虛擬化軟件:Oracle VirtuaIBox 4.3.2 r90405
客戶端操作系統(tǒng):CentoS-5.5-x86_64內(nèi)核版本( 2.6.18-371.6.l.e15):內(nèi)存:lG;CPU個(gè)數(shù):2
服務(wù)端操作系統(tǒng):thel-server-6.4-x86_64內(nèi)核版本( 2.6.32-358.e16.i686);內(nèi)存:IC;CPU個(gè)數(shù):2
客戶端軟件:iscsi--in…ator-utils-6.2.0.837-lO.e16.
x86_64.rpm
服務(wù)端軟件:iscsitarget-1.4.20.2 .tar*gz'WindOW8 7作為宿主機(jī)系統(tǒng),使用VirtuaIBox虛擬化軟件,建立兩個(gè)Linux虛擬機(jī),一個(gè)為CentOS系統(tǒng),安裝iscsi-initiator軟件,作為客戶端;另一個(gè)為RedHat系統(tǒng),安裝修改后ISC8itarget軟件,作為服務(wù)端。
由于本文的應(yīng)用環(huán)境為云桌面的用戶存儲(chǔ),所以數(shù)據(jù)測(cè)試采用模擬用戶寫數(shù)據(jù)的過程,其目的在于測(cè)試數(shù)據(jù)加密后是否會(huì)對(duì)用戶讀寫文件造成太大延遲,降低系統(tǒng)使用性。測(cè)試文件大小分為IK、IOK、IOOK、256K、512K、1M(如圖9)、IOM、IOOM、256M(如圖1O),使用Ba8h腳本,每個(gè)文件讀寫1000次計(jì)時(shí),然后計(jì)算平均時(shí)間,作為該大小文件的讀寫時(shí)間。
在文件較小時(shí),加密對(duì)于文件寫入沒有較大影響,而用戶的等待時(shí)間也不會(huì)超過50ms。
在文件相對(duì)較大時(shí),如圖10所示,文件為256M時(shí),無加密寫入時(shí)間不超過Is,而加密所需最大時(shí)間為9s多。
采用AES算法128位加密或者RC4加密,時(shí)問不超過380在用戶可接受范圍之內(nèi)。
本文的應(yīng)用環(huán)境是基于云桌面的辦公系統(tǒng)的個(gè)人存儲(chǔ),辦公系統(tǒng)中,文件的讀寫主要是小數(shù)據(jù)的頻繁讀寫。圖9為1K、IOK、IOOK、256K、512K、IM、IOM、IOOM、256M等小文件的測(cè)試數(shù)據(jù),采用1000次的讀寫取平均數(shù)據(jù)。當(dāng)文件小于IOM時(shí),時(shí)間差不超過0.5s;當(dāng)文件為256M時(shí),最大時(shí)間差不超過9s,最小時(shí)間差為2.2s;由于辦公系統(tǒng)單個(gè)文件為IOM級(jí)已經(jīng)比較少;所以本文的加密機(jī)制適合基于云桌面的辦公系統(tǒng)的個(gè)人存儲(chǔ)使用。
小知識(shí)之云存儲(chǔ)
云存儲(chǔ)是在云計(jì)算(cloud computing)概念上延伸和發(fā)展出來的一個(gè)新的概念,是一種新興的網(wǎng)絡(luò)存儲(chǔ)技術(shù),是指通過集群應(yīng)用、網(wǎng)絡(luò)技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲(chǔ)設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問功能的一個(gè)系統(tǒng)。














