专利名称:一种开放式真实IPv6源地址过滤与验证方法
技术领域:
该方法属于互联网技术领域,尤其涉及真实IPv6源地址过滤验证技术。
背景技术:
当前互联网上最为常见的攻击类型是拒绝服务式攻击(DoS),而拒绝服务式攻击的一种主要方式,是通过向被攻击方发送大量伪造源地址的报文。
互联网的设计固有地缺乏对于报文源网络地址的认证和安全性保证,这意味着,任何人都可以随意修改需要发送报文的源地址。而在当前的TCP/IP协议中,报文的源地址,除了用来在回复报文时寻址之外,同时也被作为报文发送方的身分标志。一个攻击者可以随意地使用不同的“身分”向被攻击方发送大量报文,使攻击方陷于不断处理这些伪造报文的局面。即便被攻击方意识到自己在遭受攻击,它也缺乏手段去区分正常报文和伪造报文,或者获取攻击者的“身分”。这样,简便易行和难以被追查两大特点,使得通过伪造源地址来发动攻击成为一种相当常见的攻击行为。据统计,目前每周会发生4000起此类攻击。
尽管目前还没有被广泛部署的真实源地址方案来应付这种攻击行为,但是已经有很多策略被提出来希望能控制这类攻击。它们可以分为两类●过滤类(Filtering)这一类策略主要是希望通过掌握的与源地址相关的信息来过滤掉一部分伪造源地址的报文。典型的例子如入口过滤(Ingress filtering),就是通过检查网关上接收到的报文其源地址是否在接入子网的地址空间范围内,从而判断报文是否合法。入口过滤所使用的过滤信息是事先已经知道的。其他如SPM、SAVE这一类策略,则通过网关之间动态地交换报文过滤信息。过滤类方法是一种事先控制的方法,具有较好的防御作用。
●追踪类(Traceback)追踪类策略是一种被动的策略。它希望获取报文在互联网上所经过的路径,在攻击发生时,通过分析报文路径来获取攻击源的地址。获取报文的路径主要有两种方法。一是在路由器上对报文添加路由器的签名。另一种方法是希望路由器将报文的抽样信息发送到一个收集器,在收集器上对这些信息分析得到报文路径。目前大多数路由器都不支持这两种方案,而且追踪类方法没有防御作用,只能用于攻击发生之后的追查。
SPM(Spoofing Prevention Method)是一种较新的过滤伪造源网络地址报文的策略。通过使用这个策略,报文目的自治域能够确认报文源地址的真实性。这种方法与标准的入口过滤方法形成鲜明对比,由于后者只有配置在离报文的源头最近的路由器上才会起作用,而在其他路由器上作用很微小。在这个方法中,。一个离开源自治域的报文被一个密钥标记,密钥的生成函数是K(S,D),其中S是源自治域编号,D是目的自治域编号。这个密钥是被源、目的自治域共同知道的。当报文到达目的自治域的时候,这个密钥被目的自治域检查其正确性并且抽取出来。这样,这种方法就确认了报文的源地址来自于S。
这个策略的主要特点有两个,第一是由于良好的过滤效果,使得网络的运营商有很大的动力去配置它,其次它支持增量布署,因为即便仅仅在一部分网络上部署了这种方法,这部分网络也会因此而受益。它的这两个独有的特性,使它成为一个优秀的伪造源地址问题的解决方案。
同时,SPM所使用的认证密钥是随机生成的,密钥的散发是在边界路由器之间,采用特殊的协议机制。密钥生成,发布和在报文中增加密钥的代价都不会太大,所以SPM的计算代价小,性能高,不会因为处理效率低下而成为拒绝服务式攻击的对象。
除了SPM以外,还有其他一些优秀的过滤策略,它们大多基于某种方法来生成过滤规则,并按照这些规则对报文的源地址进行考查,判断报文所声称的源地址的真伪。例如入口过滤,过滤系统直接根据报文的源地址信息是否在它自身的地址空间来判断报文源地址的合法性;而源地址强制认证协议,即SAVE(source Address Validity Enforcement)协议则是根据报文是否来自其源地址所应该对应的网络接口来判断报文源地址的真实性。
采用端到端签名和使用基于路径的边界标记是许多真实源地址过滤策略的基础。在端到端签名签名方法中,报文发送方在报文中标记自己特有的签名信息,这样报文的接收方可以通过辨别这个签名信息正确性来确定报文源地址的真实性。基于路径的边界标记是一种常用的追踪报文真实来源的手段,它被许多追踪类策略用于辅助。
由于过滤策略的共同点和相似之处,如果可以实现一个统一的过滤方法来集成这些过滤策略,同时为新策略的嵌入提供方便的操作接口,不仅方便在已有基础上部署和配置过滤策略,而且节省了开发新策略的工作量和成本,是一项很有意义的工作。
发明内容
本发明的目的是提供一种可以动态嵌入过滤规则的、对网络层透明的报文源地址过滤方法。
本发明的特征在于,依次含有以下步骤
步骤(1),在位于自治域边界路由器向外的接口处,且与该路由器协同工作的一个过滤设备上配置以下模块过滤规则生成引擎,根据自治域控制服务器基于TCP协议发送的通讯报文动态生成过滤规则表并且切换过滤规则;所述过滤规则表由前缀映射表、自治域发送端签名表和自治域接收端签名表共三个部分组成,其中前缀映射表是把地址前缀映射到对应策略所需的数据的映射表,采用基于最长前缀匹配来进行搜索的一种Trie树,每个节点保存对应策略所需要的数据;自治域发送端签名表保存有自治域发送报文到其他自治域所应该给报文添加的签名;自治域接收端签名表保存有自治域接收到来自其他自治域的报文时,这些报文所应该具有的正确签名,签名表由一个数组实现,数组的索引是自治域的编号,数组的内容是相应的签名;所述通讯报文含有IPv6报头、TCP报头、策略类型号、报文类型号以及信息更新字段,其中策略是指过滤策略,多种过滤策略可以被选择,以下5种是已经被实现并验证的SPM、源地址强制认证协议SAVE、入口过滤、基于端到端签名的策略、以及基于路径标记的策略,其中SPM是Spoofing Prevention Method的缩写;策略类型号是各个策略的编号;报文类型指定了当前报文是策略切换报文还是还是规则信息更新报文;信息更新报文是一个可变长字段,更新的是前缀映射字段或者发送端签名表、接收端签名表;过滤引擎,根据所选过滤规则表的表项来判断是否对IPv6报文进行过滤,并且有选择地基于签名的过滤规则表的内容决定是否对报文进行添加、删除和检查签名,或者对报文进行边界标记操作,或者进行互联网控制信息协议报文的处理,因此,过滤引擎还含有签名模块、边界标记模块和互联网控制信息协议报文处理模块;步骤(2),所述过滤与验证方法依次按以下步骤实现步骤(2.1),过滤规则生成引擎从控制链路接收到所述控制服务器送达的过滤策略更改报文,解析报文后,更新过滤策略,并把过滤规则表切换到与当前策略相应的过滤规则表;步骤(2.2),过滤规则生成引擎另一控制链路接收所述控制服务器送达的过滤规则表信息更新报文,解析该报文后,更新相应过滤规则表的相应表项中的信息;
步骤(2.3),过滤引擎从朝向自治域内部的网络接口中接收到出自治域方向的普通数据报文,判断当前策略是否需要对接收的报文进行签名处理,如果需要,则根据报文的源、目的地址信息在发送端签名表中查找相应的签名信息,并在报文的逐跳可选项中添加签名,若不存在逐跳可选项,则增加逐跳可选项之后再添加签名;若不需要签名处理,则把该报文交给所述边界路由器的转发引擎处理;步骤(2.4),过滤引擎从所述转发引擎接收到进自治域方向的普通数据报文后,若判断获取的是互联网控制信息协议报文,且当前策略对报文又添加签名处理,则按以下步骤处理步骤(2.4.1),若互联网控制信息协议报文的类型是报文过长Packer-Too-Big,则判断报文的目的地址是否属于本地自治域,如果是,执行下一步骤步骤(2.4.2),判断报文内部携带的原报文摘要信息中目的地址是否在整个端到端真实源地址联盟中,如果是,把该报文建议的最大传输分组长度信息减少一个签名长度,并重新计算互联网控制信息协议的报文校验和;步骤(2.5),过滤引擎从转发引擎接收到的进自治域方向的普通数据报文为非互联网控制信息协议报文,则按以下步骤处理步骤(2.5.1),过滤引擎从所获取的来自自治域外的报文中,解析出源、目的地址信息;步骤(2.5.2),根据步骤(2.5.1)得到的源、目的地址查当前过滤规则表中的前缀映射表,根据查表得到的数据和当前策略的要求判断是否对报文进行过滤,若需要过滤,则直接过滤报文;否则执行下一步骤;步骤(2.5.3),若当前的策略要求对报文中的签名进行检查,则签名处理模块便获取报文源地址前缀对应的自治域编号,再根据接收端签名表的该自治域的相应表项检查报文中逐跳可选项位置的签名是否与接收端签名表中的一致,若不一致,或报文中不含有签名,则过滤报文;否则去掉签名,执行下一步骤;步骤(2.5.4),判断当前的策略是否要求对步骤(2.5.3)得到的报文进行边界标记,如果不需要,则把该报文交给朝向自治域内部的网络接口转发;如果需要,则在报文中标记指定内容,再转发报文。
本发明是一种可以动态嵌入过滤规则的、对网络层透明的报文IPv6源地址过滤与验证方法。本方法中包含了对基于路径信息的和基于端到端签名两种真实源地址过滤策略的支持,并且对其它过滤策略的嵌入提供了开放支持。相比于普通的路由器,它具有对网络层透明,根据真实源地址过滤规则对IPv6源地址高效的报文过滤功能。同时它不同于常规的防火墙,因为其过滤规则表是通过与过滤策略控制服务器的协议交互动态变化的,而且过滤方法可以动态嵌入和切换。此外,还具有一般网络系统不具有的签名添加、检查和删除,互联网控制协议报文处理等功能。它可以作为独立的专用网络设备实现,也可以嵌入路由器作为扩展部件。
图1.真实源地址过滤方法功能结构图;图2.过滤规则生成引擎工作流程图;图3.过滤引擎工作流程图;图4.互联网控制信息协议报文处理流程图;图5.方法总体工作流程图;图6.方法部署实例示意图。
具体实施例方式
如图1所示,本发明包含有两个功能引擎过滤规则生成引擎根据通讯报文动态生成过滤规则表并且切换过滤规则;过滤引擎根据过滤规则表中的表项来判断是否对数据报文进行过滤,并且可以有选择地基于签名的过滤规则表的内容决定对是否对报文进行添加、删除和检查签名等操作,或者对报文进行边界标记操作,或者进行互联网控制信息协议报文处理。如图1所示,本方法需要和传统路由器的路由引擎和转发引擎协同工作。过滤模块还包含签名处理模块,报文标记模块和互联网控制信息协议报文处理模块。
本发明中最重要的数据表是过滤规则表。过滤规则表由前缀映射表、自治域发送端签名表和自治域接收端签名表三部分组成。每一个被嵌入的过滤策略拥有自己单独的过滤规则表。
前缀映射表对于大多数过滤策略是必要的,它用于将地址前缀映射到过滤标记,或者根据过滤策略不同,映射到不同的数据,它是由Trie树来实现的。Trie树是一种采用最长前缀匹配法来进行搜索的数据结构,它可以用于将地址前缀映射到需要的数据,一般的路由器使用Trie树来实现路由表。
前缀映射表Trie树的结构和普通路由表所使用的Trie树一致,唯一的区别是每个节点所包含的数据不是接口号,而是对应策略所需要的数据。不同策略使用不同的前缀映射表。各个策略所需要的前缀和数据映射表如下
这些前缀的映射信息直接或者间接地指示了是否对报文进行过滤。方法在Trie树的节点中预留了足够大的空间,使得每个节点能够保存策略所需要存放的信息。
自治域发送端签名表和自治域接收端签名表为基于端到端签名的过滤策略,如SPM,提供了必要基础,并不是所有的策略都要使用这两个表。自治域发送端签名表保存自治域发送报文到其他自治域时应该给报文添加的签名,自治域接收端签名表保存自治域接收到来自其他自治域的报文时,这些报文所应该具有的正确签名。它们是由数组来实现的。数组的索引是自治域的编号,而每一项内容是去往和来自相应自治域的报文所应该具有的签名。示例如下的表格,表示自治域编号和签名的对应关系
对于该方法功能的配置是由一台额外的控制服务器直接控制的。控制服务器通过与该方法的过滤规则生成引擎进行通讯来更新过滤规则表内容,控制服务器和过滤规则生成引擎采用TCP协议进行通讯。控制服务器的功能与策略的选择有关。通讯报文的内容如下
策略类型号是每个策略的编号,例如SPM的策略类型号是0x00。报文类型指定了当前报文是策略切换报文还是规则信息更新报文,如果是规则信息更新报文,还说明了修改过滤规则表的哪一部分,例如这个字段为0x00是更新前缀映射表,0xff是更改策略类型,0xfe是更改当前的报文标记字段,0x01是更新发送端签名表,等等。其中报文的信息更新字段是一个可变长的字段。如果是修改前缀映射表内容,这个字段包含一个或几个如下的结构
其中前缀映射字段包含的是策略所需要将前缀映射到的数据,8字节的空间可以保证容纳下所有策略对各自数据的需求,并为可能扩展的策略留下空间。
如果通讯报文要求修改发送端签名表或者接收端签名表,规则信息更新字段包含一个或者几个如下的结构
过滤规则生成引擎将根据报文内容修改对应的签名表内容。例如报文类型指示的是修改发送端签名表,则过滤规则生成引擎修改发送端签名表中报文中自治域编号指定的自治域的签名为报文中的自治域对应签名。
如果通讯报文要求更改报文标记字段,信息更新字段包含以下的结构
通讯报文中的报文标记字段设计为8字节,为各类标记方法留出了扩展空间。报文标记长度说明了报文标记字段有意义的字节数。各个策略的报文标记字段放在策略嵌入时的另外分配的空间。由于基于标记的过滤策略不多,所以并没有为所有策略预留这个字段的空间,因此在嵌入策略时需要另外分配这个字段空间。
如果报文是策略更改报文,则过滤规则生成引擎将方法的原策略编号更改为报文中的策略编号,这样过滤引擎将按照更改后的策略进行报文处理。
在数据处理中,本方法会修改到达本地自治域的互联网控制信息协议报文(ICMP)中的内容来解决添加签名后报文大小大于路径上最大传输单位长度(MTU)的问题。由于一些策略会在报文中添加签名,从而增加了报文长度,这将可能导致添加签名后的报文长度大于传输路径上的最大允许报文长度,进而报文会传播失败。为了处理这种情况,本方法需要对报文传播失败的节点处回送的互联网控制信息协议报文进行处理,由于这个报文会对发送计算机建议一个报文发送的最大长度,本方法将这个长度减少一个签名的长度,这就使得发送计算机对发送的报文添加签名后不会大于整个路径上的最大报文长度。
为了使得该方法对于路由器透明,兼容现有的路由器实现,本方法不会修改数据链路层的报头。使得任何基于数据链路层的机制,都不会受到该方法的影响。
方法总体结构如图1所示。其中过滤规则生成引擎接收来自控制路径的通讯报文,并且更新过滤规则表。数据报文只被过滤引擎处理。过滤引擎处理与过滤报文有关的工作,例如直接根据过滤规则表过滤报文,也有可能进行签名的添加、删除和检查工作。过滤引擎的工作是和过滤策略紧密相关的。
过滤规则生成引擎按照如下的步骤工作步骤1过滤规则生成引擎的工作流程如图2所示,由两个并行的流程组成。过滤规则生成引擎接收两种控制报文,并根据内容来切换过滤规则表和更新规则表内容。
步骤1.1过滤规则生成引擎从控制路径接收过滤策略更改报文,将整个方法的过滤策略更改为由过滤策略更改报文指示的策略,并且将整个方法所使用的过滤规则表切换到当前策略相应的过滤规则表,以方便过滤引擎在相应过滤规则表中进行查找。
步骤1.2过滤规则生成引擎从控制路径接收过滤规则表信息更新报文,根据报文内容获知需要更新的过滤规则表和表项,并更新对应的过滤规则表相应表项上的信息。
过滤引擎按照如下的步骤工作步骤2过滤引擎的工作流程如图3所示。过滤引擎需要处理进出自治域两个方向的报文,这两种报文的区别在于过滤引擎获取这个报文的来源不同。过滤引擎对这两种报文的处理方法不同,各自处理流程如下步骤2.1通过转发引擎到达过滤引擎的报文是来自自治域以外的报文,过滤引擎对这种报文的处理步骤如下步骤2.1.1过滤引擎从转发引擎获取报文,解析出报文中的源、目的地址信息。
步骤2.1.2使用步骤2.1.1中报文的源、目的地址前缀查当前的过滤规则表中的前缀映射表,根据查表结果是否满足当前策略的要求判断是否对报文进行过滤。如果需要过滤,则直接过滤掉报文;如果不需要,则进入下一步处理。这个步骤根据各个策略所需要检查内容的不同而有所区别。
步骤2.1.3*可选步骤,签名处理模块检查和删除签名。如果当前的策略要求对2.1.2中报文中所含的签名进行检查,则获取报文地址前缀对应的自治域编号,然后根据接收端签名表的该自治域的相应表项检查报文中逐跳可选项(Hop-by-Hop option)位置的签名的正确性,如果签名不正确或者该报文未含有签名,则过滤报文,否则去掉此报文中的签名,进入下一步处理。
步骤2.1.4*可选步骤,报文边界标记模块。如果当前的过滤策略要求对步骤2.1.2中报文进行边界标记,则在此报文中标记指定内容。该内容来自于过滤规则生成引擎的指定的策略报文标记字段。
步骤2.1.5将步骤2.1.4中报文交给朝向自治域内部的网络接口转发。
步骤2.2从朝向自治域内部的网络接口中接收到的报文是出自治域方向的报文,过滤引擎对这种报文的处理如下步骤2.2.1过滤引擎从朝向自治域内部的网络接口中接收报文。
步骤2.2.2*可选步骤,签名处理模块添加签名。判断当前的过滤策略是否要求对步骤2.2.1中报文进行添加签名处理,如果需要,则根据报文的源、目的地址信息在发送端签名表中查找相应的签名信息,并在此报文的逐跳可选项中添加签名,如果报文不存在逐跳可选项,则增加逐跳可选项后再在报文添加签名。
步骤2.2.3将步骤2.2.2中的报文交给转发引擎处理。
方法中加入了对互联网控制信息协议(ICMP)报文的处理模块,此模块作为过滤引擎的子模块,处理流程如图6所示。
步骤3本方法对于来自自治域外部接口的互联网控制信息协议报文(ICMP)处理如下。
步骤3.1判断报文是否为互联网控制信息协议报文,且报文类型是报文过长(Packet-Too-Big)信息,如果是,进入下一步,如果不是,则退出模块,将报文交还给过滤引擎。
步骤3.2判断报文的目的地址是否属于本地自治域。如果是,进入下一步处理。如果不是,则退出此模块,将报文交还给过滤引擎。
步骤3.3判断报文内部携带的原报文摘要信息中的目的地址是否在整个端到端真实源地址联盟中,如果是,将其中所建议的最大传输分组长度信息减少一个签名长度,并重新计算互联网控制信息协议报文校验和,并在报文相应位置填充该校验和。如果不是,退出此模块,将报文交还给过滤引擎。
整个方法的工作步骤如下,如图5所示,其中步骤二、三是并行的步骤一过滤规则生成引擎按照步骤1的说明,从控制链路获取过滤规则更新报文和过滤策略更改报文,并生成过滤规则表和切换过滤策略。此后过滤规则生成引擎不断监听控制路径,获取报文策略更改报文和规则更新报文。
步骤二过滤引擎从内部接口获取到普通数据报文,这类报文是出自治域方向的报文。过滤引擎按照步骤2.2的说明处理报文。
步骤三过滤引擎从转发引擎获取普通数据报文,这类报文是进自治域方向的报文。如果获取的是互联网控制信息协议报文,并且当前策略对报文有添加签名处理,则根据步骤3的说明,过滤引擎对互联网控制信息协议报文进行处理。如果不是互联网控制信息协议报文,则过滤引擎按照步骤2.1的说明处理报文。
具体应用实例如图6所示。搭载了本IPv6真实源地址过滤方法的过滤设备被配置在自治域边界路由器向外的接口处。以该方法嵌入了SPM策略为例说明应用情况。
首先,SPM策略的控制服务器之间会交换签名信息和各个自治域的前缀信息。控制服务器对过滤设备的过滤规则生成引擎发送各个自治域的前缀信息和签名信息报文。过滤设备的过滤规则生成引擎接收到报文,解析报文信息,并将自治域的前缀信息添加到前缀映射表,相应的签名信息添加到发送端签名表和接收端签名表。这样就完成了对过滤方法过滤规则表的初始配置。需要注意的是,SPM方法的过滤规则是动态更新的,在初始化配置之后,每隔一定时间,过滤规则生成引擎会收到控制服务器发送过来的过滤信息更新报文,过滤规则生成引擎将根据这些报文不断更新过滤规则表信息。经过控制服务器的配置操作,过滤规则表的自治域前缀映射表中保留的是真实源地址联盟中所有自治域的前缀和自治域编号的映射关系,发送端签名表中保存的是报文向联盟内自治域发送时所需要附带的签名列表,接收端签名表中保存的是接收到的来自联盟的报文所应该附带的签名列表。在实例中,过滤规则表的前缀映射表中保存的是自治域1001的前缀ff01::/16和自治域1002的前缀ff02::/16,发送方签名表和接受方签名表中保存的是自治域1001和1002对应的签名ffff1001和ffff1002。
在完成对过滤规则表初始配置之后,SPM的控制服务器通过发送过滤策略更改报文将过滤设备的过滤策略切换到SPM。完成切换之后,过滤设备开始按照SPM方法对经过的报文进行过滤。
过滤设备的过滤引擎对于出自治域的报文,会首先检查报文的源地址是否属于本地自治域,如果不属于,则直接将报文交给路由引擎处理。如果属于,则检查报文的目的地址是否在真实源地址联盟内,即目的地址前缀是否在过滤规则表的前缀映射表中,如果在,则在发送端签名表中查找到相应的签名,在报文逐跳可选项位置添加签名,然后将报文交给路由引擎转发。实例中,过滤设备在报文中添加了签名ffff1001,正是报文要发送给自治域1002所应该具有的签名。
过滤设备的过滤引擎对于到达自治域的报文,会首先检查报文的目的地址是否属于本地自治域,如果不属于,则直接转发报文,否则检查报文的源地址是否在真实源地址联盟中,即源地址是否在当前的前缀映射表中。如果在,则检查报文的签名和接收端签名表中的相应表项是否一致。如果签名不一致,则过滤报文,如果签名一致,则去掉签名后转发报文。实例中自治域1002的过滤设备检查到报文中的签名ffff1001是正确的签名,便去掉签名后将报文交给路由器。
同时,由于SPM策略是采用了添加签名的认证机制,所以本方法需要对互联网控制信息协议报文进行截获和修改。SPM在报文中添加的签名字段长度是16个字节长。对于到达本地的互联网控制信息协议报文,如果是报文过长类型的,则将其中建议的最大传输单位长度减少16,并重新计算校验和,填充到报文。
权利要求
1一种开放式真实IPv6源地址过滤与验证方法,其特征在于,依次含有以下步骤步骤(1),在位于自治域边界路由器向外的接口处,且与该路由器协同工作的一个过滤设备上配置以下模块过滤规则生成引擎,根据自治域控制服务器基于TCP协议发送的通讯报文动态生成过滤规则表并且切换过滤规则;所述过滤规则表由前缀映射表、自治域发送端签名表和自治域接收端签名表共三个部分组成,其中前缀映射表是把地址前缀映射到对应策略所需的数据的映射表,采用基于最长前缀匹配来进行搜索的一种Trie树,每个节点保存对应策略所需要的数据;自治域发送端签名表保存有自治域发送报文到其他自治域所应该给报文添加的签名;自治域接收端签名表保存有自治域接收到来自其他自治域的报文时,这些报文所应该具有的正确签名,签名表由一个数组实现,数组的索引是自治域的编号,数组的内容是相应的签名;所述通讯报文含有IPv6报头、TCP报头、策略类型号、报文类型号以及信息更新字段,其中策略是指过滤策略,多种过滤策略可以被选择,以下5种是已经被实现并验证的SPM、源地址强制认证协议SAVE、入口过滤、基于端到端签名的策略、以及基于路径标记的策略,其中SPM是Spoofing Prevention Method的缩写;策略类型号是各个策略的编号;报文类型指定了当前报文是策略切换报文还是还是规则信息更新报文;信息更新报文是一个可变长字段,更新的是前缀映射字段或者发送端签名表、接收端签名表;过滤引擎,根据所选过滤规则表的表项来判断是否对IPv6报文进行过滤,并且有选择地基于签名的过滤规则表的内容决定是否对报文进行添加、删除和检查签名,或者对报文进行边界标记操作,或者进行互联网控制信息协议报文的处理,因此,过滤引擎还含有签名模块、边界标记模块和互联网控制信息协议报文处理模块;步骤(2),所述过滤与验证方法依次按以下步骤实现步骤(2.1),过滤规则生成引擎从控制链路接收到所述控制服务器送达的过滤策略更改报文,解析报文后,更新过滤策略,并把过滤规则表切换到与当前策略相应的过滤规则表;步骤(2.2),过滤规则生成引擎从另一控制链路接收所述控制服务器送达的过滤规则表信息更新报文,解析该报文后,更新相应过滤规则表的相应表项中的信息;步骤(2.3),过滤引擎从朝向自治域内部的网络接口中接收到出自治域方向的普通数据报文,判断当前策略是否需要对接收的报文进行签名处理,如果需要,则根据报文的源、目的地址信息在发送端签名表中查找相应的签名信息,并在报文的逐跳可选项中添加签名,若不存在逐跳可选项,则增加逐跳可选项之后再添加签名;若不需要签名处理,则把该报文交给所述边界路由器的转发引擎处理;步骤(2.4),过滤引擎从所述转发引擎接收到进自治域方向的普通数据报文后,若判断获取的是互联网控制信息协议报文,且当前策略对报文又添加签名处理,则按以下步骤处理步骤(2.4.1),若互联网控制信息协议报文的类型是报文过长Packer-Too-Big,则判断报文的目的地址是否属于本地自治域,如果是,执行下一步骤步骤(2.4.2),判断报文内部携带的原报文摘要信息中目的地址是否在整个端到端真实源地址联盟中,如果是,把该报文建议的最大传输分组长度信息减少一个签名长度,并重新计算互联网控制信息协议的报文校验和;步骤(2.5),过滤引擎从转发引擎接收到的进自治域方向的普通数据报文为非互联网控制信息协议报文,则按以下步骤处理步骤(2.5.1),过滤引擎从所获取的来自自治域外的报文中,解析出源、目的地址信息;步骤(2.5.2),根据步骤(2.5.1)得到的源、目的地址查当前过滤规则表中的前缀映射表,根据查表结果是否满足当前策略的要求判断是否对报文进行过滤,若需要过滤,则直接过滤报文;否则执行下一步骤;步骤(2.5.3),若当前的策略要求对报文中的签名进行检查,则签名处理模块便获取报文源地址前缀对应的自治域编号,再根据接收端签名表的该自治域的相应表项检查报文中逐跳可选项位置的签名是否与接收端签名表中的一致,若不一致,或报文中不含有签名,则过滤报文;否则去掉签名,执行下一步骤;步骤(2.5.4),判断当前的策略是否要求对步骤(2.5.3)得到的报文进行边界标记,如果不需要,则把该报文交给朝向自治域内部的网络接口转发;如果需要,则在报文中标记指定内容,再转发报文。
全文摘要
本发明属于真实IPv6源地址过滤认证技术领域,其特征在于,在自治域边界路由器出口处的一个过滤设备上配置了一个与该路由器协同工作的过滤规则生成引擎和过滤引擎,前者根据自治域控制服务器的通讯报文生成某种真实源地址过滤策略的过滤规则表,并切换过滤策略,这些策略包括SPM、SAVE、入口过滤等等,也可以是嵌入的其他策略;后者具有互联网控制信息协议报文处理模块、签名处理模块和边界标记模块,可根据过滤策略对来自内部网络接口或来自边界路由器转发引擎的报文进行验证和过滤。本发明可灵活嵌入过滤策略,过滤规则表为各种过滤策略的嵌入提供了统一而且高效的数据层面支持。
文档编号H04L12/66GK1953373SQ200610113188
公开日2007年4月25日 申请日期2006年9月19日 优先权日2006年9月19日
发明者毕军, 吴建平, 叶明江, 任罡, 姚广 申请人:清华大学