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

一種實現(xiàn)ipsec抗重放攻擊的方法

文檔序號:7669323閱讀:1362來源:國知局
專利名稱:一種實現(xiàn)ipsec抗重放攻擊的方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù),特別涉及一種在多核架構(gòu)下實現(xiàn)IPSEC抗重 》文攻擊的方法。
背景技術(shù)
IPSec (IP Security)協(xié)議是一種工業(yè)標(biāo)準(zhǔn)網(wǎng)絡(luò)安全協(xié)議,為IP網(wǎng)絡(luò)通信 提供透明的安全服務(wù),保護傳輸控制協(xié)議(Transmission Control Protocol, TCP ) /IP通信免遭竊聽和篡改,可以有效抵御網(wǎng)絡(luò)攻擊,同時保持易用性。IPSec 在網(wǎng)絡(luò)層發(fā)揮作用,保護和認證IP報文,并與標(biāo)準(zhǔn)算法獨立的開放框架,提 供數(shù)據(jù)的機密性、數(shù)據(jù)完整性和源認證功能。IPSec作為一種實施于網(wǎng)絡(luò)層的 安全協(xié)議,具有保證數(shù)據(jù)來源可靠、保護數(shù)據(jù)完整、保證數(shù)據(jù)機密性、防止重 放攻擊和完美向前保密(PFS)等諸多優(yōu)點。
但是重放攻擊會導(dǎo)致提供IPSec服務(wù)的接收方,為驗證數(shù)據(jù)來源的真實性、 數(shù)據(jù)的完整性以及保證內(nèi)容的機密性,而消耗大量的系統(tǒng)資源,對正常的數(shù)據(jù) 流產(chǎn)生"拒絕服務(wù)"(Dos)。
為了抵抗人惡意地發(fā)起重放攻擊,IPSec報文專門使用了一個序列號(無 符號32比特),以及一個"滑動"的接收窗口。在每個IPSec報文頭內(nèi),都包含 了 一個獨一無二且單調(diào)遞增的序列號。由密鑰交換(Internet Key Exchange, IKE)服務(wù)自動協(xié)商或手工創(chuàng)建好一個安全關(guān)聯(lián)(Security Association, SA) 后,序列號便會初始化為零,并在進行IPSec輸出處理前,令這個值遞增。IPSec 服務(wù)本身并不提供"重傳"功能,如果在同一個安全關(guān)聯(lián)SA "存活"期間, 收到序列號相同的報文,便認為是攻擊包,提供IPSec服務(wù)的接收方,就會丟 棄這個纟艮文。
現(xiàn)有的實現(xiàn)方案一般的是使用RFC2401維護一個"滑動"窗口。如圖1 所示,為現(xiàn)有的32位抗重》文"滑動"窗口示意圖。窗口最左端對應(yīng)于窗口起始 位置的序列號,而最右端對應(yīng)于將來的第"窗口長度"個報文。接收到的報文必須是新的,且必須落在窗口內(nèi)部,或靠在窗口右側(cè)。否則,便將其丟棄。而判 斷一個報文是否是"新"的,是依據(jù)其是否在窗口內(nèi)出現(xiàn)過,如果其在窗口內(nèi)從 從未出現(xiàn)過,則認為是新的。如果收到的一個報文靠在窗口右側(cè),那么只要其 未能通過真實性測試,也會將其丟棄。如通通過了真實性檢查,窗口便會向右 移動,將那個報文包括進來。
需要說明的是,雖然報文的接收順序可能被打亂,但仍會得到正確的處理。 此外,還需注意的是那些接收遲的報文,即在一個有效的報文之后接收,但其 序列號大于窗口的長度,這種報文會被丟棄,所以適當(dāng)?shù)脑O(shè)置"滑動"窗口的 大小很重要。
以下,舉一個例子進行說明
如圖1所示,窗口最左端的序列號為S,最右端的序列號為S+31。編號 為S、 S+2、 S+9、 S+10和S+13等報文尚未收到。
如果最近收到的報文S+33通過了真實性檢查,窗口便會向右滑動2個位 置,使窗口左側(cè)變成S+2,右側(cè)變成S+33。這樣便會造成報文S無可挽回地 丟棄,因為其現(xiàn)在變成靠在滑動接收窗口的左側(cè)。但需要注意的是,報文S+2 如果通過了真實性檢查,S+2這個包仍會被收到。如果再次收到S+3的報文, 根據(jù)"滑動"窗口中相應(yīng)的位圖(bitmap),就可以"鑒別"出是攻擊包。
但是,上述方法存在如下缺點
單個"滑動"窗口技術(shù)方案,在單處理單元(CPU)架構(gòu)下,不需要使用 同步原語,就能保證保存的序列號最大(用于和收到的序列號比較,設(shè)置"滑 動"窗口相應(yīng)的位圖),重放窗口也總是沿著正確的方向的"滑動",從而很好 的防止重放攻擊,也不會導(dǎo)致性能的下降。但是,在多核架構(gòu)、且需要提供高 性能IPSec服務(wù)的情況下,如何保證在性能不受影響,還能保證能有效檢測重 放攻擊,當(dāng)前的這種方案就遇到挑戰(zhàn)。
考慮以下"場景"
當(dāng)接收到的報文因網(wǎng)絡(luò)延遲等原因順序被打亂,或者接收到延遲的報文, 每個核或者處理單元處理的任務(wù)和負載不一致
多核如果使用同一個"滑動"的接收窗口,來檢查是否是重放的報文,為了 保證滑動窗口及序列號的一致性,必須使用同步原語,例如其中一個處理單元滑動"窗口"時,現(xiàn)在大部分實現(xiàn)方案都是利用鎖機制這種同步原語,防止其 他的處理單元也來滑動同一個窗口 ,避免使"滑動"窗口中相應(yīng)的bit位的"錯 位"這樣的情況發(fā)生。因為根據(jù)"錯位"的位圖來"鑒別"報文是否為重放攻 擊,可能會導(dǎo)致丟棄正常的報文。
同步原語的使用,雖然能保證序列號的一致性,使窗口正確的"滑動", 從而達到"鑒別"重放攻擊包的目的,但是一個處理單元在設(shè)置"滑動"窗口
相應(yīng)的位圖,更新序列號時保證保存的序列號最大,方便出站(OUTBOUNT) 使用,另外一個處理單元只能等待上一個處理單元才喿作完成,才能繼續(xù)操作, 而這種等待,這在高性能的多核平臺總會帶來嚴(yán)重的性能下降。

