首页> 中国专利> 用于为主机节点防御流氓路由器的安全邻居发现路由器

用于为主机节点防御流氓路由器的安全邻居发现路由器

摘要

在一个实施例中,一种方法包括:由网络中的路由器接收在网络的网络链路上的路由器公告消息;由路由器在路由器公告消息内检测已在网络内发送路由器公告消息的被识别路由器和被公告地址前缀;由路由器判定被识别路由器是否被授权进行如下公告中的至少一个:将其自身公告为路由器,或在网络链路上公告被公告地址前缀;以及基于路由器对被识别路由器未被授权将其自身公告为路由器或在网络链路上公告被公告地址前缀的判定,由路由器选择性地发起针对被识别路由器的防御操作。

著录项

  • 公开/公告号CN101690082A

    专利类型发明专利

  • 公开/公告日2010-03-31

    原文格式PDF

  • 申请/专利权人 思科技术公司;

    申请/专利号CN200880018988.7

  • 申请日2008-05-27

  • 分类号H04L29/06;

  • 代理机构北京东方亿思知识产权代理有限责任公司;

  • 代理人宋鹤

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 23:48:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-03-13

    授权

    授权

  • 2010-05-12

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20080527

    实质审查的生效

  • 2010-03-31

    公开

    公开

说明书

技术领域

本公开一般地涉及因特网协议版本6(IPv6)网络中的安全邻居发现 (SEND)的部署。

背景技术

因特网工程任务组(IETF)请求注解(RFC)3971描述了安全邻居发 现(SEND)协议,该协议规定了这样的安全机制,所述安全机制使得使 用根据RFC 2461的邻居发现协议(NDP)的IPv6节点不用IPSec协议就 能反抗恶意威胁。NDP使IPv6节点能确定彼此的存在、确定彼此的链路 层地址、找到路由器以及维护有关到活动邻居的路径的可达性信息。 SEND协议规定了两种相对独立的机制以保证IPv6节点的安全,即使用加 密生成的地址(CGA)来确保邻居发现消息的发送者是所宣称(claim)的 地址的拥有者,以及授权委托发现(Authorization Delegation Discovery)。授权委托发现用来经由信任锚(trust anchor)证明路由器的 权限。“信任锚”是能够得到主机节点的信任并用来证明路由器的权限的 权威源(authoritative source):可以从信任锚建立“证明路径 (certification path)”以使经证明的路由器能够执行另一路由器的证明; 在任一主机可以采用一个路由器作为它的默认路由器之前,该主机必须配 置有能够经由证明路径证明该路由器的信任锚。因此,SEND协议所规定 的证书格式使得主机节点能够获悉路由器的证明路径并能够验证路由器的 真实性。

附图说明

参考附图,其中具有相同参考标号的元素表示通篇相似的元素,并且 其中:

图1例示了根据一个示例实施例的、具有至少一个用于认证其他路由 器和其他路由器公告的地址前缀的防御路由器以保护主机节点不受流氓路 由器的侵害的示例系统。

图2例示了根据一个示例实施例的、来自图1的系统的示例防御路由 器。

图3是例示了根据一个示例实施例的、图1和图2的防御路由器认证 路由器和被公告地址前缀的方法的示图。

图4例示了根据一个示例实施例的、图1和图2的防御路由器为了防 御已检测到的流氓路由器而输出的示例路由器公告消息。

图5例示了根据一个示例实施例的、图1和图2的防御路由器为了防 御已检测到的流氓路由器而输出的示例邻居公告消息。

具体实施方式

【概述】

在一个实施例中,一种方法包括:由网络中的路由器接收在网络的网 络链路上的路由器公告消息;由路由器在路由器公告消息内检测已在网络 内发送路由器公告消息的被识别路由器和被公告地址前缀;由路由器判定 被识别路由器是否被授权进行如下公告中的至少一个:将其自身公告为路 由器,或在网络链路上公告被公告地址前缀;以及基于路由器对被识别路 由器未被授权将其自身公告为路由器或在网络链路上公告被公告地址前缀 的判定,由路由器选择性地发起针对被识别路由器的防御操作。

