只有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 配置抗重放功能的步驟