网络节点的签名的选择性验证的制作方法

文档序号:13425243阅读:195来源:国知局
网络节点的签名的选择性验证的制作方法

本发明的各实施例总体上涉及计算机网络,具体地涉及网络节点的签名的选择性验证。



背景技术:

网络的端点设备可以经由被包括在网络中的节点(例如,网络设备,诸如路由器、网关、交换机、集线器等)来通信。例如,第一端点设备可以向节点传输数据,并且节点可以使用路由信息来标识一个或多个其他节点以承载数据到第二端点设备。在一些情况下,端点设备可以与不同网络和/或不同节点组相关联。在这样的情况下,对应于两个端点设备的路由信息可以标识要在其上承载数据的沿着两个或更多个不同节点组中的节点的路径。



技术实现要素:

根据一些可能的实现方式,网络节点可以包括一个或多个处理器。一个或多个处理器可以接收与一个或多个签名相关联的消息。一个或多个签名可以已经被特定节点验证。一个或多个处理器可以确定特定节点是置信节点。网络节点可以被配置成不验证已经被置信节点验证的签名。一个或多个处理器可以确定一个或多个签名已经被特定节点验证。一个或多个处理器可以基于确定一个或多个签名已经被特定节点验证来签署或者提供消息而不验证一个或多个签名。

在一个实施例中,其中一个或多个签名是一个或多个第一签名;以及其中消息包括尚未被特定节点验证的一个或多个第二签名;以及其中一个或多个处理器还用于:基于确定一个或多个第一签名已经被特定节点验证并且一个或多个第二签名尚未被特定节点验证来验证一个或多个第二签名并且不验证一个或多个第一签名。

在另一实施例中,其中一个或多个处理器在接收消息时还用于:从特定节点接收消息,一个或多个第二签名中的特定第二签名已经由特定节点基于验证一个或多个第一签名来生成。

在另一实施例中,其中一个或多个第二签名包括多个第二签名;以及其中一个或多个处理器在接收消息时用于:经由另一节点从特定节点接收消息,一个或多个第一签名和特定第二签名已经被另一节点验证,以及多个第二签名中的另一第二签名已经由另一节点基于验证一个或多个第一签名和特定第二签名来生成。

在另一实施例中,其中消息是第一消息;以及其中一个或多个处理器用于:接收第二消息,第二消息包括一个或多个第二签名以及一个或多个第三签名;确定网络节点先前已经验证一个或多个第二签名并且尚未验证一个或多个第三签名;以及基于确定网络节点先前已经验证一个或多个第二签名并且尚未验证一个或多个第三签名来验证一个或多个第三签名而不验证一个或多个第二签名。

在另一实施例中,其中一个或多个处理器在确定特定节点是置信节点是用于:基于从特定节点接收到表明特定节点应当被信任的信息来确定特定节点是置信节点。

在另一实施例中,其中一个或多个处理器在提供消息时用于:向另一节点提供消息,网络节点基于确定另一节点是否被允许接收具有多个有效签名的消息来选择性地签署消息,多个有效签名包括对应于已经在节点组边界上传输消息的每个节点的相应签名,以及当网络节点确定另一节点被允许接收与多个有效签名相关联的消息时,网络节点签署消息,以及当网络节点确定另一节点不被允许接收与多个有效签名相关联的消息时,网络节点提供消息而不签署消息。

在另一实施例中,其中网络节点是多个节点中的一个节点,特定节点是多个节点中的另一节点;以及其中一个或多个处理器还用于:基于确定特定节点是多个节点中的一个节点来确定特定节点是置信节点。

根据一些可能的实现方式,非瞬态计算机可读介质可以存储一个或多个指令,一个或多个指令在由网络节点的一个或多个处理器执行时可以引起一个或多个处理器接收与一个或多个第一签名以及一个或多个第二签名相关联的消息。一个或多个第一签名可以被特定节点验证。一个或多个指令在由网络节点的一个或多个处理器执行时可以引起一个或多个处理器确定特定节点是置信节点。网络节点可以被配置成不验证已经被置信节点验证的签名。一个或多个指令在由网络节点的一个或多个处理器执行时可以引起一个或多个处理器确定一个或多个第一签名已经被特定节点验证并且一个或多个第二签名尚未被特定节点验证。一个或多个指令在由网络节点的一个或多个处理器执行时可以引起一个或多个处理器基于确定一个或多个第一签名已经被特定节点验证并且一个或多个第二签名尚未被特定节点验证来验证一个或多个第二签名并且不验证一个或多个第一签名。一个或多个指令在由网络节点的一个或多个处理器执行时可以引起一个或多个处理器基于验证一个或多个第二签名来签署或者提供消息。

在一个实施例中,其中消息标识生成消息的第一节点以及一个或多个第一签名中的一个第一签名;以及其中一个或多个指令在由一个或多个处理器执行时还引起一个或多个处理器:基于消息来更新路由信息,路由信息标识以下中的一项或多项:第一节点,特定节点,网络节点,与消息相关联的网络前缀,或者第一节点、特定节点或者网络节点中的一个或多个节点之间的路线。

在另一实施例中,其中引起一个或多个处理器接收消息的一个或多个指令引起一个或多个处理器:经由安全会话从另一节点接收消息,消息与由另一节点基于验证一个或多个第一签名以及一个或多个第二签名生成的第三签名相关联;以及其中引起一个或多个处理器验证一个或多个第二签名的一个或多个指令引起一个或多个处理器:验证一个或多个第二签名并且不验证第三签名,网络节点基于经由安全会话从另一节点接收消息来不验证第三签名。

在另一实施例中,其中引起一个或多个处理器确定特定节点是置信节点的一个或多个指令引起一个或多个处理器:确定特定节点和网络节点与特定服务提供商相关联;以及基于特定节点和网络节点与特定服务提供商相关联来确定特定节点是置信节点。