在另一实施例中,一种路由器包括:因特网协议(IP)接口电路,该 IP接口电路被配置用于接收在网络中的网络链路上的路由器公告消息;以 及路由电路。路由电路被配置用于在路由器公告消息内检测已在网络内发 送路由器公告消息的被识别路由器和被公告地址前缀。路由电路还被配置 用于判定被识别路由器是否被授权进行如下公告中的至少一个:将其自身 公告为路由器,或在网络链路上公告被公告地址前缀,路由电路还被配置 用于基于对被识别路由器未被授权将其自身公告为路由器或在网络链路上 公告被公告地址前缀的判定,来选择性地发起针对被识别路由器的防御操 作。

【详细描述】

具体实施例使得局域网中的路由器能够监控由其他网络节点发送的路 由器公告消息(router advertisement message),并判定已发送路由器公告 消息的网络节点是否被授权充当局域网中的路由器;路由器还判定路由器 公告消息中公告的地址前缀是否是被授权的地址前缀。在此之前已收到路 由器公告消息的传统路由器已被要求忽略并丢弃任何路由器公告消息。然 而,示例实施例使得路由器(这里称为“防御路由器”或“看门狗路由器 (watchdog router)”)能够对收到的路由器公告消息进行语法分析以便 识别已发送路由器公告消息的网络节点,并能够识别路由器公告消息内指 定的被公告地址前缀。防御路由器可以判定被识别的网络节点是否被授权 将其自身公告为网络中的路由器以及该网络节点是否被授权在网络的网络 链路上公告被公告地址前缀。如果防御路由器确定被识别的网络节点被授 权将其自身公告为路由器并且/或者公告指定的地址前缀,则防御路由器酌 情地根据在RFC 2461和/或RFC 3971中规定的邻居发现协议准许操作继 续。

然而,如果防御路由器确定被识别的网络节点未被授权将其自身公告 为路由器或者公告在路由器公告消息中指定的地址前缀(即,该另一路由 器是“流氓路由器”),则防御路由器发起针对被识别的流氓路由器的防 御操作,以便保护局域网中的主机网络节点不受流氓路由器的侵害。例 如,防御路由器可以向网络中的预定管理代理(例如,网络管理员)输出 警告,以将被识别的流氓路由器通知网络管理员,使得网络管理员能够定 位该流氓路由器,并且判定该流氓路由器仅仅是误配置的路由器还是恶意 实体。例如基于从流氓路由器的链路本地地址(link local address)到链路 层地址的解析,防御路由器还可以向网络交换机输出指令以基于流氓路由 器的链路层地址(例如,第2层媒体访问控制器(MAC)地址)来拒绝对 被识别的流氓路由器的访问。基于由防御路由器进行的冒充流氓路由器和 发送指定未授权的地址前缀不再可用的路由器公告消息以及具有覆盖比特 的邻居公告消息,防御路由器还可以执行攻击被识别的流氓路由器的防御 操作,其中覆盖比特指定被识别的流氓路由器的链路层地址被防御路由器 的链路层地址取代。

因此,防御路由器可以代表不能执行根据RFC 3971的安全邻居发现 (SEND)协议的主机网络节点来进行动作,以确保该主机网络节点不宣 称来自由流氓路由器指定的未授权地址前缀的网络地址,或尝试附接至流 氓路由器作为默认路由器。

图1是例示具有局域网14内的防御路由器12的示例系统10的示图。 如图1所示,局域网14可以被实施为例如具有链路本地范围的单个第2层 域,其中局域网14中的每个节点可以使用RFC 2461和RFC 3513中描述 的链路本地地址。局域网14除了防御路由器12之外还可以包括第2层交 换机(例如,以太网交换机)16、网络管理员节点(例如,管理代理) 18、在网络14内被授权的第二路由器20、提供对于诸如IPv6主机节点24 之类的无线设备的链路层连通性的无线接入点(WAP)22、支持SEND的 (SEND-enabled)IPv6主机节点26、以及将被用作“流氓路由器”的示例 的来访移动路由器28。

支持SEND的IPv6主机节点26被配置用于执行在RFC 3971中规定 的安全邻居发现(SEND),包括获得具有信任锚30的配置,所述信任锚 30可以是经由基于IP的广域网32而可达的,以便判定任一路由器是否具 有如下证明路径,所述证明路径使得支持SEND的主机26能够认证从路 由器12、20或28接收的任何证书、数字签名或公钥。具体地,RFC 3971 要求所有根据SEND协议来发送的路由器公告消息包含数字签名,例如 RSA签名;然而,如这里所描述的,可以提供其他安全令牌(secure token),例如公钥或诸如X.509v3公钥证书之类的数字证书;因此这里使 用的术语“安全令牌”指例如RFC 3961中描述的公钥、数字签名或数字 证书中的任何一个。