發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種在多核架構(gòu)下實現(xiàn)IPSec抗重放攻擊的方法,
能夠更精確的檢查重放攻擊。
本發(fā)明的實現(xiàn)IPSec抗重放攻擊的方法,在提供IPSec服務(wù)的系統(tǒng)中,利
用多個滑動窗口鑒別接收到的報文是否是新的。 其中,所述滑動窗口的個數(shù)等于CPU的個數(shù)。
其中,根據(jù)每個處理單元最后更新的序列號減去當(dāng)前的序列號,得到相應(yīng) 的位,判斷這個報文是否落在CPU一N的滑動窗口內(nèi)。
其中,所述判斷這個報文是否落在CPU—N的滑動窗口內(nèi),包括下列步驟 根據(jù)Bc卜(l 811)設(shè)置80,其中,Bn=WLs-Cs; Ws為滑動窗口大小, 為機器字長的整數(shù)倍;Bn為滑動窗口中相應(yīng)的位,Bc為滑動窗口的總位圖, Cs為當(dāng)前處理報文的序列號,Ls為最后收到的最大序列號,WLs為當(dāng)前滑動 窗口的最大序列號,Wn為IPSec處理單于或CPU的個數(shù)。
此外,判斷這個報文是否落在CPU—N的滑動窗口內(nèi),進一步包括下列步

