发明内容
本申请提供了防止DS-Lite组网中的DoS攻击方法和装置,以防御DS-Lite组网中的DoS攻击。
本申请提供的技术方案包括:
一种防止DS-Lite组网中的Dos攻击方法,该方法应用于所述DS-Lite组网中的地址转换路由器AFTR,包括:
接收所述DS-Lite组网中基础桥接宽带元件B4发送的IPv6报文;
判断已建立的可信列表中是否存在所述IPv6报文的源IP地址,所述IPv6报文的源IP地址为所述B4的IP地址,
如果是,对所述IPv6报文进行解封装,获取内层的IPv4报文并发送;
如果否,识别所述IPv6报文是否携带了验证确认信息,如果否,生成一个验证信息,将该验证信息携带在与所述IPv6报文相关联的IPv6关联报文中返回给所述B4,以使所述B4依据接收的验证信息生成验证确认信息并携带在与所述IPv6关联报文相关联的IPv6报文中返回给所述AFTR;
如果是,对所述验证确认信息进行验证,在验证成功时,确定所述B4可信,将所述IPv6报文的源IP地址加入所述可信列表中。
一种防止DS-Lite组网中的Dos攻击方法,该方法应用于所述DS-Lite组网中的基础桥接宽带元件B4,该方法包括:
接收所述DS-Lite组网中地址转换路由器AFTR发送的IPv6报文;
识别所述IPv6报文是否携带验证信息;
如果是,依据所述IPv6报文携带的验证信息生成验证确认信息,将所述验证确认信息携带在与所述IPv6报文相关联的IPv6报文中发送给AFTR;
如果否,则对接收的IPv6报文进行解封装,获取内层的IPv4报文并发送。
一种防止DS-Lite组网中的Dos攻击装置,该装置应用于所述DS-Lite组网中的地址转换路由器AFTR,该装置包括:
接收单元,用于接收所述DS-Lite组网中基础桥接宽带元件B4发送的IPv6报文;
判断单元,用于判断已建立的可信列表中是否存在所述IPv6报文的源IP地址,所述IPv6报文的源IP地址为所述B4的IP地址;
处理单元,用于在所述判断单元的判断结果为是时,对所述IPv6报文进行解封装,获取内层的IPv4报文并发送;以及,用于在所述判断单元的判断结果为否时,识别所述IPv6报文是否携带了验证确认信息,并将识别结果发送至验证单元;
验证单元,用于在所述识别结果为否时,生成一个验证信息,将该验证信息携带在与所述IPv6报文相关联的IPv6关联报文中返回给所述B4,以使所述B4依据接收的验证信息生成验证确认信息并携带在与所述IPv6关联报文相关联的IPv6报文中返回给所述AFTR,以及,用于在所述识别结果为是时,对所述验证确认信息进行验证,在验证成功时,将所述IPv6报文的源IP地址加入所述可信列表中。
一种防止DS-Lite组网中的Dos攻击装置,该装置应用于所述DS-Lite组网中的基础桥接宽带元件B4,该装置包括:
接收单元,用于接收所述DS-Lite组网中地址转换路由器AFTR发送的IPv6报文;
识别单元,用于识别所述IPv6报文是否携带验证信息;
处理单元,用于在所述识别单元识别出所述IPv6报文携带验证信息时,依据所述IPv6报文携带的验证信息生成验证确认信息,将所述验证确认信息携带在与所述IPv6报文相关联的IPv6报文中发送给AFTR;以及,
用于在所述识别单元识别出所述IPv6报文未携带验证信息时,对接收的IPv6报文进行解封装,获取内层的IPv4报文并发送。
由以上技术方案可以看出,本发明中,当AFTR接收到来自B4的IPv6报文时,不是直接把此IPv6报文解封装做NAT并转发,而是通过和B4之间的报文交互对B4的真实性进行验证,避免AFTR遭受DoS攻击。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的方法是在标准DS-Lite协议的基础上加入了一次B4验证的过程。通过本发明,当AFTR接收到B4发送的IPv6报文时,不是直接把此IPv6报文解封装做NAT并转发,而是通过与B4之间进行报文交互先对该B4的真实性进行一次验证,只有验证成功时才会对此IPv6报文解封装并做NAT进行转发。
参见图4,图4为本发明实施例提供的方法流程图。该流程应用于所述DS-Lite组网中的地址转换路由器AFTR,如图4所示,该流程可包括以下步骤:
步骤401,接收所述DS-Lite组网中B4发送的IPv6报文。
步骤402,判断已建立的可信列表中是否存在所述IPv6报文的源IP地址,所述IPv6报文的源IP地址为所述B4的IP地址,如果是,执行步骤403,如果否,执行步骤404。
步骤403,对所述IPv6报文进行解封装,获取内层的IPv4报文并发送。
这里,对IPv6报文进行解封装,获取内层的IPv4报文并发送可按照现有AFTR收到来自B4的IPv6报文后对IPv6报文进行解封装并发送的方式执行,本发明不再赘述。
步骤404,识别所述IPv6报文是否携带了验证确认信息,如果否,生成一个验证信息,将该验证信息携带在与所述IPv6报文相关联的IPv6关联报文中返回给所述B4,以使所述B4依据接收的验证信息生成验证确认信息并携带在与所述IPv6关联报文相关联的IPv6报文中返回给所述AFTR;如果是,对所述验证确认信息进行验证,在验证成功时,将所述IPv6报文的源IP地址加入所述可信列表中。
本发明中,与所述IPv6报文相关联的IPv6关联报文具体实现时可有多种实现形式,本发明举出以下两个实现形式:
形式1:
本形式1下,与所述IPv6报文相关联的IPv6关联报文其仅是将所述IPv6报文中源IP地址和目的IP地址相交换之后得到的报文,而所述IPv6报文中携带的由Client1发送的原始报文内容即所述IPv6报文中的内层IPv4报文内容均未发生改变。
可以看出,采用本形式1,能够保证Client1发送的原始报文内容即IPv4报文始终在B4_1和AFTR之间存在,因此,AFTR没有必要缓存该原始报文内容,这节约了AFTR的存储资源,使得在B4_1通过验证之前不占用AFTR上任何资源比如缓存资源等。
形式2:
本形式2下,与所述IPv6报文相关联的IPv6关联报文可以不包含所述IPv6报文中原始报文内容,而是新创建的源IP地址为所述IPv6报文中目的IP地址、目的IP地址为所述IPv6报文中源IP地址的IPv6报文。
在本形式2下,为了保证后续在B4_1通过验证后顺利发送报文,需要AFTR暂时缓存在步骤404接收的所述IPv6报文。相比于形式1,本形式2会在B4通过验证之前占用AFTR的缓存资源。
为便于及时回收AFTR被占用的缓存资源,优选地,本发明中,基于形式2,在B4_1通过验证后,可进一步包括:对缓存的IPv6报文进行解封装,获取内层的IPv4报文并发送,并清除缓存的所述IPv6报文。
至此,完成图4所示的流程。
下面以上述形式1为例,对图4所示流程进行详细描述:
下面通过图5对本发明实施例提供的方法进行描述:
参见图5,图5为本发明实施例提供的方法流程图。该方法仍以图2所示的DS-Lite组网为例,如图5所示,该流程可包括以下步骤:
步骤501,当B4_1连接的Client1需要访问公网IPv4主机时,Client1先发送一个IPv4报文给B4_1。
步骤502,B4_1接收到来自Client1的IPv4报文时,为该IPv4报文封装IPv6头即形成IPv6报文,该IPv6头中的源IP地址为发送该IPv6报文的B4_1的IP地址。
步骤503,B4_1通过与AFTR之间的IPv4over IPv6隧道发送IPv6报文给AFTR。
步骤504,AFTR接收到来自B4发送的IPv6报文时,判断已建立的可信列表中是否存在所述IPv6报文的源IP地址,如果是,执行步骤505,如果否,执行步骤506。
步骤505,对所述IPv6报文进行解封装,获取内层的IPv4报文并发送。
本步骤505是在步骤504判断出IPv6报文的源IP地址存在于可信列表的前提下执行,由于该源IP地址实质为发送该IPv6报文的B4_1的IP地址,因此,当该IPv6报文的源IP地址存在于可信列表,则意味着发送该IPv6报文的B4_1是可信的,不属于攻击者,基于此,可直接对该IPv6报文进行解封装,获取内层的IPv4报文并发送。这里,对IPv6报文进行解封装,获取内层的IPv4报文并发送可按照现有AFTR收到来自B4的IPv6报文后对IPv6报文进行解封装并发送的方式执行,本发明不再赘述。
还有,本发明中,可信列表中的IP地址是依据后续步骤511动态增加的,具体见步骤511。
步骤506,识别所述IPv6报文是否携带了验证确认信息,如果否,执行步骤507,如果是,执行步骤511。
本发明中,验证确认信息具体在下文进行了描述。
步骤507,将所述IPv6报文中源IP地址和目的IP地址相交换得到一新的IPv6报文,并生成一个验证信息,将该生成的验证信息携带在新得到的IPv6报文中返回给所述B4_1。
本发明中,验证信息主要是依赖于B4_1的标识比如B4_1的IP地址生成的,因此,AFTR没有必要针对B4_1保存对应的验证信息,节省AFTR的存储资源。
优选地,为保证生成的验证信息安全、且不容易破解,本发明中,AFTR可周期性地动态生成随机数比如每10秒生成一个随机数,并基于该动态生成的随机数生成验证信息。具体地,生成验证信息可包括:
识别当前周期内生成的随机数;
利用所述随机数、所述B4的IP地址、本AFTR的IP地址进行运算,将得到的结果作为所述验证信息。
这里,利用所述随机数、所述B4的IP地址、本AFTR的IP地址进行运算的方式本发明并不具体限定,比如,利用MD5算法、SHA-1算法等等。
步骤508,B4_1接收来自AFTR发送的IPv6报文时,识别该接收的IPv6报文是否携带验证信息,如果是,执行步骤509,如果否,执行步骤510。
相比于现有B4执行的操作,本发明中,B41接收到来自AFTR发送的IPv6报文时,并不直接对该IPv6报文进行解封装并转发,而是先识别该接收的IPv6报文是否携带验证信息,依据识别结果进行相应处理,具体见步骤509至步骤510。
步骤509,B4_1依据该接收的IPv6报文携带的验证信息生成验证确认信息,并将该接收的IPv6报文中源IP地址和目的IP地址相交换得到一新的IPv6报文,将生成的验证确认信息携带在该得到的新IPv6报文中发送给AFTR。之后返回步骤504。
本步骤509中,所述依据接收的IPv6报文携带的验证信息生成验证确认信息具体实现时可包括:
直接将该接收的IPv6报文携带的验证信息作为验证确认信息;或者,
按照之前与AFTR协商的用于生成验证确认信息的方式对该接收的IPv6报文携带的验证信息进行处理,得到的处理结果作为所述验证确认信息。
步骤510,对接收的IPv6报文进行解封装,获取内层的IPv4报文并发送。
本步骤510可按照现有B4收到来自AFTR的IPv6报文后的处理方式执行,这里不再赘述。
步骤511,对所述验证确认信息进行验证,在验证成功时,将所述IPv6报文的源IP地址加入所述可信列表中,去除所述IPv6报文携带的验证确认信息,并对所述IPv6报文进行解封装,获取内层的IPv4报文并发送。
本发明中,AFTR对验证确认信息进行验证依赖于最近一次向B4_1发送的验证信息。基于此,就需要AFTR记录之前向B4_1发送的所有验证信息,这样,在B4比较多的前提下,就需要AFTR记录之前向每一B4发送的所有验证信息,会大量占用AFTR的缓存资源。针对这种情况,基于上面对验证信息如何生成的描述,本发明不再使AFTR缓存向每一B4发送的验证信息,而是直接缓存每一周期内生成的随机数,如此,上述步骤511中对验证确认信息进行验证具体为:
在B4_1直接将该接收的IPv6报文携带的验证信息作为验证确认信息下,AFTR利用当前周期内生成的随机数、发送所述验证确认信息的B4_1的IP地址、本AFTR的IP地址进行运算,判断得到的运算结果是否与验证确认信息一致,如果是,则说明验证确认信息通过认证,否则,
利用发送所述验证确认信息的IP地址、本AFTR的IP地址、分别与距离当前周期比较近的至少一个周期内生成的随机数进行运算,比较各个运算结果中是否有一个与验证确认信息一致,如果是,则说明验证确认信息通过认证,否则,说明验证确认信息未通过认证。其中,这里之所以利用发送所述验证确认信息的B4_1的IP地址、本AFTR的IP地址、分别与距离当前周期比较近的至少一个周期内生成的随机数进行运算目的就是避免之前发送的验证信息和当前收到验证确认信息不在生成同一个随机数的周期内,这能够提高验证的准确性。
当然,在B4_1按照之前与AFTR协商的用于生成验证确认信息的方式对该接收的IPv6报文携带的验证信息进行处理,得到的处理结果作为验证确认信息下,AFTR利用当前周期内生成的随机数、发送所述验证确认信息的B4_1的IP地址、本AFTR的IP地址进行运算,按照之前与AFTR协商的用于生成验证确认信息的方式对该运算结果进行处理,判断处理得到的结果是否与验证确认信息一致,如果是,则说明验证确认信息通过认证,否则,
利用发送所述验证确认信息的B4_1的IP地址、本AFTR的IP地址、分别与距离当前周期比较近的至少一个周期内生成的随机数进行运算,之后按照之前与AFTR协商的用于生成验证确认信息的方式对各个运算结果进行处理,比较各个处理结果中是否有一个与验证确认信息一致,如果是,则说明验证确认信息通过认证,否则,说明验证确认信息未通过认证。其中,这里之所以利用发送所述验证确认信息的IP地址、本AFTR的IP地址、分别与距离当前周期比较近的至少一个周期内生成的随机数进行运算目的就是避免之前发送的验证信息和当前收到验证确认信息不在生成同一个随机数的周期内,这能够提高验证的准确性。
这里,所述IPv6报文中的验证确认信息验证成功,也就意味着发送该IPv6报文的B4_1的真实性是可信的。
另外,本步骤511中,对所述IPv6报文进行解封装,获取内层的IPv4报文并发送可按照现有AFTR收到来自B4的IPv6报文后的处理方式执行,本发明并不赘述。
至此,完成图5所示的流程。为了便于理解图5所示流程,图6示出了Client1、B4_1、AFTR和公网IPv4主机之间的报文交换。
优选地,本发明中,验证信息、以及验证确认信息都是通过DS-Lite验证选项承载在IPv6报文中的IPv6目的选项(此时,IPv6报文中的next header域取值为60)扩展头中的。根据IPv6协议的规定,IPv6目的选项扩展头只在报文到达目的时才会进行检查,而在本发明中,AFTR接收的IPv6报文的目的为AFTR本身,而B4接收的IPv6报文的目的也为B4本身,因此,使用此IPv6目的选项扩展头非常合适。当然,作为本发明的实施例,DS-Lite验证选项也可承载在单独创建的扩展头或者IPv6报文的其他位置,本发明并不具体限定。
以DS-Lite验证选项承载在IPv6目的选项扩展头中为例,则上述步骤507中,所述将计算的验证信息携带在与所述IPv6报文相关联的IPv6关联报文中返回给所述B4_1包括:
识别所述IPv6关联报文是否存在IPv6目的选项扩展头,
如果是,向所述IPv6目的选项扩展头中添加DS-Lite验证选项,将计算的验证信息填入至所述DS-Lite验证选项,之后返回该IPv6关联报文给所述B4_1,
如果否,创建一个IPv6目的选项扩展头,将创建的IPv6目的选项扩展头插入至所述IPv6关联报文,向所述IPv6目的选项扩展头中添加DS-Lite验证选项,将计算的验证信息填入至所述DS-Lite验证选项,之后返回该IPv6关联报文给所述B41。同样,上述步骤509中B4_1将所述验证确认信息携带在一个新的IPv6报文中发送给AFTR的原理类似,这里不再赘述。
仍以DS-Lite验证选项承载在IPv6目的选项扩展头中为例,步骤506中,识别所述IPv6报文是否携带了验证确认信息包括:
识别所述IPv6报文是否存在IPv6目的选项扩展头,
如果是,识别所述IPv6目的选项扩展头中是否存在填入了所述验证确认信息的DS-Lite验证选项,如果是,确定所述IPv6报文携带了验证确认信息,如果否,确定所述IPv6报未携带验证确认信息;
如果否,确定所述IPv6报未携带验证确认信息。
至此,完成了本发明提供的方法描述。
下面对本发明提供的装置进行描述:
参见图7,图7为本发明实施例提供的装置结构图。其中,该装置应用于所述DS-Lite组网中的地址转换路由器AFTR,如图7所示,该装置包括:
接收单元,用于接收所述DS-Lite组网中基础桥接宽带元件B4发送的IPv6报文;
判断单元,用于判断已建立的可信列表中是否存在所述IPv6报文的源IP地址,所述IPv6报文的源IP地址为所述B4的IP地址;
处理单元,用于在所述判断单元的判断结果为是时,对所述IPv6报文进行解封装,获取内层的IPv4报文并发送;以及,用于在所述判断单元的判断结果为否时,识别所述IPv6报文是否携带了验证确认信息,并将识别结果发送至验证单元;
验证单元,用于在所述识别结果为否时,生成一个验证信息,将该验证信息携带在与所述IPv6报文相关联的IPv6关联报文中返回给所述B4,以使所述B4依据接收的验证信息生成验证确认信息并携带在与所述IPv6关联报文相关联的IPv6报文中返回给所述AFTR,以及,用于在所述识别结果为是时,对所述验证确认信息进行验证,在验证成功时,将所述IPv6报文的源IP地址加入所述可信列表中。
本发明中,优选地,所述与IPv6报文相关联的IPv6关联报文为所述IPv6报文中源IP地址和目的IP地址相交换之后得到的报文。
本发明中,所述与IPv6关联报文相关联的IPv6报文为:所述IPv6关联报文中源IP地址和目的IP地址相交换之后得到的报文;基于此,所述验证单元在将IPv6报文的源IP地址加入所述可信列表中之后进一步发送处理通知给所述处理单元;
所述处理单元进一步在接收到所述处理通知时,去除所述IPv6报文携带的验证确认信息,并对所述IPv6报文进行解封装,获取内层的IPv4报文并发送。
本发明中,所述验证单元进一步周期性地生成随机数;基于该周期性生成的随机数,则所述验证单元计算一个验证信息的处理过程可包括:
识别当前周期内生成的随机数;
利用所述随机数、所述B4的IP地址、本AFTR的IP地址进行运算,将得到的结果作为所述验证信息。
本发明中,所述验证单元将计算的验证信息携带在与所述IPv6报文相关联的IPv6关联报文中返回给所述B4的处理过程可包括:
识别所述IPv6关联报文是否存在IPv6目的选项扩展头,
如果是,向所述IPv6目的选项扩展头中添加DS-Lite验证选项,将计算的验证信息填入至所述DS-Lite验证选项,之后返回该IPv6关联报文给所述B4,
如果否,创建一个IPv6目的选项扩展头,将创建的IPv6目的选项扩展头插入至所述IPv6关联报文,向所述IPv6目的选项扩展头中添加DS-Lite验证选项,将计算的验证信息填入至所述DS-Lite验证选项,之后返回该IPv6关联报文给所述B4。
本发明中,所述处理单元识别所述IPv6报文是否携带了验证确认信息的处理过程可包括:
识别所述IPv6报文是否存在IPv6目的选项扩展头,
如果是,识别所述IPv6目的选项扩展头中是否存在填入了所述验证确认信息的DS-Lite验证选项,如果是,确定所述IPv6报文携带了验证确认信息,如果否,确定所述IPv6报未携带验证确认信息;
如果否,确定所述IPv6报未携带验证确认信息。
至此,完成图7所示的装置。
优选地,本发明还提供了另一装置结构。参见图8,图8为本发明实施例提供的另一装置结构图。其中,该装置应用于所述DS-Lite组网中的B4,如图8所示,该装置包括:
接收单元,用于接收所述DS-Lite组网中地址转换路由器AFTR发送的IPv6报文;
识别单元,用于识别所述IPv6报文是否携带验证信息;
处理单元,用于在所述识别单元识别出所述IPv6报文携带验证信息时,依据所述IPv6报文携带的验证信息生成验证确认信息,将所述验证确认信息携带在与所述IPv6报文相关联的IPv6报文中发送给AFTR;以及,
用于在所述识别单元识别出所述IPv6报文未携带验证信息时,对接收的IPv6报文进行解封装,获取内层的IPv4报文并发送。
优选地,本发明中,所述处理单元将所述验证确认信息携带在与所述IPv6报文相关联的IPv6报文中发送给AFTR包括:
将接收的IPv6报文中源IP地址和目的IP地址相交换得到的报文确定为与接收的IPv6报文相关联的IPv6报文;
将所述验证确认信息携带在确定的IPv6报文中发送给AFTR。
至此,完成图8所示的装置结构图。
由以上技术方案可以看出,本发明中,当AFTR接收到来自B4的IPv6报文时,不是直接把此IPv6报文解封装做NAT并转发,而是通过AFTR和B4之间的报文交互对B4的真实性进行验证,避免AFTR遭受DoS攻击;
进一步地,本发明中,在验证B4真实性时,在Client发送的原始报文内容中插入验证信息,这能够最大限度减少AFTR验证B4真实性的资源消耗,性能高、可靠性强。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。