因此,假设路由器28为流氓路由器,支持SEND的主机26可以确定 流氓路由器28未被授权公告由第三方实体36拥有的给定IPv6地址前缀 (例如“2001:0210::/32”)34。换言之,如果流氓路由器28输出指定链 路本地地址(“FE80::A”)40、无效安全令牌(“C”)(例如,证书、 数字签名或公钥)42和未授权地址前缀44(例如,第三方36拥有的地址 前缀34)的路由器公告(RA)消息38,则支持SEND的IPv6主机节点 26能够从信任锚30确定安全令牌42无效,并且因此流氓路由器28不被 授权宣称未授权的地址前缀44。

然而,IPv6主机节点24是“遗留(legacy)”设备,因为它尚未被配 置为执行RFC 3971中描述的安全邻居发现(SEND)。因而,IPv6主机节 点24将不能认证无效安全令牌42。因此,防御路由器12能够代表不能实 施SEND协议的IPv6主机节点24来验证经由网络链路46接收的路由器公 告消息38。

因而,防御路由器12可以保护未实施SEND协议的主机节点24不受 公告未授权的地址前缀(“2001:0210::/32”)44的流氓路由器28的侵 害。防御路由器12可以基于指定的地址前缀44是否落入局域网14的预定 地址区域(address realm)46内或者基于根据SEND协议的认证来认证路 由器公告消息38,以便顾及(accommodate)公告了在局域网14的预定地 址区域46的范围外的地址前缀的来访移动路由器。例如基于(图2中例 示的)被授权路由器的预定列表68或基于安全令牌42的验证,防御路由 器12还可以判定路由器公告消息38是否源自被授权将其自身公告为本地 链路46上的路由器的网络节点。如果防御路由器12确定流氓路由器28未 被授权将其自身公告为路由器或者不拥有地址前缀44,则防御路由器12 可以发起针对被识别的流氓路由器28的各种防御操作,下面将进一步详 细描述。

图2是例示根据一个示例实施例的示例防御路由器12的示图。防御 路由器12可以包括具有预定链路本地地址(“FE80::DF”)84的IPv6接 口电路50、路由电路52以及例如包含数据表56和证书高速缓存57的存 储器电路54。

IPv6接口电路50被配置用于利用其相应的链路本地地址 (“FE80::DF”)和在图4中被例示为48比特十六进制链路层地址值 “0004.2010.00DF”83的链路层地址(例如,媒体访问控制(MAC))、 经由网络链路46来发送和接收IPv6分组。网络链路46可以是例如100 Mbps或吉比特以太网(IEEE 802.3)链路的有线链路,或者诸如IEEE 802.11链路之类的无线链路。因而,示例防御路由器12可以被配置为根 据RFC 3775的移动路由器。

根据该示例实施例,IPv6接口电路50被配置用于经由网络链路46接 收图1所例示的、来自网络14中的另一路由器28的路由器公告消息38。 与将丢弃收到的路由器公告消息38的传统路由器中的实施方式相比,防 御路由器12中的IPv6接口电路50将路由器公告消息38转发给路由电路 52以供评估。

路由电路52可以被配置用于判定已发送路由器公告消息38的路由器 28是否被授权在局域网14内将其自身公告为路由器以及/或者公告路由器 公告消息38中指定的地址前缀44。为了此描述的目的,示例局域网10可 以假设为在单个第2层域内运行;因而,无论链路46是有线的还是无线 的,路由器12、流氓路由器28、主机24和26以及局域网14的所有其他 节点都可被认为是“链接的(on-link)”,即位于RFC 2461中描述的同 一链路上,这是因为各个节点使用的各自接口的各自链路本地地址中的每 一个都位于同一预定链路本地地址区域“FE80::/10”内,所述预定链路本 地地址区域在RFC 3513的2.4和2.5.6节中被标识为出于诸如自动地址配 置和/或邻居发现之类的目的而预留给链路本地单播。

路由电路可以包括路由器公告语法分析器电路58、SEND认证电路60 以及包括邻居公告/路由器公告生成电路64和第2层策略电路66的防御电 路62。路由器公告语法分析器电路58可以被配置用于对收到的路由器公 告消息38进行语法分析,以便检测消息38的内容,包括被公告的地址前 缀44、标识路由器28的链路本地地址(“FE80::A”)40以及任意安全令 牌42。