如果在所述滑動窗口內(nèi),則比較所述滑動窗口中相應(yīng)的位是否被設(shè)置為 1,如果為1則認為是攻擊的報文,就丟棄該報文;如果不為1,說明是新的報 文,進行后繼的處理;
如果在所述滑動窗口左側(cè),因為該報文延遲時間超過滑動窗口的大小, 也要丟棄該^艮文;如果在所述滑動窗口右側(cè),應(yīng)向右滑動窗口,滑動的距離等于最后一次 收到的最大序列號和當(dāng)前報文序列號差值的絕對值。
其中,鑒別攻擊包,如果Bc&(1 <<Bn)=l,為重放攻擊包,否則是正常 的報文。
本發(fā)明的實現(xiàn)IPSec抗重放攻擊的方法,包括下列步驟每個處理單元各 自使用其收到的最大的序列號,來確定當(dāng)前報文在屬于自己的滑動窗口的位, 每個處理單元在更新序列號時,需要和出站的序列號做比較,如果當(dāng)前序號比 要更新的序號大才更新序號。
進一步地,包括下列步驟在報文送達特定的CPU前,進行預(yù)處理,指 定具有某一特征的數(shù)據(jù)由特定CPU來處理。
其中,所述預(yù)處理是對IPSec頭中明文的序列號進行求模取余運算Pn= Cs modN, N為處理單元或CPU個數(shù),報文頭中序列號為Cs, Pn為處理單元或 CPU號,取余的結(jié)果可以作為CPU的編號,根據(jù)所述編號由固定的CPU進行 處理。
本發(fā)明的有益效果是依照本發(fā)明的在多核架構(gòu)下實現(xiàn)IPSec抗重放攻擊 的方法,在多核架構(gòu)上,利用多"滑動"窗口技術(shù),完善IPSec抗重放攻擊功 能,從而避免使用單一 "滑動"窗口和鎖機制帶來,系統(tǒng)性能嚴(yán)重下降的技術(shù) 難題。根據(jù)IPSec報文頭明文的序列號使用預(yù)處理模塊,把具有特定類型的報 文分派給指定的IPSec處理單元,從而使檢查重放攻擊更精確的方法。


