一种基于逐跳监督的BGP路由验证方法转让专利

申请号 : CN201410705485.4

文献号 : CN104468349B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 延志伟王翠翠

申请人 : 中国科学院计算机网络信息中心

摘要 :

本发明涉及一种基于逐跳监督的BGP路由验证方法,包括:1)在AS(自治系统)所维护的信息中添加唯一标识值,根据该唯一标识值计算得到二进制向量数据结构BF(Bloom Filter);2)利用BF构造AS路径信息,通过在BGP更新数据包中携带BF,并将其与AS的唯一标识值进行比较,选择对应的路由更新消息转发接口,建立BGP路由;3)在数据包转发过程中,在从AS出口的数据包中携带BF字段,接收到该数据包的AS利用BF字段进行验证,判断数据包是否从上一跳按照已建立的路由正确传输,实现基于逐跳监督的BGP路由验证。本发明能够提高路由建立过程中验证的效率,实现了宣告路由与数据转发路径一致性的核验。

权利要求 :

1.一种基于逐跳监督的BGP路由验证方法,其中BGP表示边界网关协议,该方法的步骤包括:

1)在AS即自治系统所维护的信息中添加唯一标识值,根据该唯一标识值计算得到二进制向量数据结构Bloom Filter;

2)利用所述Bloom Filter构造AS路径信息,通过在BGP更新数据包中携带Bloom Filter,并将其与AS的唯一标识值进行比较,选择对应的路由更新消息转发接口,从而建立BGP路由;

3)在数据包转发过程中,在从AS出口的数据包中携带Bloom Filter字段,接收到该数据包的AS利用Bloom Filter字段进行验证,判断数据包是否从上一跳按照已建立的路由正确传输,从而实现基于逐跳监督的BGP路由验证。

2.如权利要求1所述的方法,其特征在于,步骤1)所述二进制向量数据结构Bloom Filter,包括:FBF,表示整个路径所经AS计算的Bloom Filter;

CBF,表示本AS处理之前,数据包经过的AS计算的Bloom Filter;

LBF,表示上一跳AS处理之前,数据包经过的AS计算的Bloom Filter。

3.如权利要求2所述的方法,其特征在于,步骤2)建立BGP路由的具体过程是:路由器接收到包含FBF的BGP更新数据包后,首先检查自己的标识是否包含在其中:如果是,说明正确地接收到该消息,则进行对应NLRI的路由更新,其中NLRI表示网络层可达信息;随后,该路由器判断是否有包含在FBF中的直连对等节点,并将BGP更新数据包继续转发到包含在FBF中的下一跳AS;

如果不是,说明该路由器错误地接受了BGP更新数据包,则向接收接口进行错误反馈;

接收到错误反馈后,证明路径建立有误,则路由器逐跳返回错误消息,直到源端接收到后重新规划路径。

4.如权利要求3所述的方法,其特征在于,步骤3)进行BGP路由验证的具体过程是:在数据包转发过程中,从某个AS出口的数据包被添加一个IP选项,其携带FBF、CBF和LBF三个字段,FBF经接收端AS公钥加密防止中途篡改;

某个AS收到数据包后,首先通过上一跳数据包发送AS的标识判断LBF是否应该转移到CBF,如果是,该AS认为数据包从上一跳是按照已经建立的路由正确传输的,从而LBF设置为CBF的值,并将“CBF+当前AS标识”作为新的CBF转发给下一跳;如果否,则认为上一跳AS发送有误,从而反馈错误提示消息;

如果路径所有AS验证无误,表明途径AS没有对BF进行伪造,当最后的AS接收到数据包时,用其私钥解密FBF,检查CBF与FBF是否相同:如果相同,表明数据包是按照所有路由器建立的路径与策略转发;否则表明数据包并未按照预定路径转发,则直接向数据发起端进行通知。

5.如权利要求1或2所述的方法,其特征在于:采用AS编号计算二进制向量数据结构Bloom Filter的值。

6.如权利要求5所述的方法,其特征在于:所述Bloom Filter的值是多个AS号码进行哈希计算后所生成字符串的“或”计算结果。