SEND认证电路60可以被配置用于例如基于判断被识别的路由器28 是否从具有各个授权地址前缀70的被授权路由器的预定列表68中可识别 的判定,或者基于对所提供的安全令牌42的、根据SEND协议而进行 的、相对于信任锚30的认证,来判定在收到的路由器公告消息38中被其 相应的链路本地地址40标识的路由器28是否被授权将其自身公告为路由 器以及/或者公告被公告的地址前缀(例如,“2001:0210::/32”)44。例 如,SEND认证电路60可以判定安全令牌(例如,RSA签名)42是否被 来自信任锚30的公钥证书所验证,所述公钥证书或者存储在证书高速缓 存57中或者经由证书路径公告消息(Certificate Path Advertisement Message)被接收,所述证书路径公告消息建立根据RFC 3971的、到信任 锚30的证明路径:公钥证书使得SEND认证电路能够判定如下证明路径 是否被建立,所述证明路径验证安全令牌42授权被识别的路由器28将其 自身公告为路由器,并且指定安全令牌42内的前缀以指示被识别的路由 器28被授权公告被公告的地址前缀44。

防御电路62可以被配置用于基于SEND认证电路60对由其链路本地 地址40标识的路由器28未被授权在网络链路46上公告被公告的地址前缀 (“2001:0210::/32”)44并且因此被视为流氓路由器的判定,来选择性地 发起针对路由器28的防御操作。例如,防御电路62可以包括邻居公告/路 由器公告生成电路64,邻居公告/路由器公告生成电路64可以被配置用于 例如通过输出图4所示的第二路由器公告消息72来有效地冒充流氓路由 器28,所述第二路由器公告消息72取代流氓路由器28输出的路由器公告 消息38并导致不支持SEND的(non-SEND enabled)IPv6主机24停止依 赖未授权的地址前缀44来进行地址自动配置或依赖流氓路由器28作为默 认路由器。邻居公告/路由器公告生成电路64还可以被配置用于基于对图 5所示的邻居公告消息74的输出来有效地冒充流氓路由器28,所述邻居 公告消息74用IPv6接口电路50所使用的防御路由器12的预定链路本地 地址来覆盖流氓路由器的链路本地地址40,以便导致不支持SEND的 IPv6主机24停止向流氓路由器28发送流量并开始向防御路由器12发送 流量。

防御路由器12的所公开电路中的任一个(包括IPv6接口电路50、路 由电路、存储器电路54及其相关联的组件)可以用多种形式实现,包括 以诸如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)之类的逻 辑阵列或通过诸如专用集成电路(ASIC)之类的集成电路的掩模编程来实 现的硬件逻辑;这些电路中的任一个还可以利用由诸如微处理器(未示 出)之类的相应内部处理器执行的、基于软件的可执行资源来实现,其中 (例如,存储器电路54内的)内部存储器中存储的可执行代码的运行导 致处理器在处理器存储器中存储应用状态变量,创建执行这里描述的电路 操作的可执行应用资源(例如,应用实例)。因而,本说明书中术语“电 路”的使用既指代包含用于执行所描述的操作的逻辑的基于硬件的电路, 又指代包括处理器存储器的预留部分的基于软件的电路,所述预留部分用 于存储被处理器的可执行代码的运行修改的应用变量和应用状态数据。存 储器电路54可以被实施为非易失性存储器,例如EPROM、DRAM等。

此外,任何对“输出消息”(例如,路由器公告消息72或邻居发现 消息74)或“输出分组”的指代可以基于对消息/分组的以数据结构形式 的创建、和对该数据结构的在所公开的装置中的有形存储介质中(例如, 发送缓冲器中)的存储、以及对存储在有形存储介质中的消息/分组的经由 通信介质(例如,必要时,有线或无线链路)向另一网络节点的电发送 (例如,必要时,经由有线电流或无线电场)(必要时,还可以使用光发 送)来实现。类似地,任何对“接收消息”(例如,路由器公告消息38) 或“接收分组”的指代可以基于所公开的装置对通信介质上消息/分组的电 (或光)传输的检测、以及对检测到的传输作为数据结构存储在所公开的 装置中的有形存储介质中(例如,接收缓冲器中)的存储来实现。

