一种基于SRv6的域间源地址验证的方法与流程

文档序号:22397194发布日期:2020-09-29 18:07阅读:232来源:国知局
一种基于SRv6的域间源地址验证的方法与流程

本发明属于互联网技术领域,涉及srv6和域间源地址验证技术,特别是关于一种基于srv6的域间源地址验证的方法。



背景技术:

接入子网源地址验证(savi)通过制定交换机监听策略标准获取主机授权的合法ip,并以此为基础验证主机报文源ip与其分配所获取的ip地址的一致性,从而实现主机粒度的源地址验证。然而基于savi实现对伪造源地址攻击的防御依赖于savi的全局部署。

当采用savi部分部署时,会存在以下问题:如图1所示,现有基于srv6的域间源地址验证方案中,自治域as1、as3和as4都部署了savi,即as1、as3和as4发出的流量的源地址都是真实的,但是如果它们之间的流量经过没有部署savi的不可信任区域as2时,可能造成针对as3的两种攻击。一是针对as3的flooding攻击:攻击者as2将攻击目标as3的ip地址作为目的地址,用任意ip例如as1的ip地址作为源地址。则对于as3而言,攻击者as2能够隐藏自己。二是针对as3的反射攻击:攻击者as2将攻击目标as3的ip地址作为源地址,将攻击反射节点例如as4的ip地址作为目的地址。同样地,对于as3而言,攻击者as2能够隐藏自己,并且放大攻击规模。此外,as3也无法判断经过不可信as2的报文是否被篡改过。



技术实现要素:

针对上述问题,本发明的目的是提供一种基于srv6的域间源地址验证的方法,解决了域间ip源地址伪造的问题。

为实现上述目的,本发明采取以下技术方案:一种基于srv6的域间源地址验证的方法,其包括以下步骤:

1)在网络中每个受信任的as域以及主干网中预设的所有源地址验证节点使能srv6,并确定各as域以及主干网之间进行通信时,用于进行源地址验证的srh扩展头的相关信息,包括srh扩展头中验证码的加密算法、需要防篡改的关键字段的选择以及验证码的位数;

2)受信任的as域在需要进行源地址验证的数据包的ipv6报头中添加srh扩展头后,将其转发至主干网,由主干网中的源地址验证节点进行源地址验证服务。

进一步地,所述步骤1)中,在网络中每个受信任的as域以及主干网中预设的所有源地址验证节点使能srv6,并确定各as域以及主干网之间进行通信时,用于进行源地址验证的srh扩展头的相关信息的方法,包括以下步骤:

1.1)根据实际需要将主干网中的部分节点设为源地址验证节点;

1.2)在主干网的所有源地址验证节点以及每个受信任的as域的边界路由器中使能srv6;

1.3)主干网为网络中所有受信任的as域分发密钥,其中,分发给各as域的密钥只有各as域自身和主干网中所有的源地址验证节点共享。

进一步地,所述步骤1.2)中,在主干网的所有源地址验证节点以及每个受信任的as域的边界路由器中使能srv6的方法,包括以下步骤:

1.2.1)在各受信任的as域的边界路由器节点和主干网的源地址验证节点使能srv6,令所有使能srv6的节点都维护一个本地sid表,该本地sid表包含所有在本节点生成的srv6sid信息;

1.2.2)在主干网的源地址验证节点的本地sid表中额外定义一个本地end.vasid,表示源地址验证的endpointsid,该endpointsid用于对源地址以及关键字段进行验证,且end.vasid通过igp协议扩散到其他网元,全局可见,本地有效。

进一步地,所述步骤2)中,受信任的as域为需要进行源地址验证的数据包添加srh扩展头后将其转发至主干网,由主干网中的源地址验证节点进行源地址验证服务的方法,包括以下步骤:

2.1)受信任的as域为需要进行源地址验证的数据包添加srh扩展头,并将添加srh扩展头后的数据包逐次转发直至到达主干网;

2.2)主干网通过srv6技术引导需要源地址验证的数据包进入源地址验证节点进行源地址验证服务,并更新该数据包的srh扩展头后继续转发至目标as域。

进一步地,所述步骤2.1)中,受信任的as域为需要进行源地址验证的数据包添加srh扩展头的方法,包括以下步骤:

2.1.1)受信任的as域的边界路由器基于预设的加密算法和源地址验证节点分发的密钥生成验证码code;

2.1.2)受信任的as域的边界路由器选择离自己最近的主干网上的源地址验证节点作为目标源地址验证服务节点;

2.1.3)基于生成的验证码code以及确定的目标源地址验证服务节点,边界路由器为需要保护的数据包添加srh扩展头信息。

进一步地,所述步骤2.2)中,主干网通过srv6技术引导需要源地址验证的数据包进入源地址验证节点进行源地址验证服务,并更新该数据包的srh扩展头后继续转发至目标as域的方法,包括以下步骤:

2.2.1)基于数据包的ipv6报文中所包含的源ip地址信息,主干网判断该数据包是否需要进行源地址验证服务,若需要,则进入步骤2.2.2),否则按照正常的转发流程转发该数据包;

