文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)09-114-04
信息化建設(shè)的深入發(fā)展帶動(dòng)了企業(yè)重要信息資產(chǎn)數(shù)據(jù)的日益增長。為了保護(hù)與企業(yè)生存密切相關(guān)的數(shù)據(jù)信息的安全,互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口iSCSI(Internet Small Computer System Interface)遠(yuǎn)程鏡像技術(shù)[1-2]被用于數(shù)據(jù)容災(zāi)系統(tǒng)。隨著iSCSI應(yīng)用的快速發(fā)展,性能高、安全性強(qiáng)的IP存儲(chǔ)正成為網(wǎng)絡(luò)存儲(chǔ)領(lǐng)域的研究熱點(diǎn)。iSCSI使用標(biāo)準(zhǔn)的TCP/IP協(xié)議,將現(xiàn)有SCSI接口與以太網(wǎng)技術(shù)結(jié)合,在IP網(wǎng)絡(luò)上傳送SCSI數(shù)據(jù)和命令,因此普通IP網(wǎng)絡(luò)上的攻擊手段都適用于iSCSI環(huán)境,攻擊者也可以通過遠(yuǎn)程容災(zāi)備份或數(shù)據(jù)鏡像來竊取保存在存儲(chǔ)設(shè)備中的數(shù)據(jù),現(xiàn)有的iSCSI安全機(jī)制不能提供足夠的安全保護(hù)。
目前保證iSCSI存儲(chǔ)系統(tǒng)數(shù)據(jù)安全的方法主要有兩種:加密通信線路上的數(shù)據(jù);加密存儲(chǔ)設(shè)備上的數(shù)據(jù)。安全性和性能通常是相互矛盾的,這兩種方式都是基于應(yīng)用主機(jī)進(jìn)行加解密運(yùn)算,導(dǎo)致客戶端或服務(wù)器端CPU占用率過高,大大降低了系統(tǒng)性能。第一種情況如:IETF提出的IPSec方法[3]能夠提供線上的加密保護(hù)卻嚴(yán)重降低性能,為了提高系統(tǒng)性能,學(xué)者們對(duì)該方案進(jìn)行了研究和改進(jìn),在一定程度上提高[4]和優(yōu)化[5]了系統(tǒng)性能,但該情況并不能保證存儲(chǔ)設(shè)備上的數(shù)據(jù)安全。相反,第二種情況:加密文件系統(tǒng)雖能保證存儲(chǔ)設(shè)備的數(shù)據(jù)安全,但不能保證線上的數(shù)據(jù)安全,同樣該情況對(duì)系統(tǒng)的性能影響也很大?;谕瑫r(shí)保證線上和存儲(chǔ)設(shè)備上的數(shù)據(jù)安全性考慮,邏輯盤卷管理LVM(Logical Volume Manager)加密卷[6-7]能同時(shí)滿足數(shù)據(jù)傳輸和存儲(chǔ)的安全性需要,但其加解密運(yùn)算也是在客戶端進(jìn)行,系統(tǒng)的讀寫性能仍要受到影響。
本文提出了在iSCSI遠(yuǎn)程鏡像路徑上添加加密中間件,希望在安全和性能之間找到一個(gè)平衡點(diǎn),在保證網(wǎng)絡(luò)傳輸和存儲(chǔ)數(shù)據(jù)安全性的同時(shí)把性能損失降低到可接受的范圍。加密中間件內(nèi)嵌加密機(jī)制,客戶端和服務(wù)器端不進(jìn)行加解密運(yùn)算,只進(jìn)行訪問控制,由于數(shù)據(jù)加解密運(yùn)算是CPU密集型運(yùn)算,因此加密中間件分擔(dān)了客戶端和服務(wù)器端的CPU資源占用率,可以在一定程度上提高系統(tǒng)的讀寫性能。
鏡像系統(tǒng)中添加加密中間件主要有以下優(yōu)點(diǎn):
(1)在iSCSI層進(jìn)行加密操作,加解密效率高,密鑰管理安全方便;(2)鏡像數(shù)據(jù)以密文的形式傳輸和存儲(chǔ);(3)加密中間件獨(dú)立于前端主機(jī)和后端存儲(chǔ),易于部署;(4)加密中間件負(fù)責(zé)加解密運(yùn)算,減輕主機(jī)和服務(wù)器負(fù)擔(dān)。
基于加密中間件的鏡像方法不僅保證了網(wǎng)絡(luò)數(shù)據(jù)傳輸和存儲(chǔ)的安全性,而且在一定程度上提高了系統(tǒng)性能。
1 體系結(jié)構(gòu)
基于加密中間件的iSCSI遠(yuǎn)程鏡像系統(tǒng)結(jié)構(gòu)設(shè)計(jì)如圖1所示。iSCSI遠(yuǎn)程鏡像系統(tǒng)包括本地網(wǎng)絡(luò)、IP網(wǎng)絡(luò)、遠(yuǎn)程網(wǎng)絡(luò)三部分。本地網(wǎng)絡(luò)與遠(yuǎn)程網(wǎng)絡(luò)之間通過IP網(wǎng)絡(luò)進(jìn)行通信。本地系統(tǒng)與加密中間件位于本地網(wǎng)絡(luò),鏡像系統(tǒng)位于遠(yuǎn)程網(wǎng)絡(luò)。本地系統(tǒng)主要包括客戶機(jī)與本地存儲(chǔ)設(shè)備。鏡像系統(tǒng)主要包括服務(wù)器和SCSI磁盤陣列。加密中間件內(nèi)嵌加密機(jī)制,對(duì)數(shù)據(jù)進(jìn)行加解密處理??蛻舳伺c服務(wù)器端只進(jìn)行訪問控制。鏡像系統(tǒng)中存取數(shù)據(jù)的具體流程如圖2所示。
圖2中①~④示出了存數(shù)據(jù)的過程:客戶端將關(guān)鍵應(yīng)用數(shù)據(jù)先在本地存儲(chǔ)設(shè)備中存儲(chǔ)一份,同時(shí)復(fù)制一份經(jīng)過加密中間件加密處理變?yōu)閿?shù)據(jù)密文,密文經(jīng)過IP網(wǎng)絡(luò)發(fā)送給遠(yuǎn)程服務(wù)器,服務(wù)器將收到的數(shù)據(jù)密文存儲(chǔ)于SCSI磁盤陣列中用于容災(zāi)備份;⑤~⑧所示(取數(shù)據(jù)過程):客戶端先從本地存儲(chǔ)設(shè)備讀取數(shù)據(jù)使用,當(dāng)?shù)赜蛐詾?zāi)難發(fā)生,造成本地存儲(chǔ)設(shè)備中數(shù)據(jù)丟失和破壞,導(dǎo)致本地系統(tǒng)中的存儲(chǔ)數(shù)據(jù)失去使用價(jià)值。此時(shí),客戶端讀取遠(yuǎn)程服務(wù)器磁盤陣列中備份的數(shù)據(jù),數(shù)據(jù)密文流經(jīng)加密中間件被解密為可用的數(shù)據(jù)明文,供客戶端使用或用于恢復(fù)本地存儲(chǔ)設(shè)備中的數(shù)據(jù),從而保證工作的正常進(jìn)行。
2 加密中間件的設(shè)計(jì)與實(shí)現(xiàn)
2.1加密中間件的功能模塊
加密中間件加解密功能模塊的添加主要是基于目標(biāo)器框架tgt(Target Framework)[8]模塊中數(shù)據(jù)流的讀寫走向?qū)崿F(xiàn)。加解密功能模塊的算法是通過封裝OpenSSL[9]庫中的AES算法實(shí)現(xiàn)。
加密中間件主要包括的功能模塊如圖3所示。
從功能模塊圖可以看出,加密中間件獨(dú)立于前端主機(jī)和后端服務(wù)器,內(nèi)有獨(dú)立的目標(biāo)器和啟動(dòng)器相連接,對(duì)整個(gè)系統(tǒng)是透明的。圖中虛線左側(cè)是目標(biāo)器框架功能模塊,表示加密中間件通過本地網(wǎng)絡(luò)與客戶端進(jìn)行通信連接;虛線右側(cè)是啟動(dòng)器模塊與以太網(wǎng)適配器模塊,表示加密中間件通過IP網(wǎng)絡(luò)與遠(yuǎn)程服務(wù)器連接通信。
當(dāng)客戶端向遠(yuǎn)程服務(wù)器發(fā)送SCSI鏡像數(shù)據(jù)和命令時(shí),加密中間件內(nèi)功能模塊間的交互關(guān)系如下:首先客戶端通過本地網(wǎng)絡(luò)將數(shù)據(jù)信息送予加密中間件的tgt架構(gòu)的目標(biāo)驅(qū)動(dòng)器(target drivers)模塊,目標(biāo)驅(qū)動(dòng)器負(fù)責(zé)管理向啟動(dòng)器設(shè)備傳送連接請(qǐng)求和指令,以及硬件與tgt內(nèi)核(tgt core)之間或互聯(lián)子系統(tǒng)與tgt內(nèi)核之間的任務(wù)管理請(qǐng)求。數(shù)據(jù)信息繼續(xù)上傳到tgt 內(nèi)核模塊,tgt 內(nèi)核是目標(biāo)驅(qū)動(dòng)器與用戶空間守護(hù)進(jìn)程(tgtd)之間一個(gè)簡單的連接器,目標(biāo)驅(qū)動(dòng)器通過網(wǎng)絡(luò)連接接口向用戶空間守護(hù)進(jìn)程傳送SCSI命令向量和任務(wù)管理請(qǐng)求。最后數(shù)據(jù)信息和命令到達(dá)用戶空間守護(hù)進(jìn)程模塊,該進(jìn)程是用戶空間的進(jìn)程模塊,它獨(dú)立于傳輸協(xié)議和目標(biāo)驅(qū)動(dòng)器,是SCSI狀態(tài)機(jī),處理SCSI命令和任務(wù)管理請(qǐng)求,該模塊調(diào)用加解密模塊(Encrypt&decrypt)中的加密模塊對(duì)SCSI命令和數(shù)據(jù)進(jìn)行加密處理。加密后的數(shù)據(jù)密文被傳送到啟動(dòng)器模塊(iSCSI initiator),然后通過以太網(wǎng)適配器模塊(NIC driver)將加密數(shù)據(jù)發(fā)送到遠(yuǎn)端鏡像系統(tǒng)的存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)備份。tgt架構(gòu)中的tgt管理工具模塊是一個(gè)簡單的管理工具,用戶空間守護(hù)進(jìn)程模塊啟動(dòng)后,主要負(fù)責(zé)存儲(chǔ)設(shè)備上目標(biāo)節(jié)點(diǎn)和邏輯單元的創(chuàng)建或刪除,并顯示與客戶端的連接狀態(tài)信息等。
客戶端讀取鏡像系統(tǒng)數(shù)據(jù)功能模塊之間的交互是上述過程的逆過程,主要區(qū)別是調(diào)用解密模塊,對(duì)讀取的數(shù)據(jù)密文解密處理得到數(shù)據(jù)明文供客戶端使用。
2.2加密中間件的數(shù)據(jù)處理流程
加密中間件的主要作用是對(duì)網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行加解密處理。其數(shù)據(jù)處理流程如圖4所示。
客戶端啟動(dòng)器與遠(yuǎn)程服務(wù)器端目標(biāo)器經(jīng)過協(xié)商,交換登錄協(xié)議數(shù)據(jù)單元,進(jìn)行身份認(rèn)證,協(xié)商并相互認(rèn)證后,iSCSI鏡像系統(tǒng)進(jìn)入通信連接階段。連接建立后,客戶端向服務(wù)器端發(fā)送讀寫請(qǐng)求,加密中間件根據(jù)收到讀寫操作碼來判斷數(shù)據(jù)的加解密操作類型。當(dāng)收到寫操作碼2a,加密中間件則對(duì)客戶端傳來的數(shù)據(jù)信息進(jìn)行加密處理,并將加密后的密文信息送到遠(yuǎn)程服務(wù)器存儲(chǔ)備份。如果收到讀操作碼28,加密中間件從遠(yuǎn)程服務(wù)器中讀取備份數(shù)據(jù),對(duì)其進(jìn)行解密操作,解密后的數(shù)據(jù)明文供客戶端用戶使用。
2.3 密鑰問題
雖然對(duì)稱加密技術(shù)在加密強(qiáng)度和運(yùn)算速度方面完全能勝任并保證重要數(shù)據(jù)信息在網(wǎng)絡(luò)中傳輸,但它有一個(gè)致命的弱點(diǎn),加解密用的是同一個(gè)密鑰,通信雙方的共享密鑰在網(wǎng)絡(luò)上如何安全傳送仍是需要關(guān)注的問題。由于iSCSI遠(yuǎn)程鏡像系統(tǒng)遠(yuǎn)端服務(wù)器主要存放數(shù)據(jù)密文用于數(shù)據(jù)容災(zāi),因此密鑰保存在本地網(wǎng)絡(luò),不需要在網(wǎng)絡(luò)上傳輸加密密鑰,避免了密鑰在網(wǎng)絡(luò)中傳輸?shù)牟话踩詥栴}。密文與密鑰的存儲(chǔ)位置如圖5所示。
其基本原理為:用戶數(shù)據(jù)在通信之前, 發(fā)送方利用SHA1散列算法將用于產(chǎn)生密鑰的口令字符串生成一個(gè)固定長度的加密密鑰,用OpenSSL庫中的AES算法對(duì)要傳送的數(shù)據(jù)加密,密文通過以太網(wǎng)被傳送到遠(yuǎn)端存儲(chǔ),加密密鑰保存在本地,解密操作在客戶端進(jìn)行,解密數(shù)據(jù)信息供本地用戶使用。
3 性能測試與分析
系統(tǒng)安全性提高的同時(shí),必然會(huì)對(duì)系統(tǒng)性能產(chǎn)生一定的影響。系統(tǒng)吞吐率是衡量系統(tǒng)質(zhì)量和性能的一個(gè)重要指標(biāo)。本文通過Inter公司的IOmeter基準(zhǔn)測試工具對(duì)無加密機(jī)制中間件、加密中間件、LVM加密卷三種情況的吞吐率進(jìn)行了測試和對(duì)比。測試內(nèi)容包括讀取測試和寫入測試。讀取方式包括順序讀與隨機(jī)讀,寫入方式包括順序?qū)懞碗S機(jī)寫,數(shù)據(jù)塊大小為512 B~1 MB。
3.1測試環(huán)境
測試環(huán)境中加密中間件采用單個(gè)應(yīng)用服務(wù)器,客戶端、加密中間件和遠(yuǎn)程服務(wù)器的配置如表1所示。
3.2測試結(jié)果與性能分析
測試結(jié)果如圖6所示。
添加的加密中間件系統(tǒng)CPU利用率(%),如表2所示。
從實(shí)驗(yàn)結(jié)果看,加密中間件與LVM卷加密文件系統(tǒng)對(duì)系統(tǒng)性能都有影響,其中隨機(jī)讀寫對(duì)系統(tǒng)性能影響較小,順序讀寫對(duì)系統(tǒng)性能影響較大。對(duì)圖6測試結(jié)果中不同數(shù)據(jù)塊大小的IO吞吐率取其平均值,計(jì)算可知添加加密中間件系統(tǒng)的順序讀性能比添加加密卷系統(tǒng)提高了17%左右,順序?qū)懶阅芴岣吡?5%左右,其順序讀寫性能平均提高了31%左右;隨機(jī)讀性能提高了18%左右,隨機(jī)寫性能提高了9%左右,其隨機(jī)讀寫性能平均提高了13%左右。但與無安全的系統(tǒng)相比,其順序讀的性能下降了32%左右,順序?qū)懶阅芟陆盗?3%左右,順序讀寫性能平均下降了38%左右;隨機(jī)讀性能下降了11%左右,隨機(jī)寫性能下降了7%左右,其隨機(jī)讀寫性能平均下降了9%左右。塊大小也會(huì)影響性能,一般情況下,塊大小增加,吞吐率也會(huì)增加。但在順序讀的測試結(jié)果中,當(dāng)塊大小為64 KB時(shí)出現(xiàn)了轉(zhuǎn)折點(diǎn),當(dāng)塊大小為128 KB時(shí),吞吐率達(dá)到最大,1 MB時(shí)吞吐率開始下降。在順序?qū)懙臏y試結(jié)果中,通過加密中間件CPU占用率測試發(fā)現(xiàn),當(dāng)塊大小為1 MB時(shí),CPU的利用率超過100%,CPU成為瓶頸,說明當(dāng)數(shù)據(jù)塊很大時(shí),加解密開銷對(duì)性能影響比較大。
為了在保證信息傳輸和存儲(chǔ)安全性的同時(shí)提高系統(tǒng)性能,本文提出基于加密中間件的iSCSI遠(yuǎn)程鏡像方法,解決了基于應(yīng)用主機(jī)進(jìn)行加密運(yùn)算導(dǎo)致客戶端和服務(wù)器端CPU資源占用率過高的問題,在保證信息傳輸和存儲(chǔ)安全的同時(shí),進(jìn)一步提高了系統(tǒng)性能。從性能測試結(jié)果圖可以看出,與LVM加密卷系統(tǒng)相比,加密中間件系統(tǒng)的讀寫性能均有一定程度的提高。由實(shí)驗(yàn)數(shù)據(jù)計(jì)算可知,其隨機(jī)讀寫性能平均提高了13%,順序讀寫性能平均提高了31%。
參考文獻(xiàn)
[1] Zhang Ming, Liu Yinan, Yang Qing(Ken). Costeffective remote mirroring using the iSCSI protocol[C].Proceedings of the 21st IEEE Conference on Mass of Storage Conferences, 2004.
[2] PATTERSON R H. Snap Mirror: File-system-based asyn chronous mirroring for disaster recovery[C]. In First USENIX conference on File and Storage Technologies.2002.Monterey, CA, USA.
[3] Tang Shuangyi, Lu Yingping, DU H C. Performance study of software-based iSCSI security[C]. Proceedings of the First International IEEE Security in Storage Workshop,2002.
[4] CHAITANYA S, BUTLER K, SIVASUBRAMANIAM. Design,implementation and evaluation of security in iSCSI-based network storage systems[C].Second ACM International Workshop on Storage Security and Survivability,2006.
[5] KAMISAKA K,YAMAGUCHI S, OGUCHI M. Performance analysis of iSCSI middleware optimazed for encryption processing in a long-latency environment[C].Proceedings of the 20th International Conference on Advanced Information Networking and Applications(AINA′06),2006.
[6] dm-crypt: a device-mapper crypto target for Linux. Website. http://www. saout.de/misc/dm-crypt/.
[7] VELLAL S S.A device mapper based encryption layerfor trans crypt[C].Department of Computer Science & Engineering.Indian Institute of Technology Kanpur,2008.
[8] TOMONORI F, CHRISTIE M. tgt: framework for storage target drivers. 2006 Linux Symposium,2006.
[9] Welcome to the OpenSSL project[DB/OL]. http://www.openssl.org.