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