说明书 :

一种基于逐跳监督的BGP路由验证方法

技术领域

[0001] 本发明属于网络技术领域,具体涉及一种基于逐跳监督的BGP路由验证方法。

背景技术

[0002] BGP(Border Gateway Protocol)协议是一种域间路由协议,也是Internet最为重要的路由协议之一。BGP协议产生于20世纪80年代,当时,Internet的前身——ARPANET快速发展,为解决因网络规模急剧扩大而导致的路由可扩展性问题。RFC827提出一种解决方案,将ARPANET从一个单一协同管理的网络转化成由多个自治系统(Autonomous System,简称AS)分散互联的网络。自治系统又称为自治域,由独立实体管理。自治域内可自由选择OSPF、RIP等域内路由协议,自治域之间则采用相同的域间路由协议。最初的域间路由协议是在ARPANET中使用的EGP(Exterior Gateway Protocol),EGP协议可以说是BGP协议设计的雏形,它适用于早期基于骨干网的ARPANET,仅支持树状拓扑结构的网络。随着互联网的拓扑结构逐渐由树状向网状互联转变,EGP协议难以适应新的网络环境。此时,BGP协议作为EGP协议的替代者便应运而生。
[0003] 首个BGP协议版本在RFC 1105中制定。历经IETF IDR工作组的多次修改,目前,互联网中实际运行的版本为BGP-4。BGP协议是一种路径矢量(path vector)协议,它支持CIDR、路由聚合以及灵活多变的路由选择策略。
[0004] 历史上,BGP对于互联网的商业化和全球化立下了汗马功劳。然而,BGP协议的设计在安全方面留有巨大的缺陷,这直接导致了互联网安全历史上多起重大事件的发生。比较知名的有1997年的AS7007误配事件、2004年的TTNet路由注入事件、2008年的YouTube劫持事件以及2012年的澳洲网络中断事件。此外,BGP协议的设计缺陷也使黑客对BGP协议的攻击兴趣日渐浓厚。例如,2008年的DEFCON黑客大会,两位演讲者演示了对BGP协议进行中间人攻击以实现流量劫持的攻击方法。所有这些安全事件及攻击行为都充分暴露了BGP路由协议在安全上的脆弱性。
[0005] 基于此,有关BGP安全的研究一直非常受人关注。在国家层面,美国国土安全部于2003年正式将BGP安全纳入网络空间国家安全战略,美国国家标准与技术研究院也在2007年制定了BGP协议安全标准文档。在学术界,BGP安全也是网络安全领域的一个重要研究方向,许多研究者和安全组织一直在对其进行深入研究。比较典型的有BBN公司设计的S-BGP、Cisco公司推出的soBGP以及IETF安全域间路由(Secure Inter-Domain Routing,简称SIDR)工作组正在开发的RPKI&BGPsec协议。这些都为解决BGP安全问题提供了技术思路和努力方向。RPKI&BGPsec已成为未来大规模部署的实事标准,其中RPKI的标准化工作基本完成,体系架构已经在ICANN推动下得到五大RIR(Regional Internet Register,地区性Internet注册机构)的部署支持,BGPsec的标准化工作也在紧锣密鼓进行之中。
[0006] 因为IP地址的持有关系决定其上游的AS拓扑,所以域间路由决策基于IP地址的分配情况。因此,RPKI体系的基本功能之一是对这些资源的分配提供密码学上可验证的担保。IP地址目前的分配是层次性的:层次的顶端是IANA;在IANA之下是五大地区性因特网注册机构(RIRs)——RIRs管理自己地域内的IP地址和AS号资源;分配层次的第三层是国家因特网注册机构(NIRs)和本地因特网注册机构(LIRs或称之为ISP)以及所谓的独立分配持有者(在某些地区,第三级也可能只由ISP/LIR和独立分配持有者构成)。
[0007] 通常,IP地址块的持有者会分配其地址块的一部分给自己的部门或者与其有注册关系的机构。因为这种结构,IP地址分配可以被层次化的PKI自然地描述——每一个证书都描述一次IP地址的分配(这种描述同样适用于AS号码的分配,但是AS号码不能由除RIR和NIR之外的机构再次分配)。因此,IP地址和AS号码可以由同一套PKI维护。RPKI所解决的首要问题就是:某个AS是否是某个IP的合法拥有者,以及一个AS是否拥有通告某一IP前缀的合法授权(origin AS的真实性)。基于这一功能,BGPsec所解决的另一个问题是:一条BGP路由中的AS_PATH是否与其网络层可达信息(Network Layer Reachability Information,简称NLRI)实际传播的路径一致(即AS_APTH的完整性)。作为路径矢量协议,BGP在传播路由时携带有重要的路径信息。路径信息一方面用于指示到达该路由的网络拓扑,另一方面也用于路由选择。BGP传播的路径信息主要包含网络层可达信息(network layer reachability information,简称NLRI)和路径属性(path attribute)。网络层可达信息包含IP前缀(prefix)和长度,用于标识目的网络的CIDR地址。路径属性描述到达该CIDR地址的路由的特殊属性。例如,AS_PATH属性列出了到达目的网络所经过的一串AS路径,NEXT_HOP属性说明了该路由的下一跳地址。
[0008] 具体而言,RPKI的证书发布体系与现有的地址分配和AS号码分配体系相吻合,它从IANA和RIR向下逐级签发资源证书,直到端实体(end entity)。端实体拥有一段不可再细分的IP地址资源,它使用自己的私钥为一段名为路由源授权(route origination authorizations,简称ROA)的信息进行签名。ROA包含端实体的IP地址块以及端实体指定用于通告该段地址的AS号。所有证书以及ROA均通过一套分布式的RPKI证书库系统(RPKI repository system)进行集中和分发,每台BGP路由器都可以从自己所属的ISP分发点获取各类证书和ROA。利用端实体证书对ROA信息进行认证,就可以验证AS_PATH中的origin AS是否有通告NLRI的授权。
[0009] 然而,当前的BGPsec基本协议存在如下三个问题:
[0010] 1)将AS_PATH中所包含的所有AS进行嵌套签名,再由路由更新消息所经过的所有AS进行解密和验证,存在处理效率过低的问题;
[0011] 2)路由消息以AS号码形式包含在AS_PATH属性中,如果存在RPKI密钥泄露可直接导致BGP路由策略的泄露;
[0012] 3)BGPsec只保证了路由建立的安全,但是无法对AS是否按照所宣告路由进行实际数据包转发的核验功能。