图4是例示根据一个示例实施例的、由防御路由器12的邻居公告/路 由器公告生成电路64输出的示例路由器公告消息72的示图。由电路64生 成的路由器公告消息72可以包括IPv6首部76、根据RFC 2461第4.2节的 路由器公告因特网控制消息协议(ICMP)字段78、根据RFC 2461第4.2 和4.6.1节的源链路层地址(SLLA)选项字段79以及根据RFC 2461第 4.2和4.6.2节的前缀信息选项(PIO)字段80。具体而言,由防御路由器 12的生成电路64生成的路由器公告消息72在IP首部76中包括IP源地址 字段82和IP目的地址字段86。IP源地址字段82不指定防御路由器12的 IPv6接口电路50的链路本地地址(“FE80::DF”)84,而是生成电路64 将流氓路由器28的链路本地地址(“FE80::A”)40插入到IP源地址字 段82中。因而,当实际上是防御路由器12通过将流氓路由器链路本地地 址40插入源地址字段82内并将其自己的MAC地址83插入链路层地址字 段81内来冒充流氓路由器28(SLLA选项79中的Type=1(类型=1)字段 将地址字段81标识为源链路层地址)时,每个IPv6主机24和26认为路 由器公告消息72是从流氓路由器28发送的。注意,防御电路62在生成路 由器公告消息72的同时可以将IPv6接口电路50配置为接受指定流氓路由 器28的目的地址“FE80::A”的进入消息。

根据RFC 2461第4.2节,路由器公告ICMP字段78可包括被生成电 路64设为0的路由器寿命字段88,致使接收路由器公告消息72的所有主 机24和26解释成流氓路由器28不是默认路由器且不应出现在它们的内部 默认路由器列表上。SLLA选项字段79包括指定防御路由器接口84的链 路层(例如,媒体访问控制(MAC)地址)的源链路层地址字段81,例 如被例示为48比特的十六进制值“0004.2010.00DF”83。根据RFC 2461 第4.6.2节,前缀信息选项字段80可包括被生成电路64设为0的有效寿命 字段90、被生成电路64设为0的优选寿命字段92、指定未授权前缀44的 长度(“32”)的前缀长度字段94、指定未授权前缀 (“2001:0210::/32”)44的前缀字段96以及被生成电路64设为0的链接 标记98。因而,出于链接确定的目的,接收路由器公告消息72的任一主 机24或26根据被设为0的有效寿命字段90确定前缀字段96中指定的前 缀44无效,并且因此从它们的前缀列表中移除前缀44。此外,主机24或 26通过用防御路由器接口84的链路层地址“0004.2010.00DF”83取代流 氓路由器28的链路层地址来针对流氓路由器28的链路本地地址 “FE80::A”40更新它们的邻居高速缓存条目,而对SLLA选项79做出响 应。因而,主机24或26会将任何目的地为链路本地地址“FE80::A”40 的分组发送到防御路由器12而不是流氓路由器28。

图5是例示根据一个示例实施例的由生成电路64输出的示例邻居公 告消息74的示图。如图5所示,生成电路64将防御路由器12的链路本地 地址(“FE80::DF”)84插入到源地址字段82中,并在目的地址字段86 中指定所有节点多播地址。邻居公告消息74还可包括邻居公告ICMP字段 100,包括被生成电路64设为“1”的路由器标记102、被生成电路64设 为“1”的覆盖标记104、以及指定流氓路由器28的链路本地地址 (“FE80::A”)40的目标地址字段106。因而,接收邻居公告消息74的 IPv6主机24或26可以根据路由器标记102确定防御路由器12实际上是路 由器;此外,根据RFC 2461第4.4节,IPv6主机24或26可以根据覆盖标 记104和目标地址字段106确定它们应当覆盖(指定流氓路由器28的链路 本地地址40的)现有邻居高速缓存条目并用防御路由器链路本地地址84 取代流氓路由器链路本地地址40。如在RFC 2461中引用的,IPv6节点可 以根据RFC 2462在节点的链路本地地址、节点的链路层地址(例如, EUI-64接口标识符)和相应的第2层MAC地址之间进行解析。

因而,IPv6主机24或26通过从它们各自的内部邻居高速缓存中移除 流氓路由器链路本地地址40(和/或流氓路由器的相关联的链路层地址) 并插入防御路由器链路本地地址84来取代流氓路由器链路本地地址40, 来对邻居公告消息74做出响应。结果,不支持SEND的主机24不再与流 氓路由器28通信,而是与防御路由器12通信。

