欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道及其實現(xiàn)方法

文檔序號:7684785閱讀:125來源:國知局
專利名稱:基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道及其實現(xiàn)方法
技術領域
本發(fā)明涉及網(wǎng)絡信息安全領域,具體是指基于網(wǎng)絡處理器的高速安全 虛擬專用網(wǎng)通道及其實現(xiàn)方法。
背景技術
虛擬專用網(wǎng)(Virtual Private Network, VPN)是指依靠ISP和其他 網(wǎng)絡服務提供商,利用公共網(wǎng)絡(如Internet,幀中繼等)作為傳輸介質, 通過加密、身份認證和訪問控制等安全技術,在不可靠的公網(wǎng)上實現(xiàn)與專 用網(wǎng)絡相類似的安全性能,從而形成的一種邏輯上的專用網(wǎng)。VPN是一種 功能性的網(wǎng)絡,用戶對這種功能性的網(wǎng)絡的要求是多種的。有的用戶強調 數(shù)據(jù)傳輸?shù)陌踩?,有的用戶可能需要更高的傳輸速率,因此各種專用網(wǎng) 的功能方面也有所側重。目前常見的實現(xiàn)VPN的技術主要有兩種基于 IPSec技術的VPN和基于MPLS (Multiprotocol Label Switching)技術的 VPN。IPSec是IETF的IPSec工作組定義的一組開放網(wǎng)絡安全協(xié)議,它工作 在IP層,為IP層及其以上的層提供安全保護。IPSec提供訪問控制、無 連接的完整性、數(shù)據(jù)來源驗證、防重放保護、保密性、自動密鑰管理等安 全服務,使得通信安全可靠。IKE協(xié)議可自動產(chǎn)生需要的SA,并且ASA的 生存期非常短,使得破譯更加困難。定義安全策略方便靈活,只需在配置 文件里進行編輯,就可實現(xiàn)安全策略。但是,IPSec采用的加密技術導致 IPSec VPN系統(tǒng)與原有的網(wǎng)絡安全機制(如防火墻等)產(chǎn)生沖突,另外通 信時的加密和解密會產(chǎn)生一定的延時,影響網(wǎng)絡傳輸?shù)男省R蛱鼐W(wǎng)的迅速發(fā)展和推廣應用使人們對它提出不斷增長帶寬和復雜服 務的需求。未來的網(wǎng)絡不僅需要更大的帶寬,還要求它能不斷增加新的服 務。為適應這種不斷發(fā)展的網(wǎng)絡技術,出現(xiàn)了網(wǎng)絡處理器這種新的微處理 器。網(wǎng)絡處理器是一種專用于網(wǎng)絡系統(tǒng)的微處理器,它使得網(wǎng)絡系統(tǒng)能夠具備高性能和靈活性。IXA ( Internet Exchange Architecture)是原Intel 公司開發(fā)的用于因特網(wǎng)數(shù)據(jù)交換設備的網(wǎng)絡處理器產(chǎn)品系列的系統(tǒng)結構。 IXP2850是IXA新一代網(wǎng)絡處理器,是IXP2800的增強型網(wǎng)絡處理器,它 在IXP2800的基礎上增加了兩個加密功能部件,能夠實現(xiàn)各種加解密功能。發(fā)明內容本發(fā)明的目的就是為了解決上述現(xiàn)有技術中存在的問題,提出一種基于網(wǎng) 絡處理器的高速安全虛擬專用網(wǎng)通道,其采用網(wǎng)絡處理器IXP2850實現(xiàn)VNP功 能,充分運用微引擎(ME) —內核(XSCale)構成的快一慢數(shù)據(jù)通道,利用專 用的加解密內核,有效地縮短有效載荷加解密以及驗證的周期,能夠與路由、 防火墻等其他模塊高度集成,從而有效緩沖安全要求與數(shù)據(jù)處理速度的矛盾。本發(fā)明的目的還在于提供上述基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道 的實現(xiàn)方法。本發(fā)明的目的通過下述技術方案實現(xiàn)本基于網(wǎng)絡處理器的高速安全虛擬 專用網(wǎng)通道,包括微引擎簇、Xsacale (內核)模塊、至少一個SRAM存儲單元 (靜態(tài)隨機存儲器)及SRAM存儲控制器、至少一個DRAM存儲單元(動態(tài)隨機 存儲器)及DRAM存儲控制器、MSF (Media Switch Fabric,多媒體交換結構) 模塊、哈希單元;2個所述微引擎簇依次連接,且2個微引擎簇分別由8個微引 擎依次連接組成;所述微引擎簇、內核、MSF、哈希單元分別與PCI總線連接; 各個SRAM存儲單元、DRAM存儲單元相應通過SRAM存儲控制器、DRAM存儲控制 器分別與PCI總線連接,所述PCI總線與上位機的管理系統(tǒng)模塊連接。為更好地實現(xiàn)本發(fā)明,所述網(wǎng)絡處理器采用IXP2850。所述微引擎包括接口微模塊I、安全關聯(lián)微模塊、加解密微模塊、協(xié)議處理 微模塊、IKE微模塊;所述內核模塊包括初始化微模塊、接口微模塊II、管理微 模塊、異常情況處理微模塊;所述初始化微模塊與所述接口微模塊I、安全關聯(lián)微模塊、加解密微模塊、 協(xié)議處理微模塊、IKE微模塊、接口微模塊II、管理微模塊、異常情況處理微模塊分別連接;所述接口微模塊i與接口微模塊n、安全關聯(lián)微模塊、協(xié)議處理微模塊、IKE微模塊分別連接;所述接口微模塊II與管理微模塊、異常情況處理 微模塊分別連接;所述安全關聯(lián)微模塊與協(xié)議處理微模塊、IKE微模塊、管理微模塊、加解密微模塊、SRAM存儲單元、DRAM存儲單元連接;所述協(xié)議處理微模塊與管理微模 塊、IKE微模塊、加解密微模塊、SRAM存儲控制器、DRAM存儲控制器相連接; 所述管理微模塊與IKE微模塊、SRAM存儲控制器、DRAM存儲控制器及上位機的 管理系統(tǒng)模塊相連接。所述加解密微模塊與系統(tǒng)加解密內核緊密結合,支持DES、 3DES、 HMAC-MD5、 HMAC-SHA-1算法,可以實現(xiàn)數(shù)據(jù)的各類高速加密與解密。所述安全關聯(lián)微模塊通過對SRAM、 DRAM的數(shù)據(jù)操作,提供服務狀態(tài)和安全 關聯(lián)數(shù)據(jù)的自動建立、更新、刪除、查找過濾功能,即對安全策略ID (SPID)、 安全策略數(shù)據(jù)庫(SPD)和安全關聯(lián)數(shù)據(jù)庫(SADB)進行快速規(guī)則匹配,實現(xiàn)ESP 隧道模式、AH隧道模式對應的安全關聯(lián)(SA,下文均同)的過濾匹配,以及提 供各類協(xié)議參數(shù)。為了有效提高處理速度,所述安全關聯(lián)匹配過濾,采用HASH 査找算法進行匹配査找。所述協(xié)議處理微模塊可以實現(xiàn)分組網(wǎng)絡協(xié)議的解析、去除、封裝功能,即 對入站數(shù)據(jù)分組和出站數(shù)據(jù)分組進行協(xié)議解析、封裝處理,轉發(fā)處理以及抵抗 重放攻擊功能的實現(xiàn)。所述IKE微模塊可以實現(xiàn)與網(wǎng)絡對等體之間的相關安全參數(shù)的建立、更新、 刪除功能;所述IKE微模塊,依據(jù)管理系統(tǒng)的服務狀態(tài)列表,與特定VPN服務 器完成ISAKMP規(guī)定的標準的主動模式的IKE密鑰交換,籍此抵御一定的中間人 攻擊。所述IKE微模塊,通過系統(tǒng)8個線程并行操作,以提高處理效率,其中 共享的存儲空間通過讀寫鎖進行管理,防止數(shù)據(jù)混亂。所述IKE微模塊,創(chuàng)建 服務狀態(tài)列表中的IKE協(xié)商狀態(tài)表項,記錄交換狀態(tài)、各類交換參數(shù)以及相應 資源存儲地址指針等,擁有計時器、計數(shù)器,有效解決多線程協(xié)調操作,并具 有一定的抗重放功能。所述管理微模塊,可以實現(xiàn)ME模塊、XSCale模塊、管理系統(tǒng)之間的通信與 數(shù)據(jù)表棧的管理;其采用雙向通信機制,(1)與管理系統(tǒng)進行通信,實現(xiàn)服務 狀態(tài)列表,安全策略數(shù)據(jù)庫,安全關聯(lián)數(shù)據(jù)庫,密鑰的手動管理,日志維護, 功能調整;(2)與微引擎(ME)模塊進行通信,實現(xiàn)異常情況處理,時間同步, 預設IKE密鑰交換的數(shù)據(jù)傳遞。所述異常情況處理微模塊可以實現(xiàn)異常情況的處理,防止進程擁塞。所述初始化微模塊實現(xiàn)各個功能模塊的初始化以及相關數(shù)據(jù)的建立。所述 初始化微模塊,在所述IXP2850中,(1)設置各功能微模塊代碼;(2)分配存 儲資源,初始化地址指針;(3)對網(wǎng)絡處理器內部各寄存器進行初始化;(4)將安全關聯(lián)(SA)設置于SRAM存儲設備。上述基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道的實現(xiàn)方法,所述方法包 括如下步驟(1) 建立系統(tǒng)并進行初始化配置;(2) 當網(wǎng)絡處理器接收到合法的VPN數(shù)據(jù)分組,將分組重組并存儲于所述 DRAM中,在所述SRAM生成相應的分組描述符,記錄分組在所述DRAM的存儲參數(shù), 所述存儲參數(shù)包括存儲位置、接收端口、協(xié)議類型等15元參數(shù),接口微模塊I通 過辨識接收端口、協(xié)議類型,將VPN數(shù)據(jù)包傳遞給協(xié)議處理微模塊等待處理;(3 )協(xié)議處理微模塊接收到接口程序傳遞過來的信號和分組描述符之后, 根據(jù)分組描述符對讀取分組報頭,對關鍵字位進行解析,將分組分為進入分組、 外出分組和IKE分組三類進行處理;所述對進入分組的處理包括ESPi、 Ahi的處 理,所述對外出分組的處理包括ESPo、 Aho的處理;(4) 所述接口微模塊II獲取分組存儲地址指針, 一方面根據(jù)上位機的管理 系統(tǒng)的需求將不同類型分組轉發(fā)至異常情況處理微模塊或者直接傳遞轉發(fā)進入 網(wǎng)絡,另一方面根據(jù)微引擎模塊的請求將不同類型分組轉發(fā)至異常情況處理微 模塊處理或者管理微模塊進行上傳至上位機管理系統(tǒng),然后接口微模塊II將存 儲地址指針存放于指定存儲空間以待提取使用;(5) 異常情況處理微模塊響應微引擎模塊的請求,對異常情況進行處理, 讀取各類分組報頭,進行分類處理,并將分組傳遞轉發(fā)進入網(wǎng)絡;(6) 管理微模塊響應上位機管理系統(tǒng)要求,生成IKE請求,發(fā)送至微引擎 IKE微模塊;接收微引擎的上傳日志,以及各類處理信號,并按時通過約定通信 機制傳遞給上位機的管理系統(tǒng)模塊;接收管理系統(tǒng)的信息,解析系統(tǒng)命令,并 執(zhí)行安全策略修改、服務狀態(tài)列表修改的主動操作。為更好地實現(xiàn)上述方法,其中,步驟(1)所述初始化配置是指 l.l將接口微模塊I、安全關聯(lián)微模塊、加解密微模塊、協(xié)議處理微模塊各 程序設置于微引擎;L2將接口微模塊n、管理微模塊、異常情況處理微模塊設置于內核; 1.3初始化各存儲單元,分配存儲空間,將已構建的安全關聯(lián)數(shù)據(jù)、服務狀態(tài)列表存儲于相應存儲單元,其中1. 3. l將ESP外出分組SPD(El)的數(shù)據(jù)進行關鍵字Hash運算,構建相應的Hash 列表,該表項存儲于SRAM,每條SPD條目地址指針或為空或指向安全關聯(lián)數(shù)據(jù)庫14SADB (E2)中的某SA束;1. 3. 2將ESP進入分組SAID的Hash表存儲于SRAM,對應的SADB (E2)存儲于 DRAM,每條SAID地址指針指向SADB中的某SA束,每條SADB地址指針指向SPD (El) 中的某條SPD條目;1.3.3將AH外出分組SPD (Al)的數(shù)據(jù)進行關鍵字Hash運算處理,構建相應 的Hash列表,該表項存儲于SRAM,每條SPD條目地址指針或為空或指向SADB (A2) 中的某SA束;1.3.4將AH進入分組SAID的Hash表存儲于SRAM,對應的SADB (A2)存儲于 DRAM,每條SAID地址指針指向SADB中的某SA束,每條SADB地址指針指向SPD (Al) 中的某條SPD條目;1. 3. 5將服務狀態(tài)列表存儲于SRAM;將ISAKM SA存儲于DRAM。步驟l. 3. 5中所述服務狀態(tài)列表包括本服務器提供VPN服務的源地址,目的 地址,端口號,提供服務的類型,安全策略以及IKE協(xié)商狀態(tài),并包含以上涉及 的E1、 Al、 ISAKM SA地址指針。其中,步驟(3)所述對進入分組ESP的處理,包括以下步驟3.a. l根據(jù)分組的接收端口判別分組為進入分組,根據(jù)分組隧道IP報頭協(xié)議 號判別分組為ESP載荷,執(zhí)行步驟3.&.2;3.&2根據(jù)分組描述符判別分組是否重組完畢,是則進行步驟3.a.3,否則 丟棄分組并記錄于日志,執(zhí)行步驟3. a. 1;3. a. 3根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀取隧 道IP報頭目的地址、協(xié)議號,讀取ESP報頭SPI構成SAID,進行Hash散列得到He (x2),于SRAM中匹配査找相應安全關聯(lián),如果不能匹配,則丟棄該分組并記錄 于日志,執(zhí)行步驟3.3.1;如果匹配,則讀取相應安全關聯(lián)存儲于DRAM傳輸寄存 器,執(zhí)行步驟3.a.^3.a,4讀取ESP報頭序列號,檢査是否落于該安全關聯(lián)的活動窗口,是則執(zhí) 行步驟3.a.5,否則丟棄該分組并記錄于日志,執(zhí)行步驟3.£1.1;3. a. 5對ESP進行ICV重構讀取ESP驗證,根據(jù)安全關聯(lián)提供的算法進行完整 性驗證,如果一致則執(zhí)行步驟3.a.6,如果不一致則丟棄該分組并記錄于日志, 執(zhí)行步驟3. a.l;3.&.6讀取£3 報頭初始向量,根據(jù)安全關聯(lián)提供的密碼算法和密鑰,對加 密載荷進行解密,如果解密成功則執(zhí)行步驟3.&7;如果解密失敗,則丟棄該分組并記錄于日志,執(zhí)行步驟3.a. 1;3.3.7將解密得到的明文去£8 尾,得到原分組;讀取原分組目的地址、源 地址、協(xié)議號、端口號與SPD (El)進行合法性驗證,如果符合則傳遞給路由模 塊進行轉發(fā),并記錄于日志;如果不符合則丟棄該分組,向接口微模塊II發(fā)送 中斷請求,交由異常情況處理微模塊,并記錄于日志,執(zhí)行步驟3.a.1。其中,步驟(3)所述對進入分組AH的處理,包括以下步驟3. b. l根據(jù)分組的接收端口判別分組為進入分組,根據(jù)分組隧道IP報頭 協(xié)議號判別分組為AH載荷,執(zhí)行步驟3.b.2;3.b.2根據(jù)分組描述符判別分組是否重組完畢,是則執(zhí)行步驟5.3,否 則丟棄分組并記錄于日志,執(zhí)行步驟3.b. 1;3. b. 3根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀 取隧道IP報頭目的地址、協(xié)議號,讀取AH報頭SPI構成SAID,進行Hash散列 得到Ha(x2),于SRAM中匹配査找相應安全關聯(lián);如果不能匹配,則丟棄該 分組并記錄于日志,執(zhí)行步驟3.b. 1;如果匹配,則讀取相應安全關聯(lián)存儲 于DRAM傳輸寄存器,執(zhí)行步驟3.b.4;3.b.4讀取AH報頭序列號,檢査是否落于該安全關聯(lián)的活動窗口,是則 執(zhí)行步驟3.b.5,否則丟棄該分組并記錄于日志,執(zhí)行步驟3.b.l;3.b.5截取AH驗證的ICV字段,保存并將該字段清零,按照安全關聯(lián)提 供的鑒別算法和密鑰進行鑒別,如果得數(shù)與ICV—致則執(zhí)行步驟3.b.6;如 果不一致,則丟棄該分組并記錄與日志,執(zhí)行步驟3.b.l;3.b.6去掉隧道IP報頭、AH報頭,讀取原分組目的地址,源地址、協(xié)議 號、端口號與SPD (Al)進行合法性驗證,如果符合則傳遞給路由模塊進行 轉發(fā);如果不符合則丟棄該分組,向接口微模塊II發(fā)送中斷請求,交由異常 情況處理微模塊,并記錄于日志,執(zhí)行步驟3.b. 1。其中,所述步驟(3)對外出分組ESP的處理,包括以下步驟3.c. 1根據(jù)分組的接收端口判別分組為外出分組,根據(jù)分組隧道IP報頭 協(xié)議號判別分組為ESP載荷,執(zhí)行步驟3.c.2;3. c. 2根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀 取分組IP報頭目的地址、源地址、協(xié)議號、端口號構成SPD,進行Hash散列 得到He (xl),于SRAM中匹配査找相應安全關聯(lián),如果不能匹配,則丟棄該 分組并記錄于日志,執(zhí)行步驟3.c. 1;如果匹配,則執(zhí)行步驟3.c.3;3. c. 3檢査SPD (El)對應地址指針是否為零,是則向IKE微模塊發(fā)送安 全關聯(lián)建立請求,丟棄該分組,并記錄于日志,執(zhí)行步驟3.c. 1,否則執(zhí)行 步驟3. c.4;3.c.4將外出分組IP報頭存儲于寄存器,將外出分組尾部進行填充,達 到32n-16(bit)的長度,增加8bit填充長度字段表示填充的長度,增加8bit 下一載荷字段標識該ESP封裝內容的協(xié)議,將外出分組IP報頭TTL遞減1;根 據(jù)安全關聯(lián)提供的加密算法、密鑰、初始向量,對填充完畢的外出分組起 于初始向量之后,止于下一載荷頭字段之間的數(shù)據(jù)進行加密,加密后輸出 代替原明文分組,執(zhí)行步驟3.c.5;3.c.5根據(jù)安全關聯(lián)構造ESP載荷,讀取SPI、序列號構造ESP頭,添加 初始向量于ESP頭之后,將構造完畢的ESP頭添加于上一步驟已加密分組之 前部,執(zhí)行步驟3.c.6;3. c. 6根據(jù)安全關聯(lián)判別是啟動鑒別功能,如果是則讀取鑒別算法和密 鑰對整個ESP載荷進行散列計算,將結果填入ESP的ICV字段,執(zhí)行步驟 3. c.7,如果不是則執(zhí)行步驟3. c. 7;3. c. 7根據(jù)安全關聯(lián)構造該外出ESP分組的隧道報頭,其中總長度為構 造完畢的全新分組長度,協(xié)議號為50,源地址、目的地址由SADB (El)指 定,執(zhí)行步驟3.c.8;3. c. 8將外出分組ESP傳遞給路由模塊進行轉發(fā)。其中,步驟(3)對外出分組AH的處理,包括以下步驟3. d. l根據(jù)分組的接收端口判別分組為外出分組,根據(jù)分組隧道IP報頭 協(xié)議號判別分組為AH載荷,執(zhí)行步驟3,d.2;3. d. 2根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀 取分組IP報頭目的地址、源地址、協(xié)議號、端口號構成SPD,進行Hash散列 得到Ha(xl),于SRAM中匹配査找相應安全關聯(lián),如果不能匹配,則丟棄該 分組并記錄于日志,執(zhí)行步驟3.d.1,如果匹配,則執(zhí)行步驟3,d.3;3.d.3檢査SPD(Al)對應地址指針是否為零,是則向IKE微模塊發(fā)送安 全關聯(lián)建立請求,丟棄該分組,并記錄于日志,執(zhí)行步驟3.d.1,否則執(zhí)行 步驟3.d.4;3.d.4根據(jù)安全關聯(lián)讀取外出分組版本號,讀取SPI、序列號,計算載 荷長度構造AH報頭,將AH報頭添加于外出分組之前部,讀取鑒別算法和密鑰,對起于AH報頭,止于分組尾部進行散列,得到鑒別數(shù)據(jù),添加于AH報 頭中,執(zhí)行步驟3.d.5;3. d. 5根據(jù)安全關聯(lián)構造該外出AH分組的隧道報頭,其中總長度為構造 完畢的全新分組長度,協(xié)議號為51,源地址、目的地址由SADB (Al)指定, 執(zhí)行步驟3. d.6;3.d. 6將外出分組AH傳遞給路由模塊進行轉發(fā)。其中,步驟(3)所述對IKE分組的處理,包括以下步驟-3.e. l監(jiān)聽來自系統(tǒng)內部的信號,是否存在IKE請求,是則執(zhí)行步驟 3. e. 3,否則執(zhí)行步驟3. e. 2;3.e.2監(jiān)聽源于端口500的UDP包,是否存在IKE請求分組,是則執(zhí)行步 驟3.e. 3,否則執(zhí)行步驟3. e. 1;3.e.3讀取該IKE分組中的源地指、目的地址、端口號,與服務狀態(tài)列 表對比判別當前是否正在進行同類Socket其他IKE協(xié)商,是則執(zhí)行步驟 3.e.4,否則執(zhí)行步驟3. e. 5;3.e.4讀取服務狀態(tài)列表,獲取相應驗證參數(shù)與協(xié)商狀態(tài)參數(shù),與當前 IKE分組進行驗證,符合則按照協(xié)商狀態(tài)進行具體步驟跳轉,否則拒絕請求, 向接口微模塊II發(fā)送中斷請求,交由異常情況處理微模塊,執(zhí)行步驟3.e. 1;3.e.5將目的地址、端口號,與服務狀態(tài)列表進行匹配査找,判別該請 求是否屬于提供VPN服務范圍內,是則執(zhí)行步驟3.e.6,否則向接口微模塊II 發(fā)送中斷請求,交由異常情況處理微模塊,執(zhí)行步驟8.1;3.e.6創(chuàng)建IKE描述符,創(chuàng)建本服務器cookie,與計數(shù)器等參數(shù)構成當 前服務狀態(tài)列表的IKE協(xié)商狀態(tài)表項存儲于SRAM,并向內核發(fā)送該請求允許 信號,執(zhí)行步驟3.e.7;3. e. 7如果本服務器為IKE發(fā)起者則執(zhí)行步驟3. e. 8,如果本服務器為 IKE響應者則執(zhí)行步驟3. e. 21;3, e.8構造發(fā)起者HDR,讀取ISAKMP SA,構造SA載荷,添加UDP頭,添 加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存 SRAM,修改協(xié)商狀態(tài)表項,啟動計時器,執(zhí)行步驟3.e.9;3. e. 9計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥值, 修改協(xié)商狀態(tài)表項,執(zhí)行步驟3, e.8,否則執(zhí)行步驟3.e. 10;3. e. IO接收到目的服務器的響應分組,讀取響應cookie和SA載荷,獲取協(xié)商第一階段參數(shù),在DRAM建立相應安全關聯(lián),執(zhí)行步驟3.e. 11;3. e. ll產(chǎn)生隨機密鑰X,瞬時載荷Ni,進行Diffie-Hellman (下面簡稱 D-H)交換,將HDR與發(fā)起者D-H公鑰Kx、瞬時載荷Ni構建成分組,添加UDP 頭,添加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記 錄于存SRAM,啟動計時器,執(zhí)行步驟3. e. 12;3.e. 12計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e. 11,否則執(zhí)行步驟3. e. 13;3.e. 13接收到目的服務器的響應分組,獲取協(xié)商第二階段參數(shù),讀取 響應者D-H公鑰Ky和瞬時載荷Ni",生成共享密鑰Kxy,并進行獨立的密鑰衍 生,執(zhí)行步驟3.e. 14;3. e. 14進行協(xié)商第三階段的一致性檢查,利用協(xié)商算法使用私有密鑰 產(chǎn)生數(shù)字簽名SIGi,將加密過的HDR^本服務器身份、協(xié)商證書以及SIGi 依順序組建成分組,添加UDP頭,添加外出分組報頭,傳遞給路由模塊進行 轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,啟動計時器,執(zhí)行步驟3. e. 15;3.e. 15計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e. 14,否則執(zhí)行步驟3.e. 16;3.e. 16接收到目的服務器的響應分組,獲取協(xié)商第三階段參數(shù),對對 方的身份和證書進行驗證,使用協(xié)商算法和密鑰對對方的數(shù)字簽名進行鑒 別,如果無誤則協(xié)商成功,執(zhí)行步驟3.e. 17,如果有誤則丟棄該分組,啟 動計數(shù)器,執(zhí)行步驟3.e. 14;3. e. 17建立IPSec SA,根據(jù)RFC2049,生成瞬時載荷Ni、數(shù)字簽名 HASH(l),根據(jù)服務狀態(tài)列表,提供一種或者多種SA,以及決定是否提供 PFS(Perfect Forward Service),構建發(fā)起者IPSec SA協(xié)商分組,添加UDP 頭,添加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記 錄于存SRAM,啟動計時器,執(zhí)行步驟3.e. 183.e. 18計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e. 17,否則執(zhí)行步驟3.e. 19;3.e. 19接收到目的服務器的響應分組,進行身分認證、數(shù)字簽名校驗, 如果無誤則執(zhí)行步驟3.e.20,有誤則丟棄該分組,執(zhí)行步驟3.e. 17;3.e.20獲取相應的安全關聯(lián),建立IPSec SA成功,生成數(shù)字簽名 HASH(3),構建最后協(xié)商響應,添加UDP頭,添加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,向內核發(fā)送IKE協(xié)商成 功信號,執(zhí)行步驟3.e. 1;3.e.21接收到IKE協(xié)商的發(fā)起分組,讀取發(fā)起者的HDR參數(shù),解析該分 組的SA載荷,讀取服務列表的安全決策,與發(fā)起者提供的安全關聯(lián)提議進 行匹配,如果存在匹配值,執(zhí)行步驟3.e.22,如果不存在匹配值,則丟棄 該分組,并向內核發(fā)送拒絕IKE請求信號;3. e. 22構造響應者HDR,通過服務狀態(tài)列表以及ISAKM SA選取相關SA 載荷,構建第一階段相應分組,添加UDP頭,添加外出分組報頭,傳遞給路 由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,啟動計時器,執(zhí)行步 驟3. e. 23;3.e.23計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.22,否則執(zhí)行步驟3.e.24;3.e.24接收到目的服務器的發(fā)起分組,獲取協(xié)商第二階段參數(shù),讀取 發(fā)起者D-H公鑰Kx和瞬時載荷Ni,產(chǎn)生隨機密鑰Y,瞬時載荷Nr,生成共享 密鑰Kxy,并進行獨立的密鑰衍生,獲取協(xié)商第三階段參數(shù)。將HDR與響應 者D-H公鑰Ky、瞬時載荷Nr構建響應分組,添加UDP頭,添加外出分組報頭, 傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,執(zhí)行步驟 3. e. 25;3.e.25計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.24,否則執(zhí)行步驟3.e.26;3.e.26接收到目的服務器的響應分組,對發(fā)起者的HDR、服務器身份、 證書和SIGi進行鑒別驗證,如果無誤則協(xié)商成功,將加密過的HDR、本服 務器身份、協(xié)商證書以及SIGr依順序組建成分組,添加UDP頭,添加外出分 組報頭,傳遞給路由模塊進行轉發(fā),將安全參數(shù)記錄,修改IKE協(xié)商狀態(tài)表 項,執(zhí)行步驟3.e.27,如果有誤則丟棄該分組,啟動計數(shù)器,執(zhí)行步驟 3. e. 24;3.e.27建立IPSec SA,接收目的服務器的發(fā)起分組,進行身份認證、 數(shù)字簽名校驗,如果無誤則執(zhí)行步驟3.e.28,有誤則丟棄該分組,執(zhí)行步 驟3. e.24;3.e.28獲取發(fā)起者HASH(1)、瞬時載荷Ni、可供選擇的安全關聯(lián),以及 其他的服務項參數(shù),通過服務狀態(tài)列表以及IPSec SA選取相關SA載荷,生成瞬時載荷Ni、數(shù)字簽名HASH(2),構建響應分組,添加UDP頭,添加外出 分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM, 啟動計時器,執(zhí)行步驟3.e.29;3.e.29計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.28,否則執(zhí)行步驟3.e.29;3.e.30接收到目的服務器的響應分組,進行身份認證、數(shù)字簽名校驗, 如果無誤則IKE協(xié)商成功,修改協(xié)商狀態(tài)表項記錄于存SRAM,向內核發(fā)送IKE 協(xié)商成功信號,執(zhí)行步驟3.e. 1,如果有誤,則啟動計數(shù)器,執(zhí)行步驟3.e. 28。3. e. 31以上涉及服務狀態(tài)列表讀寫操作,將預檢指定全局通用寄存器, 值為l則等輪詢等待;值為O則進一步操作;操作前將寄存器值置l,操作后 將寄存器值置O。其中,步驟(5)所述對異常情況進行處理,包括以下步驟5.1解析接口微模塊II傳遞的各類中斷請求,分類處理;5. 1. l安全關聯(lián)數(shù)據(jù)庫地址鏈接出錯處理,獲取出錯安全關聯(lián)數(shù)據(jù)參 數(shù),檢索服務狀態(tài)列表,如果匹配則,則向管理系統(tǒng)發(fā)送SPD構建請求;如 果不匹配則刪除出錯安全關聯(lián),并向管理系統(tǒng)發(fā)送刪除信息;5.1.2 IKE密鑰交換沖突處理,獲取沖突IKE的參數(shù),啟動沖突源計數(shù) 器、計時器,當下次同類沖突出現(xiàn)時,將照時間和次數(shù),加權運算,當結 果超出閥值則向管理系統(tǒng)發(fā)出警報信號;5.2監(jiān)控各列表存儲空間,當超過容量警戒時,向管理系統(tǒng)發(fā)出警報信號。本發(fā)明的原理是本基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道定位于可 信任區(qū)域(白區(qū))于公共網(wǎng)絡(紅區(qū))之間,特定端口接入于白區(qū),特定端口 接入于紅區(qū),外出分組和進入分組在這里進行過濾、路由和本發(fā)明所述的VPN處理。本發(fā)明是在Intel新一代網(wǎng)絡處理器IXP2850實現(xiàn)的,采用IPSec協(xié)議以 對傳輸數(shù)據(jù)進行保密,在千兆路由的基礎上構建VPN模塊,運用IXP2850專有 加解密內核,運用Hash算法對安全參數(shù)索引進行匹配查找,實現(xiàn)安全策略、加 密算法、解密算法、用戶認證、數(shù)字簽名功能的快速處理,在密鑰交換過重中 擁有抗重放、抵御中間人攻擊功能,并且采用微引擎(ME)與內核(XScale) 雙向通信技術進行數(shù)據(jù)庫更新、日志的維護。VPN的微碼部分和內核程序部分構成了本發(fā)明的技術主體,由于在可移植框 架的基礎上設計了接口微模塊,可與周邊資源共同實現(xiàn)集成路由、VNP功能的服 務器;本發(fā)明支持IPSec協(xié)議隧道安全模式的VPN;所構建VPN模塊中微引擎(ME) 模塊和內核(XSCale)模塊之間采用雙向通信進行控制數(shù)據(jù)傳輸。所構建VPN 模塊,根據(jù)功能分成多個微模塊,避開操作系統(tǒng)無關進程對本VPN系統(tǒng)整體性 能的影響,采用多線程并行處理機制進行數(shù)據(jù)操作,縮短存儲、査找周期,在 保證安全要求的前提下,有效提高VPN處理速度。本發(fā)明相對于現(xiàn)有技術具有以下優(yōu)點采用網(wǎng)絡處理器IXP2850實現(xiàn)VNP 功能,充分運用微引擎(ME) —內核(XSCale)構成的快一慢數(shù)據(jù)通道,利用 該網(wǎng)絡處理器專用的加解密內核,與微引擎(ME)和內核(XSCale)緊密耦合, 實現(xiàn)高速加解密處理,有效地縮短有效載荷加解密以及驗證的周期,能夠與路 由、防火墻等其他模塊高度集成,構成一個高速安全的虛擬專用網(wǎng)通道。


