基于SoC的IPSec協(xié)議實(shí)現(xiàn)技術(shù)

相關(guān)專題: 芯片

引 言

  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)訪問控制、無(wú)連接完整性、數(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é)議的解釋如下:

 、貯H[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等算法。

 、躀KE[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核的無(wú)縫連接系統(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但無(wú)效,策略管理模塊將此信息向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無(wú)效,則將數(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ù)意義。

作者:林中輝 吳卓 沈亮 來源:?jiǎn)纹瑱C(jī)及嵌入式系統(tǒng)應(yīng)用


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息