掌桥专利:专业的专利平台
掌桥专利
首页

区块链增强路由授权

文献发布时间:2023-06-19 19:16:40


区块链增强路由授权

相关申请的交叉引用

本专利申请要求由Michael McBride等人于2020年6月18日提交的、发明名称为“区块链增强路由来源授权(Blockchain Enhanced Route Origin Authorization)”的第63/040,910号美国临时专利申请的权益,该专利申请通过引用的方式并入本文中。

技术领域

本发明大体上涉及路由来源授权(route origin authorization,ROA),具体地,涉及区块链增强ROA。

背景技术

互联网服务提供商(internet service provider,ISP)和其它类型的互联网连接网络不断面临边界网关协议(border gateway protocol,BGP)攻击的威胁。在BGP攻击中,恶意攻击者通过操纵BGP路由数据使互联网流量被错误路由和/或错误处理。BGP劫持导致的互联网流量路由错误和/或错误处理对ISP和其它互联网连接网络以及互联网用户构成了重大安全威胁,因为流量可以通过恶意计算设备转发,并且通常根本不会转发到其预期目的地。

发明内容

所公开的方面/实施例提供了通过添加区块链哈希来增强ROA的技术。由于区块链哈希,相对于RPKI系统中使用的当前ROA,ROA的安全性或完整性得到了提高。因此,恶意攻击者无法成功实现BGP攻击,也无法在IP网络中不正确地转移数据包流量。因此,相对于仅利用已知ROA技术的当前路由设备,实现本文所公开的区块链增强路由授权的路由设备能够为通过电信网络路由的数据和信息提供增强的安全性。

第一方面涉及一种路由设备,包括:存储指令的存储器;耦合到存储器的处理器,处理器用于执行指令,以使路由设备:接收签名路由来源授权(route originauthorization,ROA),签名ROA包括区块链哈希;接收边界网关协议(border gatewayprotocol,BGP)更新消息,BGP更新消息包括一个或多个路由;使用签名ROA中的区块链哈希实现路由来源验证(route origin validation,ROV)过程,以确定BGP更新消息中的一个或多个路由是否有效;当ROV过程确定一个或多个路由有效时,更新路由表以包括BGP更新消息中的一个或多个路由;当ROV过程确定一个或多个路由无效时,不使用BGP更新消息中的一个或多个路由更新路由表。

可选地,根据上述任一方面,在该方面的另一种实现方式中,区块链哈希设置在签名ROA的区块链字段中。

可选地,根据上述任一方面,在该方面的另一种实现方式中,区块链哈希包括路由前缀记录。

可选地,根据上述任一方面,在该方面的另一种实现方式中,签名ROA是从互联网服务提供商(internet service provider,ISP)的服务器接收的。

可选地,根据上述任一方面,在该方面的另一种实现方式中,BGP更新消息是从另一路由设备接收的。

可选地,根据上述任一方面,在该方面的另一种实现方式中,由路由设备接收的签名ROA是由区域互联网注册机构(regional internet registry,RIR)生成的。

可选地,根据上述任一方面,在该方面的另一种实现方式中,ROV过程是使用存储在路由设备的存储器中的资源公钥基础设施(resource public key infrastructure,RPKI)软件实现的。

可选地,根据上述任一方面,在该方面的另一种实现方式中,路由设备还包括用于根据路由表路由数据包的发送器。

第二方面涉及一种路由设备实现的路由表验证方法,包括:接收签名路由来源授权(route origin authorization,ROA),签名ROA包括区块链哈希;接收边界网关协议(border gateway protocol,BGP)更新消息,BGP更新消息包括一个或多个路由;当路由来源验证(route origin validation,ROV)过程确定一个或多个路由有效时,更新路由表以包括BGP更新消息中的一个或多个路由;当ROV过程确定一个或多个路由无效时,不使用BGP更新消息中的一个或多个路由更新路由表。

可选地,根据上述任一方面,在该方面的另一种实现方式中,区块链哈希设置在签名ROA的区块链字段中。

可选地,根据上述任一方面,在该方面的另一种实现方式中,区块链哈希包括路由前缀记录。

可选地,根据上述任一方面,在该方面的另一种实现方式中,从互联网服务提供商(internet service provider,ISP)的服务器接收签名ROA。