防御电路62还可包括第2层策略电路66,第2层策略电路66可被配 置用于针对被识别的流氓路由器28实施链路层防御操作,包括向预定的 管理代理18发送警告以警告网络管理员存在流氓路由器28。第2层策略 电路66还可被配置用于根据预定协议向网络交换机16发送指令,以基于 流氓路由器28的链路层地址来拒绝对流氓路由器28的访问。

因而,流氓路由器28可以被有效地从局域网14隔离以最小化负面效 应。此外,生成电路64对流氓路由器28的主动攻击为不支持SEND的 IPv6主机24提供了主动防御机制。具体地,不支持SEND的IPv6主机24 通过将未授权前缀44从其内部前缀列表中移除并将流氓路由器28的标识 符40从其默认路由器列表中移除、以及通过将防御路由器接口电路50的 链路层地址83与流氓路由器链路本地地址“FE80::A”40相关联而更新邻 居高速缓存,来对路由器公告消息72做出响应(例如,参见RFC 2461第 5.1节);冒充的邻居公告消息74导致IPv6主机24用防御路由器12的链 路本地地址来取代其内部邻居高速缓存中存储的流氓路由器28的链路本 地地址40(例如,参见RFC 2461第5.1节)。

图3是例示根据一个示例实施例的、为不支持SEND的主机24防御 未授权地址前缀的、图2的防御路由器12进行的示例方法的示图。

图3中描述的步骤可以实施为计算机可读介质(例如,软盘、硬盘、 EEPROM、CD-ROM等)上存储的可执行代码,该代码基于处理器对代码 的执行而被完成;这里描述的步骤还可实施为被编码在一个或多个有形介 质(例如可编程逻辑阵列或器件、现场可编程门阵列、可编程阵列逻辑、 专用集成电路等)中供执行的可执行逻辑。

响应于防御路由器(即“看门狗路由器”)的IPv6接口电路50在步 骤110中对来自路由器28的路由器公告消息38的检测,IPv6接口电路50 将路由器公告消息38传递给防御路由器12的路由电路52。防御路由器 12的路由器公告语法分析器58在步骤112中对收到的路由器公告消息38 进行语法分析,以(例如基于在收到的公告消息38的源地址字段中指定 的链路本地地址(“FE80::A”)40)检测已发送该路由器公告消息38的 路由器28的身份、以及被公告的地址前缀44。路由器公告消息38的经语 法分析的内容随后被转发给SEND认证电路60以供判定被识别的路由器 28是否被授权在网络链路46上公告被公告的地址前缀44。

如果在步骤114中认证电路60未检测到安全令牌42,例如RFC 3971 中要求的RSA数字签名(或者作为替代,数字证书或者至少公钥),则认 证电路60在步骤116中基于对存储器电路54中的本地表56的访问来判 定:进行公告的网络节点28的IPv6链路本地地址40是否在已授权路由器 列表68中被指定,以及/或者被公告的地址前缀44是否位于局域网14的 预定地址区域46内。假设被公告的地址前缀位于预定地址区域46内,则 认证电路60可以判定被公告的前缀是否是由相应的经授权的路由器68公 告的已授权前缀70。因而,如果在步骤116中IPv6链路本地地址40在已 授权路由器列表68中被识别并且被公告的地址前缀在已授权前缀列表70 中被识别为由相应的经授权的路由器68公告的已授权前缀70,则认证电 路60判定被识别的路由器被授权公告该地址前缀,并且在步骤118中结 束处理。

然而,如果认证电路60在步骤116中确定被公告的地址前缀 (“2001:0210::/32”)44不位于网络14的预定地址区域 (“2001:0211:0311::/48”)46内,或者被公告的地址前缀位于预定地址 区域内但不是由基于已授权路由器列表68被授权将其自身公告为路由器 的节点所公告的,或者在已授权路由器列表68中识别的经授权的路由器 正在公告未在被授权由该路由器公告的前缀列表70中被识别的地址前 缀,则认证电路60向防御电路62发送通知,以在步骤126中发起下述防 御操作。

如果在步骤114中认证电路60从路由器公告消息38中检测到例如 RFC 3971中描述的RSA数字签名之类的安全令牌42,并且假设认证电路 60在步骤119中未检测到用于验证该数字签名所宣称的路由器身份的数字 证书(例如,适当的证书未本地地存储在证书高速缓存57中),则认证 电路60在步骤120中输出例如RFC 3971第6.4节中描述的证明路径恳求 消息(Certification Path Solicitation Message),以提示路由器从预定信任 锚30生成证明路径公告(Certification Path Advertisement)。

