專利名稱:一種實(shí)現(xiàn)ipsec抗重放攻擊的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù),特別涉及一種在多核架構(gòu)下實(shí)現(xiàn)IPSEC抗重 》文攻擊的方法。
背景技術(shù):
IPSec (IP Security)協(xié)議是一種工業(yè)標(biāo)準(zhǔn)網(wǎng)絡(luò)安全協(xié)議,為IP網(wǎng)絡(luò)通信 提供透明的安全服務(wù),保護(hù)傳輸控制協(xié)議(Transmission Control Protocol, TCP ) /IP通信免遭竊聽和篡改,可以有效抵御網(wǎng)絡(luò)攻擊,同時(shí)保持易用性。IPSec 在網(wǎng)絡(luò)層發(fā)揮作用,保護(hù)和認(rèn)證IP報(bào)文,并與標(biāo)準(zhǔn)算法獨(dú)立的開放框架,提 供數(shù)據(jù)的機(jī)密性、數(shù)據(jù)完整性和源認(rèn)證功能。IPSec作為一種實(shí)施于網(wǎng)絡(luò)層的 安全協(xié)議,具有保證數(shù)據(jù)來源可靠、保護(hù)數(shù)據(jù)完整、保證數(shù)據(jù)機(jī)密性、防止重 放攻擊和完美向前保密(PFS)等諸多優(yōu)點(diǎn)。
但是重放攻擊會(huì)導(dǎo)致提供IPSec服務(wù)的接收方,為驗(yàn)證數(shù)據(jù)來源的真實(shí)性、 數(shù)據(jù)的完整性以及保證內(nèi)容的機(jī)密性,而消耗大量的系統(tǒng)資源,對(duì)正常的數(shù)據(jù) 流產(chǎn)生"拒絕服務(wù)"(Dos)。
為了抵抗人惡意地發(fā)起重放攻擊,IPSec報(bào)文專門使用了一個(gè)序列號(hào)(無 符號(hào)32比特),以及一個(gè)"滑動(dòng)"的接收窗口。在每個(gè)IPSec報(bào)文頭內(nèi),都包含 了 一個(gè)獨(dú)一無二且單調(diào)遞增的序列號(hào)。由密鑰交換(Internet Key Exchange, IKE)服務(wù)自動(dòng)協(xié)商或手工創(chuàng)建好一個(gè)安全關(guān)聯(lián)(Security Association, SA) 后,序列號(hào)便會(huì)初始化為零,并在進(jìn)行IPSec輸出處理前,令這個(gè)值遞增。IPSec 服務(wù)本身并不提供"重傳"功能,如果在同一個(gè)安全關(guān)聯(lián)SA "存活"期間, 收到序列號(hào)相同的報(bào)文,便認(rèn)為是攻擊包,提供IPSec服務(wù)的接收方,就會(huì)丟 棄這個(gè)纟艮文。
現(xiàn)有的實(shí)現(xiàn)方案一般的是使用RFC2401維護(hù)一個(gè)"滑動(dòng)"窗口。如圖1 所示,為現(xiàn)有的32位抗重》文"滑動(dòng)"窗口示意圖。窗口最左端對(duì)應(yīng)于窗口起始 位置的序列號(hào),而最右端對(duì)應(yīng)于將來的第"窗口長(zhǎng)度"個(gè)報(bào)文。接收到的報(bào)文必須是新的,且必須落在窗口內(nèi)部,或靠在窗口右側(cè)。否則,便將其丟棄。而判 斷一個(gè)報(bào)文是否是"新"的,是依據(jù)其是否在窗口內(nèi)出現(xiàn)過,如果其在窗口內(nèi)從 從未出現(xiàn)過,則認(rèn)為是新的。如果收到的一個(gè)報(bào)文靠在窗口右側(cè),那么只要其 未能通過真實(shí)性測(cè)試,也會(huì)將其丟棄。如通通過了真實(shí)性檢查,窗口便會(huì)向右 移動(dòng),將那個(gè)報(bào)文包括進(jìn)來。
需要說明的是,雖然報(bào)文的接收順序可能被打亂,但仍會(huì)得到正確的處理。 此外,還需注意的是那些接收遲的報(bào)文,即在一個(gè)有效的報(bào)文之后接收,但其 序列號(hào)大于窗口的長(zhǎng)度,這種報(bào)文會(huì)被丟棄,所以適當(dāng)?shù)脑O(shè)置"滑動(dòng)"窗口的 大小很重要。
以下,舉一個(gè)例子進(jìn)行說明
如圖1所示,窗口最左端的序列號(hào)為S,最右端的序列號(hào)為S+31。編號(hào) 為S、 S+2、 S+9、 S+10和S+13等報(bào)文尚未收到。
如果最近收到的報(bào)文S+33通過了真實(shí)性檢查,窗口便會(huì)向右滑動(dòng)2個(gè)位 置,使窗口左側(cè)變成S+2,右側(cè)變成S+33。這樣便會(huì)造成報(bào)文S無可挽回地 丟棄,因?yàn)槠洮F(xiàn)在變成靠在滑動(dòng)接收窗口的左側(cè)。但需要注意的是,報(bào)文S+2 如果通過了真實(shí)性檢查,S+2這個(gè)包仍會(huì)被收到。如果再次收到S+3的報(bào)文, 根據(jù)"滑動(dòng)"窗口中相應(yīng)的位圖(bitmap),就可以"鑒別"出是攻擊包。
但是,上述方法存在如下缺點(diǎn)
單個(gè)"滑動(dòng)"窗口技術(shù)方案,在單處理單元(CPU)架構(gòu)下,不需要使用 同步原語,就能保證保存的序列號(hào)最大(用于和收到的序列號(hào)比較,設(shè)置"滑 動(dòng)"窗口相應(yīng)的位圖),重放窗口也總是沿著正確的方向的"滑動(dòng)",從而很好 的防止重放攻擊,也不會(huì)導(dǎo)致性能的下降。但是,在多核架構(gòu)、且需要提供高 性能IPSec服務(wù)的情況下,如何保證在性能不受影響,還能保證能有效檢測(cè)重 放攻擊,當(dāng)前的這種方案就遇到挑戰(zhàn)。
考慮以下"場(chǎng)景"
當(dāng)接收到的報(bào)文因網(wǎng)絡(luò)延遲等原因順序被打亂,或者接收到延遲的報(bào)文, 每個(gè)核或者處理單元處理的任務(wù)和負(fù)載不一致
多核如果使用同一個(gè)"滑動(dòng)"的接收窗口,來檢查是否是重放的報(bào)文,為了 保證滑動(dòng)窗口及序列號(hào)的一致性,必須使用同步原語,例如其中一個(gè)處理單元滑動(dòng)"窗口"時(shí),現(xiàn)在大部分實(shí)現(xiàn)方案都是利用鎖機(jī)制這種同步原語,防止其 他的處理單元也來滑動(dòng)同一個(gè)窗口 ,避免使"滑動(dòng)"窗口中相應(yīng)的bit位的"錯(cuò) 位"這樣的情況發(fā)生。因?yàn)楦鶕?jù)"錯(cuò)位"的位圖來"鑒別"報(bào)文是否為重放攻 擊,可能會(huì)導(dǎo)致丟棄正常的報(bào)文。
同步原語的使用,雖然能保證序列號(hào)的一致性,使窗口正確的"滑動(dòng)", 從而達(dá)到"鑒別"重放攻擊包的目的,但是一個(gè)處理單元在設(shè)置"滑動(dòng)"窗口
相應(yīng)的位圖,更新序列號(hào)時(shí)保證保存的序列號(hào)最大,方便出站(OUTBOUNT) 使用,另外一個(gè)處理單元只能等待上一個(gè)處理單元才喿作完成,才能繼續(xù)操作, 而這種等待,這在高性能的多核平臺(tái)總會(huì)帶來嚴(yán)重的性能下降。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種在多核架構(gòu)下實(shí)現(xiàn)IPSec抗重放攻擊的方法,
能夠更精確的檢查重放攻擊。
本發(fā)明的實(shí)現(xiàn)IPSec抗重放攻擊的方法,在提供IPSec服務(wù)的系統(tǒng)中,利
用多個(gè)滑動(dòng)窗口鑒別接收到的報(bào)文是否是新的。 其中,所述滑動(dòng)窗口的個(gè)數(shù)等于CPU的個(gè)數(shù)。
其中,根據(jù)每個(gè)處理單元最后更新的序列號(hào)減去當(dāng)前的序列號(hào),得到相應(yīng) 的位,判斷這個(gè)報(bào)文是否落在CPU一N的滑動(dòng)窗口內(nèi)。
其中,所述判斷這個(gè)報(bào)文是否落在CPU—N的滑動(dòng)窗口內(nèi),包括下列步驟 根據(jù)Bc卜(l 811)設(shè)置80,其中,Bn=WLs-Cs; Ws為滑動(dòng)窗口大小, 為機(jī)器字長(zhǎng)的整數(shù)倍;Bn為滑動(dòng)窗口中相應(yīng)的位,Bc為滑動(dòng)窗口的總位圖, Cs為當(dāng)前處理報(bào)文的序列號(hào),Ls為最后收到的最大序列號(hào),WLs為當(dāng)前滑動(dòng) 窗口的最大序列號(hào),Wn為IPSec處理單于或CPU的個(gè)數(shù)。
此外,判斷這個(gè)報(bào)文是否落在CPU—N的滑動(dòng)窗口內(nèi),進(jìn)一步包括下列步
驟
如果在所述滑動(dòng)窗口內(nèi),則比較所述滑動(dòng)窗口中相應(yīng)的位是否被設(shè)置為 1,如果為1則認(rèn)為是攻擊的報(bào)文,就丟棄該報(bào)文;如果不為1,說明是新的報(bào) 文,進(jìn)行后繼的處理;
如果在所述滑動(dòng)窗口左側(cè),因?yàn)樵搱?bào)文延遲時(shí)間超過滑動(dòng)窗口的大小, 也要丟棄該^艮文;如果在所述滑動(dòng)窗口右側(cè),應(yīng)向右滑動(dòng)窗口,滑動(dòng)的距離等于最后一次 收到的最大序列號(hào)和當(dāng)前報(bào)文序列號(hào)差值的絕對(duì)值。
其中,鑒別攻擊包,如果Bc&(1 <<Bn)=l,為重放攻擊包,否則是正常 的報(bào)文。
本發(fā)明的實(shí)現(xiàn)IPSec抗重放攻擊的方法,包括下列步驟每個(gè)處理單元各 自使用其收到的最大的序列號(hào),來確定當(dāng)前報(bào)文在屬于自己的滑動(dòng)窗口的位, 每個(gè)處理單元在更新序列號(hào)時(shí),需要和出站的序列號(hào)做比較,如果當(dāng)前序號(hào)比 要更新的序號(hào)大才更新序號(hào)。
進(jìn)一步地,包括下列步驟在報(bào)文送達(dá)特定的CPU前,進(jìn)行預(yù)處理,指 定具有某一特征的數(shù)據(jù)由特定CPU來處理。
其中,所述預(yù)處理是對(duì)IPSec頭中明文的序列號(hào)進(jìn)行求模取余運(yùn)算Pn= Cs modN, N為處理單元或CPU個(gè)數(shù),報(bào)文頭中序列號(hào)為Cs, Pn為處理單元或 CPU號(hào),取余的結(jié)果可以作為CPU的編號(hào),根據(jù)所述編號(hào)由固定的CPU進(jìn)行 處理。
本發(fā)明的有益效果是依照本發(fā)明的在多核架構(gòu)下實(shí)現(xiàn)IPSec抗重放攻擊 的方法,在多核架構(gòu)上,利用多"滑動(dòng)"窗口技術(shù),完善IPSec抗重放攻擊功 能,從而避免使用單一 "滑動(dòng)"窗口和鎖機(jī)制帶來,系統(tǒng)性能嚴(yán)重下降的技術(shù) 難題。根據(jù)IPSec報(bào)文頭明文的序列號(hào)使用預(yù)處理模塊,把具有特定類型的報(bào) 文分派給指定的IPSec處理單元,從而使檢查重放攻擊更精確的方法。
圖1為現(xiàn)有的32位抗重放"滑動(dòng)"窗口示意圖; 圖2為本發(fā)明的32位抗重放多處理單元多"滑動(dòng)"窗口示意圖; 圖3為本發(fā)明的設(shè)置預(yù)處理單元的32位抗重放多處理單元多"滑動(dòng)"窗口 示意圖4為AH報(bào)文頭格式示意圖5為ESP報(bào)文頭格式示意圖。
具體實(shí)施例方式
以下,參考附圖1~5詳細(xì)描述本發(fā)明的在多核架構(gòu)下實(shí)現(xiàn)IPSEC抗重放 i丈擊的方法。無論是在多核還是單核架構(gòu)下,每個(gè)CPU或者處理單元檢查重放攻擊,
都依賴獨(dú)一無二、單調(diào)遞增的序列號(hào)。
提供IPSec服務(wù)的接收方是在接收到的報(bào)文通過真實(shí)性檢查之后,馬上進(jìn) 行重放檢查,需要更新序列號(hào),并完成機(jī)密性檢查(解密)。設(shè)置"滑動(dòng)"窗口 中相應(yīng)的位圖,如果當(dāng)前報(bào)文的序列號(hào),超過"滑動(dòng)"窗口的大小,就需要向右 "滑動(dòng)"窗口。在此期間,存在一個(gè)"時(shí)間"窗口,其他的處理單元在這個(gè)"時(shí)間"
窗口內(nèi),可能收到報(bào)文,如果不使用鎖機(jī)制,也可以更新序列號(hào),同時(shí)滑動(dòng)窗 口。而依賴序列號(hào)檢查重放的上一個(gè)處理單元,設(shè)置當(dāng)前"滑動(dòng)"窗口相應(yīng)的位 圖時(shí),因?yàn)樾蛄刑?hào)的遞增,發(fā)生"錯(cuò)位",會(huì)導(dǎo)致后繼正常的報(bào)文被誤認(rèn)為是"重 放"的報(bào)文,被提供IPSec服務(wù)的接收方丟棄該報(bào)文。
為此,本發(fā)明的核心思想是在一個(gè)提供IPSec服務(wù)的系統(tǒng)中,維護(hù)多個(gè) "滑動(dòng)"窗口,即窗口的個(gè)數(shù)一般等于處理單元的個(gè)數(shù),使每個(gè)處理單元都有 屬于"自己"的滑動(dòng)窗口。每個(gè)處理單元根據(jù)序列號(hào)只"滑動(dòng)"屬于自己的窗 口,就可以在不使用鎖機(jī)制的情況下,達(dá)到抵抗重放攻擊,又能提高IPSec服 務(wù)的總體性能的目的。
如圖2所示,為本發(fā)明實(shí)施例的32位抗重放多處理單元多"滑動(dòng)"窗口示 意圖
如果CPU—0收到的報(bào)文S+34,并通過了真實(shí)性檢查,窗口便會(huì)向右滑動(dòng) 3個(gè)位置,使窗口左側(cè)變成S+3,右側(cè)變成S+34,同時(shí)在SA上記錄最大的序 列號(hào)為S + 34。其中,Bn表示相應(yīng)的位,根據(jù)窗口的大小取值不同,例如, 對(duì)于64位窗口, Bn取值范圍為0 63;對(duì)于32位窗口, Bn取值為0-31。 隨后第S + 9個(gè)報(bào)文到達(dá),如果這個(gè)報(bào)文被隨機(jī)的分配給CPU—N,由CPU_N 來提供IPSec服務(wù),由于是同一個(gè)數(shù)據(jù)流, 一定會(huì)"命中"同一個(gè)入站 (臓OUNT) SA。
需要說明的是在同一個(gè)SA使用同一個(gè)單調(diào)遞增的序列號(hào),CPU—N在 檢查S + 9這個(gè)報(bào)文是否是重放的攻擊包,需要利用"滑動(dòng)"窗口來"鑒別" 這個(gè)報(bào)文是否是新的。根據(jù)CPUJ)最后更新的序列號(hào)S + 33減去當(dāng)前的序列 號(hào),得到相應(yīng)的位,判斷這個(gè)報(bào)文是否落在CPU—N的"滑動(dòng)"窗口內(nèi)。
如果在窗口內(nèi),則比較窗口中相應(yīng)的位是否被設(shè)置為1,如果已經(jīng)設(shè)置為1,是重放的包,如果沒有設(shè)置為1,表示為正常的報(bào)文,可以進(jìn)行后繼的處 理。
如果落在CPU一N的"滑動(dòng)"窗口左側(cè),即延遲的報(bào)文超過了窗口的大小, 丟棄該^艮文。
如果在右側(cè)應(yīng)向右滑動(dòng)窗口,窗口滑動(dòng)的距離應(yīng)該等于最后一次收到的最 大序列號(hào)和當(dāng)前才艮文序列號(hào)差值的絕對(duì)值。
但是,所有的"滑動(dòng)"窗口都使用了最后收到的報(bào)文的序列號(hào)做比較,引 起報(bào)文在不同CPU上的"錯(cuò)位",因此,會(huì)將正常的報(bào)文當(dāng)成是重放攻擊包。 要解決"錯(cuò)位"問題,可使用每個(gè)處理單元各自使用其收到的最大的序 列號(hào),來確定當(dāng)前報(bào)文在屬于自己的"滑動(dòng)"窗口的位,每個(gè)處理單元在更新 序列號(hào)時(shí),需要和OUTBOUNT的序列號(hào)做比較,如果當(dāng)前序號(hào)比要更新的序 號(hào)大才更新序號(hào)。假設(shè)CPU—N收到包的最大序列號(hào)位S + 36,根據(jù)公式 Bn=WLs - Cs可以確定S + 9這個(gè)報(bào)文"落"在窗口內(nèi),并且才艮據(jù)^^式和Be &(1 <<Bn)=0,表示該報(bào)文是"新"的。通過了重放檢查,對(duì)這個(gè)正確的報(bào)文進(jìn)行 后繼的處理。
其中,根據(jù)如下方法可以保證在一個(gè)CPU更新的序號(hào)永遠(yuǎn)是最大的一 般的原子操作指令只能保證序列號(hào)為最新,而不能保證為最大。如何保證多個(gè) 處理單元使用唯一序列號(hào)為最大,各種平臺(tái)上方法不同。在MIPS體系結(jié)構(gòu)中 可以利用關(guān)聯(lián)加載條件存儲(chǔ)(load-linked、 store-conditional)這條特殊的指令, 在基于MIPS的多核架構(gòu)上,保證多個(gè)IPSec處理單元4吏用的唯一序列號(hào)正確 的遞增。
依照上述方法,雖然能解決"滑動(dòng)"窗口的"錯(cuò)位"問題,但是也有一個(gè) 明顯的漏洞,就是如果處理單元是隨機(jī)的處理收到的報(bào)文,攻擊者可能在攻擊 了為N-1個(gè)報(bào)文后(N為IPSec處理單元的總數(shù)),才被檢測(cè)出。因?yàn)楣粽?可以精確地重放相同序號(hào)的報(bào)文來"命中"不同的"滑動(dòng)"窗口。
如圖3所示,為本發(fā)明的設(shè)置預(yù)處理單元的32位抗重放多處理單元多"滑 動(dòng)"窗口示意圖。利用IPSec報(bào)文頭中的序列號(hào)(報(bào)文頭格式如圖3、圖4所示), 來決定固定的CPU處理特定的IPSec報(bào)文。在^JL送達(dá)特定的CPU前,做一 定的預(yù)處理,指定具有某一特征的數(shù)據(jù)由特定CPU來處理。預(yù)處理模塊要做到這點(diǎn),最簡(jiǎn)單的方法是對(duì)CPU進(jìn)行編號(hào),如果CPU的實(shí)際序號(hào)為亂序,比 如2號(hào)CPU, 5號(hào)CPU, 6號(hào)CPU,可是使用數(shù)組下標(biāo)來編號(hào)。對(duì)IPSec頭中 明文的序列號(hào)進(jìn)行取模取余運(yùn)算,取余的結(jié)果可以作為CPU的編號(hào),根據(jù)編 號(hào)就可以做到特定報(bào)文(包括相同序號(hào)的報(bào)文)總是由固定的CPU來處理。 這樣就可以做到攻擊者重放的第二個(gè)報(bào)文,馬上被檢測(cè)出來,被丟棄,從而達(dá) 到防重放的目的。例如,有32個(gè)CPU,接收到的報(bào)文頭中序列號(hào)為63,那 么取余結(jié)果為31,根據(jù)公式Pi^CsmodN,該報(bào)文就有31號(hào)或者使用數(shù)組下 標(biāo)為31的CPU來提供IPSec服務(wù)。
以上,對(duì)本發(fā)明的方法進(jìn)行了示例性說明。除此,在異構(gòu)的硬件平臺(tái),在 一個(gè)提供IPSec服務(wù)的系統(tǒng)中,使用多"滑動(dòng)"窗口,多個(gè)序列號(hào)技術(shù),也是 與本方法相同的的方法,另一種表現(xiàn)形式。例如即有x86, arm, mips等IPSec 的處理單元,也有ASIC等處理單元。
本技術(shù)方案提供一種IPSec抗重放技術(shù)方案,并不依賴硬件平臺(tái),因此除 在多核,多線程架構(gòu)上,也適合在任何存在多個(gè)IPSec處理單元的架構(gòu)中使用。 在這些架構(gòu)上多"滑動(dòng)"窗口,多個(gè)序列號(hào)技術(shù)都能4艮好運(yùn)行。
綜上所述,依照本發(fā)明的方法,在多核架構(gòu)上,利用多"滑動(dòng)"窗口技術(shù), 完善IPSec抗"重放"攻擊功能,從而避免使用單一 "滑動(dòng)"窗口和鎖機(jī)制帶 來,系統(tǒng)性能嚴(yán)重下降的技術(shù)難題。根據(jù)IPSec報(bào)文頭明文的序列號(hào)使用預(yù)處 理模塊,把具有特定類型的報(bào)文分派給指定的IPSec處理單元,從而使檢查重 放攻擊更精確的方法。
以上是為了使本領(lǐng)域普通技術(shù)人員理解本發(fā)明,而對(duì)本發(fā)明所進(jìn)行的詳細(xì) 描述,但可以想到,在不脫離本發(fā)明的權(quán)利要求所涵蓋的范圍內(nèi)還可以做出其 它的變化和修改,這些變化和修改均在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1. 一種實(shí)現(xiàn)IPSec抗重放攻擊的方法,其特征在于,在提供IPSec服務(wù)的系統(tǒng)中,利用多個(gè)滑動(dòng)窗口鑒別接收到的報(bào)文是否是新的。
2. 如權(quán)利要求1所述的實(shí)現(xiàn)IPSec抗重放攻擊的方法,其特征在于,所述 滑動(dòng)窗口的個(gè)數(shù)等于CPU的個(gè)數(shù)。
3. 如權(quán)利要求1所述的實(shí)現(xiàn)IPSec抗重放攻擊的方法,其特征在于,根據(jù) 每個(gè)處理單元最后更新的序列號(hào)減去當(dāng)前的序列號(hào),得到相應(yīng)的位,判斷這個(gè) 報(bào)文是否落在CPU—N的滑動(dòng)窗口內(nèi)。
4. 如權(quán)利要求3所述的實(shí)現(xiàn)IPSec抗重放攻擊的方法,其特征在于,所述 判斷這個(gè)報(bào)文是否落在CPU一N的滑動(dòng)窗口內(nèi),包括下列步驟根據(jù)Bc卜(l 811)設(shè)置8^其中,Bn=WLs-Cs; Ws為滑動(dòng)窗口大小, 為機(jī)器字長(zhǎng)的整數(shù)倍;Bn為滑動(dòng)窗口中相應(yīng)的位,Bc為滑動(dòng)窗口的總位圖, Cs為當(dāng)前處理報(bào)文的序列號(hào),Ls為最后收到的最大序列號(hào),WLs為當(dāng)前滑動(dòng) 窗口的最大序列號(hào),Wn為IPSec處理單于或CPU的個(gè)數(shù)。
5. 如權(quán)利要求4所述的實(shí)現(xiàn)IPSec抗重放攻擊的方法,其特征在于,判 斷這個(gè)報(bào)文是否落在CPU一N的滑動(dòng)窗口內(nèi),進(jìn)一步包括下列步驟如果在所述滑動(dòng)窗口內(nèi),則比較所述滑動(dòng)窗口中相應(yīng)的位是否被設(shè)置為 1,如果為l則認(rèn)為是攻擊的報(bào)文,就丟棄該報(bào)文;如果不為1,說明是新的報(bào) 文,進(jìn)行后繼的處理;如果在所述滑動(dòng)窗口左側(cè),因?yàn)樵搱?bào)文延遲時(shí)間超過滑動(dòng)窗口的大小, 也要丟棄該報(bào)文;如果在所述滑動(dòng)窗口右側(cè),應(yīng)向右滑動(dòng)窗口,滑動(dòng)的距離等于最后一次收到的最大序列號(hào)和當(dāng)前報(bào)文序列號(hào)差值的絕對(duì)值。
6.如權(quán)利要求5所述的實(shí)現(xiàn)IPSec抗重放攻擊的方法,其特征在于,鑒 別攻擊包,如果Bc&(1 <<Bn)=l,為重放攻擊包,否則是正常的報(bào)文。
7.如權(quán)利要求1所述的實(shí)現(xiàn)IPSec抗重放攻擊的方法,其特征在于,包括 下列步驟每個(gè)處理單元各自使用其收到的最大的序列號(hào),來確定當(dāng)前報(bào)文在屬于自己的滑動(dòng)窗口的位,每個(gè)處理單元在更新序列號(hào)時(shí),需要和出站的序列號(hào)做比 較,如果當(dāng)前序號(hào)比要更新的序號(hào)大才更新序號(hào)。
8. 如權(quán)利要求7所述的實(shí)現(xiàn)IPSec抗重放攻擊的方法,其特征在于,包括 下列步驟在報(bào)文送達(dá)特定的CPU前,進(jìn)行預(yù)處理,指定具有某一特征的數(shù) 據(jù)由特定CPU來處理。
9. 如權(quán)利要求8所述的實(shí)現(xiàn)IPSec抗重放攻擊的方法,其特征在于,所述 預(yù)處理是對(duì)IPSec頭中明文的序列號(hào)進(jìn)行求模取余運(yùn)算Pn= Cs mod N, N為處 理單元或CPU個(gè)數(shù),報(bào)文頭中序列號(hào)為Cs, Pn為處理單元或CPU號(hào),取余 的結(jié)果可以作為CPU的編號(hào),根據(jù)所述編號(hào)由固定的CPU進(jìn)行處理。
全文摘要
本發(fā)明提供一種實(shí)現(xiàn)IPSec抗重放攻擊的方法,其中,在提供IPSec服務(wù)的系統(tǒng)中,利用多個(gè)滑動(dòng)窗口鑒別接收到的報(bào)文是否是新的。在多核架構(gòu)上,利用多“滑動(dòng)”窗口技術(shù),完善IPSec抗重放攻擊功能,從而避免使用單一“滑動(dòng)”窗口和鎖機(jī)制帶來,系統(tǒng)性能嚴(yán)重下降的技術(shù)難題。根據(jù)IPSec報(bào)文頭明文的序列號(hào)使用預(yù)處理模塊,把具有特定類型的報(bào)文分派給指定的IPSec處理單元,從而使檢查重放攻擊更精確的方法。
文檔編號(hào)H04L9/36GK101471784SQ200710304768
公開日2009年7月1日 申請(qǐng)日期2007年12月29日 優(yōu)先權(quán)日2007年12月29日
發(fā)明者左世濤 申請(qǐng)人:北京天融信網(wǎng)絡(luò)安全技術(shù)有限公司