可选地,根据上述任一方面,在该方面的另一种实现方式中,从另一路由设备接收BGP更新消息。

可选地,根据上述任一方面,在该方面的另一种实现方式中,使用存储在路由设备的存储器中的资源公钥基础设施(resource public key infrastructure,RPKI)软件实现ROV过程。

可选地,根据上述任一方面,在该方面的另一种实现方式中,从第二路由设备接收数据包,并根据路由表将数据包路由到第三路由设备。

第三方面涉及一种计算机程序产品,包括存储在非瞬时性计算机可读介质中的指令,当由处理器执行时,指令使路由设备:使用从签名路由来源授权(route originauthorization,ROA)获得的区块链哈希实现路由来源验证(route origin validation,ROV)过程,以确定边界网关协议(border gateway protocol,BGP)更新消息中的一个或多个路由是否有效;当ROV过程确定一个或多个路由有效时,更新路由表以包括BGP更新消息中的一个或多个路由;当ROV过程确定一个或多个路由无效时,不使用BGP更新消息中的一个或多个路由更新路由表。

可选地,根据上述任一方面,在该方面的另一种实现方式中,ROV过程是响应于接收包括区块链哈希的签名ROA以及接收包括一个或多个路由的BGP更新消息而实现的。

可选地,根据上述任一方面,在该方面的另一种实现方式中,签名ROA是从互联网服务提供商(internet service provider,ISP)的服务器接收的。

可选地,根据上述任一方面,在该方面的另一种实现方式中,BGP更新消息是从另一路由设备接收的。

可选地,根据上述任一方面,在该方面的另一种实现方式中,ROV过程是使用存储在非瞬时性计算机可读介质中的资源公钥基础设施(resource public keyinfrastructure,RPKI)软件实现的。

第四方面涉及一种验证系统,包括:如所公开的实施例中的任一实施例的路由设备;与路由设备通信的互联网服务提供商(internet service provider,ISP)的服务器;ISP的服务器用于向路由设备提供签名路由来源授权(route origin authorization,ROA);区域互联网注册机构(regional internet registry,RIR)的服务器,ISP的服务器用于向ISP的服务器提供签名ROA。

第五方面涉及一种路由设备,包括:存储指令的存储器部件;耦合到存储器部件的处理部件,处理部件用于执行指令,以使路由设备:接收签名路由来源授权(route originauthorization,ROA),签名ROA包括区块链哈希;接收边界网关协议(border gatewayprotocol,BGP)更新消息,BGP更新消息包括一个或多个路由;使用签名ROA中的区块链哈希实现路由来源验证(route originvalidation,ROV)过程,以确定BGP更新消息中的一个或多个路由是否有效;当ROV过程确定一个或多个路由有效时,更新路由表以包括BGP更新消息中的一个或多个路由;当ROV过程确定一个或多个路由无效时,不使用BGP更新消息中的一个或多个路由更新路由表。

为了清楚起见,上述任一实施例可以与上述其它任何一个或多个实施例组合以创建在本发明范围内的新实施例。

从结合附图和权利要求书的以下详细描述中,将更清楚地理解这些和其它特征。

附图说明

为了更完整地理解本发明,结合附图和具体实施方式,参考以下简要描述,其中,相同的附图标记表示相同的部件。

图1是用于使用BGP路由数据包的互联网协议(internet protocol,IP)网络。

图2是IP版本4(IPversion4,IPv4)ROA和IP版本6(IPversion 6,IPv6)ROA的表示。

图3是分布式分类账过程的表示。

图4是根据本发明的实施例的IPv4 ROA和IPv6 ROA的表示。

图5是路由设备实现的路由表验证方法。

图6是路由设备的示意图。

图7是用于路由的部件的示意图。

具体实施方式

首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可使用任何数量的技术来实现,无论这些技术是当前已知还是现有的。本发明绝不限于下文所说明的说明性实现方式、附图和技术,包括本文所说明和描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效部分的完整范围内修改。

自治系统(autonomous system,AS)是一个非常大的网络或具有单一路由策略的网络组。边界网关协议(border gateway protocol,BGP)是一种标准化的外部网关协议,旨在在互联网上的自治系统之间交换路由和可达信息。