假设在步骤122中防御路由器12收到包含根据RFC 3971的相应权威 证书(authoritative certificate)(也称为委托权限的证书)的至少一个证明 路径公告消息并且优选地建立到信任锚30的证明路径所需的证明路径公 告消息,则SEND认证电路60在步骤124中判定收到的安全令牌(例 如,数字签名)42是否被根据RFC 3971的权威证书验证,以判定路由器 身份及被公告的前缀是否被权威证书验证。具体地,SEND认证电路60首 先在步骤124中基于对路由器所使用的IPv6地址40是否位于在权威证书 中指定的地址范围条目内的判定,来从权威证书判定路由器公告消息的源 是否根据RFC 3971被授权充当路由器并因此将其自身公告为路由器;假 设权威证书证实该源(路由器28)被授权充当路由器,则SEND认证电路 60还可以例如基于对相同的被公告前缀44(它也可在安全令牌42中被指 定)被包含在权威证书中的地址前缀条目内的判定,来判定在路由器公告 消息44中指定的被公告前缀(一个或多个)44是否也被根据RFC 3971的 权威证书验证。如果认证电路60确定安全令牌42未被由权威证书建立 的、到信任锚30的证明路径验证,或者安全令牌42有效但被公告的前缀 44未被根据RFC 3971的权威证书(或安全令牌42)验证,则认证电路60 向防御电路62发送通知,以在步骤126中发起防御操作。

防御电路62在步骤126中发起防御操作,包括第2层策略电路66在 步骤128中警告网络管理员18关于流氓路由器28的存在。因而,网络管 理员18可以采取纠正措施来定位和物理地禁止流氓路由器28,或者至少 重新配置该流氓路由器28,如果授权的缺失是由于路由器28的误配置的 话。

第2层策略电路66还可在步骤130中向网络交换机16发送指令,以 基于流氓路由器28的链路层地址来拒绝对流氓路由器28的访问,以便隔 离流氓路由器28。因而,流氓路由器28的负面效应可以基于第2层访问 和策略强制执行来隔离。

邻居公告/路由器公告生成电路64还可在步骤132中输出图4的路由 器公告消息72,该路由器公告消息72基于在源地址字段82中对流氓路由 器链路本地地址(“FE80::A”)40的指定、在路由器寿命字段88中对指 示路由器不是默认路由器的零值的指定、以及对在前缀字段96中指定的 未授权地址前缀(“2001:0210::/32”)44在有效寿命字段90中具有零有 效寿命值的指定,来冒充流氓路由器28。因而,不支持SEND的IPv6主 机24可以基于未授权的地址前缀44对于链接确定不再有效,而响应于路 由器公告消息的接收来从其前缀列表中移除该未授权地址前缀44。

邻居公告/路由器公告生成电路64还可在步骤134中输出图5的邻居 公告消息74,指定防御路由器12的链路本地地址(“FE80::DF”)84覆 盖流氓路由器链路本地地址(“FE80::A”)40。因而,不支持SEND的 IPv6主机24可以用防御路由器链路本地地址84取代其邻居高速缓存中的 流氓路由器链路本地地址40。

根据示例实施例,为了验证收到的路由器公告消息以确保进行公告的 路由器被授权充当路由器和/或宣称各自的被公告前缀,路由器可以例如基 于本地存储的认证数据或基于对所提供的证书的、根据RFC 3971规定的 SEND协议而进行的认证,而被配置为流氓检测机构。此外,路由器还可 以例如基于对电子邮件消息的向网络管理员的发送、对简单网络管理协议 (SNMP)警报或陷阱的设置等,而通过实施隔离流氓路由器的链路层策 略、发起警告流氓路由器的存在的网络管理过程,来防御流氓路由器。路 由器还可通过冒充流氓路由器以输出路由器公告消息来停止IPv6主机节点 对未授权地址前缀的使用并且输出邻居公告消息来指导IPv6主机节点远离 流氓路由器而朝向防御路由器,而有效地攻击流氓路由器。

虽然已结合目前被认为是实施所附权利要求中指定的主题的最佳方式 的内容描述了本公开的示例实施例,但是应该理解,示例实施例只是例示 性的,而不限制所附权利要求中指定的主题。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号