在另一实施例中,其中网络节点是包括特定节点的多个节点中的一个节点;以及其中引起一个或多个处理器确定特定节点是置信节点的一个或多个指令引起一个或多个处理器:基于特定节点被包括在多个节点中来确定特定节点是置信节点。

在另一实施例中,其中引起一个或多个处理器签署或者提供消息的一个或多个指令引起一个或多个处理器:基于接收节点是否被允许接收与多个有效签名相关联的消息来在提供消息之前选择性地签署消息,多个有效签名包括对应于已经传输消息的每个节点的相应签名,以及当接收节点被允许接收与多个有效签名相关联的消息时,网络节点在提供消息之前签署消息,以及当接收节点不被允许接收与多个有效签名相关联的消息时,网络节点提供消息而不签署消息。

根据一些可能的实现方式,方法可以包括由网络节点接收与对应于路由信息的一个或多个签名相关联的路线更新消息。一个或多个签名可以被特定节点验证以验证路由信息。方法可以包括由网络节点确定特定节点是置信节点。网络节点可以被配置成不验证已经被置信节点验证的签名。方法可以包括由网络节点确定一个或多个签名对应于特定节点基于验证一个或多个签名已经验证的路由信息。方法可以包括由网络节点签署或者提供路线更新消息而不验证一个或多个签名。

在一个实施例中,其中一个或多个签名是一个或多个第一签名并且路由信息是第一路由信息;以及其中路线更新信息包括尚未被特定节点验证的对应于第二路由信息的一个或多个第二签名,特定节点尚未验证第二路由信息;以及其中方法还包括:基于一个或多个第一签名已经被特定节点验证并且基于特定节点尚未验证第二路由信息来验证一个或多个第二签名并且不验证一个或多个第一签名;以及其中签署或者提供路线更新消息还包括:基于验证一个或多个第二签名来签署或者提供路线更新消息。

在另一实施例中,其中路线更新消息是第一路线更新消息;以及其中方法还包括:接收与对应于第二路由信息的一个或多个第二签名相关联的第二路线更新消息;以及签署或者提供第二路线更新消息而不验证一个或多个第二签名。

在另一实施例中,还包括:确定第一路线更新消息和第二路线更新消息与相同的原始节点或节点组相关联并且与特定网络前缀相关联;以及其中签署或者提供第二路线更新消息而不验证一个或多个第二签名包括:基于第一路线更新消息和第二路线更新消息与相同的原始节点或节点组相关联并且与特定网络前缀相关联来签署或者提供第二路线更新消息而不验证一个或多个第二签名。

在另一实施例中,其中确定特定节点是置信节点还包括:基于从特定节点接收到表明特定节点丢弃没有被特定节点成功验证的路线更新消息的信息来确定特定节点是置信节点。

在另一实施例中,其中一个或多个签名是一个或多个第一签名;以及其中路线更新消息是第一路线更新消息;以及其中方法还包括:接收包括一个或多个第二签名的第二路线更新消息,一个或多个第二签名对应于路由信息,以及相比于一个或多个第一签名,一个或多个第二签名与不同的签名算法相关联;确定特定节点已经验证一个或多个第一签名;以及基于一个或多个第一签名以及一个或多个第二签名都对应于路由信息并且基于一个或多个第一签名被特定节点验证,签署或者提供第二路线更新消息而不验证一个或多个第二签名。

附图说明

图1a至图1e是本文中描述的示例实现方式的概述的图;

图2是可以在其中实现本文中描述的系统和/或方法的示例环境的图;

图3是图2的一个或多个设备的示例部件的图;

图4是用于基于置信节点或节点组是否先前已经验证签名来选择性地验证签名的示例过程的流程图;以及

图5是用于基于路线更新消息的另外的接收者是否被允许接收有效签名链来选择性地签署路线更新消息的示例过程的流程图。

具体实施方式

示例实现方式的以下详细描述涉及附图。不同附图中的相同的附图标记可以标识相同或相似的元件。

网络节点的组(下文中称为节点组)可以在网络的端点设备之间承载网络流量。如本文中描述的,节点组是可以由单个网络提供商基于特定协议(例如,内部或外部网关协议)来管理并且可以与内部路由或交换规则相关联的网络节点的集合。第一节点组中的节点可以接收到第二节点组中的节点的在途中的网络流量,并且可以基于路由表和/或转发表来标识向第二节点组承载网络流量的节点的路线。路线上的节点可以是第一节点组、第二节点组、或者一个或多个中间节点组的一部分。

为了广告或者更新节点组之间的路线,节点可以传输路线更新消息。路线更新消息可以包括标识一个或多个节点的网络地址,诸如前缀等。前缀是网络地址(例如,ipv4网络地址、ipv6网络地址等)以及比特掩码、掩码长度等,其标识一个或多个节点、节点组或设备。前缀有时用于向与前缀相关联的设备的集合路由或者转发网络流量。

当节点组接收到路线更新消息时,节点组可以向路线更新消息添加标识节点组的信息。在一些情况下,节点组可以基于路线更新消息来更新路由表。节点组可以向其他下游节点组传输路线更新消息,下游节点组可以执行类似的操作。以这一方式,可以基于节点组之间的连接来更新节点组的路由表。执行这一路由表更新过程的协议的一个示例是边界网关协议(bgp)。

然而,当没有实现安全处理时,路线更新消息可以很容易修改或伪造。例如,基于中间人攻击等,实体可以生成或者修改路线更新消息以引起网络流量被路由到恶意设备,被阻挡,等等。