AS可以被分配互联网协议(intemet protocol,IP)地址范围(又名网络块(netblock))。使用BGP更新消息,AS可以通告或公告网络块可达。BGP更新消息提供路由前缀,路由前缀指定到AS的路由。路由前缀包括IP地址前缀和IP地址前缀的长度(单位为位)。例如,分配了网络块“24.158.32.0”的AS可能会通过从其路由器(例如,对等路由器、边缘路由器等)发送BGP更新消息,公告路由前缀为“24.158.32.0/19”的路由,来使流量路由到AS。路由前缀“24.158.32.0/19”表示网络块的IP地址前缀为“24.158.32.0”,IP地址前缀长度为19位。路由前缀在本文可以被称为路由前缀记录。

在BGP中,路径长度是指数据包到达与数据包目的地对应的AS必须经过的AS的数量。每个AS或跳对应一个唯一的AS号(AS number,ASN)。因此,在BGP中,路径长度可以通过计算通告路径的BGP更新中唯一ASN的数量来确定。

由于通告路径的BGP消息由路由器接收,路径及其属性可以存储在路由表中,以便在沿着这些路径路由数据包时使用。响应于接收到寻址到路由前缀的数据包,路由器可以确定存储在其路由表中的路由前缀的可用路径。路由器可以确定每个可用路径的路径长度,并可以选择路径长度最短的路由作为用于路由数据包的路径。当路由器标识最短路径长度之间的联系时,可以使用路径长度以外的附加的标准来打破联系并选择用于路由数据包的路径。

图1是用于使用BGP路由数据包的IP网络100。IP网络100可以包括多个设备,例如路由器110、111、112、113、115和计算设备103、104、106、120、121、150。虽然每个路由器110、111、112、113、115在图1中示出为单个设备,但每个路由器110、111、112、113、115在实际应用中可以表示多个路由器。路由器110、111、112、113、115和计算设备103、104、106、120、121、150或网络100可以通过它们彼此的各种连接根据IP协议相互交换数据。总之,路由器110、111、112、113、115之间的连接可以代表互联网,并且在路由器110、111、112、113、115之间路由的数据可以是互联网流量。这些连接可以是有线的、无线的或其组合。路由器110、111、112、113、115可以根据BGP相互交换路由信息。每个路由器110、111、112、113、115可以被分配其自己的唯一ASN,以将一个路由器与另一个路由器区分开来。

例如,由第一ISP 180操作的第一AS的路由器110可以与计算设备103、104、106通信并向其提供服务。由第二ISP 190操作的第二AS的路由器115可以与计算设备120、121通信并向其提供服务。IP地址范围(又名网络块)可以分配给每个AS(例如,基于每个ASN),并且该实体的相应计算设备可以被分配该网络块内的IP地址。每个网络块可以具有不同的路由前缀。例如,连接到路由器110的计算设备103、104、106可以具有由第一路由前缀标识的第一AS网络块内的IP地址。相反,连接到路由器115的计算设备121、121可以具有由第二路由前缀标识的第二AS网络块内的IP地址。由于第一网络块的第一路由前缀可以标识网络块与路由器110关联,所以发往第一网络块中IP地址的互联网流量可以由其它路由器111、112、113、115路由到路由器110。类似地,由于第二网络块的第二路由前缀可以标识网络块与路由器115相关联,所以发往第二网络块中IP地址的互联网流量可以由其它路由器110、111、112、113路由到路由器115。

各种路由器110、111、112、113、115可以相互交换BGP消息,以在它们各自的路由表中创建、更新和撤销彼此之间的路由路径。当BGP事件发生时,可以从路由器110、111、112、113、115生成和发送BGP日志消息,例如反映BGP更新、BGP撤销等的BGP消息。

在正常操作期间,可以根据运行这些路由器110、111、112、113、115的相应AS通告的BGP路由信息在路由器110、111、112、113、115之间进行互联网流量的路由。例如,操作路由器110的第三ISP 170可以被分配网络块“24.158.32.0”,并且可以通过发送BGP更新,公告具有路由前缀“24.158.32.0/19”的路由,来使流量路由到路由器110。然后,路由器111、112、113和115可以根据BGP更新来更新它们的路由表,以将网络块“24.158.32.0”的互联网流量路由到路由器110,并且发往具有网络块“24.158.32.0”中IP地址的计算设备103、104、106的互联网流量可以流向路由器110,以路由到这些计算设备。