圖1是本發(fā)明基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道的結構示意圖。 圖2是圖1所示微引擎、內核模塊的內部結構示意圖。
具體實施方式
下面結合實施以及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方 式不限于此。如圖1所示,本基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道,所述網(wǎng)絡處 理器采用IXP2850,所述虛擬專用網(wǎng)通道包括微引擎簇、Xsacale (內核)模塊、 3個SRAM存儲單元(靜態(tài)隨機存儲器)及SRAM存儲控制器、1個DRAM存儲單 元(動態(tài)隨機存儲器)及DRAM存儲控制器、MSF (Media Switch Fabric,多媒 體交換結構)模塊、哈希單元;2個所述微引擎簇依次連接,且各個微引擎簇分 別由8個微引擎依次連接組成;所述2個微引擎簇、內核、MSF、哈希單元分別 與PCI總線連接;3個SRAM存儲單元、1個DRAM存儲單元相應通過SRAM存儲 控制器、DRAM存儲控制器分別與PCI總線連接,所述PCI總線與上位機的管理 系統(tǒng)模塊連接。如圖2所示,所述微引擎包括接口微模塊I、安全關聯(lián)微模塊、加解密微模 塊、協(xié)議處理微模塊、IKE微模塊;所述內核模塊包括初始化微模塊、接口微模塊n、管理微模塊、異常情況處理微模塊;所述初始化微模塊與所述接口微模塊I、安全關聯(lián)微模塊、加解密微模塊、協(xié)議處理微模塊、IKE微模塊、接口微模塊II、管理微模塊、異常情況處理微模 塊分別連接;所述接口微模塊I與接口微模塊II、安全關聯(lián)微模塊、協(xié)議處理 微模塊、IKE微模塊分別連接;所述接口微模塊II與管理微模塊、異常情況處理 微模塊分別連接;所述安全關聯(lián)微模塊與協(xié)議處理微模塊、IKE微模塊、管理微模塊、加解密 微模塊、SRAM存儲單元、DRAM存儲單元連接;所述協(xié)議處理微模塊與管理微模 塊、IKE微模塊、加解密微模塊、SRAM存儲控制器、DRAM存儲控制器相連接; 所述管理微模塊與IKE微模塊、SRAM存儲控制器、DRAM存儲控制器及上位機的 管理系統(tǒng)模塊相連接。實現(xiàn)上述基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道的方法,包括如下步驟(1) 建立系統(tǒng)并進行初始化配置;(2) 當網(wǎng)絡處理器接收到合法的VPN數(shù)據(jù)分組,將分組重組并存儲于所述 DRAM中,在所述SRAM生成相應的分組描述符,記錄分組在所述DRAM的存儲參數(shù), 所述存儲參數(shù)包括存儲位置、接收端口、協(xié)議類型等15元參數(shù),接口微模塊I通 過辨識接收端口、協(xié)議類型,將VPN數(shù)據(jù)包傳遞給協(xié)議處理微模塊等待處理;(3 )協(xié)議處理微模塊接收到接口程序傳遞過來的信號和分組描述符之后, 根據(jù)分組描述符對讀取分組報頭,對關鍵字位進行解析,將分組分為進入分組、 外出分組和IKE分組三類進行處理;所述對進入分組的處理包括ESPi、 Ahi的處 理,所述對外出分組的處理包括ESPo、 Aho的處理;(4) 所述接口微模塊II獲取分組存儲地址指針, 一方面根據(jù)上位機的管理 系統(tǒng)的需求將不同類型分組轉發(fā)至異常情況處理微模塊或者直接傳遞轉發(fā)進入 網(wǎng)絡,另一方面根據(jù)微引擎模塊的請求將不同類型分組轉發(fā)至異常情況處理微 模塊處理或者管理微模塊進行上傳至上位機管理系統(tǒng),然后接口微模塊II將存 儲地址指針存放于指定存儲空間以待提取使用;(5) 異常情況處理微模塊響應微引擎模塊的請求,對異常情況進行處理, 讀取各類分組報頭,進行分類處理,并將分組傳遞轉發(fā)進入網(wǎng)絡;(6) 管理微模塊響應上位機管理系統(tǒng)要求,生成IKE請求,發(fā)送至微引擎 IKE微模塊;接收微引擎的上傳日志,以及各類處理信號,并按時通過約定通信 機制傳遞給上位機的管理系統(tǒng)模塊;接收管理系統(tǒng)的信息,解析系統(tǒng)命令,并執(zhí)行安全策略修改、服務狀態(tài)列表修改的主動操作。 其中,步驟(1)所述初始化配置是指1. 1將接口微模塊I、安全關聯(lián)微模塊、加解密微模塊、協(xié)議處理微模塊各 程序設置于微引擎;1.2將接口微模塊n、管理微模塊、異常情況處理微模塊設置于內核;1.3初始化各存儲單元,分配存儲空間,將已構建的安全關聯(lián)數(shù)據(jù)、服務狀 態(tài)列表存儲于相應存儲單元,其中1. 3. l將ESP外出分組SPD(El)的數(shù)據(jù)進行關鍵字Hash運算,構建相應的Hash 列表,該表項存儲于SRAM,每條SPD條目地址指針或為空或指向安全關聯(lián)數(shù)據(jù)庫 SADB (E2)中的某SA束;1. 3. 2將ESP進入分組SAID的Hash表存儲于SRAM,對應的SADB (E2)存儲于 DRAM,每條SAID地址指針指向SADB中的某SA束,每條SADB地址指針指向SPD (El) 中的某條SPD條目;L3.3將AH外出分組SPD (Al)的數(shù)據(jù)進行關鍵字Hash運算處理,構建相應 的Hash列表,該表項存儲于SRAM,每條SPD條目地址指針或為空或指向SADB (A2) 中的某SA束;1.3.4將AH進入分組SAID的Hash表存儲于SRAM,對應的SADB (A2)存儲于 DRAM,每條SAID地址指針指向SADB中的某SA束,每條SADB地址指針指向SPD (Al) 中的某條SPD條目;1. 3. 5將服務狀態(tài)列表存儲于SRAM;將ISAKM SA存儲于DRAM。步驟l. 3. 5中所述服務狀態(tài)列表包括本服務器提供VPN服務的源地址,目的 地址,端口號,提供服務的類型,安全策略以及IKE協(xié)商狀態(tài),并包含以上涉及 的E1、 Al、 ISAKM SA地址指針。其中,步驟(3)所述對進入分組ESP的處理,包括以下步驟3.a. l根據(jù)分組的接收端口判別分組為進入分組,根據(jù)分組隧道IP報頭協(xié)議 號判別分組為ESP載荷,執(zhí)行步驟3. a. 2;3.&2根據(jù)分組描述符判別分組是否重組完畢,是則進行步驟3.a.3,否則 丟棄分組并記錄于日志,執(zhí)行步驟3.a,l;3. a. 3根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀取隧 道IP報頭目的地址、協(xié)議號,讀取ESP報頭SPI構成SAID,進行Hash散列得到He (x2),于SRAM中匹配査找相應安全關聯(lián),如果不能匹配,則丟棄該分組并記錄24果匹配,則讀取相應安全關聯(lián)存儲于DRAM傳輸寄存 器,執(zhí)行步驟3.a,4;3.&4讀取£5 報頭序列號,檢査是否落于該安全關聯(lián)的活動窗口,是則執(zhí) 行步驟3.a.5,否則丟棄該分組并記錄于日志,執(zhí)行步驟3.&1;3. a. 5對ESP進行ICV重構讀取ESP驗證,根據(jù)安全關聯(lián)提供的算法進行完整 性驗證,如果一致則執(zhí)行步驟3.a.6,如果不一致則丟棄該分組并記錄于日志, 執(zhí)行步驟3. a. 1;3.3.6讀取£5 報頭初始向量,根據(jù)安全關聯(lián)提供的密碼算法和密鑰,對加 密載荷進行解密,如果解密成功則執(zhí)行步驟3.&7;如果解密失敗,則丟棄該分組并記錄于日志,執(zhí)行步驟3.3.1;3.&.7將解密得到的明文去£5 尾,得到原分組;讀取原分組目的地址、源 地址、協(xié)議號、端口號與SPD (El)進行合法性驗證,如果符合則傳遞給路由模塊進行轉發(fā),并記錄于日志;如果不符合則丟棄該分組,向接口微模塊n發(fā)送中斷請求,交由異常情況處理微模塊,并記錄于日志,執(zhí)行步驟3.a.1。其中,步驟(3)所述對進入分組AH的處理,包括以下步驟3.b. 1根據(jù)分組的接收端口判別分組為進入分組,根據(jù)分組隧道IP報頭 協(xié)議號判別分組為AH載荷,執(zhí)行步驟3.b.2;3.b.2根據(jù)分組描述符判別分組是否重組完畢,是則執(zhí)行步驟5.3,否 則丟棄分組并記錄于日志,執(zhí)行步驟3.b.l;3. b. 3根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀 取隧道IP報頭目的地址、協(xié)議號,讀取AH報頭SPI構成SAID,進行Hash散列 得到Ha(x2),于SRAM中匹配查找相應安全關聯(lián);如果不能匹配,則丟棄該 分組并記錄于日志,執(zhí)行步驟3.b. 1;如果匹配,則讀取相應安全關聯(lián)存儲 于DRAM傳輸寄存器,執(zhí)行步驟3.b.4;3.b.4讀取AH報頭序列號,檢査是否落于該安全關聯(lián)的活動窗口,是則 執(zhí)行步驟3.b.5,否則丟棄該分組并記錄于日志,執(zhí)行步驟3.b, 1;3.b.5截取AH驗證的ICV字段,保存并將該字段清零,按照安全關聯(lián)提 供的鑒別算法和密鑰進行鑒別,如果得數(shù)與ICV—致則執(zhí)行步驟3.b.6;如 果不一致,則丟棄該分組并記錄與日志,執(zhí)行步驟3.b. 1;3.b.6去掉隧道IP報頭、AH報頭,讀取原分組目的地址,源地址、協(xié)議 號、端口號與SPD(A1)進行合法性驗證,如果符合則傳遞給路由模塊進行轉發(fā);如果不符合則丟棄該分組,向接口微模塊II發(fā)送中斷請求,交由異常 情況處理微模塊,并記錄于日志,執(zhí)行步驟3.b. 1。其中,所述步驟(3)對外出分組ESP的處理,包括以下步驟3.c. 1根據(jù)分組的接收端口判別分組為外出分組,根據(jù)分組隧道IP報頭 協(xié)議號判別分組為ESP載荷,執(zhí)行步驟3.c.2;3. c. 2根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀 取分組IP報頭目的地址、源地址、協(xié)議號、端口號構成SPD,進行Hash散列 得到He(xl),于SRAM中匹配査找相應安全關聯(lián),如果不能匹配,則丟棄該 分組并記錄于日志,執(zhí)行步驟3.c. 1;如果匹配,則執(zhí)行步驟3.c.3;3.c.3檢査SPD (El)對應地址指針是否為零,是則向IKE微模塊發(fā)送安 全關聯(lián)建立請求,丟棄該分組,并記錄于日志,執(zhí)行步驟3.c. 1,否則執(zhí)行 步驟3. c.4;3.c.4將外出分組IP報頭存儲于寄存器,將外出分組尾部進行填充,達 到32n-16(bit)的長度,增加8bit填充長度字段表示填充的長度,增加8bit 下一載荷字段標識該ESP封裝內容的協(xié)議,將外出分組IP報頭TTL遞減1;根 據(jù)安全關聯(lián)提供的加密算法、密鑰、初始向量,對填充完畢的外出分組起 于初始向量之后,止于下一載荷頭字段之間的數(shù)據(jù)進行加密,加密后輸出 代替原明文分組,執(zhí)行步驟3.c.5;3.c.5根據(jù)安全關聯(lián)構造ESP載荷,讀取SPI、序列號構造ESP頭,添加 初始向量于ESP頭之后,將構造完畢的ESP頭添加于上一步驟己加密分組之 前部,執(zhí)行步驟3.c.6;3. c. 6根據(jù)安全關聯(lián)判別是啟動鑒別功能,如果是則讀取鑒別算法和密 鑰對整個ESP載荷進行散列計算,將結果填入ESP的ICV字段,執(zhí)行步驟 3. c.7,如果不是則執(zhí)行步驟3.c, 7;3. c. 7根據(jù)安全關聯(lián)構造該外出ESP分組的隧道報頭,其中總長度為構 造完畢的全新分組長度,協(xié)議號為50,源地址、目的地址由SADB (El)指 定,執(zhí)行步驟3.c.8;3. c. 8將外出分組ESP傳遞給路由模塊進行轉發(fā)。其中,步驟(3)對外出分組AH的處理,包括以下步驟3.d. 1根據(jù)分組的接收端口判別分組為外出分組,根據(jù)分組隧道IP報頭 協(xié)議號判別分組為AH載荷,執(zhí)行步驟3.d.2;3. d. 2根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀 取分組IP報頭目的地址、源地址、協(xié)議號、端口號構成SPD,進行Hash散列 得到Ha(xl),于SRAM中匹配査找相應安全關聯(lián),如果不能匹配,則丟棄該 分組并記錄于日志,執(zhí)行步驟3. d. 1,如果匹配,則執(zhí)行步驟3.d.3;3.d.3檢査SPD (Al)對應地址指針是否為零,是則向IKE微模塊發(fā)送安 全關聯(lián)建立請求,丟棄該分組,并記錄于日志,執(zhí)行步驟3.d. 1,否則執(zhí)行 步驟3. d. 4;3.d.4根據(jù)安全關聯(lián)讀取外出分組版本號,讀取SPI、序列號,計算載 荷長度構造AH報頭,將AH報頭添加于外出分組之前部,讀取鑒別算法和密 鑰,對起于AH報頭,止于分組尾部進行散列,得到鑒別數(shù)據(jù),添加于AH報 頭中,執(zhí)行步驟3.d.5;3. d. 5根據(jù)安全關聯(lián)構造該外出AH分組的隧道報頭,其中總長度為構造 完畢的全新分組長度,協(xié)議號為51,源地址、目的地址由SADB (Al)指定, 執(zhí)行步驟3.d.6;3.d. 6將外出分組AH傳遞給路由模塊進行轉發(fā)。其中,步驟(3)所述對IKE分組的處理,包括以下步驟3.e.l監(jiān)聽來自系統(tǒng)內部的信號,是否存在IKE請求,是則執(zhí)行步驟 3. e. 3,否則執(zhí)行步驟3. e. 2;3.e.2監(jiān)聽源于端口500的UDP包,是否存在IKE請求分組,是則執(zhí)行步 驟3. e. 3,否則執(zhí)行步驟3.e. 1;3.e.3讀取該IKE分組中的源地指、目的地址、端口號,與服務狀態(tài)列 表對比判別當前是否正在進行同類Socket其他IKE協(xié)商,是則執(zhí)行步驟 3.e.4,否則執(zhí)行步驟3.e.5;3.e.4讀取服務狀態(tài)列表,獲取相應驗證參數(shù)與協(xié)商狀態(tài)參數(shù),與當前 IKE分組進行驗證,符合則按照協(xié)商狀態(tài)進行具體步驟跳轉,否則拒絕請求, 向接口微模塊II發(fā)送中斷請求,交由異常情況處理微模塊,執(zhí)行步驟3.e. 1;3.e.5將目的地址、端口號,與服務狀態(tài)列表進行匹配査找,判別該請 求是否屬于提供VPN服務范圍內,是則執(zhí)行步驟3.e.6,否則向接口微模塊II 發(fā)送中斷請求,交由異常情況處理微模塊,執(zhí)行步驟8. 1;3.e.6創(chuàng)建IKE描述符,創(chuàng)建本服務器cookie,與計數(shù)器等參數(shù)構成當 前服務狀態(tài)列表的IKE協(xié)商狀態(tài)表項存儲于SRAM,并向內核發(fā)送該請求允許27信號,執(zhí)行步驟3.e.7;3. e. 7如果本服務器為IKE發(fā)起者則執(zhí)行步驟3. e. 8,如果本服務器為 IKE響應者則執(zhí)行步驟3. e. 21;3. e.8構造發(fā)起者HDR,讀取ISAKMP SA,構造SA載荷,添加UDP頭,添 加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存 SRAM,修改協(xié)商狀態(tài)表項,啟動計時器,執(zhí)行步驟3. e.9;3. e. 9計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥值, 修改協(xié)商狀態(tài)表項,執(zhí)行步驟3. e.8,否則執(zhí)行步驟3.e. 10;3.e. IO接收到目的服務器的響應分組,讀取響應cookie和SA載荷,獲 取協(xié)商第一階段參數(shù),在DRAM建立相應安全關聯(lián),執(zhí)行步驟3.e. 11;3. e. ll產(chǎn)生隨機密鑰X,瞬時載荷Ni,進行Diffie-Hellman (下面簡稱 D-H)交換,將HDR與發(fā)起者D-H公鑰Kx、瞬時載荷Ni構建成分組,添加UDP 頭,添加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記 錄于存SRAM,啟動計時器,執(zhí)行步驟3.e. 12;3.e. 12計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e. 11,否則執(zhí)行步驟3. e. 13;3.e. 13接收到目的服務器的響應分組,獲取協(xié)商第二階段參數(shù),讀取 響應者D-H公鑰Ky和瞬時載荷Nr,生成共享密鑰Kxy,并進行獨立的密鑰衍 生,執(zhí)行步驟3.e. 14;3. e. 14進行協(xié)商第三階段的一致性檢査,利用協(xié)商算法使用私有密鑰 產(chǎn)生數(shù)字簽名SIGi,將加密過的HDR^、本服務器身份、協(xié)商證書以及SIGi 依順序組建成分組,添加UDP頭,添加外出分組報頭,傳遞給路由模塊進行 轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,啟動計時器,執(zhí)行步驟3.e. 15;3.e. 15計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e. 14,否則執(zhí)行步驟3.e. 16;3.e. 16接收到目的服務器的響應分組,獲取協(xié)商第三階段參數(shù),對對 方的身份和證書進行驗證,使用協(xié)商算法和密鑰對對方的數(shù)字簽名進行鑒 別,如果無誤則協(xié)商成功,執(zhí)行步驟3.e. 17,如果有誤則丟棄該分組,啟 動計數(shù)器,執(zhí)行步驟3.e.l4;3.e. 17建立IPSec SA,根據(jù)RFC2049,生成瞬時載荷Ni、數(shù)字簽名 HASH(l),根據(jù)服務狀態(tài)列表,提供一種或者多種SA,以及決定是否提供PFS (Perfect Forward Service),構建發(fā)起者IPSec SA協(xié)商分組,添加UDP 頭,添加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記 錄于存SRAM,啟動計時器,執(zhí)行步驟3.e. 183.e. 18計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e. 17,否則執(zhí)行步驟3.e. 19;3.e. 19接收到目的服務器的響應分組,進行身分認證、數(shù)字簽名校驗, 如果無誤則執(zhí)行步驟3.e.20,有誤則丟棄該分組,執(zhí)行步驟3.e. 17;3.e.20獲取相應的安全關聯(lián),建立IPSec SA成功,生成數(shù)字簽名 HASH(3),構建最后協(xié)商響應,添加UDP頭,添加外出分組報頭,傳遞給路 由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,向內核發(fā)送IKE協(xié)商成 功信號,執(zhí)行步驟3. e. 1;3.e.21接收到IKE協(xié)商的發(fā)起分組,讀取發(fā)起者的HDR參數(shù),解析該分 組的SA載荷,讀取服務列表的安全決策,與發(fā)起者提供的安全關聯(lián)提議進 行匹配,如果存在匹配值,執(zhí)行步驟3.e.22,如果不存在匹配值,則丟棄 該分組,并向內核發(fā)送拒絕IKE請求信號;3. e.22構造響應者HDR,通過服務狀態(tài)列表以及ISAKM SA選取相關SA 載荷,構建第一階段相應分組,添加UDP頭,添加外出分組報頭,傳遞給路 由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,啟動計時器,執(zhí)行步 驟3. e. 23;3.e.23計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.22,否則執(zhí)行步驟3.e.24;3.e.24接收到目的服務器的發(fā)起分組,獲取協(xié)商第二階段參數(shù),讀取 發(fā)起者D-H公鑰Kx和瞬時載荷Ni,產(chǎn)生隨機密鑰Y,瞬時載荷Nr,生成共享 密鑰Kxy,并進行獨立的密鑰衍生,獲取協(xié)商第三階段參數(shù)。將HDR與響應 者D-H公鑰Ky、瞬時載荷Nr構建響應分組,添加UDP頭,添加外出分組報頭, 傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,執(zhí)行步驟 3. e. 25;3.e.25計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.24,否則執(zhí)行步驟3.e.26;3.e.26接收到目的服務器的響應分組,對發(fā)起者的HDRHc、服務器身份、 證書和SIGi進行鑒別驗證,如果無誤則協(xié)商成功,將加密過的HDR^本服務器身份、協(xié)商證書以及SIGr依順序組建成分組,添加UDP頭,添加外出分 組報頭,傳遞給路由模塊進行轉發(fā),將安全參數(shù)記錄,修改IKE協(xié)商狀態(tài)表 項,執(zhí)行步驟3.e.27,如果有誤則丟棄該分組,啟動計數(shù)器,執(zhí)行步驟 3. e. 24;3.e.27建立IPSec SA,接收目的服務器的發(fā)起分組,進行身份認證、 數(shù)字簽名校驗,如果無誤則執(zhí)行步驟3.e.28,有誤則丟棄該分組,執(zhí)行步 驟3. e.24;3.e.28獲取發(fā)起者HASH(1)、瞬時載荷Ni、可供選擇的安全關聯(lián),以及 其他的服務項參數(shù),通過服務狀態(tài)列表以及IPSec SA選取相關SA載荷,生 成瞬時載荷Ni、數(shù)字簽名HASH(2),構建響應分組,添加UDP頭,添加外出 分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM, 啟動計時器,執(zhí)行步驟3.e.29;3.e.29計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.28,否則執(zhí)行步驟3.e.29;3.e.30接收到目的服務器的響應分組,進行身份認證、數(shù)字簽名校驗, 如果無誤則IKE協(xié)商成功,修改協(xié)商狀態(tài)表項記錄于存SRAM,向內核發(fā)送IKE 協(xié)商成功信號,執(zhí)行步驟3. e. 1,如果有誤,則啟動計數(shù)器,執(zhí)行步驟3. e. 28。3. e. 31以上涉及服務狀態(tài)列表讀寫操作,將預檢指定全局通用寄存器, 值為l則等輪詢等待;值為O則進一步操作;操作前將寄存器值置l,操作后 將寄存器值置O。其中,步驟(5)所述對異常情況進行處理,包括以下步驟5.1解析接口微模塊II傳遞的各類中斷請求,分類處理;5. 1. l安全關聯(lián)數(shù)據(jù)庫地址鏈接出錯處理,獲取出錯安全關聯(lián)數(shù)據(jù)參 數(shù),檢索服務狀態(tài)列表,如果匹配則,則向管理系統(tǒng)發(fā)送SPD構建請求;如 果不匹配則刪除出錯安全關聯(lián),并向管理系統(tǒng)發(fā)送刪除信息;5.1.2 IKE密鑰交換沖突處理,獲取沖突IKE的參數(shù),啟動沖突源計數(shù) 器、計時器,當下次同類沖突出現(xiàn)時,將照時間和次數(shù),加權運算,當結 果超出閥值則向管理系統(tǒng)發(fā)出警報信號;5.2監(jiān)控各列表存儲空間,當超過容量警戒時,向管理系統(tǒng)發(fā)出警報信號。如上所述,便可較好地實現(xiàn)本發(fā)明。上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實 施例的限制,其他的任何未背離本發(fā)明的精神實質與原理下所作的改變、修飾、 替代、組合、簡化,均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內。
權利要求
1、基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道,其特征在于包括微引擎簇、內核模塊、至少一個SRAM存儲單元及SRAM存儲控制器、至少一個DRAM存儲單元及DRAM存儲控制器、MSF模塊、哈希單元;2個所述微引擎簇依次連接,且各個微引擎簇分別由8個微引擎依次連接組成;所述2個微引擎簇、內核、MSF、哈希單元分別與PCI總線連接;各個SRAM存儲單元、DRAM存儲單元相應通過SRAM存儲控制器、DRAM存儲控制器分別與PCI總線連接,所述PCI總線與上位機的管理系統(tǒng)模塊連接。
2、 根據(jù)權利要求l所示基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道,其特 征在于所述網(wǎng)絡處理器采用IXP2850。
3、 根據(jù)權利要求l所示基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道,其特 征在于所述微引擎包括接口微模塊I、安全關聯(lián)微模塊、加解密微模塊、協(xié)議 處理微模塊、IKE微模塊;所述內核模塊包括初始化微模塊、接口微模塊II、管 理微模塊、異常情況處理微模塊;所述初始化微模塊與所述接口微模塊I、安全關聯(lián)微模塊、加解密微模塊、 協(xié)議處理微模塊、IKE微模塊、接口微模塊II、管理微模塊、異常情況處理微模 塊分別連接;所述接口微模塊I與接口微模塊II、安全關聯(lián)微模塊、協(xié)議處理 微模塊、IKE微模塊分別連接;所述接口微模塊II與管理微模塊、異常情況處理 微模塊分別連接;所述安全關聯(lián)微模塊與協(xié)議處理微模塊、IKE微模塊、管理微模塊、加解密 微模塊、SRAM存儲單元、DRAM存儲單元連接;所述協(xié)議處理微模塊與管理微模 塊、IKE微模塊、加解密微模塊、SRAM存儲控制器、DRAM存儲控制器相連接; 所述管理微模塊與IKE微模塊、SRAM存儲控制器、DRAM存儲控制器及上位機的管理系統(tǒng)模塊相連接。
4、 權利要求1 3任一項所述基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道的 實現(xiàn)方法,其特征在于包括如下步驟(1) 建立系統(tǒng)并進行初始化配置;(2) 當網(wǎng)絡處理器接收到合法的VPN數(shù)據(jù)分組,將分組重組并存儲于所述 DRAM中,在所述SRAM生成相應的分組描述符,記錄分組在所述DRAM的存儲參數(shù), 所述存儲參數(shù)包括存儲位置、接收端口、協(xié)議類型,接口微模塊I通過辨識接收 端口、協(xié)議類型,將VPN數(shù)據(jù)包傳遞給協(xié)議處理微模塊等待處理;(3 )協(xié)議處理微模塊接收到接口程序傳遞過來的信號和分組描述符之后, 根據(jù)分組描述符對讀取分組報頭,對關鍵字位進行解析,將分組分為進入分組、 外出分組和IKE分組三類進行處理;所述對進入分組的處理包括ESPi、 Ahi的處 理,所述對外出分組的處理包括ESPo、 Aho的處理;(4) 所述接口微模塊II獲取分組存儲地址指針, 一方面根據(jù)上位機的管理 系統(tǒng)的需求將不同類型分組轉發(fā)至異常情況處理微模塊或者直接傳遞轉發(fā)進入 網(wǎng)絡,另一方面根據(jù)微引擎模塊的請求將不同類型分組轉發(fā)至異常情況處理微 模塊處理或者管理微模塊進行上傳至上位機管理系統(tǒng),然后接口微模塊II將存 儲地址指針存放于指定存儲空間以待提取使用;(5) 異常情況處理微模塊響應微引擎模塊的請求,對異常情況進行處理, 讀取各類分組報頭,進行分類處理,并將分組傳遞轉發(fā)進入網(wǎng)絡;(6) 管理微模塊響應上位機管理系統(tǒng)要求,生成IKE請求,發(fā)送至微引擎 IKE微模塊;接收微引擎的上傳日志,以及各類處理信號,并按時通過約定通信 機制傳遞給上位機的管理系統(tǒng)模塊;接收管理系統(tǒng)的信息,解析系統(tǒng)命令,并 執(zhí)行安全策略修改、服務狀態(tài)列表修改的主動操作。
5、根據(jù)權利要求4所述基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道的實現(xiàn) 方法,其特征在于步驟(1)所述初始化配置是指-l.l將接口微模塊I、安全關聯(lián)微模塊、加解密微模塊、協(xié)議處理微模塊各 程序設置于微引擎;1.2將接口微模塊I1、管理微模塊、異常情況處理微模塊設置于內核;1.3初始化各存儲單元,分配存儲空間,將已構建的安全關聯(lián)數(shù)據(jù)、服務狀 態(tài)列表存儲于相應存儲單元,其中1. 3. l將ESP外出分組SPD(El)的數(shù)據(jù)進行關鍵字Hash運算,構建相應的Hash 列表,該表項存儲于SRAM,每條SPD條目地址指針或為空或指向安全關聯(lián)數(shù)據(jù)庫 SADB (E2)中的某SA束;1. 3. 2將ESP進入分組SAID的Hash表存儲于SRAM,對應的SADB (E2)存儲于 DRAM,每條SAID地址指針指向SADB中的某SA束,每條SADB地址指針指向SPD (El) 中的某條SPD條目;L3.3將AH外出分組SPD (Al)的數(shù)據(jù)進行關鍵字Hash運算處理,構建相應 的Hash列表,該表項存儲于SRAM,每條SPD條目地址指針或為空或指向SADB (A2) 中的某SA束;1.3.4將AH進入分組SAID的Hash表存儲于SRAM,對應的SADB (A2)存儲于 DRAM,每條SAID地址指針指向SADB中的某SA束,每條SADB地址指針指向SPD (Al) 中的某條SPD條目;1. 3. 5將服務狀態(tài)列表存儲于SRAM;將ISAKM SA存儲于DRAM;步驟(3)所述對進入分組ESP的處理,包括以下步驟3.a. l根據(jù)分組的接收端口判別分組為進入分組,根據(jù)分組隧道IP報頭協(xié)議 號判別分組為ESP載荷,執(zhí)行步驟3.a,2;3.a.2根據(jù)分組描述符判別分組是否重組完畢,是則進行步驟3.a.3,否則 丟棄分組并記錄于日志,執(zhí)行步驟3.a. 1;3. a. 3根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀取隧 道IP報頭目的地址、協(xié)議號,讀取ESP報頭SPI構成SAID,進行Hash散列得到He (x2),于SRAM中匹配査找相應安全關聯(lián),如果不能匹配,則丟棄該分組并記錄 于日志,執(zhí)行步驟3.&1;如果匹配,則讀取相應安全關聯(lián)存儲于DRAM傳輸寄存 器,執(zhí)行步驟3.a-4;3.a.4讀取£5 報頭序列號,檢査是否落于該安全關聯(lián)的活動窗口,是則執(zhí) 行步驟3.a,5,否則丟棄該分組并記錄于日志,執(zhí)行步驟3.a,l;3. a. 5對ESP進行ICV重構讀取ESP驗證,根據(jù)安全關聯(lián)提供的算法進行完整 性驗證,如果一致則執(zhí)行步驟3.a.6,如果不一致則丟棄該分組并記錄于日志, 執(zhí)行步驟3. a.l;3.a.6讀取ESP報頭初始向量,根據(jù)安全關聯(lián)提供的密碼算法和密鑰,對加 密載荷進行解密,如果解密成功則執(zhí)行步驟3.&.7;如果解密失敗,則丟棄該分 組并記錄于日志,執(zhí)行步驟3.&1;3.a.7將解密得到的明文去£5 尾,得到原分組;讀取原分組目的地址、源 地址、協(xié)議號、端口號與SPD (El)進行合法性驗證,如果符合則傳遞給路由模 塊進行轉發(fā),并記錄于日志;如果不符合則丟棄該分組,向接口微模塊II發(fā)送 中斷請求,交由異常情況處理微模塊,并記錄于日志,執(zhí)行步驟3.a,l;步驟(3)所述對進入分組AH的處理,包括以下步驟3. b.l根據(jù)分組的接收端口判別分組為進入分組,根據(jù)分組隧道IP報頭 協(xié)議號判別分組為AH載荷,執(zhí)行步驟3.b.2; 3.b.2根據(jù)分組描述符判別分組是否重組完畢,是則執(zhí)行步驟5.3,否 則丟棄分組并記錄于日志,執(zhí)行步驟3.b. 1;取隧道IP報頭目的地址、協(xié)議號,讀取AH報頭SPI構成SAID,進行Hash散列 得到Ha(x2),于SRAM中匹配査找相應安全關聯(lián);如果不能匹配,則丟棄該 分組并記錄于日志,執(zhí)行步驟3.b. 1;如果匹配,則讀取相應安全關聯(lián)存儲 于DRAM傳輸寄存器,執(zhí)行步驟3.b.4; 3.b.4讀取AH報頭序列號,檢査是否落于該安全關聯(lián)的活動窗口,是則 執(zhí)行步驟3.b.5,否則丟棄該分組并記錄于日志,執(zhí)行步驟3.b.l; 3.b.5截取AH驗證的ICV字段,保存并將該字段清零,按照安全關聯(lián)提 供的鑒別算法和密鑰進行鑒別,如果得數(shù)與ICV—致則執(zhí)行步驟3.b.6;如 果不一致,則丟棄該分組并記錄與日志,執(zhí)行步驟3.b. 1; 3.b.6去掉隧道IP報頭、AH報頭,讀取原分組目的地址,源地址、協(xié)議 號、端口號與SPD (Al)進行合法性驗證,如果符合則傳遞給路由模塊進行 轉發(fā);如果不符合則丟棄該分組,向接口微模塊II發(fā)送中斷請求,交由異常 情況處理微模塊,并記錄于日志,執(zhí)行步驟3.b. 1;所述步驟(3)對外出分組ESP的處理,包括以下步驟 3. c. l根據(jù)分組的接收端口判別分組為外出分組,根據(jù)分組隧道IP報頭 協(xié)議號判別分組為ESP載荷,執(zhí)行步驟3.c.2; 3. c. 2根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀 取分組IP報頭目的地址、源地址、協(xié)議號、端口號構成SPD,進行Hash散列 得到He(xl),于SRAM中匹配査找相應安全關聯(lián),如果不能匹配,則丟棄該 分組并記錄于日志,執(zhí)行步驟3.c. 1;如果匹配,則執(zhí)行步驟3.c.3; 3.c.3檢査SPD (El)對應地址指針是否為零,是則向IKE微模塊發(fā)送安 全關聯(lián)建立請求,丟棄該分組,并記錄于日志,執(zhí)行步驟3.c. 1,否則執(zhí)行 步驟3. c.4; 3.c.4將外出分組IP報頭存儲于寄存器,將外出分組尾部進行填充,達 到32n-16(bit)的長度,增加8bit填充長度字段表示填充的長度,增加8bit 下一載荷字段標識該ESP封裝內容的協(xié)議,將外出分組IP報頭TTL遞減1;根 據(jù)安全關聯(lián)提供的加密算法、密鑰、初始向量,對填充完畢的外出分組起 于初始向量之后,止于下一載荷頭字段之間的數(shù)據(jù)進行加密,加密后輸出 代替原明文分組,執(zhí)行步驟3.c.5; 3.c.5根據(jù)安全關聯(lián)構造ESP載荷,讀取SPI、序列號構造ESP頭,添加初始向量于ESP頭之后,將構造完畢的ESP頭添加于上一步驟已加密分組之 前部,執(zhí)行步驟3.c.6; 3. c. 6根據(jù)安全關聯(lián)判別是啟動鑒別功能,如果是則讀取鑒別算法和密 鑰對整個ESP載荷進行散列計算,將結果填入ESP的ICV字段,執(zhí)行步驟 3.c. 7,如果不是則執(zhí)行步驟3.c.7; 3. c. 7根據(jù)安全關聯(lián)構造該外出ESP分組的隧道報頭,其中總長度為構 造完畢的全新分組長度,協(xié)議號為50,源地址、目的地址由SADB (El)指 定,執(zhí)行步驟3.c.8; 3. c. 8將外出分組ESP傳遞給路由模塊進行轉發(fā);步驟(3)對外出分組AH的處理,包括以下步驟 3. d. l根據(jù)分組的接收端口判別分組為外出分組,根據(jù)分組隧道IP報頭 協(xié)議號判別分組為AH載荷,執(zhí)行步驟3.d.2; 3. d. 2根據(jù)分組描述符存儲地址讀取分組報頭存儲于ME傳輸寄存器,讀 取分組IP報頭目的地址、源地址、協(xié)議號、端口號構成SPD,進行Hash散列 得到Ha(xl),于SRAM中匹配査找相應安全關聯(lián),如果不能匹配,則丟棄該 分組并記錄于日志,執(zhí)行步驟3.d. 1,如果匹配,則執(zhí)行步驟3.d,3; 3.d.3檢查SPD (Al)對應地址指針是否為零,是則向IKE微模塊發(fā)送安 全關聯(lián)建立請求,丟棄該分組,并記錄于日志,執(zhí)行步驟3.d. 1,否則執(zhí)行 步驟3. d.4; 3.d.4根據(jù)安全關聯(lián)讀取外出分組版本號,讀取SPI、序列號,計算載 荷長度構造AH報頭,將AH報頭添加于外出分組之前部,讀取鑒別算法和密 鑰,對起于AH報頭,止于分組尾部進行散列,得到鑒別數(shù)據(jù),添加于AH報 頭中,執(zhí)行步驟3.d.5; 3. d. 5根據(jù)安全關聯(lián)構造該外出AH分組的隧道報頭,其中總長度為構造 完畢的全新分組長度,協(xié)議號為51,源地址、目的地址由SADB (Al)指定, 執(zhí)行步驟3. d.6; 3.d.6將外出分組AH傳遞給路由模塊進行轉發(fā);步驟(3)所述對IKE分組的處理,包括以下步驟 3.e.l監(jiān)聽來自系統(tǒng)內部的信號,是否存在IKE請求,是則執(zhí)行步驟 3. e. 3,否則執(zhí)行步驟3.e. 2; 3.e.2監(jiān)聽源于端口500的UDP包,是否存在IKE請求分組,是則執(zhí)行步驟3.e.3,否則執(zhí)行步驟3.e. 1; 3.e.3讀取該IKE分組中的源地指、目的地址、端口號,與服務狀態(tài)列 表對比判別當前是否正在進行同類Socket其他IKE協(xié)商,是則執(zhí)行步驟 3. e.4,否則執(zhí)行步驟3. e.5; 3.e.4讀取服務狀態(tài)列表,獲取相應驗證參數(shù)與協(xié)商狀態(tài)參數(shù),與當前 IKE分組進行驗證,符合則按照協(xié)商狀態(tài)進行具體步驟跳轉,否則拒絕請求, 向接口微模塊II發(fā)送中斷請求,交由異常情況處理微模塊,執(zhí)行步驟3.e.l; 3.e.5將目的地址、端口號,與服務狀態(tài)列表進行匹配査找,判別該請 求是否屬于提供VPN服務范圍內,是則執(zhí)行步驟3.e.6,否則向接口微模塊II 發(fā)送中斷請求,交由異常情況處理微模塊,執(zhí)行步驟8.1; 3.e.6創(chuàng)建IKE描述符,創(chuàng)建本服務器cookie,與計數(shù)器等參數(shù)構成當 前服務狀態(tài)列表的IKE協(xié)商狀態(tài)表項存儲于SRAM,并向內核發(fā)送該請求允許 信號,執(zhí)行步驟3.e.7; 3. e. 7如果本服務器為IKE發(fā)起者則執(zhí)行步驟3. e. 8,如果本服務器為 IKE響應者則執(zhí)行步驟3. e. 21; 3. e.8構造發(fā)起者HDR,讀取ISAKMP SA,構造SA載荷,添加UDP頭,添 加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存 SRAM,修改協(xié)商狀態(tài)表項,啟動計時器,執(zhí)行步驟3. e.9; 3. e. 9計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥值, 修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.8,否則執(zhí)行步驟3.e, 10; 3. e. IO接收到目的服務器的響應分組,讀取響應cookie和SA載荷,獲 取協(xié)商第一階段參數(shù),在DRAM建立相應安全關聯(lián),執(zhí)行步驟3.e. 11; 3. e. ll產(chǎn)生隨機密鑰X,瞬時載荷Ni,進行Diffie-Hellman (下面簡稱 D-H)交換,將HDR與發(fā)起者D-H公鑰Kx、瞬時載荷Ni構建成分組,添加UDP 頭,添加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記 錄于存SRAM,啟動計時器,執(zhí)行步驟3. e. 12; 3.e.l2計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e. 11,否則執(zhí)行步驟3.e. 13; 3.e. 13接收到目的服務器的響應分組,獲取協(xié)商第二階段參數(shù),讀取 響應者D-H公鑰Ky和瞬時載荷Nr,生成共享密鑰Kxy,并進行獨立的密鑰衍 生,執(zhí)行步驟3.e. 14;(3. e. 14進行協(xié)商第三階段的一致性檢査,利用協(xié)商算法使用私有密鑰 產(chǎn)生數(shù)字簽名SIGi,將加密過的HDRl本服務器身份、協(xié)商證書以及SIGi 依順序組建成分組,添加UDP頭,添加外出分組報頭,傳遞給路由模塊進行 轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,啟動計時器,執(zhí)行步驟3.e. 15; 3.e.l5計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e. 14,否則執(zhí)行步驟3.e. 16; 3.e.l6接收到目的服務器的響應分組,獲取協(xié)商第三階段參數(shù),對對 方的身份和證書進行驗證,使用協(xié)商算法和密鑰對對方的數(shù)字簽名進行鑒 別,如果無誤則協(xié)商成功,執(zhí)行步驟3.e. 17,如果有誤則丟棄該分組,啟 動計數(shù)器,執(zhí)行步驟3.e.l4; 3. e. 17建立IPSec SA,根據(jù)RFC2049,生成瞬時載荷Ni、數(shù)字簽名 HASH(l),根據(jù)服務狀態(tài)列表,提供一種或者多種SA,以及決定是否提供 PFS(Perfect Forward Service),構建發(fā)起者IPSec SA協(xié)商分組,添加UDP 頭,添加外出分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記 錄于存SRAM,啟動計時器,執(zhí)行步驟3. e. 18 3.e. 18計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e. 17,否則執(zhí)行步驟3.e. 19; 3.e. 19接收到目的服務器的響應分組,進行身分認證、數(shù)字簽名校驗, 如果無誤則執(zhí)行步驟3.e.20,有誤則丟棄該分組,執(zhí)行步驟3.e. 17; 3.e.20獲取相應的安全關聯(lián),建立IPSec SA成功,生成數(shù)字簽名 HASH(3),構建最后協(xié)商響應,添加UDP頭,添加外出分組報頭,傳遞給路 由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,向內核發(fā)送IKE協(xié)商成 功信號,執(zhí)行步驟3.e. 1; 3.e.21接收到IKE協(xié)商的發(fā)起分組,讀取發(fā)起者的HDR參數(shù),解析該分 組的SA載荷,讀取服務列表的安全決策,與發(fā)起者提供的安全關聯(lián)提議進 行匹配,如果存在匹配值,執(zhí)行步驟3.e.22,如果不存在匹配值,則丟棄 該分組,并向內核發(fā)送拒絕IKE請求信號; 3. e.22構造響應者HDR,通過服務狀態(tài)列表以及ISAKM SA選取相關SA 載荷,構建第一階段相應分組,添加UDP頭,添加外出分組報頭,傳遞給路 由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,啟動計時器,執(zhí)行步 驟3. e. 23;、3.e.23計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.22,否則執(zhí)行步驟3. e.24;、3.e.24接收到目的服務器的發(fā)起分組,獲取協(xié)商第二階段參數(shù),讀取 發(fā)起者D-H公鑰Kx和瞬時載荷Ni,產(chǎn)生隨機密鑰Y,瞬時載荷Nr,生成共享 密鑰Kxy,并進行獨立的密鑰衍生,獲取協(xié)商第三階段參數(shù)。將HDR與響應 者D-H公鑰Ky、瞬時載荷Nr構建響應分組,添加UDP頭,添加外出分組報頭, 傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM,執(zhí)行步驟 3. e. 25;、3.e.25計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.24,否則執(zhí)行步驟3.e.26;、3.e.26接收到目的服務器的響應分組,對發(fā)起者的HDRH^、服務器身份、 證書和SIGi進行鑒別驗證,如果無誤則協(xié)商成功,將加密過的HD財、本服 務器身份、協(xié)商證書以及SIGr依順序組建成分組,添加UDP頭,添加外出分 組報頭,傳遞給路由模塊進行轉發(fā),將安全參數(shù)記錄,修改IKE協(xié)商狀態(tài)表 項,執(zhí)行步驟3.e.27,如果有誤則丟棄該分組,啟動計數(shù)器,執(zhí)行步驟 3. e. 24;、3.e.27建立IPSec SA,接收目的服務器的發(fā)起分組,進行身份認證、 數(shù)字簽名校驗,如果無誤則執(zhí)行步驟3.e.28,有誤則丟棄該分組,執(zhí)行步 驟3.e. 24;、3.e.28獲取發(fā)起者HASH(1)、瞬時載荷Ni、可供選擇的安全關聯(lián),以及 其他的服務項參數(shù),通過服務狀態(tài)列表以及IPSec SA選取相關SA載荷,生 成瞬時載荷Ni、數(shù)字簽名HASH(2),構建響應分組,添加UDP頭,添加外出 分組報頭,傳遞給路由模塊進行轉發(fā)并修改協(xié)商狀態(tài)表項記錄于存SRAM, 啟動計時器,執(zhí)行步驟3.e.29;、3.e.29計時器超時喚醒事件線程,讀取協(xié)商狀態(tài)表項,核對計數(shù)器閥 值,修改協(xié)商狀態(tài)表項,執(zhí)行步驟3.e.28,否則執(zhí)行步驟3.e.29;、3.e.30接收到目的服務器的響應分組,進行身份認證、數(shù)字簽名校驗, 如果無誤則IKE協(xié)商成功,修改協(xié)商狀態(tài)表項記錄于存SRAM,向內核發(fā)送IKE 協(xié)商成功信號,執(zhí)行步驟3.e. 1,如果有誤,則啟動計數(shù)器,執(zhí)行步驟3.e.28。、3. e. 31以上涉及服務狀態(tài)列表讀寫操作,將預檢指定全局通用寄存器, 值為l則等輪詢等待;值為0則進一步操作^操作前將寄存器值置l,操作后將寄存器值置o。6、 根據(jù)權利要求5所述基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道的實現(xiàn) 方法,其特征在于步驟1,3.5中所述服務狀態(tài)列表包括本服務器提供VPN服務 的源地址,目的地址,端口號,提供服務的類型,安全策略以及IKE協(xié)商狀態(tài), 并包含以上涉及的E1、 Al、 ISAKM SA地址指針。7、 根據(jù)權利要求4所述基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道的實現(xiàn) 方法,其特征在于步驟(5)所述對異常情況進行處理,包括以下步驟5. 1解析接口微模塊II傳遞的各類中斷請求,分類處理;5. 1. l安全關聯(lián)數(shù)據(jù)庫地址鏈接出錯處理,獲取出錯安全關聯(lián)數(shù)據(jù)參 數(shù),檢索服務狀態(tài)列表,如果匹配則,則向管理系統(tǒng)發(fā)送SPD構建請求;如 果不匹配則刪除出錯安全關聯(lián),并向管理系統(tǒng)發(fā)送刪除信息;5. 1.2IKE密鑰交換沖突處理,獲取沖突IKE的參數(shù),啟動沖突源計數(shù)器、 計時器,當下次同類沖突出現(xiàn)時,將照時間和次數(shù),加權運算,當結果超 出閥值則向管理系統(tǒng)發(fā)出警報信號;5.2監(jiān)控各列表存儲空間,當超過容量警戒時,向管理系統(tǒng)發(fā)出警報信號。
全文摘要
本發(fā)明提供基于網(wǎng)絡處理器的高速安全虛擬專用網(wǎng)通道,包括微引擎簇、內核模塊、至少一個SRAM及其存儲控制器、至少一個DRAM及其存儲控制器、MSF模塊、哈希單元;2個微引擎簇依次連接,且各個微引擎簇分別由8個微引擎依次連接組成;2個微引擎簇、內核、MSF、哈希單元分別與PCI總線連接;各個SRAM、DRAM相應通過其存儲控制器分別與PCI總線連接,PCI總線與上位機管理系統(tǒng)模塊連接。本發(fā)明采用網(wǎng)絡處理器IXP2850實現(xiàn)VNP功能,充分運用微引擎—內核構成的快—慢數(shù)據(jù)通道,利用專用加解密內核,有效縮短有效載荷加解密以及驗證的周期,與路由、防火墻等高度集成,有效緩沖安全要求與數(shù)據(jù)處理速度的矛盾。
文檔編號H04L9/00GK101262405SQ200810027350
公開日2008年9月10日 申請日期2008年4月11日 優(yōu)先權日2008年4月11日
發(fā)明者劉震宇, 謝勝利, 粵 賴 申請人:華南理工大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
深州市| 大庆市| 井陉县| 易门县| 舞钢市| 金昌市| 菏泽市| 义乌市| 区。| 通州区| 凤凰县| 胶州市| 广州市| 安康市| 连州市| 那曲县| 舒城县| 安徽省| 龙岩市| 浑源县| 梅河口市| 纳雍县| 桂阳县| 赣榆县| 青川县| 利辛县| 吉林省| 福安市| 高台县| 浪卡子县| 许昌市| 建昌县| 泸定县| 南平市| 新晃| 图木舒克市| 衡山县| 兴安县| 高雄县| 昌图县| 武乡县|