为了改善路由表更新过程的安全性,节点组可以实现安全过程,安全过程允许节点组基于路线更新消息的源来验证或者认证路线更新消息。一个这样的安全过程可以包括bgp安全(bgpsec)。在使用bgpsec时,接收和转发路线更新消息的每个节点组可以使用对应私有密钥在数字上签署路线更新消息。附接至路线更新消息的签名的集合在本文中可以称为“签名链”。当下游节点组接收消息时,接收节点组可以使用与对应私有密钥相关联的公共密钥验证签名链中的每个签名以确定路线更新消息的路径是否真实。下游节点组可以向签名链添加签名,并且可以作为上游节点组向一个或多个其他下游节点组传输路线更新消息。因此,改善了路由表更新过程的安全性。

然而,每个节点组对签名链的每个链路的验证可能是处理器密集型的。这可能减少或者消除对这样的安全过程的采用,从而减小网络安全性。另外,基于在网络边缘处的节点和节点组接收标识与在网络核心处的其他节点或节点组相比具有更长路径并且因此具有更多签名的路线的路线更新消息,与这样的过程相关联的处理负载对于在网络(诸如因特网)边缘处的节点或节点组而言可能很明显。

本文中描述的实现方式允许基于置信设备(例如,置信节点或置信节点组)是否先前已经验证签名链的一部分或全部来选择性地验证签名链中的签名。因此,保留了否则可能用于在每种情况下验证签名链中的每个签名的处理器资源。

另外,本文中描述的实现方式可以允许基于路线更新消息的下游接收者是否被允许接收具有有效签名链的路线更新消息来选择性地签署路线更新消息。因此,路线更新消息的提供者可以提供下游接收者能够成功验证(例如,基于提供者和下游接收者之间的一个或多个安全处理)并且下游接收者不能够向另外的下游节点组提供可验证签名链的路线更新消息。例如,提供者可能想要提供传输有效签名链作为业务的能力,从而防止下游接收者提供安全的路由信息而没有对业务的认证或签署。因此,可以通过防止未认证节点组广告可验证路由信息来减小网络拥挤。另外,可以通过对哪些节点组被允许访问签名链业务发挥控制来改善网络安全性(例如,通过防止有嫌疑的恶意方接收有效签名链等)。另外,保留了否则可能用于签署路线更新消息的处理器资源。

图1a到图1e是本文中描述的示例实现100的概述的图。图1a到图1d示出了基于置信节点或节点组先前是否已经验证签名来选择性地验证签名的示例,图1e示出了基于路线更新消息的另外的接收者是否被允许接收有效签名链来选择性地签署路线更新消息的示例。

如图1a和附图标记102所示,第一节点组(例如,节点组1或者原始节点组)可以生成路线更新消息和/或向第二节点组(例如,节点组2或者下游节点组)传输路线更新消息。例如,节点组1中的节点(例如,节点组1的边缘节点)可以向节点组2中的节点(例如,节点组2的边缘节点)传输路线更新消息。假定路线更新消息包括标识第一节点组的特定网络前缀。

如附图标记104所示,路线更新消息可以包括由节点组1生成的第一签名。第一签名可以对应于与路线更新消息对应的路线的第一“跳”,并且可以由跨过节点组1的节点组边界向节点组2传输消息的节点组1中的边缘节点生成。例如,节点组1可以生成路线更新消息,并且可以签署路线更新消息或者向路线更新消息附接第一签名。如另外所示,路线更新消息可以包括标识节点组1的网络地址或者前缀(例如,ng1路线更新)。

如附图标记106所示,节点组2可以验证与路线更新消息相关联的每个签名(例如,第一签名)。假定节点组2确定第一签名有效。如另外所示,基于确定第一签名有效,节点组2可以签署路线更新消息。在一些实现方式中,节点组2可以向路由表添加标识从节点组2到节点组1的路线的信息(例如,基于节点组1的网络地址或前缀)。

如附图标记108所示,作为上游节点组的节点组2可以向作为下游节点组的节点组3提供路线更新消息。如另外所示,路线更新消息可以包括对应于节点组1与节点组2之间的路线的第一签名、以及对应于节点组2与节点组3之间的路线的第二签名。如附图标记110所示,节点组3可以验证第一签名和第二签名,并且可以在第一签名和第二签名的验证成功时向路线更新消息添加第三签名。在一些实现中,节点组3可以向节点组3的路由表添加标识到节点组1的路线的信息。

如附图标记112所示,作为上游节点组的节点组3可以向作为下游节点组的节点组4提供路线更新消息,并且节点组4可以执行类似于节点组2和节点组3执行的操作。以这一方式,节点组1到节点组4执行安全处理(例如,bgpsec等)以改善路线更新消息的安全性。然而,当路线更新消息的路径中的节点组的量增加时,可能增加在验证节点组签名时的处理器使用。

图1b示出了在两个不同路线上接收路线更新消息的节点组(例如,节点组6)的示例。如图所示,节点组1(例如,原始节点组)可以生成路线更新消息。路线更新消息可以标识节点组1(例如,基于对应于节点组1的网络地址或前缀)。如另外所示,节点组1可以向节点组2提供路线更新消息,节点组2可以签署并且向节点组3提供路线更新消息,以此类推。如附图标记114所示,节点组6可以在第一路线上接收第一路线更新消息。如附图标记116所示,第一路线更新消息可以包括由节点组1、2、3和4基于第一路线更新消息正被节点组1、2、3和4验证和/或传输而生成的签名的签名链。在一些实现方式中,第一路线更新消息可以标识节点组1(例如,基于网络地址或前缀,并且基于源自于节点组1的第一路线更新消息)。如附图标记118所示,节点组6可以验证与第一路线更新消息相关联的签名(例如,ng1-ng2、ng2-ng3、ng3-ng4、以及ng4-ng6)。假定节点组6成功地验证签名。

如附图标记120所示,节点组6可以接收第二路线更新消息。假定节点组6在第一路线更新消息之后接收第二路线更新消息。如附图标记122所示,第二路线更新消息可以包括由节点组1、2、3和5基于第二路线更新消息正被节点组1、2、3和5验证和/或传输来生成的签名的签名链。如另外所示,第二路线更新消息可以标识节点组1(例如,基于网络地址或前缀,并且基于源自于节点组1的第二路线更新消息)。