在BGP攻击中,恶意攻击者149可以使用其计算设备150例如通过路由器112来破坏AS,以劫持未分配给恶意攻击者149的网络块。恶意攻击者149的计算设备150可以通过公告恶意攻击者149实际上没有被分配到的恶意路由来使互联网流量被错误路由。继续前面路由器110与网络块“24.158.32.0”关联的示例,路由器110通常可以以“24.158.32.0/19”的路由前缀公告其路由。为了通过路由器110劫持打算用于网络块“24.158.32.0”的互联网流量,恶意攻击者149的计算设备150可以在路由器112处公告具有路由前缀“24.158.32.0/19”的恶意路由。恶意路由的公告可以根据BGP在路由器111、112、113、115之间传播,并且恶意路由可以用于由任何受影响的路由器路由互联网流量,其中,到路由器112的AS路径长度短于到路由器110的AS路径长度。

以这种方式,恶意攻击者149可以劫持用于计算设备103、104和106的互联网流量的一部分。由于当到路由器112的路径长度较短时,不是由实际分配网络块“24.158.32.0”(即路由器110)的实体计划的路由,而是恶意路由将被用于路由互联网流量,所以一些数据包将被不准确地路由到恶意攻击者149。例如,由计算设备120发送的寻址到计算设备103的互联网流量可以从路由器115路由到路由器112,因为到路由器112的路径长度将只有一跳,而不是通过中间路由器113到路由器110的两跳。

一些运行AS(或其它互联网连接网络)的ISP(如ISP 170-190)尝试通过部署安全措施来阻止BGP攻击。可用于阻止BGP攻击的安全措施的一个示例包括使用资源公钥基础设施(resource public key infrastructure,RPKI)。资源公钥基础设施(resource publickey infrastructure,RPKI),也称为资源认证,是一个专门的公钥基础设施(public keyinfrastructure,PKI)框架,旨在保护互联网的路由基础设施。RPKI提供了一种将互联网编号资源(例如,网络块、ASN等)连接到信任锚点的方法。在具有分层结构的密码系统中,信任锚点是一个权威实体,对它的信任是假的,而不派生的。

RPKI的证书结构反映了IP地址(或其它互联网编号资源)的分配方式。也就是说,IP地址最初由互联网编号分配机构(InternetAssignedNumbersAuthority,IANA)分配给区域互联网注册机构(regional Internet registry,RIR)160,这些注册机构是美国互联网编号注册机构(American Registry for Internet Numbers,ARIN)、亚太网络信息中心(Asia-Pacific Network Information Centre,APNIC)、非洲网络信息中心(AfricanNetwork Information Center,AFRINIC)、拉丁美洲和加勒比网络信息中心(LatinAmericaand Caribbean Network Information Centre,LACNIC)和欧洲网络协调中心(Reseaux IPEuropeens Network Coordination Centre,RIPE NCC)。RIR反过来将IP地址分配给本地互联网注册机构(local Internet registry,LIR),然后由LIR将IP地址分配给其客户。

IP地址块的合法持有者可以使用RPKI来控制互联网路由协议的操作,以防止路由劫持和其它攻击。具体地,RPKI用于通过BGP路由来源验证(route origin validation,ROV)保护BGP。路由器不执行任何加密操作来执行ROV。相反,签名由外部软件(例如,依赖方软件或RPKI验证器)检查,外部软件将处理后的数据馈送到路由器。

使用RPKI系统,IP地址块的合法持有者(例如,运行AS的ISP)可以使用其资源证书,就哪个AS被授权在BGP中发起其前缀作出权威的签名声明。该声明被称为签名路由来源授权(route origin authorization,ROA),该授权由上述ROV过程验证。

图2是IP版本4(IP version 4,IPv4)ROA 202和IP版本6(IP version 6,IPv6)ROA252的表示200。IPv4 ROA 202和IPv6 ROA 252各自是加密签名对象,其说明哪个AS被授权发起特定IP地址前缀或前缀集。这样的IPv4和IPv6 ROA 202、252只能为资源证书覆盖的互联网编号资源生成。术语ROA请求可与ARIN站点上的ROA互换使用,意思是为ARIN的RPKI存储库创建的路由发起授权。图2中的IPv4 ROA 202和IPv6 ROA 252各自可在图1的IP网络100内使用,以促进使用RPKI系统的数据包的路由。

