IPSe[1]作為一種實現(xiàn)VPN的安全協(xié)議體系,,目前已在VPN設(shè)備中廣泛使用,。但是,,隨著千兆位高速網(wǎng)絡(luò)的技術(shù)發(fā)展,,對VPN設(shè)備在時效性等方面提出了更高的要求。因此,,必須從體系結(jié)構(gòu)等方面,,研究新的技術(shù)方法實現(xiàn)IPSec。在IPSec安全設(shè)備中,,SoC技術(shù)將是一種較好的選擇,。soC將系統(tǒng)的CPU、I/O接口,、存儲器,、算法、協(xié)議處理等模塊全部集成到單一半導(dǎo)體芯片上,,實現(xiàn)IPSec協(xié)議的全部功能,,成為構(gòu)筑IPSec安全設(shè)備的核心部件,極大地提高了高速 V,。PN網(wǎng)絡(luò)的安全性,、可靠性、時效性以及較高的性能價格比,。
1 IPSec協(xié)議
IPSec協(xié)議是因特網(wǎng)工程任務(wù)組(IETF)針對TCP/IP協(xié)議沒有安全機(jī)制的嚴(yán)重缺陷而專門制定的IP安全標(biāo)準(zhǔn),,用以在IP層實現(xiàn)訪問控制、無連接完整性,、數(shù)據(jù)源驗證,、抗重播,、數(shù)據(jù)加密和有限的業(yè)務(wù)流機(jī)密性等多種安全服務(wù),。該標(biāo)準(zhǔn)由一系列協(xié)議組成,各協(xié)議之間的關(guān)系如圖1所示,。
基金項目:“十五”期間國家密碼發(fā)展基金密碼理論研究課題“密碼soc芯片的體系結(jié)構(gòu)和安全性研究”,。
有關(guān)協(xié)議的解釋如下:
①AH[2] (Authentication Header)是一個安全協(xié)議頭,,在傳輸模式下為IP層數(shù)據(jù)流提供數(shù)據(jù)完整性,、數(shù)據(jù)源身份認(rèn)證、一些可選的和有限的抗重播服務(wù),。
?、贓sP[3] (Encapsulating Security Payload)是一個插入到IP數(shù)據(jù)報內(nèi)部的協(xié)議頭,為IP層流量數(shù)據(jù)提供機(jī)密性、數(shù)據(jù)源身份認(rèn)證,、抗重播以及數(shù)據(jù)完整性等安全服務(wù),。
③認(rèn)證與加密算法是IPSec實現(xiàn)安全數(shù)據(jù)傳輸?shù)暮诵?,其中,,加密算法用于ESP,可以采用DES,、IDEA等密碼算法,;認(rèn)證算法用于AH,可以采用3DES,、RC5等算法,。
④IKE[4](Internet Key Exchange)是密鑰交換協(xié)議,,用于在IPSec通信雙方建立共享安全參數(shù)及驗證過的密鑰,,以建立一種安全關(guān)聯(lián)關(guān)系。
?、軩oI(Domain of Interpretation)是一個單獨的文檔,,用于存放IKE協(xié)商的參數(shù)。
?、轘A(Security ASSOCiation)是安全關(guān)聯(lián)協(xié)議,,是主機(jī)、路由器兩個應(yīng)用IPS ec實體之間的一種單向邏輯連接,。sA有安全策略庫(sPDB)和安全關(guān)聯(lián)庫(sADB),,存儲了安全策略的具體細(xì)節(jié),包括保護(hù)的內(nèi)容,、保護(hù)的方式,、保護(hù)通信數(shù)據(jù)的主體等策略。
2 SoC技術(shù)
目前,,SoC平臺主要用于CSoC,、SoPC、EPGA等芯片開發(fā),。其中,,CSoC稱為可配置系統(tǒng)級芯片,一般包括1個處理器內(nèi)核,、可編程邏輯陣列和其它一些通用部件,;SoPC是可編程的單芯片系統(tǒng),如Altera的Nios內(nèi)核模塊,;EPGA是以FPGA為主體的SoC芯片,。使用這些SoC開發(fā)平臺,,可以充分利用系統(tǒng)級芯片集成度高和性能優(yōu)越的特點,靈活設(shè)計開發(fā)各種專用Soc芯片,。
(1)開發(fā)平臺的選擇
SoC平臺開發(fā)套件包括:各種工具與資源軟件,、可以重構(gòu)的硬件電路結(jié)構(gòu)驗證平臺和使用說明書等。其可用軟件資源包括:供選用的多種嵌入式處理器核,,硬件模塊設(shè)計語言及其編譯器,,仿真、綜合和布局,、布線工具等,;設(shè)計語言包括HDL、C/C++等,。開發(fā)平臺的選擇取決于器件的來源:當(dāng)選用商品化器件時,,可以選擇Altera的SOPC開發(fā)環(huán)境QUARTUSII;當(dāng)選擇自主研發(fā)Soc時,,應(yīng)使用相關(guān)的專用開發(fā)平臺,。
(2)lP庫的選擇
IP庫的選擇應(yīng)針對器件類型,選擇通用的IP核,。對安全性要求較高的算法模塊,,應(yīng)采取訪問控制、抗解剖分析等技術(shù)措施,;對可變邏輯模塊,,應(yīng)采用FPGA,以保證可編程的特點,。
(3)芯片結(jié)構(gòu)的選擇
SoC的主體部分由CPU和ASIC組成,。在設(shè)計過程中,芯片結(jié)構(gòu)的選擇應(yīng)從系統(tǒng)應(yīng)用規(guī)劃,、協(xié)議處理速度要求,、便于實現(xiàn)、Vetilog HDL編程實現(xiàn)結(jié)構(gòu)化,,以及所用邏輯模塊的實際結(jié)構(gòu)等幾個角度入手,。
Altera的SoC芯片[5]構(gòu)成如圖2所示。
(4)軟硬件系統(tǒng)設(shè)計
SoC的基本結(jié)構(gòu)是具有一個成多個微處理器,,以及可編程硬件邏輯,,因此,,在SoC設(shè)計中必須進(jìn)行軟硬件的協(xié)同設(shè)計,。軟硬件協(xié)同設(shè)計的技術(shù)性很強(qiáng),它既有SoC設(shè)計的靈活性,,又有SoC設(shè)計中難以揣摩,、充滿變數(shù)的復(fù)雜性,,將涉及到硬件資源的規(guī)劃和整個系統(tǒng)性能的實現(xiàn)。
(5)系統(tǒng)集成設(shè)計
系統(tǒng)集成設(shè)計的關(guān)鍵技術(shù),,主要是IP核的無縫連接系統(tǒng)設(shè)計和相關(guān)的可測試技術(shù),,包括緊密耦合、傳輸特性 ,、時鐘綜合和測試接口等,。
(6)低功耗管理設(shè)計
低功耗設(shè)計是對有相關(guān)要求的器件進(jìn)行的一種設(shè)計技術(shù),設(shè)計中主要通過一些系統(tǒng)狀態(tài),、橋接控制等來實現(xiàn),。
3 基于SoC的IPSec實現(xiàn)技術(shù)
3.1 基本結(jié)構(gòu)
以SoC實現(xiàn)IPSec的多協(xié)議模塊包括:①IPSec協(xié)議輸入、輸出引擎,,是通過協(xié)議解析,,決定數(shù)據(jù)流程的處理;②安全關(guān)聯(lián),、密鑰交換,、密碼算法等,其中,,安全關(guān)聯(lián)模塊為其直接提供所需參數(shù),,密鑰交換模塊用于IKE自動管理的SAD,算法模塊是實現(xiàn)IP數(shù)據(jù)加解密和認(rèn)證的基本模塊,;③接口模塊,,是 IPSec與IPV4/IPv6協(xié)議的接口界面。SoC中的CPU核,,實施系統(tǒng)管理,、策略管理和密鑰管理等功能。
基于SoC的IPSec協(xié)議結(jié)構(gòu)如圖3所示,。
IPSec的主體部分是多協(xié)議處理的硬件模塊,。在SoC設(shè)計過程中,應(yīng)通過優(yōu)化設(shè)計,,以滿足IPSec的功能和性能要求,;采用片上操作系統(tǒng),以滿足設(shè)計的靈活性,、可繼承性和可復(fù)用性等IP特性,;結(jié)合CPU的結(jié)構(gòu)、性能和指令系統(tǒng),,進(jìn)行軟硬件系統(tǒng)設(shè)計,,以達(dá)到各個模塊之間的通信 >、傳輸和控制等一體化設(shè)計,。
基于SoC的IPSec芯片結(jié)構(gòu)如圖4所示,。
圖4中IPSec協(xié)議的IKE密鑰交換,、策略管理、SAD手工注入由實時操作系統(tǒng)來處理,,而IPSec輸入輸出引擎的協(xié)議解析,、安全策略庫(SAD、 SPD),、密鑰快速查找(CAM),、加解密算法、GMAC通信接口等由硬件模塊構(gòu)造,。通信接口實現(xiàn)以太網(wǎng)鏈路幀的接收,、發(fā)送、校驗等功能,。芯片中還應(yīng)設(shè)計看門狗,,用于防止系統(tǒng)死機(jī);另外,,要設(shè)計跟蹤模塊,,用于系統(tǒng)軟硬件調(diào)試。
綜上所述,,在實現(xiàn)IPSec協(xié)議的SoC芯片中,,主要協(xié)議棧處理都由硬件模塊實現(xiàn),CPu負(fù)責(zé)管理調(diào)度和密鑰配置,。
3.2 功能實現(xiàn)
(1)lPSec協(xié)議的輸出與輸入引擎處理
對于輸出數(shù)據(jù)包,,IPSec協(xié)議輸出引擎先調(diào)用策略管理模塊,查詢SPD,,確定數(shù)據(jù)包應(yīng)使用的安全策略,。根據(jù)策略管理模塊的指示,協(xié)議引擎對該數(shù)據(jù)包作出如下3種可能的處理:
?、偃绱嬖谟行У腟A,,則取出相應(yīng)的參數(shù),將數(shù)據(jù)包封裝(包括加密,、驗證,,添加IPSec頭和IP頭等),然后發(fā)送,。
?、谌缟形唇A,策略管理模塊啟動或觸發(fā)IKE協(xié)商,。協(xié)商成功后,,按①中的步驟處理;不成功則應(yīng)將數(shù)據(jù)包丟棄,并記錄出錯信息,。
?、廴绱嬖赟A但無效,,策略管理模塊將此信息向IKE通告,,請求協(xié)商新的SA,協(xié)商成功后按①中的步驟處理,,不成功則應(yīng)將數(shù)據(jù)包丟棄,。
對于輸入數(shù)據(jù)包,IPSec協(xié)議引擎先調(diào)用策略管理模塊,,查詢SAD,。如得到有效的SA,則對數(shù)據(jù)包進(jìn)行解封(還原),,再查詢SPD,,驗證為該數(shù)據(jù)包提供的安全保護(hù)是否與策略配置的相符。如相符,,則將還原后的數(shù)據(jù)包交給TCP層或轉(zhuǎn)發(fā),。如不相符,或要求應(yīng)用IPSec但未建立SA,,或SA無效,,則將數(shù)據(jù)包丟棄,并記錄出錯信息,。
(2)SPDB和SADB實現(xiàn)技術(shù)
IPSec協(xié)議處理數(shù)據(jù)報文的過程中需要通過不斷地查詢SADB和SPDB來驗證數(shù)據(jù)的合法性和取出密鑰進(jìn)行數(shù)據(jù)報的加解密處理,,因此,對IPSec處理性能而言,,如何選擇保存SADB和SPDB的數(shù)據(jù)結(jié)構(gòu)至關(guān)重要,。另外由于SA和SP的數(shù)量都是動態(tài)地變化的,必須選擇合適的存儲結(jié)構(gòu),。如用軟件方法設(shè)計一個合理的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲,,在系統(tǒng)的SADB和SPDB規(guī)模比較小時SA和SP的查詢速度還可以接受,但隨著SADB和sPDB規(guī)模的擴(kuò)大,,系統(tǒng)的查詢能力必然下降,。因為在查詢中最好的情況是一次命中,而大多數(shù)情況下都不會是一次命中,,查詢的效率必然下降,,從而影響IPSec協(xié)議的處理。要從根本上解決查詢效率的問題必須分析SADB和SPDB的設(shè)計要求,,才能找到解決方法,。
SPDB和SADB的設(shè)計基于每一個SA對應(yīng)一條SPD。SA和SPD在各數(shù)據(jù)庫中具有相同的地址,。利用指針互指,,只要在其中一個數(shù)據(jù)庫查找到匹配的字段,,就能同時得到兩個數(shù)據(jù)庫的地址指針。因此,,SPDB和SADB的設(shè)計應(yīng)該滿足下列要求:
?、賹τ谠摂?shù)據(jù)結(jié)構(gòu)能夠有效地進(jìn)行查詢,得到確切的或者基于選擇符的匹配結(jié)果,,包括源地址,、目的地址、協(xié)議和SPI,。
?、谀軌驗檫x擇符保存通配、范圍或確切的值,。
?、垭[藏指向SADB和SPDB的指針,保證兩個結(jié)構(gòu)間的同步,。
?、軐A/SP條目進(jìn)行排序保存,以便匹配查找一直能快速完成,。
采用硬件設(shè)計技術(shù)通常是提高協(xié)議處理速度的好方法,。其中,CAM(Content_Addressable Memory)是按內(nèi)容尋址存儲 器,,是由控制和匹配兩大部分組成的,。通過控制部分,可以把需要寫進(jìn)CAM中的數(shù)據(jù)通過SPDB和SADB管理模塊寫進(jìn) CAM中,,供查找時使用,。在匹配口可以輸入數(shù)據(jù),找出該匹配數(shù)據(jù)所在地址并返回,。在實際設(shè)計中,,SADB或SPDB數(shù)據(jù)庫內(nèi)容連續(xù)存儲在RAM空間中。 CAM中寫入需要查找的匹配輸入項三元組等,,匹配輸出是32位作為查詢SADB和SPDB在RAM中的地址,,這種匹配方法一次查詢只需幾個時鐘周期即可完成。在SADB和SPDB規(guī)模很大時系統(tǒng)的查詢速度不會降低,。目前CAM的匹配速度很快,,查找速度可以達(dá)到1億次/s,而在一個1000Mb/s的網(wǎng)絡(luò)口上每秒連續(xù)傳最大包的個數(shù)為1000×1024×1024/(8×96)=1 365 330,,完全滿足系統(tǒng)查找的需要,。匹配成功即可查找出對應(yīng)的數(shù)據(jù)庫中起始地址,大大節(jié)省了查表的時間,提高IPSec處理的效率,。
(3)密碼算法的實現(xiàn)
在IPSec實現(xiàn)過程中涉及了一系列的密碼運算,,其中包括實現(xiàn)AH和ESP的加密算法和認(rèn)證算法,實現(xiàn)IKE所需要的密鑰交換算法以及密鑰生成算法,。為獲得較高的密碼運算效率,,可以采用流水線技術(shù)設(shè)計專門的密碼運算協(xié)處理器;設(shè)計硬件隨機(jī)數(shù)發(fā)生器,,為密碼設(shè)備產(chǎn)生消息密鑰,;設(shè)計密鑰安全控制器,,以保護(hù)密鑰安全,。
(4)其余功能的實現(xiàn)
IKE密鑰交換、策略管理,、SAD手工注入和硬件初始化(如SPD和SAD的管理)等由實時操作系統(tǒng)實現(xiàn),。
結(jié)語
本文介紹了基于SoC的IPSec協(xié)議實現(xiàn)技術(shù),適用于千兆位VPN設(shè)備等高端應(yīng)用,。至于速度要求不高的低端應(yīng)用,,SoC中可以由CPU實現(xiàn)協(xié)議處理,而密碼算法由硬件實現(xiàn),,以降低硬件規(guī)模和設(shè)計成本,,使設(shè)備獲得較高的性價比??傊?,以SoC構(gòu)筑安全平臺,是提高安全產(chǎn)品安全性,、可靠性和時效性的有效途徑,。
研發(fā)基于自主知識產(chǎn)權(quán)的、基于SoC的安全產(chǎn)品,,可以充分利用SoC中CPU效率高,、硬件可編程能力強(qiáng),以及芯片規(guī)模大,、速度快的特點,,極大地提高安全產(chǎn)品的性能。該技術(shù)不僅對信息安全產(chǎn)品具有重要的實用價值,,而且對密碼工程技術(shù)具有重要的學(xué)術(shù)意義,。