如附图标记124所示,节点组6可以确定签名链的一部分先前已经被验证(例如,ng1-ng2和ng2-ng3)。例如,基于第一路线更新消息和第二路线更新消息与标识节点组1的网络地址或前缀相关联,并且基于ng1-ng2(例如,原始节点组)和ng2-ng3的签名被包括在第一路线更新消息和第二路线更新消息中,节点组6可以确定节点组6先前已经验证ng1-ng2和ng2-ng3的签名。

如附图标记126所示,基于ng1-ng2和ng2-ng3的签名先前已经被验证并且基于源自于节点组1的第一路线更新消息和第二路线更新消息,节点组6可以不重新验证ng1-ng2和ng2-ng3的签名。因此,节点组6保留了否则可能用于重新验证ng1-ng2和ng2-ng3的签名的处理器资源。

图1c是确定置信节点是否已经验证一个或多个签名的示例。如图1c和附图标记128所示,节点组6中的节点1可以从节点组4接收第一路线更新消息。如另外所示,第一路线更新消息可以包括具有ng1-ng2、ng2-ng3、ng3-ng4和ng4-ng6的签名的签名链。

如附图标记130所示,节点1可以成功地验证签名链。如附图标记132所示,基于成功地验证签名链,节点1可以向节点组6中的节点2提供表明第一路线更新消息的签名链被验证的信息。在此,基于节点1和节点2与相同的节点组相关联,节点1是节点2的置信节点。例如,节点组6的管理员能够确保内部通信的安全性使得节点组6中的节点能够信任与节点组6中的其他节点的通信。因此,当节点2接收到与特定前缀和特定原始节点组相关联的签名链时,并且当节点1先前已经验证源自于特定原始节点组并且包括特定前缀的另一签名链中的一个或多个相邻签名时,节点2可以不验证一个或多个签名。因此,保留了节点2的处理器资源。

如附图标记134所示,节点2可以从节点组5接收第二路线更新消息。假定第二路线更新消息与第一路线更新消息源自于相同的原始节点组,并且假定第二路线更新消息与第一路线更新消息与相同的前缀相关联。如图所示,第二路线更新消息包括具有ng1-ng2、ng2-ng3、ng3-ng5和ng5-ng6的签名的签名链。如附图标记136所示,基于第一路线更新消息的签名链有效,节点2可以确定ng1-ng2和ng2-ng3的签名不需要重新验证。因此,节点2可以不重新验证ng1-ng2和ng2-ng3的签名,从而保留了节点2的处理器资源。

图1d示出了基于置信节点组来验证签名链的示例。如图所示,路线更新消息可以源自于节点组1,并且可以被传输给节点组2、3、4和5。如另外所示,每个节点组可以验证路线更新消息的签名链,可以签署路线更新消息,并且可以向下一节点组提供路线更新消息。如附图标记138所示,节点组3可以是节点组5的置信节点组。例如,节点组3可以与节点组5与相同的服务提供商相关联,并且可以与政府实体相关联,可以与特定安全证书相关联,等等。

如附图标记140所示,节点组5可以确定节点组3是置信节点组。因此,节点组5可以仅验证从先前没有被节点组3验证的节点组4接收的签名链中的签名(例如,ng3-ng4和ng4-ng5)。在一些实现中,节点组3可以向节点组5提供标识节点组3已经成功验证的签名链的各部分的信息。例如,节点组3可以提供对应于节点组3已经成功验证的签名链的各部分的标志、特定比特等。作为另一示例,节点组3可以丢弃所有不可验证的签名链(以及对应的路线更新消息),并且节点组5可以基于节点组3丢弃所有不可验证的签名链来信任节点组3。

以这一方式,节点组5保留了否则可能必须用于重新验证签名链中的每个签名的处理器资源。

图1e是基于路线更新消息的接收是否被允许以接收有效签名链来选择性地签署路线更新消息的示例。如图1e和附图标记142所示,节点组1和节点组2可以与供应商网络相关联。例如,节点组1和节点组2可以与因特网服务提供商、政府实体等相关联。如附图标记144所示,节点组3可以与顾客网络相关联。例如,节点组3可以与用户、顾客、客户等相关联。如附图标记146所示,节点组4可以与端用户(例如,与节点组3相关联的实体顾客或客户等)相关联。基于节点组1到节点组3是否每个都已经正确地签署了路线更新消息(例如,基于节点组4是否接收到有效签名链),节点组4可以成功地验证路线更新消息,或者无法验证路线更新消息。

如图所示,节点组2可以从节点组1接收到节点组3的在途中的路线更新消息。如附图标记148所示,节点组2可以基于顾客(例如,与节点组3相关联的实体)的订阅状态来确定节点组3是否被允许接收有效签名链。当节点组2确定节点组3被允许接收有效签名链时,节点组2可以签署路线更新消息,并且可以向节点组3提供路线更新消息。如图所示,节点组2可以确定节点组3不被允许接收有效签名链。例如,与节点组3相关联的顾客可能没有订阅接收有效签名链的业务,可以与不应当接收有效签名链的恶意实体相关联,等等。

如附图标记150所示,基于节点组3不被允许接收有效签名链,节点组2提供路线更新消息而不签署路线更新消息。如附图标记152所示,当节点组3签署并且向节点组4提供路线更新消息时,节点组4可能无法验证路线更新消息。在一些实现方式中,节点组3可能无法验证路线更新消息,并且因此可以不提供路线更新消息。在一些实现方式中,节点组3可以提供未签署的路线更新消息(例如,基于在安全会话上接收到未签署路线更新消息,并且因此没有验证与节点组2相关联的签名)。

