首页> 中国专利> 基于签名的自治系统间IPv6真实源地址验证方法

基于签名的自治系统间IPv6真实源地址验证方法

摘要

本发明属于网络安全技术。互联网现有的转发模型并不检查分组的源地址的真实性,使得大量伪造源地址的攻击危害网络。本发明的特征为:将部署本方案的自治系统组成一个信任联盟,联盟内的自治系统的控制服务器通过点到点的交互自治系统的地址空间信息和协商签名信息,然后由自治系统的边界路由器在发送的IPv6分组中增加IPv6逐跳扩展报头存放签名,并由自治系统的边界路由器在接收的IPv6分组中检查IPv6逐跳扩展报头中的签名是否正确来验证分组源地址的合法性。该方法为自治系统间的IPv6真实源地址验证提供了一种高性能,可以增量部署的方法,能够在IPv6网络中广泛使用,在自治域间验证分组源地址的合法性。

著录项

  • 公开/公告号CN1921487A

    专利类型发明专利

  • 公开/公告日2007-02-28

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN200610113190.3

  • 发明设计人 吴建平;叶明江;毕军;章淼;徐恪;

    申请日2006-09-19

  • 分类号H04L29/06(20060101);H04L12/56(20060101);H04L9/32(20060101);

  • 代理机构

  • 代理人

  • 地址 100084 北京市100084-82信箱

  • 入库时间 2023-12-17 18:21:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2008-01-23

    授权

    授权

  • 2007-04-25

    实质审查的生效

    实质审查的生效

  • 2007-02-28

    公开

    公开

说明书

技术领域

基于签名的在IPv6网络中实现自治系统间的真实源地址验证方法属于互联网技术领域,尤其涉及IPv6网络中的防止伪造源地址技术。

背景技术

互联网设计之初,设计主要基于开放性原则和尽力而为的思想,对于安全问题并没有过多的考虑,然而随着互联网规模日益扩大,发展到了今天,安全问题正日益成为互联网中最严重的问题之一。

当前互联网面临着各种由于缺少信任而带来的问题。路由转发基于目的地址,对于源地址不做检查,使得伪造源地址攻击轻易而频繁。在互联网中地址是主机的标示,而缺乏源地址的认证,使得无法在网络层建立起信任关系。而互联网基础设施不能提供端到端的信任,导致各种应用独自实施认证,效率低且难以统一。所以,真实地址访问研究是下一代互联网研究中的重要问题。

从可信任的角度出发,真实IP地址访问的问题实际上是地址的从属关系问题,也就是实体发出的分组应该只携带它拥有的地址,分组只应该被拥有其源地址的实体发出。在原来的互联网设计中,假设网络的所有设备(包括主机和路由器)都是可信的。而在目前复杂的网络环境下,对主机的信任已经不存在,所以必须依靠网络的基础设施来保证源地址的从属关系被实现。

通过实现真实地址的访问,能够带来如下的好处:

●可以直接解决一些伪造源地址的攻击,比如因特网传输控制协议建立连接请求洪泛攻击TCP SYN Flooding等。

●真实地址访问,使得互联网中的流量更加容易追踪,使得设计安全机制和网络管理更加容易。

●可以简化很多应用的认证过程,比如会话初始化协议SIP。

对于真实地址访问问题来说,其中域间真实地址访问有其特殊性,在真实地址访问体系结构中占重要位置。

互联网是层次的结构,由很多自治系统组成,它们自己决定自己的路由策略和管理机制,每个自治系统有自己的地址前缀范围,负责管理该地址前缀范围的管理和使用。

所以域间真实地址问题可以这样定义:

a)在网络中的分组应该来自拥有该分组源地址所有权的自治系统。

b)如果分组的源地址不属于分组的源自治系统,那么就不应该出现在网络中。

c)在网络中的分组,能够确定拥有其源地址的自治系统。

如何实现自治系统之间,也就是域间真实地址方案是本发明解决的主要问题。

发明内容

本发明的目的在于提供一种在现有IPv6网络基础上,利用自治系统的边界路由器添加和检查签名的方法,用来验证IPv6分组的源地址真实性。

本发明所提供的方法思路在于:所有部署本方案的自治系统通过注册服务器获取其余自治系统的控制服务器信息,所有部署本方案的自治系统通过控制服务器交互地址空间信息,协商分组的签名信息。所有部署了本方案的自治系统之间称为一个可信任的联盟。

