摘 要: 分析了安全網(wǎng)關(guān)產(chǎn)品的發(fā)展趨勢(shì),從技術(shù)和需求等不同角度對(duì)其發(fā)展思路進(jìn)行了綜述,指出了傳統(tǒng)VPN安全網(wǎng)關(guān)產(chǎn)品的設(shè)計(jì)缺陷,提出一種新的通用VPN安全網(wǎng)關(guān)平臺(tái)體系結(jié)構(gòu),并以IPsec VPN的實(shí)現(xiàn)為例,證明了其設(shè)計(jì)性能上的優(yōu)勢(shì)。
關(guān)鍵詞: VPN 安全網(wǎng)關(guān) “內(nèi)嵌" title="內(nèi)嵌">內(nèi)嵌”結(jié)構(gòu)
安全網(wǎng)關(guān)產(chǎn)品是目前網(wǎng)絡(luò)安全類產(chǎn)品中的一個(gè)熱點(diǎn)。安全網(wǎng)關(guān)類產(chǎn)品的性能和功能一直是一對(duì)矛盾。用戶的安全需求通常分為兩類:(1)在公共性較強(qiáng)的網(wǎng)絡(luò)節(jié)點(diǎn)上,對(duì)性能要求很高,但需要的安全策略相對(duì)簡(jiǎn)單和固定;(2)位于網(wǎng)絡(luò)的邊緣處,數(shù)據(jù)流量較小,安全需求卻非常豐富。
從技術(shù)發(fā)展角度看:一方面,ASIC(Application Specific Integrated Circuit)和FPGA(Field Programmable Gate Array)技術(shù)已經(jīng)可以承擔(dān)諸如協(xié)議處理等原來(lái)只能用軟件實(shí)現(xiàn)的功能,大量基于硬件處理的產(chǎn)品問(wèn)世,性能突出,一般應(yīng)用在萬(wàn)兆以上速率的網(wǎng)絡(luò)中;另一方面,要實(shí)現(xiàn)網(wǎng)絡(luò)邊緣處復(fù)雜的協(xié)議處理、靈活的策略控制以及用戶的多變需求,目前的ASIC技術(shù)水平尤其是國(guó)內(nèi)的開(kāi)發(fā)能力還有待提高。因此,基于通用處理器/網(wǎng)絡(luò)處理器的平臺(tái)模式仍將長(zhǎng)期存在并將多用于網(wǎng)絡(luò)邊緣的VPN(Virtual Private Network)安全網(wǎng)關(guān)產(chǎn)品中[1],本文著重討論這一類產(chǎn)品的實(shí)現(xiàn)。
1 VPN安全網(wǎng)關(guān)存在的問(wèn)題
由于IP網(wǎng)絡(luò)協(xié)議的復(fù)雜性,影響VPN安全網(wǎng)關(guān)性能的因素非常多?,F(xiàn)有平臺(tái)的IP包安全處理有幾種典型的方式:(1)在主處理器內(nèi)部調(diào)用軟件模塊,其主處理器承受的壓力很大,無(wú)法保證較高的性能;(2)通過(guò)一組總線將需要安全處理的數(shù)據(jù)發(fā)送到一個(gè)協(xié)處理模塊上,完成處理后再送回主模塊。目前多數(shù)成熟的VPN安全網(wǎng)關(guān)產(chǎn)品都是基于這種設(shè)計(jì),例如通過(guò)工控機(jī)平臺(tái)的PCI總線調(diào)用PCI加密卡,或者近些年出現(xiàn)的在嵌入式處理器總線上掛接安全模塊" title="安全模塊">安全模塊的方式。
上述設(shè)計(jì)簡(jiǎn)單且易于實(shí)現(xiàn)。在早期,通信接口的性能不高,主要瓶頸不在處理器和總線上。但如今,主模塊的調(diào)度協(xié)調(diào)能力以及與安全模塊之間的總線瓶頸已經(jīng)嚴(yán)重限制了系統(tǒng)的性能。首先,主模塊在調(diào)用安全模塊工作時(shí)自身處于閑置狀態(tài),無(wú)法處理后續(xù)的數(shù)據(jù)包。由于IP協(xié)議的復(fù)雜和IP包的變長(zhǎng),即使在主模塊中采用了部分流水設(shè)計(jì),也難以從根本上改善這種狀況,從而導(dǎo)致IP包處理產(chǎn)生排隊(duì),在較大的壓力下,很容易大量丟包。其次,主模塊與安全模塊之間的數(shù)據(jù)交換增加了總線處理時(shí)間和帶寬壓力?,F(xiàn)有安全網(wǎng)關(guān)典型結(jié)構(gòu)如圖1 所示。在主模塊和安全模塊之間,雙向的數(shù)據(jù)流進(jìn)行了一次迂回,可較粗略地認(rèn)為該部分的數(shù)據(jù)帶寬為單向數(shù)據(jù)流的4倍,而主模塊也相當(dāng)于進(jìn)行了2次軟件轉(zhuǎn)發(fā),如此的結(jié)構(gòu)使得總線處成為一個(gè)瓶頸,嚴(yán)重限制了系統(tǒng)整體性能?;谝陨显颍捎迷摲N模式設(shè)計(jì)的VPN安全網(wǎng)關(guān)其性能很難提升,形成了“只有高速接口,沒(méi)有線速能力”的情況,對(duì)用戶網(wǎng)絡(luò)的影響很大。
2 VPN安全網(wǎng)關(guān)平臺(tái)的創(chuàng)新
2.1 創(chuàng)新原則和目標(biāo)
對(duì)于變化較多的虛擬專用網(wǎng)絡(luò),VPN安全網(wǎng)關(guān)必須能夠很靈活地適應(yīng)用戶的各種要求,包括組網(wǎng)方式和定制安全策略等。因此,功能靈活且便于更改的應(yīng)用層需求是必須保證的。在此基礎(chǔ)上,提高安全網(wǎng)關(guān)的處理能力十分重要,在現(xiàn)有百兆、千兆的應(yīng)用環(huán)境下要盡可能地減小對(duì)用戶網(wǎng)絡(luò)的影響。此外,開(kāi)發(fā)代價(jià)以及價(jià)格控制都必須考慮。
2.2 結(jié)構(gòu)模式創(chuàng)新的依據(jù)
近年來(lái)在國(guó)外IP網(wǎng)絡(luò)安全應(yīng)用研究中,出現(xiàn)了一種新思維,其基本模式就是將IP包的協(xié)議處理和安全處理與線路串成一線,即避免數(shù)據(jù)在安全模塊進(jìn)行處理時(shí)的排隊(duì)等待,使數(shù)據(jù)不再經(jīng)過(guò)總線迂回。以實(shí)現(xiàn)IPsec的FPGA設(shè)計(jì)為例,華盛頓大學(xué)的一種FPGA驗(yàn)證設(shè)計(jì)中,外出數(shù)據(jù)處理" title="數(shù)據(jù)處理">數(shù)據(jù)處理和進(jìn)入數(shù)據(jù)處理分別如圖2和圖3所示[2]。
圖2和圖3中,虛線框內(nèi)的箭頭表示數(shù)據(jù)流向。以外出數(shù)據(jù)為例,數(shù)據(jù)在流經(jīng)控制邏輯的同時(shí),也進(jìn)入處理路徑,分別經(jīng)過(guò)包協(xié)議處理、AES和HMAC算法處理,然后做校驗(yàn)準(zhǔn)備發(fā)送。這樣,安全模塊相當(dāng)于嵌入在網(wǎng)絡(luò)傳輸路徑中,安全模塊處理后的數(shù)據(jù)包可以直接發(fā)送。如此設(shè)計(jì)的優(yōu)勢(shì)顯而易見(jiàn),避免了總線迂回造成的瓶頸,同時(shí)也使整個(gè)處理流程更加符合流水設(shè)計(jì)的思想。
基于此種思想的ASIC/FPGA設(shè)計(jì)目前已經(jīng)有一些類似的研究,另外很多實(shí)際的網(wǎng)關(guān)產(chǎn)品為提高性能" title="高性能">高性能也傾向于將盡量多的任務(wù)交給硬件去完成。但由于技術(shù)的復(fù)雜度、需求的多變性以及應(yīng)用的多樣性等原因,基于純硬件實(shí)現(xiàn)的方案有很大局限性。因此,立足通用平臺(tái)基礎(chǔ),設(shè)計(jì)合理的高性能VPN產(chǎn)品是一件十分有意義的事情。
3 新型結(jié)構(gòu)的VPN安全網(wǎng)關(guān)平臺(tái)設(shè)計(jì)
3.1 新型VPN平臺(tái)體系結(jié)構(gòu)
借鑒上述的先進(jìn)思想并綜合各方面因素,可以開(kāi)發(fā)一種新的、稱為“內(nèi)嵌”結(jié)構(gòu)模式的平臺(tái)化VPN網(wǎng)關(guān)體系結(jié)構(gòu),如圖4所示。其基本設(shè)計(jì)思想如下:平臺(tái)的主要模塊——主模塊和安全模塊串聯(lián)于數(shù)據(jù)處理的路徑上,這樣,安全處理流程相當(dāng)于內(nèi)嵌在線路中,數(shù)據(jù)不再經(jīng)過(guò)總線迂回;主模塊仍舊利用現(xiàn)有的高性能處理器使用軟件方式,主要完成部分協(xié)議處理、策略控制以及對(duì)用戶的便捷服務(wù);而安全模塊主要采用成熟的FPGA或ASIC設(shè)計(jì)方式,完成較為固定的一些安全處理,其速度可以保證IP包能夠線速通過(guò)。
3.2 “內(nèi)嵌”結(jié)構(gòu)平臺(tái)的設(shè)計(jì)重點(diǎn)
采用這種模式讓軟硬件協(xié)同工作,很好地解決了設(shè)備性能與設(shè)計(jì)復(fù)雜度及成本之間的矛盾,在達(dá)到較好性能的同時(shí),具有較高的靈活性和可擴(kuò)展性。但是,這種結(jié)構(gòu)也存在著實(shí)現(xiàn)上的難點(diǎn),即如何將兩個(gè)模塊的任務(wù)進(jìn)行合理劃分。因?yàn)閺腎P網(wǎng)絡(luò)未來(lái)的發(fā)展趨勢(shì)看,安全協(xié)議已越來(lái)越緊密地融入通信協(xié)議本身。
通過(guò)分析可以看出,主模塊和安全模塊在構(gòu)成上具有不同特點(diǎn)。主模塊由高性能的通用處理器/網(wǎng)絡(luò)處理器組成,它通過(guò)軟件來(lái)處理數(shù)據(jù)包,方便靈活,但處理能力相對(duì)硬件而言較弱,因此將能夠保證軟件執(zhí)行速度、需要靈活處理和日后擴(kuò)展的功能交由主模塊實(shí)現(xiàn);安全模塊由高性能FPGA/ASIC以及輔助芯片組成,全硬件實(shí)現(xiàn),處理能力強(qiáng),但是實(shí)現(xiàn)復(fù)雜,不靈活,適合處理任務(wù)相對(duì)固定的部分。需要指出的是,各部分功能的執(zhí)行未必單調(diào)地影響性能,必須結(jié)合多種因素來(lái)較為精確的評(píng)估,找到最優(yōu)點(diǎn),這是設(shè)計(jì)工作的關(guān)鍵之處。
3.3 主模塊軟硬件設(shè)計(jì)
(1)硬件工作。在實(shí)驗(yàn)分析的基礎(chǔ)上,根據(jù)需求選擇合適的處理器平臺(tái),完成平臺(tái)相關(guān)硬件的研制開(kāi)發(fā)工作,建立完整的硬件平臺(tái)應(yīng)用體系。在選擇中主要考察的因素包括:運(yùn)算速度、通信控制器的能力、外圍資源以及開(kāi)發(fā)難度和價(jià)格等。
(2)軟件工作。編寫(xiě)優(yōu)化協(xié)議實(shí)現(xiàn)代碼和數(shù)據(jù)結(jié)構(gòu),以完成“內(nèi)嵌”結(jié)構(gòu)下主模塊的通信功能和部分安全功能;同時(shí),編寫(xiě)高效的網(wǎng)絡(luò)接口驅(qū)動(dòng)程序,以達(dá)到高吞吐率" title="吞吐率">吞吐率的要求,可參考一些成熟的代碼,例如穩(wěn)定版本的Linux源代碼。
3.4 安全模塊設(shè)計(jì)
安全模塊基本考慮功能相對(duì)固定、模塊化好、使用硬件邏輯實(shí)現(xiàn)較為固定的協(xié)議處理和算法,對(duì)于MAC處理等可考慮增加一些外圍輔助芯片,以減少總體邏輯設(shè)計(jì)的復(fù)雜度。在設(shè)計(jì)好明確的功能后,寫(xiě)出功能需求,進(jìn)行設(shè)計(jì)開(kāi)發(fā),其基本要求是能夠高速地處理通過(guò)報(bào)文,一般情況下應(yīng)能達(dá)到線速。
4 新結(jié)構(gòu)設(shè)計(jì)及應(yīng)用中的性能分析
4.1 模塊功能劃分的依據(jù)
每一類功能的實(shí)現(xiàn)都需要軟硬件合理分工,協(xié)調(diào)工作,以發(fā)揮出系統(tǒng)結(jié)構(gòu)的優(yōu)越性。以IPsec VPN功能的實(shí)現(xiàn)為例,IPsec中包含了大量的安全協(xié)議和管理體系,需要量化地分析出一個(gè)完整IPsec處理流程中各部分的相對(duì)工作量,并結(jié)合處理器找出瓶頸和優(yōu)化工作目標(biāo)。對(duì)此,可采用如下方式:
(1)使用相同版本、同樣功能的已有軟件(如2.4版本Linux內(nèi)核+Freeswan1.99.8,F(xiàn)reeswan1.99.8主要完成IPsec功能)在已有不同平臺(tái)(如PC機(jī)、PowerPC系列開(kāi)發(fā)平臺(tái)和AMCC等)上分別測(cè)試不同長(zhǎng)度IP包的吞吐率。此測(cè)試為處理器本身的選型和設(shè)計(jì)搭配提供依據(jù)。
(2)使用相同的平臺(tái),同樣軟件,通過(guò)添加不同功能(例如純透?jìng)鞣绞?、ESP隧道模式、屏蔽算法、添加不同算法等),測(cè)試不同長(zhǎng)度IP包的吞吐率。此測(cè)試可分析各功能塊對(duì)系統(tǒng)性能的影響并找出軟件部分的優(yōu)化目標(biāo)。
(3)幾種典型軟硬件組合方式測(cè)試。
在得出相應(yīng)的數(shù)據(jù)后,綜合分析各方因素,結(jié)合具體平臺(tái),完成總體設(shè)計(jì)。
4.2 工作模式的選擇
該網(wǎng)關(guān)可以采用幾種不同的安全工作模式,其安全性各不相同,處理效率也不一樣。一般而言,安全保護(hù)越完善,其額外開(kāi)銷(xiāo)越大。IPSec標(biāo)準(zhǔn)規(guī)定的加密工作模式有ESP(Encapsulating Security Payload)傳輸模式和ESP隧道模式[3]。為了提高傳輸效率,可以自定義“純加密”模式。
4.3 設(shè)計(jì)及實(shí)現(xiàn)示例
根據(jù)主模塊和安全模塊的特點(diǎn),可對(duì)工作任務(wù)進(jìn)行一種合理劃分:安全模塊處理能力強(qiáng),可利用硬件完成密鑰匹配策略、數(shù)據(jù)包加解密和認(rèn)證工作;主模塊程序設(shè)計(jì)靈活,可完成IKE(Internet Key Exchange)密鑰協(xié)商、組包/拆包、分片/組片、策略查找、路由查找等功能。這種模式可以很好地讓軟硬件協(xié)同工作,較理想地解決了設(shè)備性能與設(shè)計(jì)復(fù)雜度及成本之間的矛盾,在達(dá)到較好性能的同時(shí),具有很高的靈活性和可擴(kuò)展性。圖5以數(shù)據(jù)外出方向?yàn)槔唧w描述安全網(wǎng)關(guān)在執(zhí)行ESP隧道加密模式時(shí)對(duì)IP包的處理流程。
以上是以IPsec的實(shí)現(xiàn)為例說(shuō)明軟硬件功能協(xié)調(diào)劃分的重要性。在實(shí)際應(yīng)用中,對(duì)于每一類功能,如入侵檢測(cè)、防病毒、NAT(Network Address Translator)穿越和多播等,都可以結(jié)合實(shí)際情況分配最優(yōu)實(shí)現(xiàn)位置,對(duì)于主模塊處理器的選擇和搭配也可以根據(jù)處理任務(wù)量來(lái)決定,提高平臺(tái)的整體性價(jià)比。
4.4 與傳統(tǒng)結(jié)構(gòu)平臺(tái)的性能對(duì)比
通過(guò)一組實(shí)驗(yàn)數(shù)據(jù)能夠驗(yàn)證新型結(jié)構(gòu)對(duì)性能的提升作用。為了在盡量相似的環(huán)境下比較,可以以Freescale(飛思卡爾半導(dǎo)體公司)的某款PowerPC處理器平臺(tái)為基礎(chǔ),利用已有的Linux2.4內(nèi)核和Freeswan1.99.8,進(jìn)行IP包百兆情況下雙向全雙工吞吐率測(cè)試。測(cè)試1:處理器執(zhí)行完整功能的IPsec,包括一組標(biāo)準(zhǔn)的加密算法(軟件實(shí)現(xiàn)3DES算法);測(cè)試2:利用處理器總線調(diào)用加密模塊(3DES算法);測(cè)試3:新型“內(nèi)嵌”模式。表1列出了雙向全雙工吞吐率測(cè)試結(jié)果。
在主模塊處理器相同的情況下,新結(jié)構(gòu)的性能有明顯的提升。特別需要指出的是:該測(cè)試僅為了在相同條件下進(jìn)行對(duì)比。事實(shí)上,如果根據(jù)需要合理地選擇處理器及優(yōu)化軟件,其測(cè)試可以達(dá)到很高的性能,采用FPGA設(shè)計(jì)的安全模塊也完全滿足線速要求??梢?jiàn),避免復(fù)雜的算法處理等待和總線迂回,再加上必要的優(yōu)化設(shè)計(jì),新結(jié)構(gòu)VPN安全網(wǎng)關(guān)的性能能夠提升到一個(gè)很高的層次。
“內(nèi)嵌”模式結(jié)構(gòu)是一種先進(jìn)的VPN安全網(wǎng)關(guān)平臺(tái)結(jié)構(gòu),具有較強(qiáng)的可行性,較低的成本。在百兆和千兆網(wǎng)絡(luò)吞吐率的測(cè)試中,其平臺(tái)性能大大好于傳統(tǒng)結(jié)構(gòu)的VPN產(chǎn)品,一般情況下能夠達(dá)到網(wǎng)絡(luò)包線速處理,且應(yīng)用靈活,便于修改,對(duì)于特定用戶的需求,例如定制自有算法、適應(yīng)復(fù)雜網(wǎng)絡(luò)等都可以很好地滿足。“內(nèi)嵌”結(jié)構(gòu)中各模塊的任務(wù)劃分和協(xié)同工作方式可作為以后高性能VPN專用芯片設(shè)計(jì)的重要參考,其平臺(tái)性能的測(cè)試數(shù)據(jù)也可以作為系列新產(chǎn)品的定型依據(jù),具有非常廣闊的發(fā)展空間。
參考文獻(xiàn)
1 李 軍.第三代安全網(wǎng)關(guān):中國(guó)安全產(chǎn)業(yè)新機(jī)遇.互聯(lián)網(wǎng)周刊,2003;(43)
2 Lu J,Lockwood J.IPSec implementation on xilinx virtex-II Pro FPGA and its application.In:19th IEEE international parallel and distributed processing symposium(IPDPS′05),2005
3 Kent S,Atkinson R.IP encapsulating security payload.RFC2406,1998