在一些实现方式中,节点组3可以不验证路线更新消息。例如,在一些情况下,节点组3可以经由与节点组2的安全会话来接收路线更新消息,从而确保路线更新消息没有在节点组2与节点组3之间被妥协。在这样的情况下,节点组3可以不验证路线更新消息,或者可以验证除了与节点组2相关联的签名之外的签名。例如,基于经由安全会话接收到路线更新消息,节点组3可以不验证路线更新消息。因此,节点组3保留了处理器资源并且成功地验证了签名链,而不管签名链是否包括对应于节点组2的签名。

以这一方式,节点组2防止节点组3广告具有有效签名链的路由信息并且保留了否则可能用于签署路线更新消息的处理器资源。另外,通过防止节点组3广告具有有效签名链的路由信息,节点组2可以基于网络流量由于路线更新消息被路由到节点组2而减小网络拥挤。

如以上指出的,图1a至图1e被提供仅作为示例。其他示例是可能的并且可以不同于关于图1a至图1e描述的。

图2是其中可以实现本文中描述的系统和/或方法的示例环境200的图。如图2所示,环境200可以包括节点210。节点210的集合可以形成节点组220。另外,环境200可以包括网络230。环境200的设备可以经由有线连接、无线连接、或者有线连接和无线连接的组合来交互。

节点210包括能够处理和/或在端点设备之间传送流量的一个或多个网络设备(例如,一个或多个流量传送设备)。例如,节点210可以包括防火墙、路由器、网关、交换机、集线器、桥接器、反向代理、服务器(例如,代理服务器)、安全设备、入侵检测设备、负载平衡器、或类似设备。

节点组220包括一个或多个节点210(例如,促进不同节点组220之间的通信的一个或多个边缘节点210和/或促进特定节点组220中的节点210之间的通信的一个或多个核心节点210)。在一些实现方式中,节点组220可以由特定实体(例如,服务提供商)来掌管或管理。在一些实现方式中,节点组220可以与规定在节点组220内路由网络流量的规则的一个或多个内部网关协议相关联。在一些实现方式中,节点组220可以与规定在不同节点组220之间路由网络流量的规则的一个或多个外部网关协议(例如,边界网关协议等)相关联。在一些实现方式中,节点组220可以包括自治系统(as)。

网络230包括一个或多个有线网络和/或无线网络。例如,网络230可以包括蜂窝网络(例如,长期演进(lte)网络、3g网络、码分多址(cdma)网络等)、公共陆地移动网络(plmn)、局域网(lan)、广域网(wan)、城域网(man)、电话网络(例如,公共交换电话网络(pstn))、专用网络、自组网络、以太网、因特网、基于光纤的网络、云计算网络等、和/或这些或者其他类型的网络的组合。在一些实现方式中,网络230可以包括一个或多个节点组220。

图2所示的设备和网络的数目和布置被提供作为示例。实际上,可以存在与图2所示的相比附加的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或者不同地布置的设备和/或网络。另外,图2所示的两个或多个设备可以在单个设备内实现,或者图2所示的单个设备可以实现为多个分布式设备。另外地或者替选地,环境200的设备集合(例如,一个或多个设备)可以执行被描述为由环境200的另一设备集合执行的一个或多个功能。

图3是设备300的示例部件的图。设备300可以对应于节点210和/或节点组220。在一些实现方式中,节点210和/或节点组220可以包括一个或多个设备300和/或设备300的一个或多个部件。如图3所示,设备300可以包括输入部件的集合305、交换部件310、输出部件的集合315、以及控制器320。在一些实现方式中,设备300的各部件可以经由有线连接、无线连接、或者有线连接和无线连接的组合来交互。

输入部件305包括用于连接到设备300的物理链路的附接点,并且可以是用于由设备300接收的即将到来的流量(例如,分组)的进入点。输入部件305可以处理即将到来的流量,诸如通过执行数据链路层封装或解封装。在一些实现中,输入部件305可以发送和/或接收分组。在一些实现方式中,输入部件305可以包括输入线路卡,输入线路卡包括:一个或多个分组处理部件(例如,是集成电路的形式),诸如一个或多个接口卡(ifc);分组转发部件、线路卡控制器部件、输入端口、处理器、存储器、和/或输入队列。

交换部件310与输入部件305和输出部件315交互。在一些实现方式中,交换部件310可以经由一个或多个交叉开关、经由一个或多个总线、和/或使用共享存储器来实现。共享存储器可以用作瞬态缓冲器以在来自输入部件305的分组被实际上调度用于递送给输出部件315之前存储所述分组。在一些实现方式中,交换部件310可以使得输入部件305、输出部件315和/或控制器320能够通信。

输出部件315包括用于连接到设备300的物理链路的附接点,并且可以是用于由设备300传输的即将离开的流量(例如,分组)的离开点。输出部件315可以存储分组和/或可以调度分组用于输出物理链路上的传输。输出部件315可以支持数据链路层封装或解封装、和/或各种更高层协议。在一些实现方式中,输出部件315可以发送分组和/或接收分组。在一些实现方式中,输出部件315可以包括输出线路卡,输出线路卡包括:一个或多个分组处理部件(例如,以集成电路的形式),诸如一个或多个ifc;分组转发部件、线路卡控制器部件、输出端口、处理器、存储器、和/或输出队列。在一些实现方式中,输入部件305和输出部件315可以用相同的部件集合来实现(例如,输入/输出部件可以是输入部件305和输出部件315的组合)。

控制器320包括例如中央处理单元(cpu)、微处理器、微控制器、现场可编程门阵列(fpga)、专用集成电路(asic)、和/或能够解释和/或执行指令的另一类型的处理器形式的处理器。处理器用硬件、固件、或者硬件和软件的组合来实现。在一些实现方式中,控制器320可以包括能够被编程以执行功能的一个或多个处理器。

在一些实现方式中,控制器320可以包括随机存取存储器(ram)、只读存储器(rom)、和/或存储用于由控制器320来使用的信息和/或指令的另一类型的动态或静态存储设备(例如,闪存存储器、磁性存储器、光学存储器等)。