2.2.2)根据数据包的ipv6报文中srh扩展头的相关信息,将该数据包引导至相应的源地址验证节点,由该源地址验证节点进行验证,验证通过则进入步骤2.2.3),否则,过滤掉该报文;

2.2.3)对该数据包的srh扩展头进行更新后,转发至目标as域。

进一步地,所述步骤2.2.1)中,主干网判断该数据包是否需要进行源地址验证服务的方法为:检查数据包的源ip地址是否为受信任的as域,如果是,则对接收到的数据包的ipv6报文进行验证,如果该ipv6报文携带引导至源地址验证节点的srh扩展头,则进入步骤2.2.2),否则过滤掉该报文;如果该数据包的源ip地址不是受信任的as域,则按照正常的转发流程转发数据包。

进一步地,所述步骤2.2.2)中,源地址验证节点对数据包进行验证的方法为:

首先,根据该数据包的ipv6报文中的da信息查询localsid表,并判断其是否需要进行源地址验证服务,如果需要,则进行验证,否则过滤掉该报文;

然后,根据源地址所在as域对应的密钥、加密算法对源地址和关键字段进行加密,将加密后的结果与数据包的srh扩展头中的验证码code字段进行对比,如果相同则验证通过,否则过滤掉该报文。

本发明由于采取以上技术方案,其具有以下优点:本发明首次将srv6技术引入到域间源地址验证中,设计了基于srv6的域间源地址验证方案。通过在srv6报头中携带可验证code,验证code使用主机的密钥对源地址以及关键字段进行加密生成,存放在srh中的扩展字段。通过srv6技术将需要验证的报文引入能提供验证服务的节点,能够解决域间源地址伪造问题,而不改变现有网络结构。

附图说明

图1是现有基于srv6的域间源地址验证方案;

图2是携带srh扩展头的ipv6报文结构;

图3是本发明基于srv6的域间源地址验证方法示意图。

具体实施方式

下面结合附图和实施例对本发明进行详细的描述。

如图2所示,srv6是一种新的网络转发技术,其通过结合ipv6与segmentrouting(分断路由)技术实现。具体来说,srv6采用ipv6标准中定义的路由扩展报头(routingextensionheader)承载新定义的srh(segmentroutingheader)路由扩展报头,srh类型号定义为4。只需在各节点使能srv6,中间网络无需进行改动,就可以通过中间节点不断的进行更新目的地址和偏移地址栈(sl字段)的操作来完成逐跳转发。在ipv6中,一些特殊功能例如路由,是通过在ipv6header(头部)之后增加扩展头部实现。扩展头部仅在需要时添加,当ipv6header中的nextheader字段为43时,表示为路由扩展报头。路由扩展报头中的routingtype字段为4时,表示路由扩展报头为分段路由报头srh。

本发明中通过在ipv6报文中携带srh扩展头来进行源地址验证服务。在srv6中,ipv6header中的destinationaddress(da)标识当前报文的下一个节点,是不断更新的。而在srh路由扩展报头中包含一个segment列表,每个segment形式上是一个128位的ipv6的地址,均由locator和function两部分组成,其中locator占据ipv6地址的高比特位,function占据ipv6地址的剩余部分。tlvoptional-objects为可选的供srv6节点使用的变长字段,本发明主要利用segmentlist和optionaltlv-objects字段来实现源地址验证服务。

本发明提供的一种基于srv6的域间源地址验证的方法,将域间源地址验证作为一种按需供给的服务,在主干网上的部分节点部署源地址验证方案,然后通过srv6技术引导需要源地址验证的流量进入源地址验证服务节点,并且使用srh扩展头的可选字段携带验证码以供验证。具体的,包括以下步骤:

1)准备工作:在网络中每个受信任的as域以及主干网中预设的所有源地址验证节点使能srv6,并确定各as域以及主干网之间进行通信时,用于进行源地址验证的srh扩展头的相关信息。

具体的,包括以下步骤:

1.1)根据实际需要(例如选择下连节点最多的主干网节点)将主干网中的部分节点设为源地址验证节点。

1.2)在主干网的所有源地址验证节点以及每个受信任的as域的边界路由器中使能srv6。

具体的,包括以下步骤:

1.2.1)在各受信任的as域的边界路由器节点和主干网的源地址验证节点使能srv6,令所有使能srv6的节点都维护一个本地sid(localsid)表,该本地sid表包含所有在本节点生成的srv6sid信息,包括常见的end、end.x、end.b6等srv6操作。其中,在各节点使能srv6的方法,为本领域技术人员公知技术。

1.2.2)在主干网的源地址验证节点的本地sid表中额外定义一个本地end.vasid,表示源地址验证的endpointsid,该endpointsid用于对源地址以及一些关键字段进行验证,且end.vasid通过igp协议扩散到其他网元,全局可见,本地有效。

1.3)为网络中所有受信任的as域分发密钥,其中,分发给各as域的密钥只有各as域自身和主干网中所有的源地址验证节点共享;为网络中所有受信任的as分发密钥的方法为本领域技术人员公知技术,本发明在此不再赘述。

