抵御DDoS(Distributed Denial of Service)攻击IKEv2中抵御DDoS攻击的机制和方法:SPI值IKEv2消息头部有发起方SPIi和响应方SPIr,它们是内核产生的8字节的随机数,用来标识SA,同时也可以标识进行消息交换的一对节点 。具有相同SPI值的请求处理一次(重传消息除外),而把其他请求作为重复数据包丢弃,可以在一定程度上防止DDoS攻击 。带Cookie交互IKEv2中使用N载荷携带Cookie的辅助交换来抵御拒绝服务攻击 。在通信过程中,响应方认为自己正受到DDoS攻击时,可以向发起方请求回复一个无状态cookie 。响应方收到对方发来的第一条消息后并不急于进行IKE_SA_INIT交互,而是再产生一个新的cookie,封装在通知载荷中发送给对方 。如果发起方不是攻击者,就可以收到这条消息,然后重新开始协商,并将响应方的cookie封装在该消息中,其它载荷内容保持不变 。重传约定IKEv2中所有消息都是成对出现,在每对消息中,发起方负责重传事件,响应方不必对其响应消息进行重传,除非收到对方的一个重传请求 。避免了双方同时发起重传,造成资源的浪费,同时也可以防止攻击者截获消息后,伪装成协商者不断地发送重传消息,耗费协商双方的资源 。丢弃半开(half-open)连接IKEv2只能通过两种情况判断对方是否失效:一种是重复尝试联系对方,直到应答时间过期;另一种是收到对方的不同IKE SA加密保护下的INITIAL CONTACT通知消息 。IKEv2发起方允许多个响应方响应第一条消息,并把所有的响应方视为合法并作回应 。发起方发送一些消息后,一旦收到一个有效的加密的响应消息,将其他的响应消息忽略,并将其他所有的无效的半连接丢弃 。这样在协商开始时就可以避免受到DDoS攻击 。 完善的前向安全性PFS(Perfect Forward Secrecy)IPSec SA数据传输需要的加密、验证密钥由SKEYID_d、SPI、协议等参数衍生得出,可以保证每个IPSec SA都有自己独一无二的密钥 。但是由于所有IPSec SA密钥都是相同的来源产生的,所以这些IPSec SA密钥相互间都有关联,假如有攻击者能够根据IKE SA判断出SKEYID_d的值,那么就能非常容易的掌握从该SKEYID_d衍生出来的所有IPSec SA的密钥 。IPSec专门提供PFS特性来解决这个问题,实现思路是:IKEv2初始交互的密钥衍生材料不被用于衍生供IPSec SA使用的相关密钥,而是通过在CREATE_IPSec_SA交互中引入可选的IKE载荷重新进行一次额外的DH交换来生成密钥材料 。通过这种方式,IPSec密钥之间相互没有关联,即使攻击者攻克了一个密钥,也只能破解这个密钥保护的数据,而不能破解受其它密钥保护的数据 。防重放IPSec中的重放攻击(Replay Attack)主要是指攻击者大量发送目的主机已接收过的数据包,大量消耗系统资源,可能导致系统CPU资源耗尽 。
IPSec利用序列号和滑动窗口来实现防重放(Anti-Replay) 。IPSec中AH和ESP协议报文头中有个序列号字段(Sequence Number)专门用于防重放攻击 。
通信双方协商好IPSec SA之后,序列号字段被置为0,此后发送方每发出一个报文,该数值加1 。接收方存在一个防重放滑动窗口和已接收报文的序列号数据库 。
- 如果该序列号的报文从未被接收过,且在防重放窗口内,接收方就接收该报文 。如果该序列号的报文已经被接收过,则认为是重放攻击,丢弃该报文 。
- 如果该序列号在防重放窗口的左侧(小于防重放窗口的最小值),则认为是已经接收的报文,因而被丢弃 。
- 如果该序列号在防重放窗口的右侧(大于防重放窗口的最大值),则认为未被接收的报文,会正常接收,同时触发防重放窗口向右滑动 。
下面结合图1详细描述防重放的原理 。图1 防重放示意图

文章插图
- 如图1(a)所示,初始防重放窗口是[0–63],序列号在此范围内的报文会被正常接收,接下来如果接收到序列号大于63的报文,也会正常接收,并且防重放窗口向右滑动 。但是如果再次收到序列号在[0–63]范围内的报文,则认为是重放攻击,拒绝接收报文 。
- 如果此时收到序列号为66的报文,则防重放窗口滑动到[3–66],接下来如果接收到序列号大于66的报文,也会正常接收,具体如图1(b)所示 。此时[0–2]这三个序列号已经不在防重放窗口范围内,如果再次收到此范围内的报文,则会认为是已经接收过的报文,所以会丢弃这些报文 。
- 如图1(c)所示,假如报文发生乱序,接收端先接收到序列号为67的报文,则防重放窗口滑动到[4–67] 。然后再接收到序列号为3的报文,虽然该报文之前从未接收过,但是因为其序列号已经在防重放窗口之外,因此也被丢弃 。从这一点可以看出,在报文乱序情况下,防重放窗口设置越大,报文被错误丢弃的几率就越低,反之就越高 。
推荐阅读
-
开幕|高清大图|来看看2020中国网络诚信大会开幕现场
-
阿娇头部表面一层已缝66针:阿娇晕倒撞破头部 经纪人称其伤口表面一层已缝66针
-
-
创始人张一鸣:10年面试2000人,我发现混的好的人,全都有同一个特质
-
产业:“产业就是定心丸”——广西阳朔依托养殖业助脱贫见闻
-
【小豆豆说健康】羡慕李小冉,靠自己活成人生赢家,不服输的陈数:从小自卑被嫌丑
-
青铜上王者|S10主题曲发布,难听、广告太多被喷,可这些彩蛋你找到了吗?
-
-
-
-
【人民网】侧记:国务院联防联控机制发布会亮相 回应关切更
-
奔驰GLE|本田冠道和凯迪拉克XT5,这两款车型该如何选择?谈谈我的建议
-
-
为啥全国各地的肉松卷基本上都是只在两头蘸满了肉松而里面都是沙拉酱
-
-
-
「」新房硬装快要收尾了, 吊顶和地砖效果很漂亮, 忍不住晒晒
-
科技阿维|双曲面屏+顶级防水,麒麟980旗舰加速退场,从5488元降至3388元
-
穿搭|张韶涵穿“肥肥衫”走机场,虽然看着好似圆了两圈,但依旧不太胖
-
宫本武藏|金秋永久皮肤宝箱选谁好?霸王丸烂大街先别选