IPSec加速方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供一種IPSec加速方法、裝置及系統(tǒng)。該方法包括:IKE模塊基于IPSec配置參數(shù)及SPD中的安全策略生成IKE建鏈會話報文;該IKE模塊發(fā)送所述IKE建鏈會話報文給對端設(shè)備,與對端設(shè)備建立SA;該IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,IKE模塊與數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。本發(fā)明實施例分立設(shè)置IKE模塊和數(shù)據(jù)轉(zhuǎn)發(fā)模塊,這樣,IKE模塊和數(shù)據(jù)轉(zhuǎn)發(fā)模塊可部署于不同的設(shè)備,從而可提高IPSec速度。
【專利說明】
I PSec加速方法、裝置及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及網(wǎng)絡(luò)安全技術(shù),尤其涉及一種因特網(wǎng)安全協(xié)議(英文:Internet Protocol Security,簡稱:IPSec)加速方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)業(yè)務(wù)的迅速發(fā)展,對網(wǎng)絡(luò)信息安全的要求越來越高,互聯(lián)網(wǎng)工程任務(wù)組(英文:Internet Engineering Task Force,簡稱:IETF)開發(fā)了 IPSec 來保證通信的安全性。
[0003]其中,IPSec的工作流程分為兩個階段:
[0004]第一階段:互聯(lián)網(wǎng)密鑰交換(英文:Internet Key Exchange Protocol,簡稱:IKE)建鏈。IKE建鏈為IPSec提供自動協(xié)商交換密鑰,建立安全聯(lián)盟(英文-SecurityAssociat1n,簡稱:SA)的服務(wù)。IKE建鏈包括IKE SA載荷交換,密鑰交換(英文:KeyExchange,簡稱:KE)載荷和偽隨機信息(英文=Nonce)載荷交換,通信雙方計算共享密鑰參數(shù)、身份認證;以及IPSec SA載荷交換,協(xié)商IPSec SA的驗證算法和加密算法等。
[0005]第二階段:數(shù)據(jù)轉(zhuǎn)發(fā)。將因特網(wǎng)協(xié)議(英文:Internet Protocol,簡稱:IP)報文進行加/解密、加/解封裝等處理后再轉(zhuǎn)發(fā)。
[0006]現(xiàn)有技術(shù)中,運行在Iinux操作系統(tǒng)平臺下的開源產(chǎn)品Openswan的密匙(英文:key)管理工具pluto在IKE建鏈時,單線程單狀態(tài)機在用戶態(tài)處理IKE建鏈的全部工作,即處理完一個IKE建鏈的所有報文后,才能接收處理下一個IKE建鏈的報文,從而導(dǎo)致pluto負擔(dān)重,建鏈速度慢。另外,IKE建鏈與數(shù)據(jù)轉(zhuǎn)發(fā)由單個虛擬機(英文:Virtual Machine,簡稱:VM)或者主機完成,因虛擬機或主機的處理能力有限,因此,進一步影響IKE建鏈,且存在數(shù)據(jù)轉(zhuǎn)發(fā)慢的問題。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實施例提供一種IPSec加速方法、裝置及系統(tǒng),以解決現(xiàn)有IPSec中IKE建鏈及數(shù)據(jù)轉(zhuǎn)發(fā)速度慢的問題。
[0008]第一方面,本發(fā)明實施例提供一種互聯(lián)網(wǎng)安全協(xié)議IPSec加速方法,包括:
[0009]互聯(lián)網(wǎng)密鑰交換IKE模塊基于IPSec配置參數(shù)及安全策略數(shù)據(jù)庫SPD中的安全策略生成IKE建鏈會話報文;
[0010]所述IKE模塊發(fā)送所述IKE建鏈會話報文給對端設(shè)備,與所述對端設(shè)備建立安全聯(lián)盟SA ;
[0011]所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,所述IKE模塊與所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。
[0012]根據(jù)第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述IKE模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述IKE模塊基于IPSec配置參數(shù)及SPD中的安全策略生成IKE建鏈會話報文,包括:
[0013]所述IKE模塊基于所述IPSec配置參數(shù)及所述SPD中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,生成所述IKE建鏈會話報文。
[0014]根據(jù)第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,包括:
[0015]所述IKE模塊采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0016]根據(jù)第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,包括:
[0017]所述IKE模塊采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入控制模塊,通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0018]第二方面,本發(fā)明實施例提供一種互聯(lián)網(wǎng)安全協(xié)議IPSec加速方法,包括:
[0019]互聯(lián)網(wǎng)密鑰交換IKE模塊接收IKE建鏈會話報文;
[0020]所述IKE模塊基于IPSec配置參數(shù)及安全策略數(shù)據(jù)庫SPD中的安全策略,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立安全聯(lián)盟SA ;
[0021]所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,所述IKE模塊與所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。
[0022]根據(jù)第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述IKE模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述IKE模塊基于IPSec配置參數(shù)及SPD中的安全策略,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立SA,包括:
[0023]所述IKE模塊基于所述IPSec配置參數(shù)及所述SPD中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立SA。
[0024]根據(jù)第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,包括:
[0025]所述IKE模塊采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0026]根據(jù)第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,包括:
[0027]所述IKE模塊采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入控制模塊,通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0028]第三方面,本發(fā)明實施例提供一種互聯(lián)網(wǎng)安全協(xié)議IPSec加速方法,包括:
[0029]數(shù)據(jù)轉(zhuǎn)發(fā)模塊接收數(shù)據(jù)報文,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上;
[0030]所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊根據(jù)安全聯(lián)盟SA,對所述數(shù)據(jù)報文進行并行運算加/解密算法及認證方式,得到目標(biāo)報文;
[0031 ] 所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊轉(zhuǎn)發(fā)所述目標(biāo)報文。
[0032]根據(jù)第三方面,在第三方面的第一種可能的實現(xiàn)方式中,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊根據(jù)SA,對所述數(shù)據(jù)報文進行并行運算加/解密算法及認證方式,得到目標(biāo)報文之前,還包括:
[0033]所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊接受互聯(lián)網(wǎng)密鑰交換IKE模塊寫入所述SA的操作,其中,所述寫入所采用的寫入方式為遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊與所述 IKE模塊為分立的模塊。
[0034]第四方面,本發(fā)明實施例提供一種互聯(lián)網(wǎng)密鑰交換IKE模塊,包括:
[0035]處理單元和發(fā)送單元,其中,所述發(fā)送單元包括第一發(fā)送子單元和第二發(fā)送子單元;
[0036]所述處理單元,用于基于互聯(lián)網(wǎng)安全協(xié)議IPSec配置參數(shù)及安全策略數(shù)據(jù)庫SPD 中的安全策略生成IKE建鏈會話報文;
[0037]所述第一發(fā)送子單元,用于發(fā)送所述IKE建鏈會話報文給對端設(shè)備,所述IKE模塊通過所述IKE建鏈會話報文與所述對端設(shè)備建立安全聯(lián)盟SA ;
[0038]所述第二發(fā)送子單元,用于發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,所述IKE模塊與所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。
[0039]根據(jù)第四方面,在第四方面的第一種可能的實現(xiàn)方式中,所述IKE模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述處理單元具體用于:基于所述IPSec配置參數(shù)及所述sro中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,生成所述IKE建鏈會話報文。
[0040]根據(jù)第四方面或第四方面的第一種可能的實現(xiàn)方式,在第四方面的第二種可能的實現(xiàn)方式中,所述第二發(fā)送子單元具體用于:采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0041]根據(jù)第四方面或第四方面的第一種可能的實現(xiàn)方式,在第四方面的第三種可能的實現(xiàn)方式中,所述第二發(fā)送子單元具體用于:采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入控制模塊,通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0042]第五方面,本發(fā)明實施例提供一種互聯(lián)網(wǎng)密鑰交換IKE模塊,包括:
[0043]接收單元,用于接收IKE建鏈會話報文;
[0044]處理單元,用于基于互聯(lián)網(wǎng)安全協(xié)議IPSec配置參數(shù)及安全策略數(shù)據(jù)庫SPD中的安全策略,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立安全聯(lián)盟SA ;
[0045]發(fā)送單元,用于發(fā)送所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,所述IKE模塊與所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。
[0046]根據(jù)第五方面,在第五方面的第一種可能的實現(xiàn)方式中,所述IKE模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述處理單元具體用于:基于所述IPSec配置參數(shù)及所述sro中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立安全聯(lián)盟SA。
[0047]根據(jù)第五方面或第五方面的第一種可能的實現(xiàn)方式,在第五方面的第二種可能的實現(xiàn)方式中,所述發(fā)送單元具體用于:采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA 寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0048]根據(jù)第五方面或第五方面的第一種可能的實現(xiàn)方式,在第五方面的第三種可能的實現(xiàn)方式中,所述發(fā)送單元具體用于:采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA 寫入控制模塊,通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0049]第六方面,本發(fā)明實施例提供一種數(shù)據(jù)轉(zhuǎn)發(fā)模塊,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊包括:
[0050]接收單元,用于接收數(shù)據(jù)報文;
[0051]處理單元,用于根據(jù)安全聯(lián)盟SA,對所述數(shù)據(jù)報文進行并行運算加/解密算法及認證方式,得到目標(biāo)報文;
[0052]發(fā)送單元,用于轉(zhuǎn)發(fā)所述目標(biāo)報文。
[0053]根據(jù)第六方面,在第六方面的第一種可能的實現(xiàn)方式中,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊還包括存儲單元:
[0054]所述存儲單元,用于接受互聯(lián)網(wǎng)密鑰交換IKE模塊寫入所述SA的操作,其中,所述寫入所采用的寫入方式為遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊與所述 IKE模塊為分立的模塊。
[0055]第七方面,本發(fā)明實施例提供一種互聯(lián)網(wǎng)安全協(xié)議IPSec加速系統(tǒng),包括:
[0056]如第四方面任一項所述的IKE模塊和如第六方面任一項所述的數(shù)據(jù)轉(zhuǎn)發(fā)模塊;或者
[0057]如第五方面任一項所述的IKE模塊和如第六方面任一項所述的數(shù)據(jù)轉(zhuǎn)發(fā)模塊;或者
[0058]如第四方面任一項所述的IKE模塊、如第五方面任一項所述的IKE模塊和如第六方面任一項所述的數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0059]本發(fā)明實施例1PSec加速方法、裝置及系統(tǒng),通過IKE模塊實現(xiàn)IKE建鏈,通過數(shù)據(jù)轉(zhuǎn)發(fā)模塊實現(xiàn)數(shù)據(jù)報文轉(zhuǎn)發(fā),其中,IKE模塊與數(shù)據(jù)轉(zhuǎn)發(fā)模塊相互獨立,可分別部署于不同的設(shè)備中,因此,其性能互不影響,可提高IPSec速度及靈活性,解決現(xiàn)有IPSec存在的 IKE建鏈速度慢及數(shù)據(jù)轉(zhuǎn)發(fā)慢的問題。【附圖說明】
[0060]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0061]圖1為本發(fā)明IPSec加速方法實施例一的流程圖;
[0062]圖2為本發(fā)明IPSec加速系統(tǒng)實施例一中IKE模塊采用PDMA將SA/安全策略寫入數(shù)據(jù)轉(zhuǎn)發(fā)模塊的示例圖;
[0063]圖3為本發(fā)明IPSec加速方法實施例二的流程圖;
[0064]圖4為本發(fā)明IPSec加速方法實施例三的流程圖;
[0065]圖5為本發(fā)明IKE模塊實施例一的結(jié)構(gòu)不意圖;
[0066]圖6為本發(fā)明IKE模塊實施例二的結(jié)構(gòu)示意圖;
[0067]圖7為本發(fā)明數(shù)據(jù)轉(zhuǎn)發(fā)模塊實施例一的結(jié)構(gòu)示意圖;
[0068]圖8為本發(fā)明IPSec加速系統(tǒng)實施例一的結(jié)構(gòu)示意圖;
[0069]圖9為本發(fā)明IPSec加速系統(tǒng)實施例二的結(jié)構(gòu)示意圖;
[0070]圖10示出本發(fā)明IPSec加速方法實施例四的流程圖;
[0071]圖11示出本發(fā)明IPSec加速方法實施例五的流程圖?!揪唧w實施方式】
[0072]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0073]本發(fā)明實施例的基本思想是將IKE建鏈和數(shù)據(jù)轉(zhuǎn)發(fā)邏輯分離,且物理無限定部署,例如可以在不同設(shè)備,例如加速卡、虛擬機、服務(wù)器、集群等,可分別加速IKE建鏈速度及數(shù)據(jù)轉(zhuǎn)發(fā)能力,同時,兼顧高性能和靈活性。
[0074]圖1為本發(fā)明IPSec加速方法實施例一的流程圖。本發(fā)明實施例提供一種IPSec 加速方法,該方法可以由任意執(zhí)行IPSec加速方法的裝置來執(zhí)行,該裝置可以通過軟件和/ 或硬件實現(xiàn)。如圖1所示,該方法包括:
[0075]S10UIKE模塊基于IPSec配置參數(shù)及SPD中的安全策略生成IKE建鏈會話報文。
[0076]其中,SPD即安全策略數(shù)據(jù)庫(英文:Security Policy Database,簡稱:SPD)。在 SH)中,包含至少一條安全策略(英文Security Policy,簡稱:SP),安全策略決定了為一個數(shù)據(jù)報文提供的安全服務(wù)。其中,安全策略包括需要進行保護的數(shù)據(jù)報文的特征;如何保護數(shù)據(jù)報文,例如,保護數(shù)據(jù)報文所采用的加密算法等數(shù)據(jù)報文處理方法;及,數(shù)據(jù)報文的收發(fā)端信息等。
[0077]IPSec配置參數(shù)包括但不限于以下參數(shù):網(wǎng)關(guān)IP地址、子網(wǎng)設(shè)備IP地址、IPSec工作模式(type)、封裝格式、IKE SA及IKE SA的生命周期等參數(shù)。其中,IPSec工作模式包括隧道模式(tunnel)和傳輸模式。
[0078]S102、IKE模塊發(fā)送上述IKE建鏈會話報文給對端設(shè)備,與該對端設(shè)備建立SA。
[0079]IKE模塊根據(jù)SH)確定接收上述IKE建鏈會話報文的設(shè)備作為對端設(shè)備,并將該 IKE建鏈會話報文發(fā)送給該對端設(shè)備,觸發(fā)與對端設(shè)備的IKE協(xié)商,獲得SA。
[0080]具體地,由于IKE建鏈包括兩個階段,分別為第一階段的IKE協(xié)商以及第二階段的 IKE協(xié)商,因此,這里的SA包括IKE SA以及IPSec SA。其中,第一階段的IKE協(xié)商生成IKE SA,第二階段的IKE協(xié)商生成IPSec SA。第二階段的IKE協(xié)商是在IKE SA的保護下進行的。
[0081]S103、IKE模塊發(fā)送上述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,IKE模塊與數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。
[0082]該實施例中,IKE模塊與數(shù)據(jù)轉(zhuǎn)發(fā)模塊是分立的,即相互獨立,因此,這兩個模塊可以集成在同一設(shè)備中,也可以分別部署于不同的設(shè)備中,也即這兩個模塊是邏輯分離,且物理無限定部署的。
[0083]由上述步驟可知,IKE模塊可完成IKE建鏈,獲得SA。另外,數(shù)據(jù)轉(zhuǎn)發(fā)模塊根據(jù)該 SA進行數(shù)據(jù)報文的轉(zhuǎn)發(fā)(數(shù)據(jù)轉(zhuǎn)發(fā))。
[0084]現(xiàn)有技術(shù)中,IKE建鏈與數(shù)據(jù)轉(zhuǎn)發(fā)都由單個虛擬機或者物理機完成,導(dǎo)致IPSec速度慢。
[0085]本發(fā)明實施例通過將用于實現(xiàn)IKE建鏈和數(shù)據(jù)轉(zhuǎn)發(fā)的功能的模塊進行邏輯分離, 即通過IKE模塊實現(xiàn)IKE建鏈,通過數(shù)據(jù)轉(zhuǎn)發(fā)模塊實現(xiàn)數(shù)據(jù)報文轉(zhuǎn)發(fā),其中,IKE模塊與數(shù)據(jù)轉(zhuǎn)發(fā)模塊相互獨立,以加速IPSec會話的建立;還可以增強IPSec處理的靈活性。上述有益效果尤其在高密接入場景的無線局域網(wǎng)(英文:Wireless Local Area Networks,簡稱: WLAN)中較明顯。
[0086]在上述實施例的基礎(chǔ)上,一種實現(xiàn)方式中,IKE模塊可以部署在加速卡的現(xiàn)場可編程門陣列(英文:Field — Programmable Gate Array,簡稱:FPGA)芯片上。在該實現(xiàn)方式中,S101可以包括:IKE模塊基于IPSec配置參數(shù)及SPD中的安全策略,采用蒙哥馬利 (Montgomery)算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼(英文:diffie hellman,簡稱:DH)密鑰值,生成IKE建鏈會話報文。其中,上述大數(shù)例如為1024比特(bit)或2048比特,等等。將IKE模塊部署在加速卡的FPGA芯片上,減短大數(shù)生成及計算DH密鑰值所消耗的時長等。
[0087]補充說明的是,在Gx8072處理器中,由MiCA模塊完成處理IKE建鏈和數(shù)據(jù)報文轉(zhuǎn)發(fā)工作。MiCA模塊具有40Gbps IPSec/安全套接層(英文:Secure Sockets Layer,簡稱: SSL)協(xié)議處理能力。其中,IPSec的所有工作均交付給MiCA模塊完成。實際場景中若只需要IPSec功能,則MiCA模塊的其他特性均屬多余,從而造成資源的浪費,增加成本。另外, MiCA模塊處理IPSec,其中,IKE建鏈速度和數(shù)據(jù)報文轉(zhuǎn)發(fā)帶寬能力為固定值,也是無法按需擴展的。本發(fā)明實施例將IKE模塊部署在FPGA芯片,IKE建鏈速度可根據(jù)需求變化,實現(xiàn)按需擴展。
[0088]該實現(xiàn)方式中,IKE模塊部署在加速設(shè)備中。其中,上述如加速卡的FPGA芯片僅為其中一種示例,本發(fā)明不以此為限制。
[0089]進一步地,S103可以包括:IKE模塊采用遠程直接數(shù)據(jù)存取(英文:Remote Direct Memory Access,簡稱:RDMA)或預(yù)設(shè)協(xié)議,將所述SA寫入數(shù)據(jù)轉(zhuǎn)發(fā)模塊。例如,將所述SA寫入數(shù)據(jù)轉(zhuǎn)發(fā)模塊的內(nèi)存中。或者,S103可以包括:IKE模塊采用RDMA或預(yù)設(shè)協(xié)議,將所述 SA寫入控制模塊,通過該控制模塊轉(zhuǎn)發(fā)所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊。可選地,IKE模塊還可以采用RDMA或預(yù)設(shè)協(xié)議,將所述安全策略寫入數(shù)據(jù)轉(zhuǎn)發(fā)模塊。其中,IKE模塊采用RDMA寫數(shù)據(jù)轉(zhuǎn)發(fā)模塊的內(nèi)存的方式來傳輸SA,傳輸速率可達到20Gbps以上。
[0090]其中,對于上述預(yù)設(shè)協(xié)議,本發(fā)明不限制其具體種類。例如,可使用任意私有或公開協(xié)議在IKE模塊和數(shù)據(jù)轉(zhuǎn)發(fā)模塊之間傳輸SA。
[0091]如圖2所示,以RDMA為例,說明IKE模塊11如何將SA/安全策略寫入數(shù)據(jù)轉(zhuǎn)發(fā)模塊12,其中,IKE模塊11包括處理器(例如CPU) 111、與處理器111連接的存儲器(例如 RAM)(未示出)和網(wǎng)絡(luò)適配器(Network Interface Card,簡稱:NIC) 112 ;數(shù)據(jù)轉(zhuǎn)發(fā)模塊12 包括處理器(例如CPU) 121、與處理器121連接的存儲器(例如隨機存取存儲器RAM)(未示出)和NIC 122。其中,網(wǎng)絡(luò)適配器又稱為網(wǎng)卡或網(wǎng)絡(luò)接口卡。RDMA的過程如下:
[0092]S201、處理器111采用總線和接口標(biāo)準(zhǔn)(PC1-E),將IKE模塊11內(nèi)設(shè)到的存儲器中的SA/安全策略寫入NIC 112。
[0093]其中,寫入NIC 112的數(shù)據(jù)包括存儲SA/安全策略的內(nèi)存起始地址,SA/安全策略的長度等。
[0094]需要說明的是,該實施例以RDMA為例說明模塊之間的數(shù)據(jù)傳輸,所以采用PC1-E 總線接口;如果采用其他的預(yù)設(shè)協(xié)議,例如私有協(xié)議,本發(fā)明不限制總線接口的類型,可以是PC1-E總線接口,也可以是其他的。
[0095]S202、NIC 112 發(fā)送 RDMA 寫請求給 NIC 122。
[0096]其中,RDMA寫請求攜帶上述SA/安全策略。RDMA寫請求對應(yīng)的函數(shù)例如為: Write (local_buf, size, remote_addr),local_buf,用于表不 NIC 112 中緩存 SA/ 安全策略的位置,size用于表示SA/安全策略的長度,remote_addr用于表示遠程目的地址,即SA/ 安全策略在NIC 122中的寫入地址。
[0097]S203、處理器 121 采用 PCIe 直接內(nèi)存存取(Direct Memory Access,簡稱:DMA), 將NIC 122中的SA/安全策略寫入數(shù)據(jù)轉(zhuǎn)發(fā)模塊12中的存儲器。
[0098]現(xiàn)有技術(shù)中,pluto從用戶態(tài)寫SA到內(nèi)核態(tài)耗時較長。而本實施例中,IKE模塊采用RDMA將SA快速移動到遠程的數(shù)據(jù)轉(zhuǎn)發(fā)模塊中,而不對操作系統(tǒng)造成影響,這樣就不會過用到多少計算機的處理功能。RDMA消除了外部存儲器復(fù)制和文本交換操作,因而能解放內(nèi)存帶寬和中央處理器(英文:Central Processing Unit,簡稱:CPU)周期用于改進應(yīng)用系統(tǒng)性能。
[0099]對應(yīng)上述實施例中IKE模塊發(fā)出IKE建鏈會話報文給對端設(shè)備,與該對端設(shè)備建立SA,以下說明對端設(shè)備側(cè)的相應(yīng)流程。
[0100]圖3為本發(fā)明IPSec加速方法實施例二的流程圖。本發(fā)明實施例提供一種IPSec 加速方法,該方法可以由任意執(zhí)行IPSec加速方法的裝置(該實施例以IKE模塊為例說明) 來執(zhí)行,該裝置可以通過軟件和/或硬件實現(xiàn)。如圖3所示,該方法包括:
[0101]S301、IKE模塊接收IKE建鏈會話報文。
[0102]S302、IKE模塊基于IPSec配置參數(shù)及SPD中的安全策略,與上述IKE建鏈會話報文的發(fā)送設(shè)備建立SA。
[0103]S303、IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,IKE模塊與數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。
[0104]其中,圖3所示實施例與圖1所示實施例互為對端流程,其中,圖1所示實施例為發(fā)起IKE協(xié)商的一端,圖3所示實施例為響應(yīng)IKE協(xié)商的一端,因此,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0105]可選地,IKE模塊部署在加速卡的FPGA芯片上。S302可以包括:IKE模塊基于 IPSec配置參數(shù)及SPD中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立 SA〇
[0106]—種實施例中,S303可以包括:IKE模塊采用RDMA或預(yù)設(shè)協(xié)議,將上述SA寫入數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0107]另一種實施例中,S303可以包括:IKE模塊采用RDMA或預(yù)設(shè)協(xié)議,將上述SA寫入控制模塊,通過控制模塊轉(zhuǎn)發(fā)該SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0108]對應(yīng)上述實施例中IKE模塊將SA發(fā)送給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,以下說明數(shù)據(jù)轉(zhuǎn)發(fā)模塊一側(cè)的處理流程。
[0109]圖4為本發(fā)明IPSec加速方法實施例三的流程圖。本發(fā)明實施例提供一種IPSec 加速方法,該方法可以由任意執(zhí)行IPSec加速方法的裝置(該實施例以數(shù)據(jù)轉(zhuǎn)發(fā)模塊為例說明)來執(zhí)行,該裝置可以通過軟件和/或硬件實現(xiàn)。如圖4所示,該方法包括:
[0110]S401、數(shù)據(jù)轉(zhuǎn)發(fā)模塊接收數(shù)據(jù)報文,該數(shù)據(jù)轉(zhuǎn)發(fā)模塊部署在加速卡的FPGA芯片上。
[0111]S402、數(shù)據(jù)轉(zhuǎn)發(fā)模塊根據(jù)SA,對上述數(shù)據(jù)報文進行并行運算加/解密算法及認證方式,得到目標(biāo)報文。
[0112]S403、數(shù)據(jù)轉(zhuǎn)發(fā)模塊轉(zhuǎn)發(fā)所述目標(biāo)報文。
[0113]—種場景中,數(shù)據(jù)轉(zhuǎn)發(fā)模塊接收子網(wǎng)設(shè)備發(fā)送的第一數(shù)據(jù)報文,根據(jù)上述SA,對第一數(shù)據(jù)報文進行加密及封裝處理后轉(zhuǎn)發(fā)給對端設(shè)備。
[0114]另一種場景中,數(shù)據(jù)轉(zhuǎn)發(fā)模塊接收上述對端設(shè)備發(fā)送的第二數(shù)據(jù)報文,根據(jù)所述 SA,對第二數(shù)據(jù)報文進行解密及解封裝處理后,轉(zhuǎn)發(fā)給上述子網(wǎng)設(shè)備。
[0115]其中,該子網(wǎng)設(shè)備是基于集成數(shù)據(jù)轉(zhuǎn)發(fā)模塊的設(shè)備所服務(wù)的局域網(wǎng)設(shè)備;對端設(shè)備包括所述局域網(wǎng)外的、與基于集成數(shù)據(jù)轉(zhuǎn)發(fā)模塊的設(shè)備進行通信的設(shè)備;所述數(shù)據(jù)報文包括第一數(shù)據(jù)報文和第二數(shù)據(jù)報文;所述目標(biāo)報文包括上述對第一數(shù)據(jù)報文進行加密及封裝處理后的報文及對第二數(shù)據(jù)報文進行解密及解封裝處理后的報文。
[0116]該實施例與現(xiàn)有技術(shù)的區(qū)別包括:本發(fā)明中的數(shù)據(jù)轉(zhuǎn)發(fā)模塊部署在加速卡的 FPGA芯片上。這樣,可實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)模塊快速處理封裝安全載荷(英文:Encapsulat1n Security Payload,簡稱:ESP)協(xié)議報文,或認證頭(英文〖Authenticat1n Header,簡稱: AH)協(xié)議報文,從而減少耗時,加快IPSec的數(shù)據(jù)轉(zhuǎn)發(fā)處理,從而實現(xiàn)IPSec加速。也就是說,ESP協(xié)議報文和AH協(xié)議報文包含于所述數(shù)據(jù)報文。
[0117]在上述實施例中,S402之前,該IPSec加速方法還可以包括:數(shù)據(jù)轉(zhuǎn)發(fā)模塊接受 IKE模塊寫入所述SA的操作,其中,所述寫入所采用的寫入方式為RDMA或預(yù)設(shè)協(xié)議,數(shù)據(jù)轉(zhuǎn)發(fā)模塊與IKE模塊為分立的模塊。
[0118]本發(fā)明實施例通過將用于實現(xiàn)IKE建鏈和數(shù)據(jù)轉(zhuǎn)發(fā)的功能的模塊進行邏輯分離, 即通過IKE模塊實現(xiàn)IKE建鏈,通過數(shù)據(jù)轉(zhuǎn)發(fā)模塊實現(xiàn)數(shù)據(jù)報文轉(zhuǎn)發(fā),其中,IKE模塊與數(shù)據(jù)轉(zhuǎn)發(fā)模塊相互獨立,以加速IPSec會話的建立;還可以增強IPSec處理的靈活性。上述有益效果尤其在高密接入場景的WLAN中較明顯。且,現(xiàn)有技術(shù)中,pluto從用戶態(tài)寫SA到內(nèi)核態(tài)耗時較長。而本實施例中,IKE模塊采用RDMA將SA快速移動到遠程的數(shù)據(jù)轉(zhuǎn)發(fā)模塊中, 而不對操作系統(tǒng)造成影響,這樣就不會過用到多少計算機的處理功能。RDMA消除了外部存儲器復(fù)制和文本交換操作,因而能解放內(nèi)存帶寬和CPU周期用于改進應(yīng)用系統(tǒng)性能。
[0119]圖5為本發(fā)明IKE模塊實施例一的結(jié)構(gòu)示意圖。本發(fā)明實施例提供一種IKE模塊, 該模塊可以通過軟件和/或硬件實現(xiàn)。如圖5所示,IKE模塊50包括:處理單元51和發(fā)送單元52,其中,發(fā)送單元52包括第一發(fā)送子單元521和第二發(fā)送子單元522。
[0120]其中,處理單元51用于基于IPSec配置參數(shù)及SPD中的安全策略生成IKE建鏈會話報文。第一發(fā)送子單元521用于發(fā)送所述IKE建鏈會話報文給對端設(shè)備,IKE模塊50通過所述IKE建鏈會話報文與所述對端設(shè)備建立SA。第二發(fā)送子單元522用于發(fā)送所述SA 給數(shù)據(jù)轉(zhuǎn)發(fā)模塊(未示出),其中,IKE模塊50與數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。
[0121]本實施例的裝置,可以用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0122]可選地,IKE模塊50部署在加速卡的FPGA芯片上。處理單元51可以具體用于:基于所述IPSec配置參數(shù)及所述SPD中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,生成所述IKE建鏈會話報文。
[0123]進一步地,第二發(fā)送子單元522可以具體用于:采用RDM或預(yù)設(shè)協(xié)議,將所述SA 寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊?;蛘撸诙l(fā)送子單元522可以具體用于:采用RDMA或預(yù)設(shè)協(xié)議, 將所述SA寫入控制模塊(未示出),通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0124]圖6為本發(fā)明IKE模塊實施例二的結(jié)構(gòu)示意圖。本發(fā)明實施例提供一種IKE模塊,該模塊可以通過軟件和/或硬件實現(xiàn)。如圖6所示,IKE模塊60包括:接收單元61、處理單元62和發(fā)送單元63。
[0125]其中,接收單元61用于接收IKE建鏈會話報文。處理單元62用于基于IPSec配置參數(shù)及sro中的安全策略,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立SA。發(fā)送單元63用于發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊(未示出),其中,所述IKE模塊與所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。
[0126]本實施例的裝置,可以用于執(zhí)行圖3所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0127]進一步地,IKE模塊60可部署在加速卡的FPGA芯片上。處理單元62可以具體用于:基于所述IPSec配置參數(shù)及所述SH)中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立SA。
[0128]其中,發(fā)送單元63可以具體用于:采用RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊?;蛘?,發(fā)送單元63可以具體用于:采用RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入控制模塊,通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0129]圖7為本發(fā)明數(shù)據(jù)轉(zhuǎn)發(fā)模塊實施例一的結(jié)構(gòu)示意圖。本發(fā)明實施例提供一種數(shù)據(jù)轉(zhuǎn)發(fā)模塊,該模塊可以通過軟件和/或硬件實現(xiàn),該模塊部署在加速卡的FPGA芯片上。如圖7所示,數(shù)據(jù)轉(zhuǎn)發(fā)模塊70包括:接收單元71、處理單元72和發(fā)送單元73。
[0130]其中,接收單元71用于接收數(shù)據(jù)報文。處理單元72用于根據(jù)SA,對所述數(shù)據(jù)報文進行并行運算加/解密算法及認證方式,得到目標(biāo)報文。發(fā)送單元73用于轉(zhuǎn)發(fā)所述目標(biāo)報文。
[0131]本實施例的裝置,可以用于執(zhí)行圖4所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0132]可選地,數(shù)據(jù)轉(zhuǎn)發(fā)模塊70還可以包括存儲單元(未示出)。該存儲單元用于接受 IKE模塊寫入所述SA的操作,其中,所述寫入所采用的寫入方式為RDMA或預(yù)設(shè)協(xié)議,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊與所述IKE模塊為分立的模塊。
[0133]圖8為本發(fā)明IPSec加速系統(tǒng)實施例一的結(jié)構(gòu)示意圖。本發(fā)明實施例提供一種 IPSec加速系統(tǒng)。如圖8所示,該IPSec加速系統(tǒng)80包括:IKE模塊81和數(shù)據(jù)轉(zhuǎn)發(fā)模塊82。 IKE模塊81和數(shù)據(jù)轉(zhuǎn)發(fā)模塊82分別獨立部署在不同的加速設(shè)備(未示出)中。其中,IKE 模塊81和數(shù)據(jù)轉(zhuǎn)發(fā)模塊82之間的連接可以為有線連接或無線連接(例如網(wǎng)絡(luò)連接)。
[0134]其中,IKE模塊81用于IKE建鏈。數(shù)據(jù)轉(zhuǎn)發(fā)模塊82用于轉(zhuǎn)發(fā)數(shù)據(jù)報文。
[0135]具體地,當(dāng)IPSec加速系統(tǒng)80作為IPSec的主動端(發(fā)起端)時,IKE模塊81具體用于基于IPSec配置參數(shù)及SPD中的安全策略生成IKE建鏈會話報文,發(fā)送該IKE建鏈會話報文給對端設(shè)備,與對端設(shè)備建立SA ;以及,發(fā)送該SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊82。該情況下, 數(shù)據(jù)轉(zhuǎn)發(fā)模塊82用于接收子網(wǎng)設(shè)備發(fā)送的第一數(shù)據(jù)報文,根據(jù)上述SA,對第一數(shù)據(jù)報文進行加密及封裝處理后轉(zhuǎn)發(fā)給上述對端設(shè)備;及,接收上述對端設(shè)備發(fā)送的第二數(shù)據(jù)報文,根據(jù)所述SA,對第二數(shù)據(jù)報文進行解密及解封裝處理后,轉(zhuǎn)發(fā)給上述子網(wǎng)設(shè)備,其中,該子網(wǎng)設(shè)備是基于集成數(shù)據(jù)轉(zhuǎn)發(fā)模塊82的設(shè)備所服務(wù)的局域網(wǎng)設(shè)備。
[0136]當(dāng)IPSec加速系統(tǒng)80作為IPSec的被動端(非發(fā)起端)時,IKE模塊81具體用于接收IKE建鏈會話報文;基于IPSec配置參數(shù)及SH)中的安全策略,與IKE建鏈會話報文的發(fā)送設(shè)備建立SA ;以及,發(fā)送SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊82。數(shù)據(jù)轉(zhuǎn)發(fā)模塊82用于接收上述發(fā)送設(shè)備發(fā)送的第一數(shù)據(jù)報文,根據(jù)上述SA,對第一數(shù)據(jù)報文進行解密及解封裝處理后,轉(zhuǎn)發(fā)給子網(wǎng)設(shè)備;及,接收該子網(wǎng)設(shè)備發(fā)送的第二數(shù)據(jù)報文,根據(jù)SA,對第二數(shù)據(jù)報文進行加密及封裝處理后轉(zhuǎn)發(fā)給上述發(fā)送設(shè)備,其中,該子網(wǎng)設(shè)備是基于集成數(shù)據(jù)轉(zhuǎn)發(fā)模塊82的設(shè)備所服務(wù)的局域網(wǎng)設(shè)備。
[0137]對于第一數(shù)據(jù)報文和第二數(shù)據(jù)報文中的每一個,本領(lǐng)域技術(shù)人員可以將其理解為 ESP協(xié)議報文,或AH協(xié)議報文等。還需說明的是,在本發(fā)明任一實施例中,“第一”和“第二” 僅為區(qū)分不同的數(shù)據(jù)報文,并非用于指代第一個數(shù)據(jù)報文和第二數(shù)據(jù)報文。
[0138]現(xiàn)有技術(shù)中,IKE建鏈與數(shù)據(jù)轉(zhuǎn)發(fā)都由單個虛擬機或者物理機完成,導(dǎo)致IPSec速度慢。本發(fā)明實施例通過將用于實現(xiàn)IKE建鏈和數(shù)據(jù)轉(zhuǎn)發(fā)的功能的模塊進行邏輯分離,即通過IKE模塊實現(xiàn)IKE建鏈,通過數(shù)據(jù)轉(zhuǎn)發(fā)模塊實現(xiàn)數(shù)據(jù)報文轉(zhuǎn)發(fā),其中,IKE模塊與數(shù)據(jù)轉(zhuǎn)發(fā)模塊相互獨立,分別部署在不同的加速設(shè)備中,以加速IPSec會話的建立,例如,減短大數(shù)生成及計算DH密鑰值所消耗的時長等;還可以增強IPSec處理的靈活性。上述有益效果尤其在高密接入場景的WLAN中較明顯。
[0139]在上述實施例中,數(shù)據(jù)轉(zhuǎn)發(fā)模塊82可用于數(shù)據(jù)報文AH認證計算等,其具體功能可參考現(xiàn)有技術(shù)中如Linux內(nèi)核對數(shù)據(jù)報文的處理,此處不再贅述。
[0140]圖9為本發(fā)明IPSec加速系統(tǒng)實施例二的結(jié)構(gòu)示意圖。如圖9所示,在圖8所示實施例的基礎(chǔ)上,IPSec加速系統(tǒng)90還可以包括分類模塊91。其中,分類模塊91可用于: 接收報文;檢索預(yù)設(shè)的分類策略,分發(fā)該報文,該接收和分發(fā)的報文包括上述IKE建鏈會話報文和數(shù)據(jù)報文。
[0141]具體地,分類模塊91檢索預(yù)設(shè)的分類策略,例如訪問控制列表(Access Control List,簡稱:ACL)規(guī)則,該ACL規(guī)則包括有報文的源IP,源端口,目的IP,目的端口和協(xié)議號。其中,目的地址為IKE模塊及目的端口號為500或4500的報文發(fā)送到IKE模塊;目的地址為數(shù)據(jù)轉(zhuǎn)發(fā)模塊的報文發(fā)送到數(shù)據(jù)轉(zhuǎn)發(fā)模塊。參考圖9,該示例具體體現(xiàn)到ACL中,可以表示為以下內(nèi)容:
[0142]條件1:目的IP = IKE模塊及目的端口號=500的報文,動作1:從第2端口轉(zhuǎn)發(fā)至丨J IKE模塊81 ;
[0143]條件2:目的IP = IKE模塊及目的端口號= 4500的報文,動作2:從第2端口轉(zhuǎn)發(fā)至丨J IKE模塊81 ;
[0144]條件3:目的IP = IPSEC保護子網(wǎng)設(shè)備IP的報文,動作3:從第3端口轉(zhuǎn)發(fā)到數(shù)據(jù)轉(zhuǎn)發(fā)模塊82。
[0145]進一步地,IPSec加速系統(tǒng)90還可以包括控制模塊92??刂颇K92可用于發(fā)送 IPSec配置參數(shù)給IKE模塊81。可選地,控制模塊92還可以用于:發(fā)送上述預(yù)設(shè)的分類策略給分類模塊91。另外,分類模塊91將上述未提及的報文上報給控制模塊92處理。
[0146]基于圖9所示結(jié)構(gòu)實施例,下面采用幾個具體的實施例,對本發(fā)明實施例1PSec加速方法進行詳細說明。
[0147]—種實施例中,IKE模塊81維護SA數(shù)據(jù)庫和安全策略數(shù)據(jù)庫。圖10示出本發(fā)明 IPSec加速方法實施例四的流程圖。如圖10所示,該方法包括:
[0148]S1001、控制模塊92發(fā)送預(yù)設(shè)的分類策略給分類模塊91。
[0149]S1002、控制模塊92發(fā)送IPSec配置參數(shù)給IKE模塊81。
[0150]其中,S1001和S1002為可選步驟。
[0151]S1003、分類模塊91接收報文。
[0152]S1004、分類模塊91根據(jù)預(yù)設(shè)的分類策略,確定該報文的接收端。若報文的目的地址為IKE模塊81及端口號為500或4500,將執(zhí)行S1005至1007 ;若報文的目的地址為數(shù)據(jù)轉(zhuǎn)發(fā)模塊82,則執(zhí)行S1008至S1009 ;其它報文發(fā)送給控制模塊92,由控制模塊92進行處理,例如丟棄該報文等。
[0153]S1005、分類模塊91發(fā)送報文給IKE模塊81。
[0154]該步驟中,報文可以理解為IKE建鏈會話報文。
[0155]S1006、IKE模塊81通過該報文與對端設(shè)備建立SA。
[0156]S1007、IKE模塊81發(fā)送SA/安全策略給數(shù)據(jù)轉(zhuǎn)發(fā)模塊82。
[0157]S1008、分類模塊91發(fā)送報文給數(shù)據(jù)轉(zhuǎn)發(fā)模塊82。
[0158]該步驟中,報文可以理解為數(shù)據(jù)報文,例如上述第一數(shù)據(jù)報文和第二數(shù)據(jù)報文。
[0159]S1009、數(shù)據(jù)轉(zhuǎn)發(fā)模塊82根據(jù)已建立的SA,轉(zhuǎn)發(fā)該報文。
[0160]具體地,數(shù)據(jù)轉(zhuǎn)發(fā)模塊82接收對端設(shè)備(例如上述發(fā)送設(shè)備)發(fā)送的第一數(shù)據(jù)報文,根據(jù)上述SA,對第一數(shù)據(jù)報文進行解密及解封裝處理后,轉(zhuǎn)發(fā)給子網(wǎng)設(shè)備。或者,接收子網(wǎng)設(shè)備發(fā)送的第二數(shù)據(jù)報文,根據(jù)SA,對第二數(shù)據(jù)報文進行加密及封裝處理后轉(zhuǎn)發(fā)給對端設(shè)備。其中,該子網(wǎng)設(shè)備是基于集成數(shù)據(jù)轉(zhuǎn)發(fā)模塊82的設(shè)備所服務(wù)的局域網(wǎng)設(shè)備。[0161 ]上述實施例中,IKE模塊81維護SA數(shù)據(jù)庫和安全策略數(shù)據(jù)庫。
[0162]另一種實施例中,控制模塊92維護SA數(shù)據(jù)庫和安全策略數(shù)據(jù)庫。圖11示出本發(fā)明IPSec加速方法實施例五的流程圖。如圖11所示,該方法包括:
[0163]S111、控制模塊92發(fā)送預(yù)設(shè)的分類策略給分類模塊91。
[0164]S112、控制模塊92發(fā)送IPSec配置參數(shù)給IKE模塊81。
[0165]其中,S111和S112為可選步驟。
[0166]S113、分類模塊91接收報文。
[0167]S114、分類模塊91根據(jù)預(yù)設(shè)的分類策略,確定該報文的接收端。若報文的目的地址為IKE模塊81及端口號為500或4500,將執(zhí)行S115至S118 ;若報文的目的地址為數(shù)據(jù)轉(zhuǎn)發(fā)模塊82,則執(zhí)行S119至S120 ;其它報文發(fā)送給控制模塊92,由控制模塊92進行處理, 例如丟棄該報文等。
[0168]S115、分類模塊91發(fā)送報文給IKE模塊81。
[0169]該步驟中,報文可以理解為IKE建鏈會話報文。
[0170]S116、IKE模塊81通過該報文與對端設(shè)備建立SA。
[0171]S117、IKE模塊81發(fā)送SA給控制模塊92。
[0172]S118、控制模塊92發(fā)送SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊82。
[0173]S119、分類模塊91發(fā)送報文給數(shù)據(jù)轉(zhuǎn)發(fā)模塊82。
[0174]該步驟中,報文可以理解為數(shù)據(jù)報文,例如上述第一數(shù)據(jù)報文和第二數(shù)據(jù)報文。
[0175]S120、數(shù)據(jù)轉(zhuǎn)發(fā)模塊82根據(jù)已建立的SA,轉(zhuǎn)發(fā)該報文。
[0176]該實施例中,IKE模塊81首先將SA發(fā)送給控制模塊92,再由控制模塊92將SA發(fā)送給數(shù)據(jù)轉(zhuǎn)發(fā)模塊82,通過控制模塊92管理SA數(shù)據(jù)庫。
[0177]其中,不同模塊之間數(shù)據(jù)的傳輸,比如SA在IKE模塊81和數(shù)據(jù)轉(zhuǎn)發(fā)模塊82之間的傳輸,或,SA在IKE模塊81和控制模塊92之間的傳輸,或,SA在控制模塊92和數(shù)據(jù)轉(zhuǎn)發(fā)模塊82之間的傳輸,都可以采用RDMA和/或預(yù)設(shè)協(xié)議,但本發(fā)明不以此為限。
[0178]還需說明的是,本發(fā)明實施例的IPSec加速系統(tǒng)至少可以包括以下三種類型:類型一,如圖5所示的IKE模塊和如圖7所示的數(shù)據(jù)轉(zhuǎn)發(fā)模塊;類型二,如圖6所示的IKE模塊和如圖7所示的數(shù)據(jù)轉(zhuǎn)發(fā)模塊;類型三,如圖5所示的IKE模塊、如圖6所示的IKE模塊和如圖7所示的數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0179]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0180]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制; 盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【主權(quán)項】
1.一種互聯(lián)網(wǎng)安全協(xié)議IPSec加速方法,其特征在于,包括: 互聯(lián)網(wǎng)密鑰交換IKE模塊基于IPSec配置參數(shù)及安全策略數(shù)據(jù)庫SH)中的安全策略生成IKE建鏈會話報文; 所述IKE模塊發(fā)送所述IKE建鏈會話報文給對端設(shè)備,與所述對端設(shè)備建立安全聯(lián)盟SA ; 所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,所述IKE模塊與所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述IKE模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述IKE模塊基于IPSec配置參數(shù)及SPD中的安全策略生成IKE建鏈會話報文,包括: 所述IKE模塊基于所述IPSec配置參數(shù)及所述SPD中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,生成所述IKE建鏈會話報文。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)豐吳塊,包括: 所述IKE模塊采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)豐旲塊。4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)豐吳塊,包括: 所述IKE模塊采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入控制模塊,通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。5.一種互聯(lián)網(wǎng)安全協(xié)議IPSec加速方法,其特征在于,包括: 互聯(lián)網(wǎng)密鑰交換IKE模塊接收IKE建鏈會話報文; 所述IKE模塊基于IPSec配置參數(shù)及安全策略數(shù)據(jù)庫SPD中的安全策略,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立安全聯(lián)盟SA ; 所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,所述IKE模塊與所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述IKE模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述IKE模塊基于IPSec配置參數(shù)及SPD中的安全策略,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立SA,包括: 所述IKE模塊基于所述IPSec配置參數(shù)及所述SPD中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立SA。7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)豐吳塊,包括: 所述IKE模塊采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)豐旲塊。8.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述IKE模塊發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,包括: 所述IKE模塊采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入控制模塊,通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。9.一種互聯(lián)網(wǎng)安全協(xié)議IPSec加速方法,其特征在于,包括: 數(shù)據(jù)轉(zhuǎn)發(fā)模塊接收數(shù)據(jù)報文,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上; 所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊根據(jù)安全聯(lián)盟SA,對所述數(shù)據(jù)報文進行并行運算加/解密算法及認證方式,得到目標(biāo)報文; 所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊轉(zhuǎn)發(fā)所述目標(biāo)報文。10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊根據(jù)SA,對所述數(shù)據(jù)報文進行并行運算加/解密算法及認證方式,得到目標(biāo)報文之前,還包括: 所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊接受互聯(lián)網(wǎng)密鑰交換IKE模塊寫入所述SA的操作,其中,所述寫入所采用的寫入方式為遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊與所述IKE模塊為分立的模塊。11.一種互聯(lián)網(wǎng)密鑰交換IKE模塊,其特征在于,包括:處理單元和發(fā)送單元,其中,所述發(fā)送單元包括第一發(fā)送子單元和第二發(fā)送子單元; 所述處理單元,用于基于互聯(lián)網(wǎng)安全協(xié)議IPSec配置參數(shù)及安全策略數(shù)據(jù)庫SPD中的安全策略生成IKE建鏈會話報文; 所述第一發(fā)送子單元,用于發(fā)送所述IKE建鏈會話報文給對端設(shè)備,所述IKE模塊通過所述IKE建鏈會話報文與所述對端設(shè)備建立安全聯(lián)盟SA ; 所述第二發(fā)送子單元,用于發(fā)送所述SA給數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,所述IKE模塊與所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。12.根據(jù)權(quán)利要求11所述的IKE模塊,其特征在于,所述IKE模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述處理單元具體用于: 基于所述IPSec配置參數(shù)及所述SPD中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,生成所述IKE建鏈會話報文。13.根據(jù)權(quán)利要求11或12所述的IKE模塊,其特征在于,所述第二發(fā)送子單元具體用于: 采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。14.根據(jù)權(quán)利要求11或12所述的IKE模塊,其特征在于,所述第二發(fā)送子單元具體用于: 采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入控制模塊,通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。15.一種互聯(lián)網(wǎng)密鑰交換IKE模塊,其特征在于,包括: 接收單元,用于接收IKE建鏈會話報文; 處理單元,用于基于互聯(lián)網(wǎng)安全協(xié)議IPSec配置參數(shù)及安全策略數(shù)據(jù)庫SPD中的安全策略,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立安全聯(lián)盟SA ; 發(fā)送單元,用于發(fā)送所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其中,所述IKE模塊與所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊為分立的模塊。16.根據(jù)權(quán)利要求15所述的IKE模塊,其特征在于,所述IKE模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述處理單元具體用于:基于所述IPSec配置參數(shù)及所述SPD中的安全策略,采用蒙哥馬利算法并行處理IKE會話建鏈所需要的冪模運算,生成大數(shù)及計算迪菲-赫爾曼密鑰值,與所述IKE建鏈會話報文的發(fā)送設(shè)備建立安全聯(lián)盟SA。17.根據(jù)權(quán)利要求15或16所述的IKE模塊,其特征在于,所述發(fā)送單元具體用于:采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。18.根據(jù)權(quán)利要求15或16所述的IKE模塊,其特征在于,所述發(fā)送單元具體用于:采用遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,將所述SA寫入控制模塊,通過所述控制模塊轉(zhuǎn)發(fā)所述SA給所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊。19.一種數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其特征在于,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊部署在加速卡的現(xiàn)場可編程門陣列FPGA芯片上,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊包括: 接收單元,用于接收數(shù)據(jù)報文; 處理單元,用于根據(jù)安全聯(lián)盟SA,對所述數(shù)據(jù)報文進行并行運算加/解密算法及認證方式,得到目標(biāo)報文; 發(fā)送單元,用于轉(zhuǎn)發(fā)所述目標(biāo)報文。20.根據(jù)權(quán)利要求19所述的數(shù)據(jù)轉(zhuǎn)發(fā)模塊,其特征在于,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊還包括存儲單元: 所述存儲單元,用于接受互聯(lián)網(wǎng)密鑰交換IKE模塊寫入所述SA的操作,其中,所述寫入所采用的寫入方式為遠程直接數(shù)據(jù)存取RDMA或預(yù)設(shè)協(xié)議,所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊與所述IKE模塊為分立的模塊。21.一種互聯(lián)網(wǎng)安全協(xié)議IPSec加速系統(tǒng),其特征在于,包括: 如權(quán)利要求11-14任一項所述的IKE模塊和如權(quán)利要求19或20所述的數(shù)據(jù)轉(zhuǎn)發(fā)模塊;或者 如權(quán)利要求15-18任一項所述的IKE模塊和如權(quán)利要求19或20所述的數(shù)據(jù)轉(zhuǎn)發(fā)模塊;或者 如權(quán)利要求11-14任一項所述的IKE模塊、如權(quán)利要求15-18任一項所述的IKE模塊和如權(quán)利要求19或20所述的數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
【文檔編號】H04L29/06GK105991562SQ201510059986
【公開日】2016年10月5日
【申請日】2015年2月5日
【發(fā)明人】謝于明, 胡新宇, 趙宇萍, 楊凡
【申請人】華為技術(shù)有限公司