如图所示,IPv4 ROA 202和IPv6 ROA 252各自包括版本号字段204。在一个实施例中,版本号字段204中的值被设置为一(1)。但是,在其它实施例中,该值可以设置为零(0)。IPv4 ROA 202和IPv6 ROA 252各自包括时间戳字段206。时间戳字段206包括表示生成与ROA对应的交易的时间的值。时间戳字段206中的值被指定为自1970年1月1日以来的秒数(例如,自纪元以来的秒数)。时间戳字段206包括在ROA 202、252中,以防止例如重放攻击。

IPv4 ROA 202和IPv6 ROA 252各自包括ROA名称字段208。ROA名称字段208可以包括用于生成名称、标识符或其它命名的字母、数字、空格和连字符(-)字符。因此,ROA名称字段208可用于标识目的。在一个实施例中,ROA名称字段208被限制为256个字符。该名称可以是由ISP等选择的任何名称。

IPv4 ROA 202和IPv6 ROA 252各自包括源AS字段210。源AS字段210包括数字或值。编号或值标识有权公告ISP指定的IP前缀的AS。在一个实施例中,源AS字段210被限制为每个ROA 202、252的一个AS。如果ISP打算从一个以上的AS发起前缀,则ISP需要为每个AS创建单独的ROA。

IPv4 ROA 202和IPv6 ROA 252各自包括开始日期字段212和结束日期字段214。开始日期字段212包括表示ROA 202、252被认为有效的第一日期的值(例如,日期)。但是,开始日期字段212中的值需要在颁发给ISP的证书颁发机构(certificate authority,CA)证书的有效期范围内。开始日期字段212可以以mm-dd-yyyy格式表示(例如,1-1-2020,表示2020年1月1日)。结束日期字段214包括表示ROA 202、252应被视为有效的最后日期的值(例如,日期)。但是,结束日期字段214中的值需要在CA证书的有效期范围内。结束日期字段214可以以mm-dd-yyyy格式表示(例如,12-31-2020,表示2020年12月31日)。

IPv4 ROA 202和IPv6 ROA 252各自包括前缀字段216、前缀长度字段218和最大长度字段220。前缀字段216包括分配给ISP并由ISP的CA证书认证的IP地址(例如192.0.2.0)或IP地址范围(例如192.168.0.0-192.168.255.255)。前缀长度字段218包括指定IP地址范围大小的值。例如,前缀长度字段218中的值可以指示前缀是32位长(或某个其它长度)。

前缀字段216和前缀长度218可以统称为路由前缀。例如,ROA 202的路由前缀可以是“192.0.2.0/24”。类似地,ROA 252的路由前缀可以是“2001.DB8::/32”。

最大长度字段220(又名最大长度字段)包括标识特定路由支持的最小精确前缀长度公告的值。例如,最大长度字段220中的值可以指示最小可接受的前缀长度是16位长(或某个其它长度)。最大长度字段220是可选的。当没有提供最大长度字段220时,则将在ROA202、252中仅指定输入的确切前缀。

可一次在ROA 202、252包括一个以上的前缀。在这种情况下,ISP需要为这些字段中的每个字段提供值前缀、前缀长度和最大长度值。在一些情况下,一个或多个字段可能留空。

如图2所示,版本号204、时间戳206、ROA名称字段208、源AS 210、开始日期字段212、结束日期字段214、前缀字段216、前缀长度字段218和最大长度字段220后面都跟随尾随竖线(例如,|)222。也就是说,尾随竖线222中的一个跟随ROA 202、252中的每个字段,以将不同的字段彼此分离或分隔。

虽然IPv4 ROA 202和IPv6 ROA 252可以适合于促进使用RPKI系统的数据包的路由,但它们具有缺点。例如,IPv4 ROA 202和IPv6 ROA 252仍然容易被实现BGP攻击的恶意攻击者(例如,恶意攻击者149)操纵或破坏。因此,需要设计用于增强IPv4 ROA 202和IPv6ROA 252的安全性的附加保障措施。

