摘要
實(shí)現(xiàn)網(wǎng)絡(luò)安全的方法有很多,本文主要介紹SSL VPN的相關(guān)實(shí)現(xiàn)技術(shù)及測試方法,重點(diǎn)介紹使用IXIA公司的IXIA400T自動(dòng)化測試儀表對我們自主研發(fā)的SSL VPN安全網(wǎng)關(guān)的性能測試。
1 引言
隨著互聯(lián)網(wǎng)在人們的生活、學(xué)習(xí)、工作中的應(yīng)用越來越廣泛,網(wǎng)絡(luò)安全問題受到大家越來越多的重視,互聯(lián)網(wǎng)面臨的威脅主要來自于黑客攻擊、管理欠缺、網(wǎng)絡(luò)本身固有的缺陷、應(yīng)用軟件的漏洞以及后門等等。在網(wǎng)絡(luò)中通信的雙方通過不安全的媒介進(jìn)行通信,必須從以下幾個(gè)方面保證來保證通信的安全。
(1)秘密性:只有發(fā)送者和接收者可以理解所傳遞的消息的內(nèi)容。
(2)身份認(rèn)證:進(jìn)行通信的雙方——發(fā)送者和接收者——都需要確認(rèn)彼此的身份,也就是確認(rèn)對方真正是所宣稱的那個(gè)人。
(3)消息完整性:發(fā)送者和接收者需要同時(shí)確信通信的內(nèi)容在傳輸過程中沒有被惡意或者無意更改。
實(shí)現(xiàn)網(wǎng)絡(luò)安全的方法有很多,本文主要介紹SSL VPN的相關(guān)實(shí)現(xiàn)技術(shù)及測試方法,重點(diǎn)介紹使用IXIA公司的IXIA400T自動(dòng)化測試儀表對我們自主研發(fā)的SSL VPN安全網(wǎng)關(guān)的性能測試。
2 SSL VPN實(shí)現(xiàn)技術(shù)
SSL VPN一般的實(shí)現(xiàn)方式是在企業(yè)的防火墻后面,被保護(hù)服務(wù)器(服務(wù)器群)前面放置一個(gè)SSL代理服務(wù)器。如果用戶希望安全地連接到公司網(wǎng)絡(luò)上,那么當(dāng)用戶在瀏覽器上輸入一個(gè)URL后,連接將被SSL代理服務(wù)器取得,并驗(yàn)證該用戶的身份,通過身份驗(yàn)證后SSL代理服務(wù)器將提供一個(gè)遠(yuǎn)程用戶與各種不同的應(yīng)用服務(wù)器之間連接。SSL VPN的主要實(shí)現(xiàn)技術(shù)有代理、應(yīng)用轉(zhuǎn)換、端口轉(zhuǎn)發(fā)和網(wǎng)絡(luò)擴(kuò)展。
(1)代理Proxying:SSL VPN網(wǎng)關(guān)將來自遠(yuǎn)端瀏覽器的頁面請求(采用HTTPS協(xié)議)轉(zhuǎn)發(fā)給Web服務(wù)器,然后將服務(wù)器的響應(yīng)回傳給終端用戶。
(2)應(yīng)用轉(zhuǎn)換Application Translation:對于非Web頁面的文件訪問,往往借助于應(yīng)用轉(zhuǎn)換。SSL VPN網(wǎng)關(guān)與企業(yè)網(wǎng)內(nèi)部的微軟CIFS或FTP服務(wù)器通信,將這些服務(wù)器對客戶端的響應(yīng)轉(zhuǎn)化為HTTPS協(xié)議和HTML格式發(fā)往客戶端。
(3)端口轉(zhuǎn)發(fā)Port Forwarding:端口轉(zhuǎn)發(fā)用于端口定義明確的應(yīng)用。它需要在終端系統(tǒng)上運(yùn)行一個(gè)非常小的Java或ActiveX程序作為端口轉(zhuǎn)發(fā)器,監(jiān)聽某個(gè)端口上的連接。當(dāng)數(shù)據(jù)包進(jìn)入這個(gè)端口時(shí),它們通過SSL連接中的隧道被傳送到SSL VPN網(wǎng)關(guān),SSL VPN網(wǎng)關(guān)解開封裝的數(shù)據(jù)包,將它們轉(zhuǎn)發(fā)給目的應(yīng)用服務(wù)器。使用端口轉(zhuǎn)發(fā)器,需要終端用戶指向他希望運(yùn)行的本地應(yīng)用程序,而不必指向真正的應(yīng)用服務(wù)器。
(4)網(wǎng)絡(luò)擴(kuò)展Network Extension:SSL VPN網(wǎng)關(guān)還可以幫助企業(yè)實(shí)現(xiàn)網(wǎng)絡(luò)擴(kuò)展。它將終端用戶連接到企業(yè)網(wǎng),并根據(jù)網(wǎng)絡(luò)層信息(如目的IP地址和端口號)進(jìn)行接入控制。雖然犧牲了高級別的安全性,卻也換來了復(fù)雜拓?fù)浣Y(jié)構(gòu)下網(wǎng)絡(luò)管理簡單的好處。
3 SSL VPN性能測試
全面考察SSL VPN安全網(wǎng)關(guān)需要從產(chǎn)品的功能、易用性、穩(wěn)定性、安全性以及性能5大方面來進(jìn)行測試。在對我們的SSL VPN安全網(wǎng)關(guān)實(shí)施性能測試時(shí),我們選擇了IXIA公司的IXIA400T自動(dòng)化測試儀表,IXIA測試儀表具有綜合性強(qiáng)、功能多的特點(diǎn),接口模塊可以根據(jù)需要進(jìn)行自主選擇,在SSL VPN安全網(wǎng)關(guān)的性能測試中我們選用了應(yīng)用層負(fù)載模塊ALM1000T8,ALM1000T8是運(yùn)行四到七層應(yīng)用軟件的專用接口模塊,針對狀態(tài)基的運(yùn)行做了優(yōu)化處理,具有很高的測試性能。在ALM接口模塊上,有8個(gè)高密度排列的RISC處理器,每個(gè)處理器具有獨(dú)立的操作系統(tǒng)、存儲(chǔ)器和網(wǎng)絡(luò)接口。這種獨(dú)特的結(jié)構(gòu),有利于高效靈活地測試負(fù)載均衡設(shè)備、防火墻、服務(wù)器、郵件網(wǎng)關(guān)、入侵檢測、內(nèi)容交換機(jī)等設(shè)備及其網(wǎng)絡(luò)的安全性能。軟件模塊選用IxLoad,IxLoad支持豐富的SSL協(xié)議功能,運(yùn)行IxLoad模擬基于Web的業(yè)務(wù)流,對SSL VPN安全網(wǎng)關(guān)的性能進(jìn)行測試。
根據(jù)目前業(yè)界比較認(rèn)可的SSL VPN性能指標(biāo)并結(jié)合自身產(chǎn)品的特點(diǎn),我們選取5項(xiàng)性能指標(biāo)進(jìn)行測試,即新建連接速率、最大并發(fā)連接數(shù)、加密吞吐量、網(wǎng)絡(luò)延遲和雙機(jī)切換效率。在測試中每個(gè)項(xiàng)目至少進(jìn)行3次測試,計(jì)算出平均值作為最后結(jié)果。
3.1 性能測試拓?fù)鋱D
圖1為性能測試環(huán)境示意1,圖2為性能測試環(huán)境示意2。
圖1 性能測試環(huán)境1
圖2 性能測試環(huán)境2
3.2性能指標(biāo)及實(shí)戰(zhàn)
(1)新建連接速率
●指標(biāo)含義:新建連接速率是指SSL VPN每秒可以新建立的用戶連接數(shù)目,也稱會(huì)話速率,即每秒可以建立和終止的SSL會(huì)話數(shù)目(會(huì)話可以理解為客戶端到網(wǎng)關(guān)的一次連接,即瀏覽器的一次Web頁面訪問)。該參數(shù)主要考察被測設(shè)備單位時(shí)間內(nèi)的處理會(huì)話能力。
●測試過程:IXIA400T模擬客戶端和服務(wù)器,將被測設(shè)備設(shè)置為中間設(shè)備。模擬的客戶端和服務(wù)器建立TCP連接,在此連接上進(jìn)行SSL會(huì)話協(xié)商,建立SSL會(huì)話后,客戶端通過被測設(shè)備從服務(wù)器下載1024bit/s的頁面(注意頁面大小可以靈活設(shè)置,但必須以不會(huì)因?yàn)閿?shù)據(jù)量過大而造成系統(tǒng)I/O過載為前提條件,因此應(yīng)該盡量采用小頁面),當(dāng)成功接收完數(shù)據(jù)之后,關(guān)閉SSL會(huì)話,關(guān)閉TCP連接。此會(huì)話過程包含了SSL協(xié)議中的非對稱加密過程(協(xié)商)和對稱加密過程(傳輸數(shù)據(jù))。我們?nèi)”粶y設(shè)備負(fù)載穩(wěn)定期的平均新建用戶率作為測試結(jié)果。
●影響因素:影響此項(xiàng)值的因素有很多,例如是否有SSL硬件加速卡,是否控制速率上限以確保CPU資源有盈余、加密算法實(shí)現(xiàn)所用的語言、算法模塊調(diào)度等。
●實(shí)戰(zhàn):Ixload為我們提供了很多有用的測試案例,我們可以從中選擇比較適合自己的,再根據(jù)自身需要調(diào)整相應(yīng)的參數(shù)。我們可以根據(jù)需要采用接口模塊的多個(gè)端口進(jìn)行組合,以提高模擬客戶端和服務(wù)器的性能。
a.測試時(shí)使用512bit/s或者1024bit/s的證書,請注意證書的長度將直接影響SSL的加解密速度,對產(chǎn)品性能的測試結(jié)果會(huì)產(chǎn)生較大的影響。
b.加密算法:RC4-MD5。
c.負(fù)載模式:Connections/Second。
d.協(xié)議:Http1.0。
e.頁面大。1024bit/s(或者64bit/s)。
f.客戶端網(wǎng)絡(luò):模擬地址范圍。
g.服務(wù)器網(wǎng)絡(luò):模擬地址。
h.負(fù)載壓力:由于IxLoad自動(dòng)化測試工具具有自動(dòng)加壓、自動(dòng)保持連接等特點(diǎn),即它會(huì)自動(dòng)調(diào)整負(fù)載壓力值測得被測設(shè)備的性能,同時(shí)不用配置服務(wù)器的響應(yīng)Latency或客戶端的Think Time,這些特點(diǎn)使得性能測試簡單、有效。在測試中我們采用逐步加壓的方式進(jìn)行,在20s內(nèi)將壓力從0上升到最高值,并在最高值維持180s,然后再用20s的時(shí)間將壓力減為0。
i.數(shù)據(jù)獲取:在維持180s的中間60s,我們計(jì)算該時(shí)間段內(nèi)的平均速率,作為新建連接速率。
●結(jié)果分析
a.在客戶端狀態(tài)中觀察到新建連接速率值達(dá)不到預(yù)期值,并且在想辦法提高硬件配置的情況下也始終維持在一個(gè)較小的恒定值。這種情況有可能是軟件設(shè)計(jì)者出于對產(chǎn)品提供穩(wěn)定性能的考量,對用戶數(shù)目做出了限制,只能達(dá)到某個(gè)設(shè)定值。
b.在客戶端狀態(tài)中觀察到HTTP、TCP的速率始終非常低。這種情況下先檢查CPU和MEM的消耗情況,如果是系統(tǒng)本身的進(jìn)程消耗較大,則有可能是系統(tǒng)硬件配置造成的瓶頸,需要加大CPU和MEM;如果是產(chǎn)品本身的軟件進(jìn)程造成的消耗過大,則需要軟件設(shè)計(jì)者改進(jìn)設(shè)計(jì),提高代碼質(zhì)量,以提高連接速率和連接質(zhì)量,以確保更多的用戶能夠同時(shí)使用高質(zhì)量的SSL VPN服務(wù)。
c.在客戶端狀態(tài)中觀察到HTTP、TCP的速率在達(dá)到一個(gè)較高值后突然急劇下降至0。出現(xiàn)這種情況首先考慮系統(tǒng)是否崩潰;如果不是則查看系統(tǒng)的CPU和MEM的消耗是否過大;還有一種情況就是由于數(shù)據(jù)量大,連接跟蹤表被寫滿,網(wǎng)絡(luò)通道被堵死,導(dǎo)致數(shù)據(jù)包被大量丟棄。
(2)最大并發(fā)連接數(shù)
●指標(biāo)含義:最大并發(fā)連接數(shù)是指同時(shí)通過SSL VPN來訪問內(nèi)部網(wǎng)的最大連接數(shù)目。該參數(shù)主要考察被測設(shè)備的會(huì)話處理容量,即在同一時(shí)間所能保持的會(huì)話連接數(shù)目,這個(gè)數(shù)值通常是幾百到幾千,不過同時(shí)在線的用戶數(shù)越多,每位用戶所感受到的速度就會(huì)越慢。
●測試過程:IXIA400T模擬客戶端,與被測設(shè)備建立SSL會(huì)話。在此惟一的會(huì)話上,發(fā)送多條通過被測設(shè)備從IXIA400T模擬的服務(wù)器下載1024bit/s大小頁面的指令。我們?nèi)∝?fù)載穩(wěn)定期的平均并發(fā)連接數(shù)作為測試結(jié)果。
●影響因素:影響此項(xiàng)值最關(guān)鍵因素是會(huì)話隊(duì)列存儲(chǔ)空間的大小,即內(nèi)存的大小,還有是否開辟緩沖空間做預(yù)處理(即保持連接狀態(tài),但是其請求暫時(shí)不作處理),其他影響因素有下載的頁面大小,SSL VPN使用的證書位數(shù)等。
●實(shí)戰(zhàn)
a.測試時(shí)使用512bit/s或者1024bit/s的證書。
b.加密算法:RC4-MD5。
c.負(fù)載模式:Concurrent Connection。
d.協(xié)議:Http1.0。
e.頁面大。1024bit/s(或者64bit/s)。
f.客戶端網(wǎng)絡(luò):模擬地址范圍。
g.服務(wù)器網(wǎng)絡(luò):模擬地址。
h.負(fù)載壓力:在測試中我們采用逐步加壓的方式進(jìn)行,在20s內(nèi)將壓力從0上升到最高值,并在最高值維持180s,然后再用20s的時(shí)間將壓力減為0。
i.數(shù)據(jù)獲。簭臏y試結(jié)果中找到Concurrent Connection的最大穩(wěn)定值,作為最大并發(fā)連接數(shù)。
●結(jié)果分析
a.重復(fù)同樣的測試3次,發(fā)現(xiàn)客戶端成功請求的次數(shù)在不斷降低。這種情況需要檢查連接跟蹤表是否已經(jīng)被寫滿,造成網(wǎng)絡(luò)堵塞;或者內(nèi)存和CPU消耗多大,造成產(chǎn)品性能下降。
b.嘗試增加內(nèi)存數(shù)量,修改連接跟蹤表的最大限制值,檢測最大并發(fā)連接數(shù)是否會(huì)有相應(yīng)的增加。
(3)加密吞吐量
●指標(biāo)含義:此項(xiàng)指標(biāo)主要評估SSL VPN在應(yīng)用層的吞吐量,此項(xiàng)值越大,表示該設(shè)備在單位時(shí)間內(nèi)的數(shù)據(jù)轉(zhuǎn)發(fā)能力越強(qiáng)。
●測試過程:IXIA400T模擬客戶端行為,首先與被測設(shè)備建立SSL會(huì)話。在此惟一的會(huì)話上,從IXIA400T模擬的服務(wù)器上下載1024kbit/s的頁面,我們?nèi)XIA400T模擬的服務(wù)器端發(fā)送數(shù)據(jù)的平均速率作為測試結(jié)果。
●影響因素:影響此項(xiàng)值的一個(gè)很大因素是對稱加密算法實(shí)現(xiàn)的效率,如果實(shí)際傳輸?shù)臄?shù)據(jù)僅僅是HTTP的大數(shù)據(jù)報(bào)內(nèi)容,那么吞吐量應(yīng)該能接近100%,由于有加密運(yùn)算,所以實(shí)際吞吐量值會(huì)受到很大的影響。
●實(shí)戰(zhàn):
a.測試時(shí)使用512bit/s或者1024bit/s的證書,請注意證書的長度將直接影響SSL的加解密速度,對產(chǎn)品性能的測試結(jié)果會(huì)產(chǎn)生較大的影響。
b.加密算法:RC4-MD5。
c.負(fù)載模式:Throughput(MBps),請注意這里的單位為MBps,換算成Mbps需要將測試結(jié)果乘以8。
d.協(xié)議:Http1.0。
e.頁面大小:1024kbit/s。
f.客戶端網(wǎng)絡(luò):模擬地址范圍。
g.服務(wù)器網(wǎng)絡(luò):模擬地址。
h.負(fù)載壓力:在測試中我們采用逐步加壓的方式進(jìn)行,在20s內(nèi)將壓力從0上升到最高值,并在最高值維持180s,然后再用20s的時(shí)間將壓力減為0。
i.數(shù)據(jù)獲。簭臏y試結(jié)果的Excel中找到在維持180s階段的中間60s雙向的數(shù)據(jù)量平均值之和,將此值作為設(shè)備的實(shí)際吞吐量。
●結(jié)果分析
a.嘗試使用不同的加密算法進(jìn)行測試,檢測不同的加密算法對吞吐量的影響力。
b.測試過程中檢查CPU的使用情況,檢測是否因?yàn)镾SL加解密,對CPU消耗過大(CPU使用率超過70%以上)造成產(chǎn)品性能受到很大影響。
(4)網(wǎng)絡(luò)延遲
指標(biāo)含義:網(wǎng)絡(luò)延遲是指從用戶向SSL VPN發(fā)起訪問請求開始,到成功從后臺服務(wù)器拿到第一位數(shù)據(jù)的時(shí)間間隔。由于在不同負(fù)載下其數(shù)值會(huì)發(fā)生變化,所以我們?nèi)∽畲笮陆ㄟB接速率測試中的平均網(wǎng)絡(luò)延遲作為測試結(jié)果。
(5)雙機(jī)切換效率
指標(biāo)含義:雙機(jī)切換效率是指當(dāng)主SSL VPN設(shè)備發(fā)生故障到從SSL VPN設(shè)備發(fā)現(xiàn)主設(shè)備故障并接管其服務(wù)的時(shí)間間隔。在主從SSL VPN設(shè)備上設(shè)置定時(shí)工作表——可導(dǎo)致設(shè)備切換工作狀態(tài),計(jì)算切換時(shí)間的平均值作為測試結(jié)果。
SSL VPN產(chǎn)品的性能測試指標(biāo)并不僅僅只有以上五種,測試人員可以根據(jù)實(shí)際需要對測試項(xiàng)目進(jìn)行適當(dāng)?shù)恼{(diào)整,以協(xié)助軟件開發(fā)人員找出系統(tǒng)瓶頸,進(jìn)一步提升產(chǎn)品性能。
4 結(jié)束語
SSL VPN產(chǎn)品作為一個(gè)新技術(shù)產(chǎn)品,其發(fā)展和成熟仍在不斷進(jìn)行之中,也許在不久的將來也會(huì)形成如同IPSec一般成熟的安全技術(shù),我們在SSL VPN產(chǎn)品方面的測試技術(shù)也必將與時(shí)俱進(jìn),發(fā)展得更加成熟和完善。