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