本文公开了通过添加区块链哈希来增强ROA的技术。由于区块链哈希,相对于RPKI系统中使用的当前ROA,ROA的安全性或完整性得到了提高。因此,恶意攻击者无法成功实现BGP攻击,也无法在IP网络中不正确地转移数据包流量。因此,相对于仅利用已知ROA技术的当前路由设备,实现本文所公开的区块链增强路由授权的路由设备能够为通过电信网络路由的数据和信息提供增强的安全性。

图3是分布式分类账过程300的表示。分布式分类账过程的一个示例被称为区块链。区块链是一个不断增长的记录的列表(称为块302),这些记录使用密码学链接(304),以形成分布式分类账306。从设计上讲,区块链可以抵抗对其数据的修改。这是因为一旦记录,在不改变所有后续块302的情况下,任何给定块302中的数据都不能追溯地改变。为了用作分布式分类账306,区块链通常由共同遵守用于节点间通信和验证新块的协议的对等网络管理。尽管区块链记录并非不可更改,但区块链可以被认为是安全的,并且是具有高容错性的分布式计算系统的例证。因此,区块链提供了一个开放的、分布式的分类账,可以高效、以可验证和永久的方式记录双方之间的交易。

如图3所示,每个块302包括块302的密码哈希308、前一个块302的密码哈希310和代表交易记录的数据312。虽然图3中未示出,但每个块302还包括时间戳,并且可以包括用于实现区块链概念的其它信息。

密码哈希308,本文可以被称为哈希或区块链哈希,例如使用安全哈希算法256(SHA-256)、SHA-512等生成。区块链哈希的结果可以是代表块302的“指纹”的一系列字母和数字。

数据312标识交易的各方(例如,“从”和“到”)以及交易的金额。虽然图3中描绘了单个交易,但数据312可以包括许多有效交易。在实际应用中,数据312可以包括用于促进区块链过程的其它信息。

记住上述内容,块302保存被哈希并编码到梅克尔树中的成批有效交易。在密码学和计算机科学中,梅克尔树(又名哈希树)是一种树,其中,每个叶节点都用数据块的密码哈希标记,每个非叶节点都用其子节点标签的密码哈希标记。哈希树支持对大型数据结构的内容进行高效和安全的验证。

如图3中的表示300所示,每个块302包括区块链中先前块302的密码哈希308,密码哈希308将两个块链接起来。链接的块302形成链。这个迭代过程确认了前一个块302的完整性,一直回到初始块302(被称为起源块)。

图4是根据本发明的实施例的IP版本4(IP version 4,IPv4)ROA 402和IP版本6(IP version 6,IPv6)ROA 452的表示400。IPv4 ROA 402和IPv6 ROA 452各自是加密签名对象,其说明哪个AS被授权发起特定IP地址前缀或前缀集。这样的IPv4和IPv6 ROA 402、452只能为资源证书覆盖的互联网编号资源生成。图4中的IPv4 ROA 402和IPv6 ROA 452各自可在图1的IP网络100内使用,以促进使用RPKI系统的数据包的路由。

如图所示,IPv4 ROA 402和IPv6 ROA 452各自包括版本号字段404。在一个实施例中,版本号字段404中的值被设置为一(1)。但是,在其它实施例中,该值可以设置为零(0)。IPv4 ROA 402和IPv6 ROA 452各自包括时间戳字段406。时间戳字段406包括表示生成与ROA对应的交易的时间的值。时间戳字段406中的值被指定为自1970年1月1日以来的秒数(例如,自纪元以来的秒数)。时间戳字段406包括在ROA 402、452中,以防止例如重放攻击。

IPv4 ROA 402和IPv6 ROA 452各自包括ROA名称字段408。ROA名称字段408可以包括用于生成名称、标识符或其它命名的字母、数字、空格和连字符(-)字符。因此,ROA名称字段408可用于标识目的。在一个实施例中,ROA名称字段408被限制为256个字符。该名称可以是由ISP等选择的任何名称。

IPv4 ROA 402和IPv6 ROA 452各自包括源AS字段410。源AS字段410包括数字或值。编号或值标识有权公告ISP指定的IP前缀的AS。在一个实施例中,源AS字段410被限制为每个ROA 402、452的一个AS。如果ISP打算从一个以上的AS发起前缀,则ISP需要为每个AS创建单独的ROA。