发明内容

[0013] 本发明针对上述问题,提供一种基于逐跳监督的BGP路由验证方法,通过在BGPsec数据包中添加Bloom Filter,实现基于逐跳监督的BGP路由验证。
[0014] 本发明采用的技术方案如下:
[0015] 一种基于逐跳监督的BGP路由验证方法,其步骤包括:
[0016] 1)在AS(Autonomous System,自治系统)所维护的信息中添加唯一标识值,根据该唯一标识值计算得到二进制向量数据结构BF(Bloom Filter);
[0017] 2)利用BF构造AS路径信息,通过在BGP更新数据包中携带BF,并将其与AS的唯一标识值进行比较,选择对应的路由更新消息转发接口,从而建立BGP路由;
[0018] 3)在数据包转发过程中,在从AS出口的数据包中携带BF字段,接收到该数据包的AS利用BF字段进行验证,判断数据包是否从上一跳按照已建立的路由正确传输,从而实现基于逐跳监督的BGP路由验证。
[0019] 进一步地,步骤1)所述二进制向量数据结构Bloom Filter,包括:
[0020] FBF,表示整个路径所经AS计算的Bloom Filter;
[0021] CBF,表示本AS处理之前,数据包经过的AS计算的Bloom Filter;
[0022] LBF,表示上一跳AS处理之前,数据包经过的AS计算的Bloom Filter。
[0023] 进一步地,步骤2)建立BGP路由的具体过程是:路由器接收到包含FBF的BGP更新数据包(BGP UPDATE)后,首先检查自己的标识是否包含在其中:
[0024] 如果是,说明正确地接收到该消息,则进行对应网络层可达信息(network layer reachability information,简称NLRI)的路由更新,随后,该路由器判断是否有包含在FBF中的直连对等节点,并将BGP更新数据包继续转发到包含在FBF中的下一跳AS;
[0025] 如果不是,说明该路由器错误地接受了BGP更新数据包,则向接收接口进行错误反馈;接收到错误反馈后,证明路径建立有误,则路由器逐跳返回错误消息,直到源端接收到后重新规划路径。
[0026] 进一步地,步骤3)进行BGP路由验证的具体过程是:
[0027] 在数据包转发过程中,从某个AS出口的数据包被添加一个IP选项(ASPATH),其携带FBF、CBF和LBF三个字段,FBF经接收端AS公钥加密防止中途篡改;
[0028] 某个AS收到数据包后,首先通过上一跳数据包发送AS的标识判断LBF是否应该转移到CBF(即CBF是否等于“LBF+上一跳AS标识”),如果是,该AS认为数据包从上一跳是按照已经建立的路由正确传输的,从而LBF设置为CBF的值,并将“CBF+当前AS标识”作为新的CBF转发给下一跳;如果否,则认为上一跳AS发送有误,从而反馈错误提示消息;
[0029] 如果路径所有AS验证无误,表明途径AS没有对BF进行伪造,当最后的AS接收到数据包时,用其私钥解密FBF,检查CBF与FBF是否相同:如果相同,表明数据包是按照所有路由器建立的路径与策略转发;否则表明数据包并未按照预定路径转发,则直接向数据发起端进行通知。
[0030] RPKI体系虽然实现了互联网码号(AS号码和和IP地址)之间的可信分配与验证机制,并实现了BGP路由建立过程中的可信验证体系(BGPsec)。但与BGPsec相比,本发明有如下有益效果:
[0031] 1)用BF检查代替密钥验证,提高了路由建立过程中验证的效率;
[0032] 2)AS号码不在路有消息中传输,而是用其对应的BF,不存在任何路由泄露的风险;
[0033] 3)实现了宣告路由与数据转发路径一致性的核验。