在一些实现方式中,控制器320可以与连接至300的其他设备、网络和/或系统通信以交换关于网络拓扑结构的信息。控制器320可以基于网络拓扑结构信息来创建路由表,可以基于路由表来创建转发表,并且可以将转发表转发给输入部件305和/或输出部件315。输入部件305和/或输出部件315可以使用转发表来执行用于即将到来和/或即将离开的分组的路线查找。

控制器320可以执行本文中描述的一个或多个处理。控制器320可以执行响应于执行由非瞬态计算机可读介质存储的软件指令来执行这些处理。计算机可读介质在本文中定义为非瞬态存储器设备。存储器设备包括单个物理存储设备内的存储空间或者分布在多个物理存储设备上存储空间。

软件指令可以经由通信接口从另一计算机可读介质或者从另一设备被读取到与控制器320相关联的存储器和/或存储部件中。在被执行时,存储在与控制器320相关联的存储器和/或存储部件中的软件指令可以引起控制器320执行本文中描述的一个或多个处理。另外地或者替选地,可以使用硬连线电路系统代替或结合软件指令来执行本文中描述的一个或多个处理。因此,本文中描述的实现方式不限于硬件电路系统和软件的任何具体的组合。

图3所示的各部件的数目和布置被提供作为示例。实际上,设备300可以包括与图3所示的相比附加的部件、更少的部件、不同的部件、或者不同地布置的部件。另外地或者替选地,设备300的部件集合(例如,一个或多个部件)可以执行被描述为由设备300的另一部件集合执行的一个或多个功能。

图4是用于基于置信节点或节点组是否先前已经验证与相同的路由信息相关联的签名来选择性地验证签名的示例过程400的流程图。在一些实现方式中,图4的一个或多个处理框可以由节点组220来执行。在一些实现方式中,图4的一个或多个处理框可以由与节点组220分离或者包括节点组220的另一设备或设备组、诸如节点210来执行。

如图4所示,过程400可以包括接收与对应于多个不同节点组的多个不同签名相关联的路线更新消息(框410)。例如,节点组200可以接收路线更新消息。路线更新消息可以标识已经接收和/或传输路线更新消息的一个或多个其他节点组220,并且可以标识网络前缀。网络前缀可以对应于生成路线更新消息的原始节点组220,并且可以包括例如网络地址、比特掩码、掩码长度等。在一些实现中,网络前缀可以包括关于原始节点组220的网络层可达性信息。例如,原始节点组220(例如,原始节点组220中的节点210)可以生成路线更新消息,并且可以生成要与路线更新消息相关联的第一签名。

原始节点组220可以向第二节点组220(例如,下游节点组)提供路线更新消息。第二节点组220可以确定第一签名是否有效以及签名何时有效,可以向路由表添加网络前缀。当与第一签名相关联的路由信息从原始节点组220到第二节点组220在途中没有变化时,第一签名可以有效。路由表可以表明在原始节点组220处经由第二节点组220可以到达网络前缀。当第二节点组220确定第一签名无效时,第二节点组220可以丢弃路线更新消息,可以存储表明第一签名无效的信息,可以提供路线更新消息而不签署路线更新消息,等等。

第二节点组220可以生成第二签名,并且可以向路线更新消息的签名链添加第二签名。因此,签名链可以包括第一签名和第二签名。第二节点组220可以向第三节点组220提供路线更新消息和签名链,第三节点组220可以执行类似的操作。例如,第三节点组220可以基于验证第一签名和第二签名来确定与第一签名和第二签名相关联的路由信息是否改变。以这一方式,基于接收路线更新消息的节点组220生成签名链。

在一些实现中,节点组220可以接收对应于原始节点组220并且包括多个不同路径上的特定前缀的多个路线更新消息。例如,节点组220可以接收源自于原始节点组220并且包括来自两个或多个不同节点组220的特定前缀的多个路线更新消息。作为另一示例,节点组220可以从特定节点组220接收多个路线更新消息,并且多个路线更新消息可以具有横贯不同路线以到达特定节点组220。作为又一示例,特定节点组220的不同节点210可以经由两个或多个不同会话向节点组220中的一个或多个节点210(例如,相同的节点210、不同的节点210)提供对应的路线更新消息。

如图4另外所示,过程400可以包括确定多个不同签名中的一个或多个签名已经被置信节点或者置信节点组验证(框420)。例如,节点组220可以确定多个不同签名中的一个或多个签名已经被置信节点210或置信节点组220验证。当签名已经被置信节点210或置信节点组220验证时,接收节点组220可以不重新验证签名。因此,保留了否则可能用于重新验证签名的接收节点组220的处理器资源。

在一些实现方式中,两个或更多个不同签名可以对应于相同的路由信息。例如,第一节点210可以使用第一签名算法来签署路由信息,第二节点210可以使用第二签名算法来签署相同的路由信息。在这样的情况下,在使用第一签名算法验证第一路线更新消息的路由信息之后,下游节点组220可以确定路由信息在与路由信息相关联的第二路线更新消息中有效,而不管第二路线更新消息中的路由信息使用第一签名算法还是第二签名算法被签署。

例如,假定下游节点组220接收到包括使用第一签名算法被签署的路由信息的第一路线更新消息,并且假定下游节点组220基于第一路线更新消息的签名来验证路由信息。另外假定下游节点组220接收到包括使用第二签名算法被签署的路由信息的第二路线更新消息。基于已经关于第一路线更新消息的签名验证了路由信息,下游节点组220可以确定路由信息有效而不验证第二路线更新消息的签名。因此,节点组220改善了在使用不同签名算法时的路由验证过程的效率。

