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