IPv4 ROA 402和IPv6 ROA 452各自包括开始日期字段412和结束日期字段414。开始日期字段412包括表示ROA 402、452被认为有效的第一日期的值(例如,日期)。但是,开始日期字段412中的值需要在颁发给ISP的CA证书的有效期范围内。开始日期字段412可以以mm-dd-yyyy格式表示(例如,1—1-2020,表示2020年1月1日)。结束日期字段414包括表示ROA 402、452应被视为有效的最后日期的值(例如,日期)。但是,结束日期字段414中的值需要在CA证书的有效期范围内。结束日期字段414可以以mm-dd-yyyy格式表示(例如,12-31-2020,表示2020年12月31日)。

IPv4 ROA 402和IPv6 ROA 452各自包括前缀字段416、前缀长度字段418和最大长度字段420。前缀字段416包括分配给ISP并由ISP的CA证书认证的IP地址(例如192.0.2.0)或IP地址范围(例如192.168.0.0-192.168.255.255)。前缀长度字段418包括指定IP地址范围大小的值。例如,前缀长度字段418中的值可以指示前缀是32位长(或某个其它长度)。

前缀字段416和前缀长度418可以统称为路由前缀。例如,ROA 402的路由前缀可以是“192.0.2.0/24”。类似地,ROA 452的路由前缀可以是“2001.DB8::/32”。

最大长度字段420(又名最大长度字段)包括标识特定路由支持的最小精确前缀长度公告的值。例如,最大长度字段418中的值可以指示最小可接受的前缀长度是16位长(或某个其它长度)。最大长度字段420是可选的。当没有提供最大长度字段420时,则将在ROA402、452中仅指定输入的确切前缀。

可一次在ROA 402、452包括一个以上的前缀。在这种情况下,ISP需要为这些字段中的每个字段提供值前缀、前缀长度和最大长度值。在一些情况下,一个或多个字段可能留空。

与图2的IPv4 ROA 202和IPv6 ROA 252不同,图4的IPv4 ROA 402和IPv6 ROA 452包括的哈希字段424包含区块链哈希。由于区块链哈希,IPv4 ROA 402和IPv6 ROA 452能够利用分布式分类账过程的好处,例如图3的区块链过程。事实上,每个ROA 402、452被有效地“链接”到先前的ROA,使得恶意攻击者无法改变ROA并恶意或秘密地转移数据包流量。因此,整个RPKI系统得到了改进,并提供了附加的安全措施。

如图4所示,版本号字段404、时间戳字段406、ROA名称字段408、源AS 410、开始日期412、结束日期414、前缀字段416、前缀长度字段418、最大长度字段420和哈希字段424后都跟随尾随竖线(例如,|)422。也就是说,尾随竖线422中的一个跟随ROA 402、452中的每个字段,以将不同的字段彼此分离或分隔。

虽然在图4中被描述为紧随最大长度字段420之后,但在实际应用中,哈希字段424可以位于ROA 402、452内。例如,哈希字段424可以紧随时间戳字段406,可以设置在结束日期字段414与前缀字段416之间,等等。哈希字段424具有足够容纳例如使用SHA-256、SHA-512等产生的哈希的长度(单位为位)。

图5是路由设备(例如路由器110)实现的路由表验证方法500。当要通过RPKI系统或过程验证路由表时,可以执行方法500。可以执行方法500,以防止恶意攻击者成功实现BGP攻击,从而防止IP网络中的数据包流量被不正确地转移。因此,相对于仅利用已知ROA技术的当前路由设备,路由设备能够为通过电信网络路由的数据和信息提供增强的安全性。

在框502中,路由设备接收包括区块链哈希的签名ROA。在一个实施例中,区块链哈希设置在签名ROA(例如,ROA 402、452)的区块链哈希字段(例如,哈希字段424)中。在一个实施例中,区块链哈希包括路由前缀(例如,“24.158.32.0/19”)记录。在一个实施例中,路由设备从ISP的服务器(例如,第一ISP 180的服务器)接收签名ROA。

在框504中,路由设备接收包括一个或多个路由的BGP更新消息。在一个实施例中,路由设备(例如,路由器110)从另一个路由器(例如,路由器111、路由器112、路由器113或路由器115)接收BGP更新消息。

