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