边界路由器在收到本自治系统发往联盟内的其他自治系统的IPV6数据分组的时候,首先查询地址前缀到自治系统号的映射表得到目的自治系统号,然后查询发送签名表得到分组的签名,并将签名添加在IPv6分组的逐跳扩展报头中。而边界路由器在收到来自其他联盟内自治系统发往本自治系统的IPv6数据分组的时候,首先查询地址前缀到自治系统号的映射表得到源自治系统号,然后查找接收签名表得到分组应该携带的签名,和分组的逐跳扩展报头的签名进行比较验证分组源地址的真实性。如图3。

本发明的特征在于:

1.基于签名的自治系统间IPv6真实源地址验证方法,其特征在于:该方法是一种利用在自治系统的边界路由器上添加和检查签名对IPv6分组的源地址的合法性进行验证的方法,所述的真实源地址的含义是自治系统发出的IPv6分组的源地址应该属于该自治系统拥有的地址空间,所述的真实源地址验证方法依次含有如下步骤:

步骤1,在组成联盟的所有自治系统中,每个自治系统都需要部署一个自治系统控制服务器,该控制服务器有如下表项:自治系统服务器表,以保存其他自治系统的控制服务器的IPv6地址;联盟自治系统地址空间到自治系统号的映射表;自治系统发送方签名表,保存本自治系统发送分组给其他自治系统时需要添加到分组中的签名;自治系统接收方签名表,保存其他自治系统发送分组中应该携带的签名;本自治系统的IPv6地址空间;其中,所述的签名是一个至少大于64位的随机数,同时,把所述表项下放到本自治系统的边界路由器;

步骤2,联盟内的各自治系统边界路由器把连接到其他本自治系统的接口的最大传输单元大小减小为原值减去步骤(1)中所述签名的长度;

步骤3,联盟内各自治系统的控制服务器向全局的注册服务器注册自己的控制服务器的IPv6地址;

步骤4,联盟内的各自治系统的控制服务器向所述注册服务器获取联盟内其他自治系统的控制服务器的IPv6地址;

步骤5,联盟内各自治系统的控制服务器按照以下步骤和联盟内其他自治系统的控制服务器通信交互信息:

步骤5.1,交互地址空间信息:各自治系统的控制服务器联盟内其他控制服务器上获取其所属自治系统的地址空间,并下放到获取者自己的边界路由器上;

步骤5.2,交互签名信息:各自治系统的控制服务器和联盟内其他自治系统的控制服务器协商向后者发送IPv6分组时应该携带的签名;

步骤6,各自治系统的边界路由器作为IPv6分组发送方时按以下步骤添加签名:

步骤6.1,以边界路由器收到的待发IPv6分组的源地址为索引,查找预存的本自治系统的地址空间表,判定源地址是否属于本自治系统;若源地址不在本自治系统的地址空间表中,或查找出来的标志位为0,则认为源地址不属于本自治系统,查找失败,转步骤6.6,否则执行下一步骤;

步骤6.2,使用待发的IPv6分组的目的地址为索引,查找联盟自治系统地址空间到自治系统号映射表得到待发IPv6分组的目的自治系统号;

步骤6.3,若步骤6.2查找结果是不在所述映射表中,或者查找出的自治系统号为0,则认为待发IPv6分组的目的地址不属于联盟自治系统,查找失败,转步骤6.6,否则执行下一步骤;

步骤6.4,以待发IPv6分组的目的自治系统号为索引,查找发送签名表得到添加的签名值,若所述自治系统号不在表中,则认为查找失败,转步骤6.6,否则执行下一步骤;

步骤6.5,在待发的IPv6分组附带的逐跳IPv6扩展包头中增加一个选项来存放步骤6.4得到的签名,选项类型号为十六进制的0C,选项数据长度为十六进纸的08;

步骤6.6,所述边界路由器发送该待发的IPv6分组;

步骤7,各自治系统的边界路由器作为IPv6分组接受方按以下步骤检查签名:

步骤7.1,以待检查IPv6分组的源地址为索引,查找联盟自治系统地址空间到自治系统号映射表得到IPv6分组的源自治系统号;

步骤7.2若步骤7.1查找的结果是源自治系统号找不到或者找到的源自治系统号为0,则认为源地址不属于联盟自治系统,查找失败,转步骤7.8,否则执行下一步骤;

步骤7.3,判断该IPv6分组的源自治系统号和本自治系统号是否相等,如果是,说明是伪造分组直接丢弃,否治执行下一步骤;

步骤7.4,以待检查IPv6分组的目的地址为索引,查找本自治系统的地址空间表,判断是否属于本自治系统;