在一些实现中,可以基于置信节点210被包括在特定节点组220中来信任置信节点210。例如,当两个节点210是相同节点组220的部分时,这两个节点可以是彼此的置信节点。作为另一示例,作为置信节点组220的部分的节点210可以是置信节点210。在一些实现中,可以基于置信节点组220与特定网络管理器或实体相关联来信任置信节点组220。例如,当第一节点组220与特定服务提供商(例如,因特网服务提供商等)相关联并且第二节点组220与特定服务提供商的顾客相关联时,第一节点组220可以是第二节点组220的置信节点组。在一些实现中,可以基于置信节点组220与表明置信节点组220应当置信的特定证书、协议等相关联来信任置信节点组220。

如图4另外所示,过程400可以包括验证多个不同签名中除了一个或多个签名之外的其余签名(框430)。例如,节点组220可以验证除了被置信节点210或置信节点组220验证的一个或多个签名之外的与路线更新消息相关联的签名链中的零个或多个其余签名。节点组220可以基于对应于其余签名的安全密钥、基于标识对应于其余签名的节点组220的信息等来验证其余签名。例如,每个签名可以标识由签名生成的对应节点组220,并且节点组220可以基于与对应节点组220相关联的相应安全密钥(例如,对应于每个节点组220的私有密钥的公共密钥)来处理每个签名。节点组220可以不重新验证已经被置信节点210或置信节点组220验证的签名,这节省了与节点组220相关联的处理器资源。

在一些实现中,基于经由安全会话接收到路线更新消息,节点组220可以不验证路线更新消息的特定签名。例如,当发送节点组220传输路线更新消息时,发送节点组220可以签署路线更新消息以表明路线更新消息已经从发送节点组220直接行进到接收节点组220。当发送节点组220与和接收节点组220的安全会话相关联时,可以基于安全会话来保护路线更新消息被篡改、重新路由、中间人攻击等。因此,接收节点组220可以通过不验证由发送节点组220生成的签名来保留处理器资源。

在一些情况下,节点组220可以验证签名以确定与签名相关联的路由信息是否有效。另外地或者替选地,节点组220可以确定与特定签名相关联的路由信息是否已经被验证,而不管特定签名是否被验证。例如,路由信息可以已经被置信节点组220使用第一签名算法验证或者签名,然后可以被另一节点组220使用第二签名算法来签名(例如,在不同的路线更新消息中)。当下游节点组220确定路由信息已经被置信节点组220验证时,下游节点组220可以跳过与其他节点组220相关联的签名的验证,而不管由其他节点组220使用的签名算法。

如本文中使用的,签名的验证和路由信息的验证可以可互换地使用。例如,当签名被称为被验证时,可以表明对应的路由信息已经被验证。类似地,当节点组220确定签名已经被验证时,节点组220可以另外地或者替选地确定对应的路由信息已经被验证。换言之,当在验证签名或者确定签名是否已经被验证的上下文中描述本文中描述的实现时,本文中描述的实现同样适用于确定对应的路由信息是否已经被验证。类似地,如果在验证路由信息和确定路由信息是否已经被验证的上下文中描述本文中描述的实现,则本文中描述的实现同样适用于验证对应签名以及确定对应签名是否已经被验证。

如图4另外所示,过程400可以包括签署和/或提供路线更新消息(框440)。例如,节点组220可以生成用于路线更新消息的签名和/或可以向一个或多个其他节点组220提供路线更新消息。在一些实现方式中,节点组220可以基于验证其余签名的结果来更新路由表。例如,假定路线更新消息标识特定网络地址,并且假定路线更新消息经由节点组220的特定集合被提供给节点组220。在这样的情况下,节点组220可以更新路由表以表明网络流量能够经由节点组220的特定集合被路由到特定网络地址。另外地或者替选地,节点组220可以向一个或多个下游节点组220、诸如通过单跳与节点组220相关联的其他节点组220提供路线更新消息。在一些实现中,节点组220可以丢弃路线更新消息(例如,当路线更新消息的验证不成功时等)。在以下实现中,节点组220可以在提供路线更新消息之前不生成用于路线更新消息的签名,如下面结合图5更加详细地描述的,这可以减少节点组220的处理器使用。

以这一方式,节点组220保留了否则可能用于每次接收到路线更新消息时验证签名链中的每个签名的处理器资源和网络资源。

虽然图4示出了过程400的示例框,然而在一些实现方式中,过程400可以包括与图4中描绘的相比附加的框、更少的框、不同的框、或者不同地布置的框。另外地或者替选地,过程40的框中的一个或多个框可以并行执行。

图5是用于基于路线更新消息的另外的接收者是否被允许接收有效签名链来选择性地签署路线更新消息的示例过程500的流程图。在一些实现中,图5的一个或多个处理框可以由节点组220中的一个或多个节点210来执行。在一些实现方式中,图5的一个或多个处理框可以由于节点组220分离或者包括节点组220的另一设备或设备组、诸如节点210来执行。在一些实现方式中,过程500可以结合过程400来使用。在一些实现方式中,过程500可以独立于过程400来使用。

如图5所示,过程500可以包括接收或生成路线更新消息以提供给接收节点组(框510)。例如,提供节点组220可以接收或生成路线更新消息。在一些实现中(例如,当提供节点组220接收到路线更新消息时),路线更新消息可以与标识先前已经签署路线更新消息的节点组220的签名链和/或信息相关联,如本文中其他地方更加详细地描述的。在一些实现方式中,提供节点组220可以生成路线更新消息。

路线更新消息可以被提供给接收节点组220,或者可以在到接收节点组220的途中。在一些实现方式中,接收节点组220可以与除了提供节点组220的不同的网络管理员、不同的实体等相关联。另外地或者替选地,接收节点组220可以与和提供节点组220相关联的实体的顾客相关联。

