只有IKE動(dòng)態(tài)協(xié)商的SA才支持抗重放功能,手工方式生成的SA不支持抗重放功能。因?yàn)槭止し绞浇⒌腟A是永久不老化的,而只有在SA重新建立時(shí),AH或ESP報(bào)文的序列號(hào)才會(huì)重新開始計(jì)算,這需要IKE協(xié)議的支持。
重放報(bào)文是指已經(jīng)處理過的報(bào)文,報(bào)文的序列號(hào)與原來的某個(gè)報(bào)文一樣。IPSec通過滑動(dòng)窗口(抗重放窗口)機(jī)制檢測(cè)重放報(bào)文。AH和ESP協(xié)議報(bào)文頭中帶有32比特序列號(hào),在同一個(gè)SA內(nèi),報(bào)文的序列號(hào)依次遞增。當(dāng)設(shè)備收到一個(gè)經(jīng)過認(rèn)證的報(bào)文后,如果報(bào)文的序列號(hào)與已經(jīng)解封裝過的某個(gè)報(bào)文的序列號(hào)相同,或報(bào)文的序列號(hào)較小且不在滑動(dòng)窗口內(nèi),則認(rèn)為該報(bào)文為重放報(bào)文。
由于對(duì)重放報(bào)文的解封裝無實(shí)際作用,并且解封裝過程會(huì)消耗設(shè)備大量的資源,導(dǎo)致業(yè)務(wù)可用性下降,實(shí)際上構(gòu)成了拒絕服務(wù)DoS(Denial of Service)攻擊。通過使能IPSec抗重放功能,將檢測(cè)到的重放報(bào)文在解封裝處理之前丟棄,可以降低設(shè)備資源的消耗。但在某些特定的環(huán)境下(如當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時(shí)或報(bào)文經(jīng)過QoS處理后),業(yè)務(wù)數(shù)據(jù)報(bào)文的序列號(hào)順序可能與正常的順序差別較大,雖然并非有意的重放攻擊,但其會(huì)被抗重放檢測(cè)認(rèn)為是重放報(bào)文,導(dǎo)致業(yè)務(wù)數(shù)據(jù)報(bào)文被丟棄。這種情況下就可以通過關(guān)閉全局IPSec抗重放功能來避免報(bào)文的錯(cuò)誤丟棄,也可以通過適當(dāng)?shù)卦龃罂怪胤糯翱诘膶挾?,來適應(yīng)業(yè)務(wù)正常運(yùn)行的需要。
使用較大的抗重放窗口寬度會(huì)引起系統(tǒng)增大的開銷,導(dǎo)致系統(tǒng)性能下降,因此與抗重放功能用于降低系統(tǒng)在接收重放報(bào)文時(shí)的開銷的初衷不符,因此建議在能夠滿足業(yè)務(wù)運(yùn)行需要的情況下,使用較小的抗重放窗口寬度。
抗重放功能可以基于全局配置,也可以在IPSec安全策略或策略模板下配置。全局IPSec抗重放功能的配置對(duì)所有已創(chuàng)建的IPSec安全策略生效,針對(duì)個(gè)別IPSec安全策略配置的抗重放功能僅在對(duì)應(yīng)的安全策略下生效,不再受全局配置的影響。具體的抗重放功能配置步驟見表1。
表1 配置抗重放功能的步驟