步骤7.5,若找不到与该待检查IPv6分组的目的地址相对应的地址空间,或者查找出来的地址空间的标志位为0,则认为目的地址不属于本自治系统,查找失败,转步骤

7.8,否则执行下一步骤;

步骤7.6,再根据待检查IPv6分组的源自治系统号查找接收方签名表得到对应的待检查IPv6分组应该携带的签名值,若找不到签名值,则查找失败,转步骤7.8,否则执行下一步骤;

步骤7.7检查所述带选项的逐跳扩展报头是否存在,若不存在则认为是伪造报文,直接抛弃;如果存在,取出其中的签名值,判断是否和步骤7.6中查找到的签名值相等,如果不相等则直接抛弃;如果相等则移除带选项的逐跳扩展报头;

步骤7.8所述接受方的边界路由器转发该已检查的IPv6分组;

2.根据基于签名的自治系统间IPv6真实源地址验证方法其特征在于,当自治系统边界路由器收到从其他自治系统发来的因特网控制消息ICMP6报文时按以下步骤进行:

步骤a,所述自治系统的边界路由器判断该ICMP6报文的目的地址是否属于本自治系统,如果不是,则转发该ICMP6分组,否则执行下一步骤;

步骤b,判断该ICMP6携带的原始报文中的签名是否是在接受方签名表内,若不在,则转发该ICMP6报文,若在,则执行下一步;

步骤c,检查该ICMP6类型是否是一个超过路径最大传输单元的Packet-Too-Big报文,不是,则转发该ICMP6报文,否则,执行下一步;

步骤d,把该ICMP6中携带的最大传输单元大小的值修改为原值减去签名的长度,然后转发该报文。

实验证明,本发明不但能够保护部署了本方案的自治系统不受到联盟内自治系统的伪造源地址攻击,还能够保护部署了本方案的自治系统的地址空间不被其他自治系统用来攻击联盟的自治系统。

附图说明

图1.基于签名的自治系统间IPv6真实源地址验证的系统框架流程图

图2携带签名的逐跳扩展报头格式

图3发送方添加签名过程

图4接收方检查签名过程

图5MTU问题描述

图6一个应用示例

实验效果

本发明具有两个优点,一是能够保护部署了本方案的自治系统不受到联盟内自治系统的伪造源地址攻击,二是能够保护部署了本方案的自治系统的地址空间不被其他自治系统用来攻击联盟的自治系统。

我们在实验环境中模拟了三个自治系统的环境。其中自治系统1和自治系统2部署了本方案,而自治系统3没有部署本方案。从从自治系统1发送伪造分组给自治系统2的时候,可以看到伪造分组在自治系统2处由于没有携带正确的签名而被过滤掉了。而当我们从自治系统3发送源地址伪造自治系统1地址的非法分组的时候,以看到伪造分组在自治系统2处由于没有携带正确的签名而被过滤掉了。

实验证明,本发明不但能够保护部署了本方案的自治系统不受到联盟内自治系统的伪造源地址攻击,还能够保护部署了本方案的自治系统的地址空间不被其他自治系统用来攻击联盟的自治系统。

具体实施方式

整个系统由三部分组成,如图1所示,全局的注册服务器,每个部署本方案的自治系统内的控制服务器,和每个部署本方案的自治系统的边界路由器。

在控制层面,注册服务器维护所有部署了本方案的自治系统中控制服务器的信息,所有部署了本方案的自治系统组成一个联盟。在自治系统部署情况变化的时候即时的更新信息。当一个新的自治系统部署或者取消部署的时候,注册服务器把这个信息即时发送给其他自治系统,如图1所示。

此外,在联盟中的每个自治系统都需要部署自治系统控制服务器。自治系统控制服务器有如下三个重要的功能,如图1所示:

●和注册服务器通信,将自己注册到注册服务器上,并得到其他自治系统的控制服务器的地址。

●和其他自治系统控制服务器协商签名,并且交换彼此的地址前缀列表。

●控制自治系统的边界路由器,配置地址前缀映射表和进出方向的签名表。

自治系统控制服务器有如下表项来存储必要的信息(1)自治系统控制服务器表,保存其他自治系统的控制服务器的IP地址,用来建立连接并且以该IPv6地址作为验证其他自治系统控制服务器的手段之一。(2)联盟自治系统地址空间到自治系统号的映射表,用来保存各个自治系统的地址空间,从而能够从IPv6地址得到拥有该地址的自治系统号。(3)自治系统发送方签名表,用来保存本自治系统发送分组给其他自治系统的时候需要添加到分组中的签名。(4)自治系统接收方签名表,用来保存其他自治系统发送的分组中应该携带的签名。