如图5另外所示,过程500可以包括确定接收节点组是否被允许接收有具有效签名链的路线更新消息(框520)。例如,提供节点组220可以确定接收节点组220是否被允许接收与有效签名链相关联的路线更新消息。有效签名链可以包括签名的集合,该签名的集合能够或者已经关于对应于签名的集合的每个节点组220被成功验证。换言之,有效签名链可以包括对应于传输路线更新消息的每个节点组220的有效签名。

在一些实现方式中,提供节点组220可以存储或获取表明接收节点组220是否被允许接收有效签名链的信息。例如,提供节点组220可以从网络管理员设备或另一设备获取这一信息。在一些实现方式中,提供节点组220可以基于与接收节点组220相关联的订阅信息来确定接收节点组220是否被允许接收有效签名链。例如,当接收节点组220被要求订阅特定业务以被允许接收有效签名链时,提供节点组220可以基于表明接收节点组220是否订阅特定业务的订阅信息来确定接收节点组220被允许接收有效签名链。

在一些实现方式中,提供节点组220可以基于标识接收节点组220的信息、基于标识与接收节点组220相关联的网络管理员的信息、基于表明接收节点组220与恶意设备或实体相关联的信息、基于提供节点组220是否能够与接收节点组220建立安全会话、基于提供节点组220是否能够认证接收节点组220、基于接收节点组220是否先前已经接收到具有有效签名链的路线更新消息等来确定接收节点组220是否被允许接收有效签名。

如图5另外所示,如果接收节点组被允许接收具有有效签名链的路线更新消息(框520——是),则过程500可以包括签署路线更新消息并且提供路线更新消息(框530)。例如,当提供节点组220确定接收节点组220被允许接收与有效签名链相关联的路线更新消息时,提供节点组220可以生成签名并且可以将签名添加到与路线更新消息相关联的签名链。提供节点组220可以将路线更新消息和签名链提供给接收节点组220。在一些实现方式中,提供节点组220可以验证签名链,并且可以基于验证签名链来将签名添加到签名链。以这一方式,提供节点组220允许接收节点组220成功地验证路线更新消息和/或向一个或多个其他节点组220提供路线更新消息连同有效签名链。

如图5另外所示,如果接收节点组不被允许接收具有有效签名链的路线更新消息(框520——否),则过程500可以包括提供路线更新消息而不签署路线更新消息(框540)。例如,当提供节点组220确定接收节点组220不被允许接收有效签名链时,提供节点组220可以提供路线更新消息而不提供有效签名链。在一些实现方式中,提供节点组220可以提供路线更新消息而不向签名链添加签名,这保留了否则可能用于向签名链添加签名的提供节点组220的处理器资源。通过提供路线更新消息而不签署路线更新消息,提供节点组220防止其他接收路线更新消息的节点组220成功地验证路线更新消息。从而,提供节点组220可以有效地阻止接收节点组220通过有效签名链向其他节点组220广播路线。因此,如果其他节点组220被配置为仅接受具有有效签名的路线,则其他节点组220将拒绝所述路线。通过此方式,节点组220削弱接收节点组220通过有效签名链向其他节点组220提供路线的能力。

在一些实现方式中,提供节点组220可以向签名链添加无效签名。另外地或者替选地,提供节点组220可以向签名链添加一些节点组220认为有效但是其他节点组220认为无效的签名。例如,假定节点组220的第一集合认为特定签名类型有效并且假定节点组220的第二集合认为特定签名类型无效。还假定提供节点组220确定接收节点组220不被允许向节点组220的第二集合提供有效签名链。在这样的情况下,提供节点组220可以使用特定签名类型的签名来签署路线更新消息。因此,提供节点组220防止接收节点组220广告关于节点组220的第二集合的有效路径。

以这一方式,提供节点组220保留了否则可能用于签署路线更新消息的处理器资源。另外,提供节点组220可以通过防止未授权方广告具有有效签名链的路线信息来减少网络拥挤。另外,提供节点组220可以基于防止恶意方获取有效签名链来改善节点组220的安全性。

虽然图5示出了过程500的示例框,然而在一些实现方式中,过程500可以包括与图5中描绘的相比另外的框、更少的框、不同的框、或者不同地布置的框。另外地或者替选地,过程500的框中的一个或多个框可以并行执行。

以上描述提供了说明和描述,而非意图排他或者将实现限于所公开的精确形式。修改和变化鉴于以上公开是可能的或者可以根据实现的实践来获取。

如本文中使用的,术语部件意图在广义上被理解为硬件、固件、和/或硬件和软件的组合。

应当理解,本文中描述的系统和/或方法可以用不同形式的硬件、固件、或者硬件和软件的组合来实现。用于实现这些系统和/或方法的实际的专用控制硬件或软件代码不限制实现。因此,本文中没有参考具体软件来描述系统和/或方法的操作和行为——应当理解,软件和硬件可以被设计成基于本文中的描述来实现系统和/或方法。

虽然权利要求中陈述和/或说明书中公开了特征的具体组合,然而这些组合并非意图限制可能实现的公开。实际上,这些特征中的很多特征可以用在权利要求中没有具体陈述和/或在说明书中没有具体公开的方式来组合。虽然下面给出的每个从属权利要求可以直接取决于仅一个权利要求,然而可能实现的公开包括结合权利要求集合中的每个其他前来要求的每个从属权利要求。

本文中使用的元件、动作或指令没有一个应当被理解为是关键的或者至关重要的,除非这样明确地描述。另外,如本文中使用的,冠词“一个(a)”和“一个(an)”意图包括一个或多个条目,并且可以与“一个或多个”可互换地使用。另外,如本文中使用的,术语“集合”意图包括一个或多个条目(例如相关条目、不相关条目、相关和不相关条目的组合等),并且可以与“一个或多个”可互换地使用。如果意图在于仅一个条目,则使用术语“一个(one)”或类似语言。另外,如本文中使用的,术语“具有(has)”、“具有(have)”、“具有(having)”等意图是开放式术语。另外,短语“基于”意图表示“至少部分基于”,除非另外明确地陈述。

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