附图说明

[0034] 图1是实施例中路由更新流程图。
[0035] 图2是实施例中数据包转发流程图。

具体实施方式

[0036] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
[0037] BGPsec基本协议存在的问题(如背景技术中所述)是本发明提出基于Bloom Filter进行逐跳监督的BGP路由验证机制的主要出发点。
[0038] 本发明在BGPsec数据包中包含三个Bloom Filter:
[0039] Final BF(FBF):整个路径所经AS(Autonomous System,自治系统)计算的Bloom Filter。
[0040] Current BF(CBF):本AS处理之前,数据包经过的AS计算的Bloom Filter。
[0041] Last BF(LBF):上一跳AS处理之前,数据包经过的AS计算的Bloom Filter。
[0042] 在此基础上,本发明将网络状态分为两种场景及各自需求:
[0043] 1)可信网络状态:在AS之间互相可信状态下,保证路由更新过程的高效性。
[0044] 2)不可信网络状态:在AS之间不可信状态下,主要解决的问题是数据包能否按照所建立的路径进行传输,如果没有按照预定路径传输,应能被准确发现。
[0045] 本发明使用RPKI存储每个AS对应的标识与其公钥为上述流程提供支撑。下面具体介绍本发明的具体内容。
[0046] 1)AS对应标识的维护
[0047] RPKI已经提供了一种可信体系架构,用于维护AS合法拥有的IP前缀信息、可验证的身份信息等。在本发明中需要在此基础上进行扩展,在AS所维护信息的中心添加其全球唯一的标识值,AS本身具有的AS号码也具有全局唯一性,但为了不泄露AS隐私信息,在实际应用中完全可以采用AS编号计算本发明所提各BF值,该值的生成宜采用至上向下分配的方式,并与CA证书的分配一起进行。假设需要为最多65536个AS进行编号,其分配规则可以采用如下方式:
[0048] ●IANA给五大RIR分配若干位(如20位)标识分别为
[0049] 00000000000000000000,0001000000000000000,0010000000000000000,[0050] 00110000000000000000,0100000000000000000
[0051] ●各RIR利用后若干位(如16位)对其所属范围的AS进行唯一编号。
[0052] 2)BF的生成
[0053] 本发明采用BF来构造AS路径信息,Bloom filter是由Howard Bloom在1970年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员,如果同一位置的两个值全0,则结果为0,否则为1。本发明中的BF是多个AS号码Hash所生成字符串的或计算结果。
[0054] ●假设AS1的标识为:00000001000100010001
[0055] ●假设AS2的标识为:00000000111100001101
[0056] ●那么包含AS1和AS2的AS_PATH的BF为:00000001111100011101
[0057] 当某AS接收到该BF时,只有其标识中为1的位置都包含在该BF中,才说明该AS包含在给AS_PATH中,否则说明该AS不在该AS_PATH中。
[0058] 3)路由建立过程
[0059] 本部分针对的是在可信网络环境下,如何高效建立从某AS到某IP前缀的路径,即如何保证BGP UPDATE数据包中包含的AS_PATH能够被所经AS快速处理并建立对应路由状态。在本发明BGP路由建立过程中,路由更新起源AS在所发送的BGP路由更新消息中携带FBF(为增加本发明的部署灵活性,在什么位置携带此信息不在本发明中规定),通过计算直连AS的标识并与FBF进行比较,该AS选择对应的路由更新消息转发接口,其流程如图1所示。本文中,AS编号/号码都是指AS号码,如AS 1024,AS 20334中,后面的数字就是AS编号/号码,而AS标识是指在本发明中经过处理用于生成BF的编号串。
[0060] 由此可见,接收到包含FBF的BGP UPDATE后,路由器首先检查自己的标识是否包含在其中:如果是,说明正确地接收到该消息,则进行对应NLRI的路由更新,随后,该路由器判断直连对等节点中的哪个包含在FBF中,并将UPDATE继续转发到包含在FBF中的下一跳AS;如果不是,则说明该路由器错误地接受了UPDATE,则向接收接口进行错误反馈。接收到错误反馈后,证明路径建立有误,则路由器逐跳返回错误消息,直到源端接收到后重新规划路径。
[0061] 基于这一流程,路由更新消息可以顺利的通过应该通过的AS,但并没有显式暴露NLRI对应的完成路径信息(本功能基于Bloom Filter的计算不可逆,即无法通过逆向计算推断某个AS是否包含在Bloom Filter中)。
[0062] 在可信网络状态下,只要建立了安全可信的路由状态,路由器就会按照建立的路由进行数据转发。但是在不可信的网络状态下,需要对数据转发进行核验,即下面步骤4)所描述的过程。
[0063] 4)路由验证过程
[0064] 在本发明数据包转发过程中,从某个AS出口的数据包被添加一个IP选项(ASPATH)(如该选项作为IPv6数据逐跳选项头的一个TLV选项),其携带FBF、CBF和LBF三个字段。对其处理流程如图2所示。
[0065] FBF经接收端AS公钥加密防止中途篡改。那么在不可信的网络环境中,某个AS收到数据包后,首先通过上一跳数据包发送AS的标识判断LBF是否应该转移到CBF(即CBF是否等于“LBF+上一跳AS标识”),如果是,该AS认为数据包从上一跳是按照已经建立的路由正确传输的,从而LBF设置为CBF的值,并将“CBF+当前AS标识”作为新的CBF转发给下一跳。如果否,则认为上一跳AS发送有误,从而反馈错误提示消息。如果路径所有AS验证无误,表明途径AS没有对BF进行伪造,当最后的AS接收到数据包时,用其私钥解密FBF,检查CBF与FBF是否相同:如果相同,表明数据包是按照所有路由器建立的路径与策略转发;否则表明数据包并未按照预定路径转发,则直接向数据发起端进行通知。
[0066] 以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。