为了保存签名,我们使用了现有的IPv6协议中的逐跳扩展报头,并且设计一种新的逐跳扩展报头的选项头来存放签名。如图2所示。新选项的选项类型号是十六进制的0C,对应二进制的000001100。最高位的两个00说明如果路由器不认识该选项,就会跳过该选项继续处理其余部分,而不会丢弃该报文。第三高位0说明选项内的数据在报文达到目的地的中间可能会被路由器改变,这是因为目的地的自治域的边界路由器会去除该选项,这样任何加密认证的计算都不会包括该选项中的数据。而最后5位的01100表示选项类型号。而选项数据长度为16进制的08,表示有8个字节长度的签名。

在数据层面,IPv6分组添加签名过程如图3所示,发送端在一个IPv6分组到达发送端的时候进行如下的处理:使用该分组的源地址为索引,查找本治系统的地址空间表,判定源地址是否属于本自治系统。如果查找失败,或者查找出来标志位为0,则认为源地址不属于本治系统,直接转发。查找成功则使用该分组的目的地址为索引,查找联盟自治系统的地址空间表得到该分组的目的自治系统号。如果查找失败,则认为目的自治系统号为0。判断该分组的目的自治系统号是否等于0,如果为0,说明目的地址不是联盟成员,直接转发。否则,根据该分组的目的自治系统号查找自治系统发送方签名表,得到应该添加的签名值。给该分组添加一个IPV6扩展签名报头,然后转发。

IPv6分组检查签名过程如图4所示,接收端在一个IPv6分组到达接收端的时候进行如下的处理:使用该分组的源地址为索引,查找联盟自治系统的地址空间表得到该分组的源自治系统号。如果查找失败,则认为源自治系统号为0。保存源自治系统号。判断该分组的源自治系统号是否就是本自治系统,如果是,说明是伪造分组直接丢弃。使用该分组的目的地址为索引,查找本自治系统的地址空间表,判断是否属于本自治系统。如果查找失败,或者查找出来标志位为0,则认为目的地址不属于本自治系统,直接转发,否则根据该分组的源自治系统号查找自治系统接收方签名表,得到分组应该携带的签名。检查扩展报头是否存在,不存在则直接抛弃;如果存在,取出其中的签名值,判断是否合法,如果不合法则直接抛弃,否则移除签名并且转发。

此外,对于ICMP6报文还需要特殊处理。因为(1)ICMP6分组会泄露签名,从而可以利用这种方法直接得到签名。这是因为按照RFC 2463规定,源分组中很大一部分的内容会被拷贝到ICMP6分组中,从而发送端可以知道自治系统边界路由器中加入的签名内容。(2)ICMP6报文可能来自于签名引入的MTU问题。中间路由器插入签名到分组中。如果使用加入报头的方案,那么报文的长度就会变长,可能会超过路径的最大传输单元MTU。如图5所示。路由器1和路由器2之间链路的最大传输单元MTU是1400字节,而路由器2和路由器3之间链路的MTU是1320字节。当主机发出一个大小为1320字节的报文的时候,在自治系统的边界路由器处,自治系统1加入了签名,报文的长度从而变成了1332字节。然后报文转发到达了路由器2,路由器2发现报文的长度超过了它和路由器3之间链路的MTU,于是发送一个ICMP Packet-Too-Big报文,通知主机MTU应该设为1320字节。当主机收到这个ICMP报文的时候,因为它没有发送超过1320字节的报文,所以主机无法做出正确的处理。

为了解决上述的问题,增加了一个部署在自治系统边界路由器的机制用来捕捉和修改进入的ICMP6报文。所有目的地是本自治系统的ICMP6报文的签名部分会被移除,此外如果该ICMP6分组是Packet-Too-Big通知报文,那么其MTU值会被改小为原值减去签名的大小。

具体运用实例如下,图6中,假设自治系统1和自治系统3部署了本方案,而自治系统4没有部署本方案。当合法流量从自治系统1发出的时候,在边界路由器上被添加了签名,然后在自治系统3的边界路由处被检查签名,验证了源地址的真实性。而当非法流量(伪造了自治系统1的源地址)从自治系统4发出的时候,由于攻击者无法知道自治系统1到自治系统3的合法签名,所以非法流量无法携带合法的签名,当非法流量到达自治系统3的时候就会被过滤。由此可见,本发明达到了预期目的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号