在框506中,路由设备使用签名ROA中的区块链哈希实现ROV过程,以确定BGP更新消息中的一个或多个路由是否有效。在一个实施例中,路由设备使用存储在路由设备的存储器中的资源公钥基础设施(resource public key infrastructure,RPKI)软件来实现ROV过程。例如,RPKI验证程序或应用程序可能已安装在路由设备上。RPKI软件或验证器用于提供BGP更新消息中的一个或多个路由是否有效的指示。

在框508中,当ROV过程确定一个或多个路由有效时,路由设备更新路由表以包括BGP更新消息中的一个或多个路由。例如,路由设备可以将更新后的路由表存储在存储器中。

在框510中,当ROV过程确定一个或多个路由无效时,路由设备不使用BGP更新消息中的一个或多个路由更新路由表。在一个实施例中,当一个或多个路由被确定为无效时,路由设备丢弃BGP更新消息。也就是说,BGP消息被丢弃,路由设备内存中的路由表不被更新。

在一个实施例中,路由设备(例如,路由器110)从第二路由设备(例如,路由器111)接收数据包,并根据路由表将该数据包路由到第三路由设备(例如,路由器113、路由器115等),该路由表可以根据RPKI验证过程的结果更新,也可以不更新。

图6是根据本发明的实施例的路由设备600(或计算设备)的示意图。路由设备600适用于实现本文所描述的公开实施例。路由设备600包括用于接收数据的入端口610和接收单元(Rx)620;用于处理数据的处理器、逻辑单元或中央处理单元(central processingunit,CPU)630;用于发送数据的发送单元(Tx)640和出端口650;以及用于存储数据的存储器660。路由设备600还可以包括耦合到入端口610、接收单元620、发送单元640和出端口650的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。

处理器630通过硬件和软件来实现。处理器630可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digitalsignal processor,DSP)。处理器630与入端口610、接收器单元620、发送单元640、出端口650和存储器660通信。处理器630包括路由模块670。路由模块670能够实现以上所描述的实施例或动作中的一个或多个。例如,路由模块670实现、处理、准备或提供本文公开的各种功能。因此,包括路由模块670对路由设备600的功能提供了实质性的改进,并实现路由设备600到不同状态的转换。或者,路由模块670实现为存储在存储器660中并由处理器630执行的指令。

路由设备600还可以包括用于向用户和从用户传输数据的输入和/或输出(input/output,I/O)设备680。I/O设备680可以包括输出设备,例如用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备680还可以包括输入设备,例如键盘、鼠标、轨迹球等,和/或用于与这些输出设备交互的对应的接口。

存储器660包括一个或多个磁盘、磁带驱动器和固态硬盘,并且可用作溢出数据存储设备,以在选择程序用于执行时存储这些程序,以及存储程序执行期间读取的指令和数据。存储器660可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。

图7是用于路由的部件700的实施例的示意图。在一个实施例中,用于路由的部件700在路由设备702(例如,路由设备600、路由器110等)中实现。路由设备702包括接收部件701。接收部件701用于接收数据包、BGP更新消息、签名ROA等。路由设备702包括耦合到接收部件701的发送部件707。发送部件707用于发送数据包、BGP更新消息、验证请求等。

路由设备702包括存储部件703。存储部件703耦合到接收部件701或发送部件707中的至少一个。存储部件703用于存储指令、代码或软件。路由设备702还包括处理部件705。处理部件705耦合到存储部件703。处理部件705用于执行存储在存储部件703中的指令,以执行本文所公开的方法。

虽然本发明提供了若干个实施例,但应理解,在不偏离本发明的精神或范围的情况下,所公开的系统和方法可以通过其它多种具体形式体现。当前的这些示例被认为是说明性的而非限制性的,并且意图不限于本文给出的细节。例如,各种元件或组件可以组合或集成在另一个系统中,或者可以省略或不实现一些特征。

此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法组合或集成。其它变更、替换、更改示例能够由本领域技术人员确定,并且可以在不偏离本文公开的精神和范围的情况下进行。

相关技术
  • 区块链系统和应用于区块链系统的路由节点的路由方法
  • 基于区块链的软件授权方法及软件授权系统
技术分类

06120115849169