文獻標識碼: A
文章編號: 0258-7998(2011)09-114-04
信息化建設的深入發(fā)展帶動了企業(yè)重要信息資產(chǎn)數(shù)據(jù)的日益增長。為了保護與企業(yè)生存密切相關的數(shù)據(jù)信息的安全,互聯(lián)網(wǎng)小型計算機系統(tǒng)接口iSCSI(Internet Small Computer System Interface)遠程鏡像技術[1-2]被用于數(shù)據(jù)容災系統(tǒng)。隨著iSCSI應用的快速發(fā)展,性能高、安全性強的IP存儲正成為網(wǎng)絡存儲領域的研究熱點。iSCSI使用標準的TCP/IP協(xié)議,將現(xiàn)有SCSI接口與以太網(wǎng)技術結合,在IP網(wǎng)絡上傳送SCSI數(shù)據(jù)和命令,因此普通IP網(wǎng)絡上的攻擊手段都適用于iSCSI環(huán)境,攻擊者也可以通過遠程容災備份或數(shù)據(jù)鏡像來竊取保存在存儲設備中的數(shù)據(jù),現(xiàn)有的iSCSI安全機制不能提供足夠的安全保護。
目前保證iSCSI存儲系統(tǒng)數(shù)據(jù)安全的方法主要有兩種:加密通信線路上的數(shù)據(jù);加密存儲設備上的數(shù)據(jù)。安全性和性能通常是相互矛盾的,這兩種方式都是基于應用主機進行加解密運算,導致客戶端或服務器端CPU占用率過高,大大降低了系統(tǒng)性能。第一種情況如:IETF提出的IPSec方法[3]能夠提供線上的加密保護卻嚴重降低性能,為了提高系統(tǒng)性能,學者們對該方案進行了研究和改進,在一定程度上提高[4]和優(yōu)化[5]了系統(tǒng)性能,但該情況并不能保證存儲設備上的數(shù)據(jù)安全。相反,第二種情況:加密文件系統(tǒng)雖能保證存儲設備的數(shù)據(jù)安全,但不能保證線上的數(shù)據(jù)安全,同樣該情況對系統(tǒng)的性能影響也很大?;谕瑫r保證線上和存儲設備上的數(shù)據(jù)安全性考慮,邏輯盤卷管理LVM(Logical Volume Manager)加密卷[6-7]能同時滿足數(shù)據(jù)傳輸和存儲的安全性需要,但其加解密運算也是在客戶端進行,系統(tǒng)的讀寫性能仍要受到影響。
本文提出了在iSCSI遠程鏡像路徑上添加加密中間件,希望在安全和性能之間找到一個平衡點,在保證網(wǎng)絡傳輸和存儲數(shù)據(jù)安全性的同時把性能損失降低到可接受的范圍。加密中間件內(nèi)嵌加密機制,客戶端和服務器端不進行加解密運算,只進行訪問控制,由于數(shù)據(jù)加解密運算是CPU密集型運算,因此加密中間件分擔了客戶端和服務器端的CPU資源占用率,可以在一定程度上提高系統(tǒng)的讀寫性能。
鏡像系統(tǒng)中添加加密中間件主要有以下優(yōu)點:
(1)在iSCSI層進行加密操作,加解密效率高,密鑰管理安全方便;(2)鏡像數(shù)據(jù)以密文的形式傳輸和存儲;(3)加密中間件獨立于前端主機和后端存儲,易于部署;(4)加密中間件負責加解密運算,減輕主機和服務器負擔。
基于加密中間件的鏡像方法不僅保證了網(wǎng)絡數(shù)據(jù)傳輸和存儲的安全性,而且在一定程度上提高了系統(tǒng)性能。
1 體系結構
基于加密中間件的iSCSI遠程鏡像系統(tǒng)結構設計如圖1所示。iSCSI遠程鏡像系統(tǒng)包括本地網(wǎng)絡、IP網(wǎng)絡、遠程網(wǎng)絡三部分。本地網(wǎng)絡與遠程網(wǎng)絡之間通過IP網(wǎng)絡進行通信。本地系統(tǒng)與加密中間件位于本地網(wǎng)絡,鏡像系統(tǒng)位于遠程網(wǎng)絡。本地系統(tǒng)主要包括客戶機與本地存儲設備。鏡像系統(tǒng)主要包括服務器和SCSI磁盤陣列。加密中間件內(nèi)嵌加密機制,對數(shù)據(jù)進行加解密處理。客戶端與服務器端只進行訪問控制。鏡像系統(tǒng)中存取數(shù)據(jù)的具體流程如圖2所示。
圖2中①~④示出了存數(shù)據(jù)的過程:客戶端將關鍵應用數(shù)據(jù)先在本地存儲設備中存儲一份,同時復制一份經(jīng)過加密中間件加密處理變?yōu)閿?shù)據(jù)密文,密文經(jīng)過IP網(wǎng)絡發(fā)送給遠程服務器,服務器將收到的數(shù)據(jù)密文存儲于SCSI磁盤陣列中用于容災備份;⑤~⑧所示(取數(shù)據(jù)過程):客戶端先從本地存儲設備讀取數(shù)據(jù)使用,當?shù)赜蛐詾碾y發(fā)生,造成本地存儲設備中數(shù)據(jù)丟失和破壞,導致本地系統(tǒng)中的存儲數(shù)據(jù)失去使用價值。此時,客戶端讀取遠程服務器磁盤陣列中備份的數(shù)據(jù),數(shù)據(jù)密文流經(jīng)加密中間件被解密為可用的數(shù)據(jù)明文,供客戶端使用或用于恢復本地存儲設備中的數(shù)據(jù),從而保證工作的正常進行。
2 加密中間件的設計與實現(xiàn)
2.1加密中間件的功能模塊
加密中間件加解密功能模塊的添加主要是基于目標器框架tgt(Target Framework)[8]模塊中數(shù)據(jù)流的讀寫走向實現(xiàn)。加解密功能模塊的算法是通過封裝OpenSSL[9]庫中的AES算法實現(xiàn)。
加密中間件主要包括的功能模塊如圖3所示。
從功能模塊圖可以看出,加密中間件獨立于前端主機和后端服務器,內(nèi)有獨立的目標器和啟動器相連接,對整個系統(tǒng)是透明的。圖中虛線左側是目標器框架功能模塊,表示加密中間件通過本地網(wǎng)絡與客戶端進行通信連接;虛線右側是啟動器模塊與以太網(wǎng)適配器模塊,表示加密中間件通過IP網(wǎng)絡與遠程服務器連接通信。
當客戶端向遠程服務器發(fā)送SCSI鏡像數(shù)據(jù)和命令時,加密中間件內(nèi)功能模塊間的交互關系如下:首先客戶端通過本地網(wǎng)絡將數(shù)據(jù)信息送予加密中間件的tgt架構的目標驅動器(target drivers)模塊,目標驅動器負責管理向啟動器設備傳送連接請求和指令,以及硬件與tgt內(nèi)核(tgt core)之間或互聯(lián)子系統(tǒng)與tgt內(nèi)核之間的任務管理請求。數(shù)據(jù)信息繼續(xù)上傳到tgt 內(nèi)核模塊,tgt 內(nèi)核是目標驅動器與用戶空間守護進程(tgtd)之間一個簡單的連接器,目標驅動器通過網(wǎng)絡連接接口向用戶空間守護進程傳送SCSI命令向量和任務管理請求。最后數(shù)據(jù)信息和命令到達用戶空間守護進程模塊,該進程是用戶空間的進程模塊,它獨立于傳輸協(xié)議和目標驅動器,是SCSI狀態(tài)機,處理SCSI命令和任務管理請求,該模塊調用加解密模塊(Encrypt&decrypt)中的加密模塊對SCSI命令和數(shù)據(jù)進行加密處理。加密后的數(shù)據(jù)密文被傳送到啟動器模塊(iSCSI initiator),然后通過以太網(wǎng)適配器模塊(NIC driver)將加密數(shù)據(jù)發(fā)送到遠端鏡像系統(tǒng)的存儲設備進行數(shù)據(jù)備份。tgt架構中的tgt管理工具模塊是一個簡單的管理工具,用戶空間守護進程模塊啟動后,主要負責存儲設備上目標節(jié)點和邏輯單元的創(chuàng)建或刪除,并顯示與客戶端的連接狀態(tài)信息等。
客戶端讀取鏡像系統(tǒng)數(shù)據(jù)功能模塊之間的交互是上述過程的逆過程,主要區(qū)別是調用解密模塊,對讀取的數(shù)據(jù)密文解密處理得到數(shù)據(jù)明文供客戶端使用。
2.2加密中間件的數(shù)據(jù)處理流程
加密中間件的主要作用是對網(wǎng)絡數(shù)據(jù)流進行加解密處理。其數(shù)據(jù)處理流程如圖4所示。
客戶端啟動器與遠程服務器端目標器經(jīng)過協(xié)商,交換登錄協(xié)議數(shù)據(jù)單元,進行身份認證,協(xié)商并相互認證后,iSCSI鏡像系統(tǒng)進入通信連接階段。連接建立后,客戶端向服務器端發(fā)送讀寫請求,加密中間件根據(jù)收到讀寫操作碼來判斷數(shù)據(jù)的加解密操作類型。當收到寫操作碼2a,加密中間件則對客戶端傳來的數(shù)據(jù)信息進行加密處理,并將加密后的密文信息送到遠程服務器存儲備份。如果收到讀操作碼28,加密中間件從遠程服務器中讀取備份數(shù)據(jù),對其進行解密操作,解密后的數(shù)據(jù)明文供客戶端用戶使用。
2.3 密鑰問題
雖然對稱加密技術在加密強度和運算速度方面完全能勝任并保證重要數(shù)據(jù)信息在網(wǎng)絡中傳輸,但它有一個致命的弱點,加解密用的是同一個密鑰,通信雙方的共享密鑰在網(wǎng)絡上如何安全傳送仍是需要關注的問題。由于iSCSI遠程鏡像系統(tǒng)遠端服務器主要存放數(shù)據(jù)密文用于數(shù)據(jù)容災,因此密鑰保存在本地網(wǎng)絡,不需要在網(wǎng)絡上傳輸加密密鑰,避免了密鑰在網(wǎng)絡中傳輸?shù)牟话踩詥栴}。密文與密鑰的存儲位置如圖5所示。
其基本原理為:用戶數(shù)據(jù)在通信之前, 發(fā)送方利用SHA1散列算法將用于產(chǎn)生密鑰的口令字符串生成一個固定長度的加密密鑰,用OpenSSL庫中的AES算法對要傳送的數(shù)據(jù)加密,密文通過以太網(wǎng)被傳送到遠端存儲,加密密鑰保存在本地,解密操作在客戶端進行,解密數(shù)據(jù)信息供本地用戶使用。
3 性能測試與分析
系統(tǒng)安全性提高的同時,必然會對系統(tǒng)性能產(chǎn)生一定的影響。系統(tǒng)吞吐率是衡量系統(tǒng)質量和性能的一個重要指標。本文通過Inter公司的IOmeter基準測試工具對無加密機制中間件、加密中間件、LVM加密卷三種情況的吞吐率進行了測試和對比。測試內(nèi)容包括讀取測試和寫入測試。讀取方式包括順序讀與隨機讀,寫入方式包括順序寫和隨機寫,數(shù)據(jù)塊大小為512 B~1 MB。
3.1測試環(huán)境
測試環(huán)境中加密中間件采用單個應用服務器,客戶端、加密中間件和遠程服務器的配置如表1所示。
3.2測試結果與性能分析
測試結果如圖6所示。
添加的加密中間件系統(tǒng)CPU利用率(%),如表2所示。
從實驗結果看,加密中間件與LVM卷加密文件系統(tǒng)對系統(tǒng)性能都有影響,其中隨機讀寫對系統(tǒng)性能影響較小,順序讀寫對系統(tǒng)性能影響較大。對圖6測試結果中不同數(shù)據(jù)塊大小的IO吞吐率取其平均值,計算可知添加加密中間件系統(tǒng)的順序讀性能比添加加密卷系統(tǒng)提高了17%左右,順序寫性能提高了45%左右,其順序讀寫性能平均提高了31%左右;隨機讀性能提高了18%左右,隨機寫性能提高了9%左右,其隨機讀寫性能平均提高了13%左右。但與無安全的系統(tǒng)相比,其順序讀的性能下降了32%左右,順序寫性能下降了43%左右,順序讀寫性能平均下降了38%左右;隨機讀性能下降了11%左右,隨機寫性能下降了7%左右,其隨機讀寫性能平均下降了9%左右。塊大小也會影響性能,一般情況下,塊大小增加,吞吐率也會增加。但在順序讀的測試結果中,當塊大小為64 KB時出現(xiàn)了轉折點,當塊大小為128 KB時,吞吐率達到最大,1 MB時吞吐率開始下降。在順序寫的測試結果中,通過加密中間件CPU占用率測試發(fā)現(xiàn),當塊大小為1 MB時,CPU的利用率超過100%,CPU成為瓶頸,說明當數(shù)據(jù)塊很大時,加解密開銷對性能影響比較大。
為了在保證信息傳輸和存儲安全性的同時提高系統(tǒng)性能,本文提出基于加密中間件的iSCSI遠程鏡像方法,解決了基于應用主機進行加密運算導致客戶端和服務器端CPU資源占用率過高的問題,在保證信息傳輸和存儲安全的同時,進一步提高了系統(tǒng)性能。從性能測試結果圖可以看出,與LVM加密卷系統(tǒng)相比,加密中間件系統(tǒng)的讀寫性能均有一定程度的提高。由實驗數(shù)據(jù)計算可知,其隨機讀寫性能平均提高了13%,順序讀寫性能平均提高了31%。
參考文獻
[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.