1.4)确定用于进行源地址验证的srh扩展头的相关信息,包括srh扩展头中验证码的加密算法、需要防篡改的关键字段的选择以及验证码的位数。

2)源地址验证工作:受信任的as域为需要保护的数据包添加srh扩展头后将其转发至主干网,由主干网中的源地址验证节点进行源地址验证服务。

具体的,包括以下步骤:

2.1)受信任的as域为需要保护的数据包(即需要进行源地址验证的数据包)添加srh扩展头,并将添加srh扩展头后的数据包逐次转发直至到达主干网。

如图3所示,受信任的as域在发送数据包之前,为需要保护的数据包添加ipv6报头和srh扩展头的方法,包括以下步骤(本发明中以从as1域到as3域的流量为例进行介绍):

2.1.1)受信任的as1的边界路由器a1基于预设的加密算法和源地址验证节点分发的密钥生成验证码code,用于防止源地址伪造和数据包篡改。

2.1.2)边界路由器a1选择离自己最近的主干网上的源地址验证节点a2作为源地址验证服务节点;

2.1.3)基于生成的验证码code以及确定的源地址验证服务节点,边界路由器a1为需要保护的数据包添加srh扩展头信息。

具体的,添加srh扩展头时,一是将数据包的目的ip地址更新为源地址验证节点a2的ipv6地址,即数据包的路径信息为(a3::,a2::end.va);二是将验证码code放入srh扩展头中的tlv字段。

2.2)主干网通过srv6技术引导需要源地址验证的数据包进入源地址验证节点进行源地址验证服务,并更新该数据包的srh扩展头后继续转发至目标as域。

具体的,包括以下步骤:

2.2.1)基于数据包的ipv6报文中所包含的源ip地址信息,主干网判断该数据包是否需要进行源地址验证服务,若需要,则进入步骤2.2.2),否则按照正常的转发流程转发该数据包;

为了避免攻击者绕过源地址验证服务节点,主干网在收到数据包之后,首先要检查数据包的源ip地址是否为受信任(即需要源地址验证服务)的as域,如果是,则对接收到的数据包的ipv6报文进行验证,如果该ipv6报文携带引导至源地址验证节点的srh扩展头,则进入步骤2.2.2),否则过滤掉该报文;如果该数据包的源ip地址不是受信任的as域,则按照正常的转发流程转发数据包。

2.2.2)根据数据包的ipv6报文中srh扩展头的相关信息,将该数据包引导至相应的源地址验证节点,由该源地址验证节点进行验证。

源地址验证服务节点(例如图3中的a2节点)的验证过程为:

首先,根据该数据包的ipv6报文中的da信息查询localsid表,并基于该localsid表是否为end.va类型判断其是否需要进行源地址验证服务,如果需要,则进行验证,否则过滤掉该报文;

然后,根据事先协商的源地址所在as域对应的密钥、加密算法等对源地址和关键字段进行加密,将加密后的结果与srh扩展头中的验证码code字段进行对比,如果相同则验证通过,否则过滤掉该报文。

2.2.3)对该数据包的srh扩展头进行更新后,转发至目标as域。

验证通过之后,将srh扩展头中的sl字段减为0,ipv6da字段变换为a3::,此时路径信息<a3::,a2::end.va>已无实际价值,因此a2节点利用psp特性(srh信息倒数第二段弹出,penultimatesegmentpopofthesrh)将srh去除,然后把报文转发到a3节点。

实施例一

本发明中,源地址验证服务节点需要为每个受信任as分发密钥,需要升级以支持新的function:源地址验证end.va。请求源地址验证服务的as的边界路由器和源地址验证服务节点需要使能srv6。

以从as1发往as3的流量为例,as1在边界路由器a1中会为需要获得服务的报文添加srh扩展头,srh扩展头中包含每个需要获得的服务节点的位置以及服务功能(segment),对于源地址验证服务,还需要在srh扩展头的可选字段中添加验证码以供源地址验证。主干网的源地址验证节点会检查该验证码来确定源地址是否真实以及内容是否被篡改。

如图3所示,在a1处需要为从a0到a3的数据包添加srh。a2是源地址验证节点,源地址验证的sid为end.va,此外a1需要为数据包生成验证码,防止源地址伪造和数据包篡改。本发明中,验证码code=fkey(sip,metadata),是由源ip以及关键字段使用密钥加密的结果。其中验证码加密算法,关键字段的选择以及验证码的位数通过为步骤2)事先协商。code存放在srh的tlv字段中以便源地址验证节点进行验证。因此,数据包的路径信息为<a3::,a2::end.va>,ipv6目的ip地址是a2::end.va。由于攻击者无法掌握as1的密钥,从而无法伪造as1的源地址或者篡改或者这些关键字段。

以上给出一种具体的实施方式,但本发明不局限于所描述的实施方式。本发明的基本思路在于上述方案,对本领域普通技术人员而言,根据本发明的教导,设计出各种变形的模型、公式、参数并不需要花费创造性劳动。在不脱离本发明的原理和精神的情况下对实施方式进行的变化、修改、替换和变形仍落入本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1