圖1為現(xiàn)有的32位抗重放"滑動"窗口示意圖; 圖2為本發(fā)明的32位抗重放多處理單元多"滑動"窗口示意圖; 圖3為本發(fā)明的設(shè)置預(yù)處理單元的32位抗重放多處理單元多"滑動"窗口 示意圖4為AH報文頭格式示意圖5為ESP報文頭格式示意圖。
具體實施例方式
以下,參考附圖1~5詳細描述本發(fā)明的在多核架構(gòu)下實現(xiàn)IPSEC抗重放 i丈擊的方法。無論是在多核還是單核架構(gòu)下,每個CPU或者處理單元檢查重放攻擊,
都依賴獨一無二、單調(diào)遞增的序列號。
提供IPSec服務(wù)的接收方是在接收到的報文通過真實性檢查之后,馬上進 行重放檢查,需要更新序列號,并完成機密性檢查(解密)。設(shè)置"滑動"窗口 中相應(yīng)的位圖,如果當(dāng)前報文的序列號,超過"滑動"窗口的大小,就需要向右 "滑動"窗口。在此期間,存在一個"時間"窗口,其他的處理單元在這個"時間"
窗口內(nèi),可能收到報文,如果不使用鎖機制,也可以更新序列號,同時滑動窗 口。而依賴序列號檢查重放的上一個處理單元,設(shè)置當(dāng)前"滑動"窗口相應(yīng)的位 圖時,因為序列號的遞增,發(fā)生"錯位",會導(dǎo)致后繼正常的報文被誤認為是"重 放"的報文,被提供IPSec服務(wù)的接收方丟棄該報文。
為此,本發(fā)明的核心思想是在一個提供IPSec服務(wù)的系統(tǒng)中,維護多個 "滑動"窗口,即窗口的個數(shù)一般等于處理單元的個數(shù),使每個處理單元都有 屬于"自己"的滑動窗口。每個處理單元根據(jù)序列號只"滑動"屬于自己的窗 口,就可以在不使用鎖機制的情況下,達到抵抗重放攻擊,又能提高IPSec服 務(wù)的總體性能的目的。
如圖2所示,為本發(fā)明實施例的32位抗重放多處理單元多"滑動"窗口示 意圖
如果CPU—0收到的報文S+34,并通過了真實性檢查,窗口便會向右滑動 3個位置,使窗口左側(cè)變成S+3,右側(cè)變成S+34,同時在SA上記錄最大的序 列號為S + 34。其中,Bn表示相應(yīng)的位,根據(jù)窗口的大小取值不同,例如, 對于64位窗口, Bn取值范圍為0 63;對于32位窗口, Bn取值為0-31。 隨后第S + 9個報文到達,如果這個報文被隨機的分配給CPU—N,由CPU_N 來提供IPSec服務(wù),由于是同一個數(shù)據(jù)流, 一定會"命中"同一個入站 (臓OUNT) SA。
需要說明的是在同一個SA使用同一個單調(diào)遞增的序列號,CPU—N在 檢查S + 9這個報文是否是重放的攻擊包,需要利用"滑動"窗口來"鑒別" 這個報文是否是新的。根據(jù)CPUJ)最后更新的序列號S + 33減去當(dāng)前的序列 號,得到相應(yīng)的位,判斷這個報文是否落在CPU—N的"滑動"窗口內(nèi)。
如果在窗口內(nèi),則比較窗口中相應(yīng)的位是否被設(shè)置為1,如果已經(jīng)設(shè)置為1,是重放的包,如果沒有設(shè)置為1,表示為正常的報文,可以進行后繼的處 理。
如果落在CPU一N的"滑動"窗口左側(cè),即延遲的報文超過了窗口的大小, 丟棄該^艮文。
如果在右側(cè)應(yīng)向右滑動窗口,窗口滑動的距離應(yīng)該等于最后一次收到的最 大序列號和當(dāng)前才艮文序列號差值的絕對值。
但是,所有的"滑動"窗口都使用了最后收到的報文的序列號做比較,引 起報文在不同CPU上的"錯位",因此,會將正常的報文當(dāng)成是重放攻擊包。 要解決"錯位"問題,可使用每個處理單元各自使用其收到的最大的序 列號,來確定當(dāng)前報文在屬于自己的"滑動"窗口的位,每個處理單元在更新 序列號時,需要和OUTBOUNT的序列號做比較,如果當(dāng)前序號比要更新的序 號大才更新序號。假設(shè)CPU—N收到包的最大序列號位S + 36,根據(jù)公式 Bn=WLs - Cs可以確定S + 9這個報文"落"在窗口內(nèi),并且才艮據(jù)^^式和Be &(1 <<Bn)=0,表示該報文是"新"的。通過了重放檢查,對這個正確的報文進行 后繼的處理。
其中,根據(jù)如下方法可以保證在一個CPU更新的序號永遠是最大的一 般的原子操作指令只能保證序列號為最新,而不能保證為最大。如何保證多個 處理單元使用唯一序列號為最大,各種平臺上方法不同。在MIPS體系結(jié)構(gòu)中 可以利用關(guān)聯(lián)加載條件存儲(load-linked、 store-conditional)這條特殊的指令, 在基于MIPS的多核架構(gòu)上,保證多個IPSec處理單元4吏用的唯一序列號正確 的遞增。
依照上述方法,雖然能解決"滑動"窗口的"錯位"問題,但是也有一個 明顯的漏洞,就是如果處理單元是隨機的處理收到的報文,攻擊者可能在攻擊 了為N-1個報文后(N為IPSec處理單元的總數(shù)),才被檢測出。因為攻擊者 可以精確地重放相同序號的報文來"命中"不同的"滑動"窗口。
如圖3所示,為本發(fā)明的設(shè)置預(yù)處理單元的32位抗重放多處理單元多"滑 動"窗口示意圖。利用IPSec報文頭中的序列號(報文頭格式如圖3、圖4所示), 來決定固定的CPU處理特定的IPSec報文。在^JL送達特定的CPU前,做一 定的預(yù)處理,指定具有某一特征的數(shù)據(jù)由特定CPU來處理。預(yù)處理模塊要做到這點,最簡單的方法是對CPU進行編號,如果CPU的實際序號為亂序,比 如2號CPU, 5號CPU, 6號CPU,可是使用數(shù)組下標(biāo)來編號。對IPSec頭中 明文的序列號進行取模取余運算,取余的結(jié)果可以作為CPU的編號,根據(jù)編 號就可以做到特定報文(包括相同序號的報文)總是由固定的CPU來處理。 這樣就可以做到攻擊者重放的第二個報文,馬上被檢測出來,被丟棄,從而達 到防重放的目的。例如,有32個CPU,接收到的報文頭中序列號為63,那 么取余結(jié)果為31,根據(jù)公式Pi^CsmodN,該報文就有31號或者使用數(shù)組下 標(biāo)為31的CPU來提供IPSec服務(wù)。
以上,對本發(fā)明的方法進行了示例性說明。除此,在異構(gòu)的硬件平臺,在 一個提供IPSec服務(wù)的系統(tǒng)中,使用多"滑動"窗口,多個序列號技術(shù),也是 與本方法相同的的方法,另一種表現(xiàn)形式。例如即有x86, arm, mips等IPSec 的處理單元,也有ASIC等處理單元。
本技術(shù)方案提供一種IPSec抗重放技術(shù)方案,并不依賴硬件平臺,因此除 在多核,多線程架構(gòu)上,也適合在任何存在多個IPSec處理單元的架構(gòu)中使用。 在這些架構(gòu)上多"滑動"窗口,多個序列號技術(shù)都能4艮好運行。
綜上所述,依照本發(fā)明的方法,在多核架構(gòu)上,利用多"滑動"窗口技術(shù), 完善IPSec抗"重放"攻擊功能,從而避免使用單一 "滑動"窗口和鎖機制帶 來,系統(tǒng)性能嚴(yán)重下降的技術(shù)難題。根據(jù)IPSec報文頭明文的序列號使用預(yù)處 理模塊,把具有特定類型的報文分派給指定的IPSec處理單元,從而使檢查重 放攻擊更精確的方法。
以上是為了使本領(lǐng)域普通技術(shù)人員理解本發(fā)明,而對本發(fā)明所進行的詳細 描述,但可以想到,在不脫離本發(fā)明的權(quán)利要求所涵蓋的范圍內(nèi)還可以做出其 它的變化和修改,這些變化和修改均在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1. 一種實現(xiàn)IPSec抗重放攻擊的方法,其特征在于,在提供IPSec服務(wù)的系統(tǒng)中,利用多個滑動窗口鑒別接收到的報文是否是新的。
2. 如權(quán)利要求1所述的實現(xiàn)IPSec抗重放攻擊的方法,其特征在于,所述 滑動窗口的個數(shù)等于CPU的個數(shù)。
3. 如權(quán)利要求1所述的實現(xiàn)IPSec抗重放攻擊的方法,其特征在于,根據(jù) 每個處理單元最后更新的序列號減去當(dāng)前的序列號,得到相應(yīng)的位,判斷這個 報文是否落在CPU—N的滑動窗口內(nèi)。
4. 如權(quán)利要求3所述的實現(xiàn)IPSec抗重放攻擊的方法,其特征在于,所述 判斷這個報文是否落在CPU一N的滑動窗口內(nèi),包括下列步驟根據(jù)Bc卜(l 811)設(shè)置8^其中,Bn=WLs-Cs; Ws為滑動窗口大小, 為機器字長的整數(shù)倍;Bn為滑動窗口中相應(yīng)的位,Bc為滑動窗口的總位圖, Cs為當(dāng)前處理報文的序列號,Ls為最后收到的最大序列號,WLs為當(dāng)前滑動 窗口的最大序列號,Wn為IPSec處理單于或CPU的個數(shù)。
5. 如權(quán)利要求4所述的實現(xiàn)IPSec抗重放攻擊的方法,其特征在于,判 斷這個報文是否落在CPU一N的滑動窗口內(nèi),進一步包括下列步驟如果在所述滑動窗口內(nèi),則比較所述滑動窗口中相應(yīng)的位是否被設(shè)置為 1,如果為l則認為是攻擊的報文,就丟棄該報文;如果不為1,說明是新的報 文,進行后繼的處理;如果在所述滑動窗口左側(cè),因為該報文延遲時間超過滑動窗口的大小, 也要丟棄該報文;如果在所述滑動窗口右側(cè),應(yīng)向右滑動窗口,滑動的距離等于最后一次收到的最大序列號和當(dāng)前報文序列號差值的絕對值。
6.如權(quán)利要求5所述的實現(xiàn)IPSec抗重放攻擊的方法,其特征在于,鑒 別攻擊包,如果Bc&(1 <<Bn)=l,為重放攻擊包,否則是正常的報文。
7.如權(quán)利要求1所述的實現(xiàn)IPSec抗重放攻擊的方法,其特征在于,包括 下列步驟每個處理單元各自使用其收到的最大的序列號,來確定當(dāng)前報文在屬于自己的滑動窗口的位,每個處理單元在更新序列號時,需要和出站的序列號做比 較,如果當(dāng)前序號比要更新的序號大才更新序號。
8. 如權(quán)利要求7所述的實現(xiàn)IPSec抗重放攻擊的方法,其特征在于,包括 下列步驟在報文送達特定的CPU前,進行預(yù)處理,指定具有某一特征的數(shù) 據(jù)由特定CPU來處理。
9. 如權(quán)利要求8所述的實現(xiàn)IPSec抗重放攻擊的方法,其特征在于,所述 預(yù)處理是對IPSec頭中明文的序列號進行求模取余運算Pn= Cs mod N, N為處 理單元或CPU個數(shù),報文頭中序列號為Cs, Pn為處理單元或CPU號,取余 的結(jié)果可以作為CPU的編號,根據(jù)所述編號由固定的CPU進行處理。
全文摘要
本發(fā)明提供一種實現(xiàn)IPSec抗重放攻擊的方法,其中,在提供IPSec服務(wù)的系統(tǒng)中,利用多個滑動窗口鑒別接收到的報文是否是新的。在多核架構(gòu)上,利用多“滑動”窗口技術(shù),完善IPSec抗重放攻擊功能,從而避免使用單一“滑動”窗口和鎖機制帶來,系統(tǒng)性能嚴(yán)重下降的技術(shù)難題。根據(jù)IPSec報文頭明文的序列號使用預(yù)處理模塊,把具有特定類型的報文分派給指定的IPSec處理單元,從而使檢查重放攻擊更精確的方法。
文檔編號H04L9/36GK101471784SQ200710304768
公開日2009年7月1日 申請日期2007年12月29日 優(yōu)先權(quán)日2007年12月29日
發(fā)明者左世濤 申請人:北京天融信網(wǎng)絡(luò)安全技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
井研县| 遂宁市| 札达县| 慈利县| 彭水| 乐陵市| 正宁县| 临潭县| 榆林市| 榆林市| 繁昌县| 晋城| 安乡县| 台江县| 柳河县| 嘉鱼县| 岢岚县| 肃北| 东乌珠穆沁旗| 吉林省| 黔江区| 黎平县| 新兴县| 雅安市| 周口市| 温州市| 柏乡县| 福贡县| 西宁市| 张家港市| 乌拉特前旗| 辽中县| 宁陵县| 谢通门县| 深水埗区| 会昌县| 育儿| 阳高县| 高台县| 龙里县| 武功县|