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