吳玉芹,張枝令
(寧德師范學(xué)院計(jì)算機(jī)與信息工程系,福建寧德 352100)
Linux下的 iSCS I協(xié)議安全性的分析
吳玉芹,張枝令
(寧德師范學(xué)院計(jì)算機(jī)與信息工程系,福建寧德 352100)
從認(rèn)證和數(shù)據(jù)加密兩個(gè)角度研究了 iSCSI的安全性,分析了 SSH安全機(jī)制對(duì) iSCSI存儲(chǔ)系統(tǒng)的性能影響,并對(duì) Rsync算法進(jìn)行改進(jìn),在此基礎(chǔ)上提供了 IP層和上層協(xié)議的 iSCSI安全;使用 IOmeter進(jìn)行性能測(cè)試,并對(duì) iSCSI在 2種安全機(jī)制下的性能測(cè)試結(jié)果進(jìn)行分析.
iSCSI協(xié)議;數(shù)據(jù)加密;SSH;Rsync算法
由 Internet國(guó)際任務(wù)組 (IETF)主持制訂的 Internet SCSI(iSCSI)協(xié)議[1],定義了通過(guò) TCP/IP網(wǎng)絡(luò)進(jìn)行塊級(jí)存儲(chǔ)訪問(wèn)的方法,通過(guò)在 IP網(wǎng)絡(luò)上傳送 SCSI命令以及存儲(chǔ)數(shù)據(jù),iSCSI使得傳輸、存儲(chǔ)以及管理數(shù)據(jù)的距離大大增加.但是,由于 iSCSI是基于 TCP/IP傳遞數(shù)據(jù),TCP/IP本身又不具有安全特性,容易受到來(lái)自第三方的攻擊和惡意破壞,從而影響數(shù)據(jù)存儲(chǔ)的安全性和一致性[2].因此,iSCSI的安全性成為這項(xiàng)新技術(shù)被廣泛應(yīng)用的關(guān)鍵因素.
1.1 SSH協(xié)議內(nèi)容SSH(Secure Shell)協(xié)議[3]于 1995年由 Tatu Ylonen提出.SSH加密口令及數(shù)據(jù)可以在不安全的網(wǎng)絡(luò)上透明地提供強(qiáng)認(rèn)證和安全通信.SSH不涉及與操作系統(tǒng)核心相關(guān)的技術(shù)細(xì)節(jié),容易實(shí)現(xiàn);已有的應(yīng)用,只要是利用可靠傳輸服務(wù)實(shí)現(xiàn) (比如 TCP over IP)的,都可以充分利用 SSH提供的 TCP端口轉(zhuǎn)發(fā)功能達(dá)到安全防護(hù)的目的;SSH協(xié)議設(shè)計(jì)之初充分考慮到了擴(kuò)展性的問(wèn)題,很容易嵌入新的密碼算法、認(rèn)證方式以及密鑰交換協(xié)議等.
傳輸層協(xié)議,提供諸如認(rèn)證、信任和完整性檢驗(yàn)等安全措施,此外還可以任意地提供數(shù)據(jù)壓縮功能.通常情況下,這些傳輸層協(xié)議都建立在面向連接的 TCP數(shù)據(jù)流之上.用戶認(rèn)證協(xié)議層,用來(lái)實(shí)現(xiàn)服務(wù)器的跟客戶端用戶之間的身份認(rèn)證,運(yùn)行在傳輸層協(xié)議之上.連接協(xié)議層,分配多個(gè)加密通道至一些邏輯通道上,運(yùn)行在用戶認(rèn)證層協(xié)議之上.
1.2 使用密鑰登錄SSH默認(rèn)情況下,可以使用用戶名和密碼登錄,此時(shí)安全性受到密碼強(qiáng)度的限制.SSH還可以使用密鑰登錄.使用 SSH-keygen可以用來(lái)生成密鑰,默認(rèn)的密鑰是 2 048位的 RSA密鑰SSH-keygen會(huì)提示密鑰的加密密碼,每次使用密鑰時(shí)需要該密碼進(jìn)行解密,增強(qiáng)密鑰的安全性.SSH-keygen會(huì)生成兩個(gè)文件:id_rsa和 id_rsa.pub,分別是私鑰和公鑰.將 id_rsa.pub文件改名為 authorized keys放在服務(wù)器上的~/.SSH/目錄下,如果服務(wù)器該目錄下已有這個(gè)文件,則可以把 id_rsa.pub中的內(nèi)容,復(fù)制到 authorized keys中.將私鑰放在自己電腦上~/.SSH/目錄下,私鑰需要妥善保管,此后登錄,就不會(huì)再詢問(wèn)服務(wù)器密碼,只會(huì)詢問(wèn)私鑰的解密密碼.
Rsync是一個(gè)遠(yuǎn)程數(shù)據(jù)同步工具,可通過(guò) LAN/WAN快速同步多臺(tái)主機(jī)間的文件.Rsync本來(lái)是用以取代 rcp的一個(gè)工具,它當(dāng)前由 Rsync.samba.org維護(hù).Rsync使用 Rsync算法來(lái)使本地和遠(yuǎn)程主機(jī)之間的文件達(dá)到同步,該算法只傳送 2個(gè)文件的不同部分,而不是每次都整份傳送,因此傳輸速度相當(dāng)快.
Rsync算法主要針對(duì)當(dāng)時(shí)網(wǎng)絡(luò)情況的不穩(wěn)定、窄帶寬、高延時(shí)作出的,適合對(duì)一些小尺寸、相似度高的文件進(jìn)行同步,不適合大尺寸、路徑結(jié)構(gòu)深、文件數(shù)量龐大的文件群進(jìn)行同步.針對(duì) Rsync算法已經(jīng)不適合現(xiàn)在數(shù)量大的文件進(jìn)行同步的問(wèn)題,提出了兩級(jí)緩存是目前解決網(wǎng)絡(luò)帶寬和防止重復(fù)訪問(wèn)的有效手段.
網(wǎng)絡(luò)塊NBD(Network Block Device)設(shè)備是一個(gè)軟件,它從一個(gè)節(jié)點(diǎn)共享它的資源到另外一個(gè)節(jié)點(diǎn).NBD是 C/S工作模式,在服務(wù)器端,NBD可以從磁盤空間、存儲(chǔ)空間或者其他塊設(shè)備請(qǐng)求一些資源,然后保留一個(gè)本地塊級(jí)接口給客戶端,客戶端通過(guò) TCP/IP可以訪問(wèn)這些資源.但這不是一種常用的方式,NBD本身有些缺限,它非常難于設(shè)置管理,如果只是要在少數(shù)幾個(gè)Web服務(wù)器間復(fù)制數(shù)據(jù),用 NBD只會(huì)帶來(lái)更多的麻煩.在 NBD基礎(chǔ)上,提出一個(gè)新的計(jì)劃共享存儲(chǔ) RMP(Remote Memory Pool),也是 C/S模式,但是共享存儲(chǔ)將不再是一個(gè)塊設(shè)備,而是保留一個(gè)直接的 I/O接口給客戶端,對(duì)于客戶端,通過(guò)服務(wù)器共享存儲(chǔ)是一個(gè)遠(yuǎn)程的存儲(chǔ)池,遠(yuǎn)程存儲(chǔ)池通過(guò) I/O接口可以直接被訪問(wèn).
RiCache是一個(gè)兩級(jí)緩存,兩級(jí)緩存都由一個(gè)管理者管理.一個(gè) Cache在 iSCSI啟動(dòng)器的內(nèi)存中,另一個(gè)在 RMP中,因此,iSCSI啟動(dòng)器和 RMP客戶必須運(yùn)行在相同的節(jié)點(diǎn)上,此外,RMP服務(wù)器可以分布在不同的其他節(jié)點(diǎn)上,這種設(shè)計(jì)可以充分利用空閑存儲(chǔ)空間,在服務(wù)器端可以對(duì)不同的節(jié)點(diǎn)更有效地平衡存儲(chǔ)問(wèn)題.
緩存 (Cache)通過(guò) Linux內(nèi)核的高性能列表來(lái)組織,兩個(gè) Cache隊(duì)列都有自己的通信列表.在內(nèi)存中的 Cache,當(dāng)讀操作被訪問(wèn)某一地址在 Cache中命中,這個(gè) Cache塊將被放到列表的頭部,如果沒(méi)有命中Cache,這個(gè)請(qǐng)求將被傳到目標(biāo)器,請(qǐng)求數(shù)據(jù)返回到目標(biāo)器后,一個(gè)新的 Cache塊需要加入到列表中,如果列表滿了,管理者將移走最后的 Cache塊內(nèi)容到 RMP中,用新的數(shù)據(jù)填充 Cache塊,然后移動(dòng)到列表的頭部.在 RMP中,Cache塊管理和在內(nèi)存中 Cache的管理是相同的.
3.1 試驗(yàn)環(huán)境使用 2臺(tái)普通的 PC機(jī),一臺(tái)作為目標(biāo)器 (target),一臺(tái)作為啟動(dòng)器 (initiator).實(shí)驗(yàn)平臺(tái)配置如表 1所示.
表1 實(shí)驗(yàn)中 target和 initiator的硬件配置
選擇 Linux作為試驗(yàn)平臺(tái).iSCSI的 initiator端和 target端都采用 Red HatLinux 9.0,內(nèi)核版本為 2.6.18.作為 iSCSI的 initiator端和 target端實(shí)現(xiàn).此外,筆者選擇 openSSH作為 SSH協(xié)議的實(shí)現(xiàn).initiator端 IP地址為 10.0.0.1,target端 IP地址為 192.168.0.1.
3.2 Linux下的openSSH的安裝與啟動(dòng) 在 Linux 2.6.18內(nèi)核中已經(jīng)集成了 OpenSSH-4.3p2-10版本,首先需要將其卸載,運(yùn)用以下命令進(jìn)行卸載:
3.3 使用 Rsync做 Remo te syncRsync是 Linux系統(tǒng)下的數(shù)據(jù)鏡像備份工具,從命名上就可以看出來(lái)了Remote sync.
首先要先對(duì) target端 (192.168.0.1)把 Rsync的 Server on起來(lái)
3.4 SSH下 iSCS I安全的實(shí)現(xiàn)在基于 SSH的安全 iSCSI方案中,SSH的認(rèn)證方式采用公鑰認(rèn)證方式.依次執(zhí)行以下命令在 initiator端和 target端進(jìn)行處理,如下圖 1、圖 2所示.
圖1 initiator端密鑰的生成
圖2 target端公鑰的追加
3.5 測(cè)試結(jié)果與性能分析考慮到 iSCSI是一種數(shù)據(jù)塊級(jí)的傳輸技術(shù),因此本文中的實(shí)驗(yàn)采用 Intel公司的 IOmeter[4]對(duì)安全 iSCSI的 CPU利用率進(jìn)行測(cè)試.
根據(jù) iSCSI協(xié)議的會(huì)話過(guò)程,在 login階段使用 CHAP認(rèn)證,在 iSCSI連接建立之后的數(shù)據(jù)傳輸階段分別采用以下 2種方案對(duì) iSCSI存儲(chǔ)系統(tǒng)進(jìn)行性能測(cè)試:
1)無(wú)任何安全機(jī)制下的 iSCSI存儲(chǔ)系統(tǒng);
2)基于 SSH的安全 iSCSI存儲(chǔ)系統(tǒng).
基于 SSH的安全 iSCSI存儲(chǔ)系統(tǒng)的性能測(cè)試時(shí),利用了 SSH的 Rsync遠(yuǎn)程數(shù)據(jù)同步工具建立了安全隧道,從而使得整個(gè) iSCSI會(huì)話在 TCP層得到加密保護(hù);為了進(jìn)行公平的比較,2種安全機(jī)制下都使用3DES加密算法進(jìn)行測(cè)試.
使用 Iometer在 initiator端掛載上的 sdb上通過(guò)讀寫操作測(cè)試 CPU利用率.I ometer的測(cè)試參數(shù)為:讀寫操作各占 50%、順序和隨機(jī)各占 50%、數(shù)據(jù)塊大小從 1 K到 1 024 K,測(cè)試時(shí)間為 10 min,主要對(duì) iSCSI存儲(chǔ)系統(tǒng)的 CPU利用率進(jìn)行測(cè)試.測(cè)試結(jié)果如圖 3所示.
從圖 3可以看出,CPU利用率在 2種安全方案下均有大幅度的增長(zhǎng).與不施加安全機(jī)制的 iSCSI相比,在 iSCSI+SSH模式下,CPU利用率的增幅為 46.5%.因此,基于 TCP/IP的 iSCSI本身是一種明顯的CPU密集型業(yè)務(wù),IP包的拆解和重裝等業(yè)務(wù)會(huì)占用很多的系統(tǒng)資源,導(dǎo)致系統(tǒng)的 CPU利用率大幅度的增加,而在 TCP/IP中引入某種安全機(jī)制后,將會(huì)進(jìn)一步加劇對(duì)系統(tǒng)資源的占用情況,進(jìn)而影響 iSCSI的性能.而通過(guò)使用 SSH在 TCP層對(duì) iSCSI進(jìn)行安全保護(hù)的方法,CPU利用率卻可以增幅 46.5%,具有比較明顯的優(yōu)勢(shì).
圖3 CPU利用率的測(cè)試結(jié)果
本文從 iSCSI存儲(chǔ)系統(tǒng)的安全出發(fā),對(duì) iSCSI協(xié)議和 SSH安全協(xié)議進(jìn)行了介紹,針對(duì) Rsync重點(diǎn)描述了它的核心算法改進(jìn),對(duì)基于 SSH的 iSCSI存儲(chǔ)系統(tǒng)的性能進(jìn)行了驗(yàn)證,使用 openSSH實(shí)現(xiàn) SSH的安全機(jī)制,實(shí)驗(yàn)中通過(guò)使用 SSH在 TCP層對(duì) iSCSI進(jìn)行安全保護(hù)的方法,能夠提高 iSCSI的性能.對(duì)上述方案的檢驗(yàn)只能在較為理想的情況下進(jìn)行,而其細(xì)節(jié)上還存在一些缺陷.對(duì)這些問(wèn)題的解決以及對(duì) iSCSI存儲(chǔ)系統(tǒng)的改進(jìn)與實(shí)現(xiàn),將有待于在今后的工作中進(jìn)一步研究,并期望提高 iSCSI的安全性能.
[1]OHSAKIH.Perfor mance Evaluation of iSCSI-APT(iSCSIwith Automatic Parallelis m Tuning)on S INET3 with Layer-1 Bandwidth on Demand Service:proceedings Information and Telecommunication Technologies(APSITT),2010 8th Asia-Pacific Symposium on,Kuching,June 15-18,2010[C].[s.n.],2010.
[2]MAO Bo,FENG Dan,Wu Su-zhen,et al.Performance-Directed iSCSI Security with Parallel Encryption:proceedings Advanced Information Ne tworking and Applications,Okinawa,March 25-28,2008[C].[s.n.],2008:855-860.
[3]XIE Chang-sheng,FU Xiang-lin,HAN De-zhi,et al.The study and imp lementation of a new iSCS I based SAN[J].Journal of Computer Research and Development,2003(40):246-251.
[4]高峰.網(wǎng)絡(luò)存儲(chǔ)的性能測(cè)試[D].哈爾濱:哈爾濱工程大學(xué)圖書館,2008.
Analysis of iSCSI Technology Security Based on L inux
WU Yu-qin,ZHANG Zhi-ling
(Department of Computer Information Engineering,Ningde Nor malUniversity,Ningde 352100,China)
In terms of authentication and data encryption,iSCSI security was analyzed,the effects of SSH on iSCSIwere analyzed,and Rsync algorithm was improved,and iSCSI security to IP layer and the upper protocols were proposed; IOmeter was used to measure perfor mance of it,and iSCSI’s performance results under two schemeswere discused.
iSCSIprotocol;data encryption;SSH;Rsync algorithm
TP 31 < class="emphasis_bold">文獻(xiàn)標(biāo)志碼:A
A
1004-1729(2010)04-0332-06
2010-08-20
福建省教育廳B科研類項(xiàng)目 (JB09236);寧德師范學(xué)院科研資助項(xiàng)目(2009304)
吳玉芹 (1979-),女,內(nèi)蒙古赤峰人,寧德師范學(xué)院計(jì)算機(jī)與信息工程系講師,碩士.