国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種IPSec防重放的方法和裝置制造方法

      文檔序號(hào):7807069閱讀:272來源:國知局
      一種IPSec防重放的方法和裝置制造方法
      【專利摘要】本發(fā)明提供一種IPSec防重放的方法和裝置,用于解決多核并發(fā)轉(zhuǎn)發(fā)報(bào)文時(shí),要求防重放窗口過大,導(dǎo)致的計(jì)算資源消耗過大的技術(shù)問題。本發(fā)明針對多核設(shè)備,將使用同一隧道的報(bào)文分為不同的組,各組維護(hù)各自獨(dú)立的序列號(hào),每個(gè)核或轉(zhuǎn)發(fā)線程對應(yīng)一個(gè)組,對每個(gè)組內(nèi)的報(bào)文進(jìn)行串行處理,順序發(fā)送,從而避免多核多線程并行發(fā)送報(bào)文時(shí),設(shè)置過大的IPSec防重放窗口,造成設(shè)備性能下降的問題,減小了多核系統(tǒng)下的防重放窗口的大小,提高了IPSec處理效率。
      【專利說明】—種IPSec防重放的方法和裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種IPSec防重放的方法和裝置。
      【背景技術(shù)】
      [0002]因特網(wǎng)協(xié)議安全(InternetProtocol Security, IPSec)協(xié)議給出了應(yīng)用于IP層上網(wǎng)絡(luò)數(shù)據(jù)安全的一整套體系結(jié)構(gòu),包括認(rèn)證頭(Authenticat1n Header, AH)協(xié)議、封裝安全載荷(Encapsulating Security Payload, ESP)協(xié)議、密鑰管理協(xié)議(Internet KeyExchange, IKE)和用于網(wǎng)絡(luò)認(rèn)證及加密的一些算法等。IPSec規(guī)定了如何在對等層之間選擇安全協(xié)議、確定安全算法和密鑰交換,向上提供了訪問控制、數(shù)據(jù)源認(rèn)證、數(shù)據(jù)加密等網(wǎng)絡(luò)安全服務(wù)。
      [0003]Authenticat1n Header協(xié)議為IP通信提供數(shù)據(jù)源認(rèn)證、數(shù)據(jù)完整性和反重播保證,它能保護(hù)通信免受篡改,但不能防止竊聽,適合用于傳輸非機(jī)密數(shù)據(jù)。EncapsulatingSecurity Payload為IP數(shù)據(jù)包提供完整性檢查、認(rèn)證和加密。
      [0004]在經(jīng)過AH或者ESP封裝的報(bào)文(以下簡稱IPSec報(bào)文)結(jié)構(gòu)中,SequenceNumber (序列號(hào))為從I開始的32位單增序列號(hào),不允許重復(fù),唯一地標(biāo)識(shí)了每一個(gè)發(fā)送數(shù)據(jù)包,為安全關(guān)聯(lián)提供反重播保護(hù)。序列號(hào)結(jié)合防重放窗口和報(bào)文驗(yàn)證來防御重放攻擊。當(dāng)收到了一個(gè)經(jīng)過認(rèn)證的數(shù)據(jù)以后,防重放窗口會(huì)滑動(dòng)一次,如果該數(shù)據(jù)報(bào)文被重放,由于其順序號(hào)碼和原來的相同,因此這個(gè)數(shù)據(jù)會(huì)落到窗口之外,數(shù)據(jù)就會(huì)被丟棄。
      [0005]舉例說明序列號(hào)和防重放窗口的工作機(jī)制,假如防重放窗口的大小為5,序列號(hào)從I開始遞增。
      [0006]剛開始時(shí),防重放窗口左右邊界對應(yīng)序列號(hào)I和5,首先收到一個(gè)序列號(hào)為I的報(bào)文,落在防重放窗口內(nèi),且第一次出現(xiàn),則判定此報(bào)文為正常報(bào)文。
      [0007]收到第二個(gè)報(bào)文時(shí),若序列號(hào)為仍為1,落在防重放窗口內(nèi),但由于已經(jīng)收到過此序列號(hào)的報(bào)文,因此判定此報(bào)文為重放報(bào)文,丟棄。
      [0008]收到第三個(gè)報(bào)文時(shí),若序列號(hào)為3,落在防重放窗口內(nèi),且第一次出現(xiàn),則判定此報(bào)文為正常報(bào)文。
      [0009]收到第四個(gè)報(bào)文時(shí),若序列號(hào)為6,落在防重放窗口右側(cè),則窗口的右邊緣滑動(dòng)到此處,此時(shí)防重放窗口的左右邊界對應(yīng)序列號(hào)2和6,同時(shí)判定此報(bào)文為正常報(bào)文。
      [0010]收到第五個(gè)報(bào)文時(shí),若序列號(hào)為1,落在防重放窗口左側(cè),因此判定此報(bào)文為重放報(bào)文,丟棄。
      [0011]總結(jié)以上示例,防重放機(jī)制的窗口滑動(dòng)規(guī)則及對重放報(bào)文的判定規(guī)則如下:
      [0012]規(guī)則1、若報(bào)文的序列號(hào)落在防重放窗口內(nèi),即滿足:防重放窗口左邊界<接收到的報(bào)文序列號(hào) < 防重放窗口右邊界,則判斷是否以前接收過,如果沒有則認(rèn)為是正常報(bào)文,窗口不做滑動(dòng),如果收到過,則認(rèn)為是重放報(bào)文,丟棄之。
      [0013]規(guī)則2、若報(bào)文的序列號(hào)落在防重放窗口右側(cè),且驗(yàn)證為合法報(bào)文,則將重放窗口右邊界滑動(dòng)到此報(bào)文的序列號(hào)處。[0014]規(guī)則3、若報(bào)文的序列號(hào)落在防重放窗口左側(cè),則認(rèn)為是重放報(bào)文,丟棄之。
      [0015]單核設(shè)備,單個(gè)轉(zhuǎn)發(fā)線程時(shí),報(bào)文按照序列串行依次封裝、發(fā)出,對端收到的序列號(hào)基本不會(huì)出現(xiàn)亂序情況,但是多核設(shè)備時(shí),多個(gè)線程并行處理報(bào)文,導(dǎo)致對端收到的IPSec封裝報(bào)文的序列號(hào)容易出現(xiàn)亂序。
      [0016]假設(shè)一個(gè)多核設(shè)備包含4個(gè)核,4個(gè)核分別通過自己的線程并行封裝、發(fā)送在同一序列號(hào)空間編號(hào)的報(bào)文,核I封裝、發(fā)送序列號(hào)為I?100的報(bào)文,核2封裝、發(fā)送序列號(hào)為101?200的報(bào)文,核3封裝、發(fā)送序列號(hào)為201?300的報(bào)文,核4封裝、發(fā)送序列號(hào)為301?400的報(bào)文,假如防重放窗口寬度為100,核3首先被調(diào)度運(yùn)行起來,201?300序列的IPSec報(bào)文被先發(fā)送出去,對端收到報(bào)文后,根據(jù)防重放機(jī)制的窗口滑動(dòng)規(guī)則,將防重放窗口向右滑動(dòng)到201?300,則序列號(hào)為101?200的報(bào)文收到后,會(huì)被認(rèn)定為重放報(bào)文,被錯(cuò)誤的丟棄。
      [0017]雖然可通過增大防重放窗口在一定程度上避免報(bào)文被誤丟棄,但增大的防重放窗口尺寸需要與多核設(shè)備的核數(shù)量成倍數(shù)關(guān)系,才會(huì)取得原有單核相似的效果,當(dāng)核的數(shù)量較多時(shí),防重放窗口將會(huì)變的很大,導(dǎo)致每次查找序列號(hào)都會(huì)消耗大量的計(jì)算資源,而且每次查找時(shí)都是串行查找,體現(xiàn)不出多核設(shè)備并行處理的優(yōu)勢。

      【發(fā)明內(nèi)容】

      [0018]本發(fā)明提供一種IPSec防重放的方法和裝置,能夠解決多核并發(fā)轉(zhuǎn)發(fā)報(bào)文時(shí),要求防重放窗口過大,導(dǎo)致的計(jì)算資源消耗過大的技術(shù)問題。
      [0019]為實(shí)現(xiàn)本發(fā)明目的,本發(fā)明提供一種因特網(wǎng)協(xié)議安全I(xiàn)PSec防重放的方法,該方法應(yīng)用于多核網(wǎng)絡(luò)設(shè)備,包括:
      [0020]建立與對端網(wǎng)絡(luò)設(shè)備之間的IPSec隧道;
      [0021]任意一核在使用IPSec封裝及轉(zhuǎn)發(fā)報(bào)文時(shí),獨(dú)立地為經(jīng)該核處理的報(bào)文分配認(rèn)證頭AH和/或封裝安全載荷ESP頭中的序列號(hào),且在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào);其中,所述組號(hào)與核一一對應(yīng),用于對報(bào)文進(jìn)行分組。
      [0022]進(jìn)一步地,所述獨(dú)立地為經(jīng)該核處理的報(bào)文分配認(rèn)證頭AH和/或ESP頭中的序列號(hào)具體為:在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組內(nèi)序列號(hào)字段中,為經(jīng)該核處理的報(bào)文分配序列號(hào);
      [0023]所述在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào)具體為:在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組號(hào)字段中,攜帶該核對應(yīng)的組號(hào)。
      [0024]進(jìn)一步地,所述在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào)具體為:在AH中的保留位攜帶與該核對應(yīng)的組號(hào)。
      [0025]進(jìn)一步地,所述方法還包括:當(dāng)任一核在接收到經(jīng)IPSec封裝的報(bào)文后,從報(bào)文的AH和/或ESP頭中獲取組號(hào)及序列號(hào),針對不同的組號(hào)的IPSec報(bào)文,使用獨(dú)立的防重放窗口進(jìn)行防重放處理。
      [0026]進(jìn)一步地,所述方法還包括:在AH和/或ESP頭中攜帶與該核對應(yīng)的組標(biāo)記,所述組標(biāo)記用于指示是否支持對報(bào)文按核分組;
      [0027]當(dāng)任一核在接收到首個(gè)經(jīng)IPSec封裝的報(bào)文時(shí),從報(bào)文的AH和/或ESP頭中獲取所述組標(biāo)記,當(dāng)所述組標(biāo)記指示支持對報(bào)文按核分組時(shí),標(biāo)記該報(bào)文AH和/或ESP頭中安全參數(shù)索引SPI字段所指示的IPSec隧道支持按核分組,并對從該IPSec隧道接收的后續(xù)報(bào)文直接獲取組號(hào)及序列號(hào)。
      [0028]本發(fā)明還提供一種報(bào)文防重放的裝置,該裝置應(yīng)用于多核網(wǎng)絡(luò)設(shè)備中,該裝置包括:
      [0029]隧道建立模塊,用于建立與對端網(wǎng)絡(luò)設(shè)備之間的IPSec隧道;
      [0030]報(bào)文發(fā)送模塊,用于任意一核在使用IPSec封裝及轉(zhuǎn)發(fā)報(bào)文時(shí),獨(dú)立地為經(jīng)該核處理的報(bào)文分配認(rèn)證頭AH和/或封裝安全載荷ESP頭中的序列號(hào),且在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào);其中,所述組號(hào)與核一一對應(yīng),用于對報(bào)文進(jìn)行分組。
      [0031]進(jìn)一步地,所述報(bào)文發(fā)送模塊在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組內(nèi)序列號(hào)字段中,為經(jīng)該核處理的報(bào)文分配序列號(hào);所述報(bào)文發(fā)送模塊在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組號(hào)字段中,攜帶該核對應(yīng)的組號(hào)。
      [0032]進(jìn)一步地,所述報(bào)文發(fā)送模塊在AH中的保留位攜帶與該核對應(yīng)的組號(hào)。
      [0033]進(jìn)一步地,所述裝置還包括:報(bào)文接收模塊,該模塊用于當(dāng)任一核在接收到經(jīng)IPSec封裝的報(bào)文后,從報(bào)文的AH和/或ESP頭中獲取組號(hào)及序列號(hào),針對不同的組號(hào)的IPSec報(bào)文,使用獨(dú)立的防重放窗口進(jìn)行防重放處理。
      [0034]進(jìn)一步地,所述報(bào)文發(fā)送模塊還用于在AH和/或ESP頭中攜帶與該核對應(yīng)的組標(biāo)記,所述組標(biāo)記用于指示是否支持對報(bào)文按核分組;
      [0035]所述報(bào)文接收模塊還用于,當(dāng)任一核在接收到首個(gè)經(jīng)IPSec封裝的報(bào)文時(shí),從報(bào)文的AH和/或ESP頭中獲取所述組標(biāo)記,當(dāng)所述組標(biāo)記指示支持對報(bào)文按核分組時(shí),標(biāo)記該報(bào)文AH和/或ESP頭中安全參數(shù)索引SPI字段所指示的IPSec隧道支持按核分組,并對從該IPSec隧道接收的后續(xù)報(bào)文直接獲取組號(hào)及序列號(hào)。
      [0036]本發(fā)明針對多核設(shè)備,將使用同一隧道的報(bào)文分為不同的組,各組維護(hù)各自獨(dú)立的序列號(hào),每個(gè)核或轉(zhuǎn)發(fā)線程對應(yīng)一個(gè)組,對每個(gè)組內(nèi)的報(bào)文進(jìn)行串行處理,順序發(fā)送,從而避免多核多線程并行發(fā)送報(bào)文時(shí),設(shè)置過大的IPSec防重放窗口,造成設(shè)備性能下降的問題,減小了多核系統(tǒng)下的防重放窗口的大小,提高了 IPSec處理效率。
      【專利附圖】

      【附圖說明】
      [0037]圖1為本發(fā)明實(shí)施例提供的多核設(shè)備封裝及轉(zhuǎn)發(fā)報(bào)文的示意圖;
      [0038]圖2為本發(fā)明一具體實(shí)例提供的AH頭字段定義示意圖;
      [0039]圖3為本發(fā)明一具體實(shí)例提供的ESP頭字段定義示意圖;
      [0040]圖4為本發(fā)明另一具體實(shí)例提供的AH頭字段定義示意圖;
      [0041]圖5為IPSec同時(shí)使用AH和ESP封裝報(bào)文的報(bào)文構(gòu)示意圖;
      [0042]圖6為本發(fā)明實(shí)施例提供的發(fā)送端網(wǎng)絡(luò)設(shè)備IPSec防重放方法流程圖;
      [0043]圖7為本發(fā)明實(shí)施例提供的接收端網(wǎng)絡(luò)設(shè)備IPSec防重放方法流程圖;
      [0044]圖8為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)設(shè)備IPSec報(bào)文防重放裝置邏輯結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】[0045]圖1為本發(fā)明實(shí)施例提供的多核設(shè)備封裝及轉(zhuǎn)發(fā)報(bào)文的示意圖,本發(fā)明實(shí)施例中,發(fā)送端網(wǎng)絡(luò)設(shè)備為多核設(shè)備,擁有N個(gè)用于封裝、轉(zhuǎn)發(fā)的硬件核心芯片Core(簡稱為核),N為大于I的自然數(shù),在發(fā)送端網(wǎng)絡(luò)設(shè)備向?qū)Χ司W(wǎng)絡(luò)設(shè)備封裝、轉(zhuǎn)發(fā)報(bào)文之前,發(fā)送端網(wǎng)絡(luò)設(shè)備和對端網(wǎng)絡(luò)設(shè)備之間要進(jìn)行IPSec隧道的協(xié)商,在協(xié)商完成后,建立起IPSec隧道,每個(gè)核都通過該建立的IPSec隧道向?qū)Χ朔庋b、轉(zhuǎn)發(fā)報(bào)文。依據(jù)實(shí)際運(yùn)行情況,也可能是多核網(wǎng)絡(luò)設(shè)備中若干個(gè)而非全部核通過同一 IPSec隧道向?qū)Χ司W(wǎng)絡(luò)設(shè)備發(fā)送報(bào)文。
      [0046]在現(xiàn)有技術(shù)中,在IPSec隧道建立后,兩端網(wǎng)絡(luò)設(shè)備都默認(rèn)序列號(hào)的起始編號(hào)為1,序列號(hào)的編號(hào)空間假設(shè)為I?X,多核網(wǎng)絡(luò)設(shè)備在發(fā)送報(bào)文時(shí),各核需要互斥地向系統(tǒng)申請同一序列號(hào)空間中的序列號(hào),在該序列號(hào)空間中的序列號(hào)用盡之后,需要重新協(xié)商建立IPSec隧道。
      [0047]而在本發(fā)明提供的實(shí)施例中,在IPSec隧道建立后,兩端網(wǎng)絡(luò)設(shè)備都默認(rèn)使用相同的序列號(hào)空間和起始序列號(hào),但網(wǎng)絡(luò)設(shè)備在發(fā)送報(bào)文時(shí),各核不需要互斥地向系統(tǒng)申請序列號(hào),而是每個(gè)核使用各自的序列號(hào)空間為報(bào)文分配序列號(hào),由于每個(gè)核單獨(dú)為報(bào)文編號(hào),因此增強(qiáng)了序列號(hào)空間的利用率,減少了因序列號(hào)用盡導(dǎo)致的隧道重建。
      [0048]在本發(fā)明提供的實(shí)施例中,基于并行運(yùn)行的處理線程Thread對報(bào)文進(jìn)行分組,并對屬于同一組的報(bào)文單獨(dú)順序分配序列號(hào),然后基于IPSec協(xié)議對報(bào)文進(jìn)行封裝后,向接收端網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā),其中報(bào)文的AH頭或者ESP頭中的原Sequence Number字段的前10位被用于指示該報(bào)文是否使用分組和/或及該報(bào)文所屬所對應(yīng)的分組,也可以使用AH頭中的保留Reserved位來指示該報(bào)文是否使用分組和/或該報(bào)文所屬的分組。
      [0049]圖2為本發(fā)明一具體實(shí)例提供的AH頭字段定義示意圖,該實(shí)施例是針對報(bào)文只攜帶AH頭的場景,AH頭中原Sequence Number字段的前2位被定義為組標(biāo)記(Group Flag,GF),用于指示是否支持對報(bào)文分組,將Group Flag置O表示不使用序列號(hào)分組技術(shù),將Group Flag置2表示使用序列號(hào)分組技術(shù)。AH頭中原Sequence Number字段的第3到10位被定義為組號(hào)(Group Number,GN),用于標(biāo)記報(bào)文的分組。AH頭中原Sequence Number字段的第11到32位被定義為組號(hào)內(nèi)序列號(hào)(Group Sequence Number, GSN)。
      [0050]圖3為本發(fā)明一具體實(shí)例提供的ESP頭字段定義示意圖,該實(shí)施例是針對報(bào)文只攜帶ESP頭的場景,ESP頭中原Sequence Number字段的前2位被定義為組標(biāo)記(GroupFlag, GF),用于指不是否支持對報(bào)文分組,將Group Flag置O表不不使用序列號(hào)分組技術(shù),將Group Flag置2表示使用序列號(hào)分組技術(shù)。ESP頭中原Sequence Number字段的第3到10位被定義為組號(hào)(Group Number, GN),用于標(biāo)記報(bào)文的分組。ESP頭中原Sequence Number字段的第11到32位被定義為組號(hào)內(nèi)序列號(hào)(Group Sequence Number, GSN)。
      [0051]圖4為本發(fā)明另一具體實(shí)例提供的AH頭字段定義示意圖,該實(shí)施例也是針對報(bào)文只攜帶AH頭的場景,AH頭中原Reserved字段的前2位定義為組標(biāo)記Group Flag,用于指示是否支持對報(bào)文分組,將Group Flag置O表示不使用序列號(hào)分組技術(shù),將Group Flag置2表示使用序列號(hào)分組技術(shù)。AH頭中原Reserved字段剩余位定義為組號(hào)Group Number,用于標(biāo)記報(bào)文的分組。
      [0052]圖5為IPSec同時(shí)使用AH和ESP封裝報(bào)文的報(bào)文構(gòu)示意圖,在該場景下,本發(fā)明可默認(rèn)在AH頭和/或ESP頭中攜帶組標(biāo)記Group Flag和/或組號(hào)Group Number。IPSec使用AH+ESP封裝時(shí),AH頭和ESP頭使用不同的IPSec隧道,兩個(gè)封裝頭中的序列號(hào)是獨(dú)立的,也可使用相同的序列號(hào)。
      [0053]圖6為本發(fā)明實(shí)施例提供的發(fā)送端網(wǎng)絡(luò)設(shè)備IPSec報(bào)文防重放方法流程圖,該方法應(yīng)用于多核網(wǎng)絡(luò)設(shè)備包括:
      [0054]步驟601、建立與對端網(wǎng)絡(luò)設(shè)備之間的IPSec隧道;
      [0055]步驟602、任意一核在使用IPSec封裝及轉(zhuǎn)發(fā)報(bào)文時(shí),獨(dú)立地為經(jīng)該核處理的報(bào)文分配認(rèn)證頭AH和/或封裝安全載荷ESP頭中的序列號(hào),且在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào);其中,所述組號(hào)與核一一對應(yīng),用于對報(bào)文進(jìn)行分組。
      [0056]其中,根據(jù)本發(fā)明一具體實(shí)施例,所述獨(dú)立地為經(jīng)該核封裝及轉(zhuǎn)發(fā)的報(bào)文分配AH和/或封裝安全載荷ESP頭中的序列號(hào)是指:各核不是互斥地向系統(tǒng)申請待處理報(bào)文的序列號(hào),而是各核各自獨(dú)立地按默認(rèn)的起始序列號(hào)開始,順序地為待處理報(bào)文的AH和/或ESP頭分配序列號(hào)。
      [0057]其中,根據(jù)本發(fā)明一具體實(shí)施例,所述在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào)是指:將AH和/或ESP頭中的原序列號(hào)Sequence Number字段劃分為攜帶組號(hào)的字段和組內(nèi)序列號(hào)字段,通過攜帶組號(hào)的字段攜帶與該核對應(yīng)的組號(hào),通過組內(nèi)序列號(hào)字段攜帶所述獨(dú)立分配的序列號(hào)。所述攜帶組號(hào)的字段可進(jìn)一步劃分為組標(biāo)記Group Flag字段和組號(hào) Group Number 字段。
      [0058]其中,根據(jù)本發(fā)明另一具體實(shí)施例,在AH中攜帶與該核對應(yīng)的組號(hào)是指:在AH中的保留位攜帶與該核對應(yīng)的組號(hào),原序列號(hào)Sequence Number字段的定義不變。AH中的保留位指現(xiàn)有協(xié)議未使用的保留Reserved比特位,該保留位除攜帶組號(hào)Group Number外,還可以進(jìn)一步攜帶組標(biāo)記Group Flag,具體如何在保留位中攜帶組號(hào)或其它信息,本發(fā)明不做限定。
      [0059]接收端網(wǎng)絡(luò)設(shè)備可以是單核網(wǎng)絡(luò)設(shè)備也可以是多核網(wǎng)絡(luò)設(shè)備,本發(fā)明不做限定,不管是單核還是多核,接收端網(wǎng)絡(luò)設(shè)備對報(bào)文的防重放處理方法都相同。圖7為本發(fā)明實(shí)施例提供的接收端網(wǎng)絡(luò)設(shè)備IPSec報(bào)文防重放方法流程圖,包括:
      [0060]步驟701、建立與發(fā)送端網(wǎng)絡(luò)設(shè)備的IPSec隧道;
      [0061]步驟702、任一核在接收到經(jīng)IPSec封裝的報(bào)文后,從報(bào)文的AH和/或ESP頭中獲取組號(hào)及序列號(hào),針對不同的組號(hào)的IPSec報(bào)文,使用獨(dú)立的防重放窗口進(jìn)行防重放處理。
      [0062]進(jìn)一步地,在AH和/或ESP頭中還攜帶與該核對應(yīng)的組標(biāo)記,所述組標(biāo)記用于指示是否支持對報(bào)文按核分組;
      [0063]當(dāng)任一核在接收到首個(gè)經(jīng)IPSec封裝的報(bào)文時(shí),從報(bào)文的AH和/或ESP頭中獲取所述組標(biāo)記,當(dāng)所述組標(biāo)記指示支持對報(bào)文按核分組時(shí),標(biāo)記該報(bào)文AH和/或ESP頭中安全參數(shù)索引(SecurityParameter Index, SPI)字段所指示的IPSec隧道支持按核分組,并對從該IPSec隧道接收的后續(xù)報(bào)文直接獲取組號(hào)及序列號(hào)。
      [0064]例如,基于前述實(shí)施例公開的字段定義,當(dāng)組標(biāo)記Group Flag字段的高位為1,則表示此報(bào)文使用序列號(hào)分組技術(shù),標(biāo)記該報(bào)文AH和/或ESP頭中SPI字段對應(yīng)的IPSec隧道支持按核分組,后續(xù)接收到該隧道的報(bào)文后,直接根據(jù)前述實(shí)施例公開的組號(hào)及序列號(hào)的字段定義讀取組號(hào)及序列號(hào),并針對不同的組號(hào)的報(bào)文,使用獨(dú)立的防重放窗口進(jìn)行防
      重放處理。
      [0065]其中,接收端網(wǎng)絡(luò)設(shè)備在接收到報(bào)文后,首先從報(bào)文的AH頭中的Group Number字段中讀取該報(bào)文所屬的組號(hào)。在本發(fā)明一具體實(shí)例中,可以將每個(gè)組號(hào)對應(yīng)的報(bào)文放入對應(yīng)組號(hào)的報(bào)文接收隊(duì)列,針對不同的組號(hào)的接收隊(duì)列,使用獨(dú)立的防重放窗口進(jìn)行防重放處理,防重放處理的機(jī)制與現(xiàn)有技術(shù)中的防重放處理機(jī)制相同,此處不再贅述。
      [0066]本發(fā)明針對不同Group Number的IPSec報(bào)文使用獨(dú)立的防重放窗口,保證了同一組內(nèi)的IPSec報(bào)文不會(huì)出現(xiàn)亂序,因此不會(huì)被防重放機(jī)制錯(cuò)誤地丟棄。
      [0067]本發(fā)明實(shí)例中,發(fā)送端網(wǎng)絡(luò)設(shè)備中的核和報(bào)文的組號(hào)一一對應(yīng),保證了同一個(gè)核處理的報(bào)文的序列號(hào)是連續(xù)的。接收端網(wǎng)絡(luò)設(shè)備的核與接收到的報(bào)文的組號(hào)Group Number沒有對應(yīng)關(guān)系,即接收端網(wǎng)絡(luò)設(shè)備的每個(gè)核處理接收的報(bào)文時(shí),會(huì)全局查找接收到的報(bào)文攜帶的組號(hào)對應(yīng)的報(bào)文接收隊(duì)列,找到對應(yīng)的報(bào)文接收隊(duì)列后,再去基于該報(bào)文接收隊(duì)列,根據(jù)接收到的報(bào)文的序列號(hào)判斷此報(bào)文是否為重放報(bào)文。當(dāng)接收端網(wǎng)絡(luò)設(shè)備接收到某個(gè)組的第一個(gè)報(bào)文時(shí),全局查找不到此報(bào)文所在的組對應(yīng)的報(bào)文接收隊(duì)列,則經(jīng)驗(yàn)證此報(bào)文為合法報(bào)文后,會(huì)為該組建立對應(yīng)的報(bào)文接收隊(duì)列及滑動(dòng)窗口。
      [0068]雖然,本發(fā)明實(shí)施例中,將網(wǎng)絡(luò)設(shè)備分為發(fā)送端網(wǎng)絡(luò)設(shè)備和接收端網(wǎng)絡(luò)設(shè)備,但當(dāng)網(wǎng)絡(luò)設(shè)備承擔(dān)經(jīng)IPSec封裝的報(bào)文的雙向轉(zhuǎn)發(fā)任務(wù)時(shí),會(huì)同時(shí)執(zhí)行上述發(fā)送端網(wǎng)絡(luò)設(shè)備和接收端網(wǎng)絡(luò)設(shè)備的處理步驟。當(dāng)某一網(wǎng)絡(luò)設(shè)備同時(shí)承擔(dān)發(fā)送端角色和接收端角色時(shí),針對同一 IPSec隧道,發(fā)送方向和接收方向的組號(hào)沒有關(guān)聯(lián)性,各自使用獨(dú)立的組編號(hào)。
      [0069]圖8為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)設(shè)備IPSec報(bào)文防重放裝置邏輯結(jié)構(gòu)示意圖,該裝置800應(yīng)用于多核網(wǎng)絡(luò)設(shè)備中,該裝置包括:
      [0070]隧道建立模塊801,用于建立與對端網(wǎng)絡(luò)設(shè)備之間的IPSec隧道;
      [0071]報(bào)文發(fā)送模塊802,用于任意一核在使用IPSec封裝及轉(zhuǎn)發(fā)報(bào)文時(shí),獨(dú)立地為經(jīng)該核處理的報(bào)文分配認(rèn)證頭AH和/或封裝安全載荷ESP頭中的序列號(hào),且在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào);其中,所述組號(hào)與核一一對應(yīng),用于對報(bào)文進(jìn)行分組。
      [0072]參考附圖2和附圖3,根據(jù)本發(fā)明實(shí)施例,所述報(bào)文發(fā)送模塊802在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組內(nèi)序列號(hào)字段中,為經(jīng)該核處理的報(bào)文分配序列號(hào);所述報(bào)文發(fā)送模塊802在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組號(hào)字段中,攜帶該核對應(yīng)的組號(hào)。
      [0073]參考附圖4,根據(jù)本發(fā)明一實(shí)施例,所述報(bào)文發(fā)送模塊802在AH中的保留位攜帶與該核對應(yīng)的組號(hào)。
      [0074]當(dāng)網(wǎng)絡(luò)設(shè)備同時(shí)承擔(dān)報(bào)文的發(fā)送和接收任務(wù)時(shí),所述網(wǎng)絡(luò)設(shè)備中還包括:
      [0075]報(bào)文接收模塊803,該模塊用于當(dāng)任一核在接收到經(jīng)IPSec封裝的報(bào)文后,從報(bào)文的AH和/或ESP頭中獲取組號(hào)及序列號(hào),針對不同的組號(hào)的IPSec報(bào)文,使用獨(dú)立的防重放窗口進(jìn)行防重放處理。
      [0076]根據(jù)本發(fā)明實(shí)施例,所述報(bào)文發(fā)送模塊802還用于在AH和/或ESP頭中攜帶與該核對應(yīng)的組標(biāo)記,所述組標(biāo)記用于指示是否支持對報(bào)文按核分組;
      [0077]所述報(bào)文接收模塊803還用于,當(dāng)任一核在接收到首個(gè)經(jīng)IPSec封裝的報(bào)文時(shí),從報(bào)文的AH和/或ESP頭中獲取所述組標(biāo)記,當(dāng)所述組標(biāo)記指示支持對報(bào)文按核分組時(shí),標(biāo)記該報(bào)文AH和/或ESP頭中安全參數(shù)索引SPI字段所指示的IPSec隧道支持按核分組,并對從該IPSec隧道接收的后續(xù)報(bào)文直接獲取組號(hào)及序列號(hào)。
      [0078]不同網(wǎng)絡(luò)設(shè)備互通時(shí)如果不啟用防重放功能就不會(huì)存在互通問題。對于多核設(shè)備,在使用本發(fā)明提供的IPSec重放方法和裝置對報(bào)文的AH和/或ESP頭進(jìn)行修改后,因增加分組號(hào)帶來的負(fù)荷要遠(yuǎn)比不分組、僅增加滑動(dòng)窗口帶來的負(fù)荷小,且核越多時(shí),并行處理的優(yōu)勢體現(xiàn)的越明顯。
      [0079]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
      【權(quán)利要求】
      1.一種因特網(wǎng)協(xié)議安全I(xiàn)PSec防重放的方法,其特征在于,該方法應(yīng)用于多核網(wǎng)絡(luò)設(shè)備,包括: 建立與對端網(wǎng)絡(luò)設(shè)備之間的IPSec隧道; 任意一核在使用IPSec封裝及轉(zhuǎn)發(fā)報(bào)文時(shí),獨(dú)立地為經(jīng)該核處理的報(bào)文分配認(rèn)證頭AH和/或封裝安全載荷ESP頭中的序列號(hào),且在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào);其中,所述組號(hào)與核一一對應(yīng),用于對報(bào)文進(jìn)行分組。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獨(dú)立地為經(jīng)該核處理的報(bào)文分配認(rèn)證頭AH和/或ESP頭中的序列號(hào)具體為:在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組內(nèi)序列號(hào)字段中,為經(jīng)該核處理的報(bào)文分配序列號(hào); 所述在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào)具體為:在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組號(hào)字段中,攜帶該核對應(yīng)的組號(hào)。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào)具體為:在AH中的保留位攜帶與該核對應(yīng)的組號(hào)。
      4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)任一核在接收到經(jīng)IPSec封裝的報(bào)文后,從報(bào)文的AH和/或ESP頭中獲取組號(hào)及序列號(hào),針對不同的組號(hào)的IPSec報(bào)文,使用獨(dú)立的防重放窗口進(jìn)行防重放處理。
      5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:在AH和/或ESP頭中攜帶與該核對應(yīng)的組標(biāo)記,所述組標(biāo)記用于指示是否支持對報(bào)文按核分組; 當(dāng)任一核在接收到首個(gè)經(jīng)IPSec封裝的報(bào)文時(shí),從報(bào)文的AH和/或ESP頭中獲取所述組標(biāo)記,當(dāng)所述組標(biāo)記指示支持對報(bào)文按核分組時(shí),標(biāo)記該報(bào)文AH和/或ESP頭中安全參數(shù)索引SPI字段所指示的IPSec隧道支持按核分組,并對從該IPSec隧道接收的后續(xù)報(bào)文直接獲取組號(hào)及序列號(hào)。
      6.一種報(bào)文防重放的裝置,其特征在于,該裝置應(yīng)用于多核網(wǎng)絡(luò)設(shè)備中,該裝置包括: 隧道建立模塊,用于建立與對端網(wǎng)絡(luò)設(shè)備之間的IPSec隧道; 報(bào)文發(fā)送模塊,用于任意一核在使用IPSec封裝及轉(zhuǎn)發(fā)報(bào)文時(shí),獨(dú)立地為經(jīng)該核處理的報(bào)文分配認(rèn)證頭AH和/或封裝安全載荷ESP頭中的序列號(hào),且在AH和/或ESP頭中攜帶與該核對應(yīng)的組號(hào);其中,所述組號(hào)與核一一對應(yīng),用于對報(bào)文進(jìn)行分組。
      7.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述報(bào)文發(fā)送模塊在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組內(nèi)序列號(hào)字段中,為經(jīng)該核處理的報(bào)文分配序列號(hào); 所述報(bào)文發(fā)送模塊在AH和/或ESP頭中的原序列號(hào)Sequence Number字段中連續(xù)的部分比特位構(gòu)成的組號(hào)字段中,攜帶該核對應(yīng)的組號(hào)。
      8.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述報(bào)文發(fā)送模塊在AH中的保留位攜帶與該核對應(yīng)的組號(hào)。
      9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 報(bào)文接收模塊,用于當(dāng)任一核在接收到經(jīng)IPSec封裝的報(bào)文后,從報(bào)文的AH和/或ESP頭中獲取組號(hào)及序列號(hào),針對不同的組號(hào)的IPSec報(bào)文,使用獨(dú)立的防重放窗口進(jìn)行防重放處理。
      10.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述報(bào)文發(fā)送模塊還用于在AH和/或ESP頭中攜帶與該核對應(yīng)的組標(biāo)記,所述組標(biāo)記用于指示是否支持對報(bào)文按核分組; 所述報(bào)文接收模塊還用于,當(dāng)任一核在接收到首個(gè)經(jīng)IPSec封裝的報(bào)文時(shí),從報(bào)文的AH和/或ESP頭中獲取所述組標(biāo)記,當(dāng)所述組標(biāo)記指示支持對報(bào)文按核分組時(shí),標(biāo)記該報(bào)文AH和/或ESP頭中安全參數(shù)索引SPI字段所指示的IPSec隧道支持按核分組,并對從該IPSec隧道接收 的后續(xù)報(bào)文直接獲取組號(hào)及序列號(hào)。
      【文檔編號(hào)】H04L29/06GK104038505SQ201410288733
      【公開日】2014年9月10日 申請日期:2014年6月24日 優(yōu)先權(quán)日:2014年6月24日
      【發(fā)明者】韓東亮 申請人:杭州華三通信技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1