内容发布更新时间 : 2024/12/26 20:58:19星期一 下面是文章的全部内容请认真阅读。
龙源期刊网 http://www.qikan.com.cn
域间路由协议与S—BGP安全解决方案
作者:郑时青
来源:《软件导刊》2017年第06期
摘要:BGP协议已经成为实事上的互联网域间路由协议,目前BGP最突出的问题是缺乏足够的安全保障。对BGP协议的安全问题、相应的安全技术及解决方案进行深入探讨,分析域间路由协议安全问题产生的原因与主要攻击手段,给出BGP安全技术与S-BGP安全解决方案,并分析其优势与局限。
关键词:域间路由协议;S-BGP协议;路由安全 DOIDOI:10.11907/rjdk.171093 中图分类号:TP309
文献标识码:A 文章编号:1672-7800(2017)006-0176-04 0 引言
自从Internet商业化以来,BGP协议被广泛使用已超过10年,协议本身的简单与弹性使得BGP在全球网中扮演了基础性角色。然而BGP并没有提供足够的安全担保,由此产生一系列安全问题,包括恶意攻击、错误配置等,这些都会对网络产生不同程度的影响。随着网络关键应用的不断增多,BGP安全问题带来的隐患也越来越大,尤其是银行、远程在线医疗等应用,若在关键时刻因网络故障而出现问题,其后果将会很严重。因此,BGP安全问题越来越受到重视。本文着重探讨BGP安全问题,包括针对BGP的主要攻击手段、安全技术手段及典型的S-BGP安全解决方案等。 1 BGP攻击手段
典型的BGP攻击手段分为3类:IP前缀与AS号攻击、BGP对等路由器攻击、路由策略及属性攻击[1]。其中,IP前缀与AS号攻击、BGP对等路由器攻击较为常见。 1.1 IP前缀与AS号攻击
IP前缀与AS号是BGP路由中的关键信息。BGP使用IP前缀和AS路径长度,配合其它属性作为选定最佳路由的度量标准。IP前缀用来指明一个IP地址中用以确定一个网络的地位位数。因为IP前缀具有可变长度,因而一个IP前缀可能被另一个IP前缀完全包含。BGP在选择具有重叠IP前缀路由时,会依据“最长前缀匹配(Longest Prefix Match)”原则,优先选择更长IP前缀的路由。此外,每个自治系统AS都有唯一的标识,称为AS号(AS Number),由IANA(Internet Assigned Numbers Authority)授权分配[2]。
龙源期刊网 http://www.qikan.com.cn
BGP不保证发布BGP路由信息的AS域会使用分配给它的AS号,或者AS实际拥有它在路由信息中声明的网络IP前缀。只要邻居路由能够接受,一个AS的BGP路由器通过配置能够向其它BGP路由器发布任意AS号或IP前缀的路由信息。而这将导致BGP协议面临前缀攻击(Prefix Hijacking),前缀攻击会导致IP流被定向到错误的AS域。具体的攻击方式可分为4类,包括伪造IP前缀、伪造IP前缀与AS号、伪造子网段IP前缀,以及伪造子网段IP前缀与AS号[3]。具体示例如图1所示。 1.2 BGP对等路由器攻击
一对路由器通过建立运行在TCP连接上的BGP会话来交换BGP路由声明与撤消消息。BGP相邻路由器之间通常在IP层上存在直接的物理连接,也可能需要通过中介设备进行交互,比如通过防火墙或另一个路由器,在这种情况下,TCP连接必须要经过IP层的多跳。所有这些BGP路由器之间的TCP连接通道都很容易被攻击,具体攻击手段包括:
(1)机密性攻击(Attacks Against Confidentiality)。两个路由器会通常期望或假定它们之间的信息不会被第三方获得。可是第三方能够窃听(Eavesdrop)BGP路由器之间的消息流,并可能从中了解策略与路由信息。即使这些消息不够敏感,也能够从BGP数据流推测出服务提供商之间的商业关系甚至是拓扑关系。
(2)完整性攻击(Attacks Against Message Integrity)。假设使用BGP路由协议通信的双方路由器分别为A和B,而攻击者记为C。则C能够以“中间人(Man in the Middle)”的方式对A或B实施攻击。从而完成信息插入(Insert)、信息删除(Delete)、信息篡改(Modify)、信息重放(Replay)攻击。
(3)拒绝服务攻击(Denial-of-Service Attack)。远程攻击者C与路由器A或B没有直接连接,路由器之间TCP通信本身可能也会成为拒绝服务攻击(Denial-of-service Attack,DOS)攻击的目标。TCP使用3次握手(SYN, SYN-ACK, and ACK)机制来建立A与B之间的通信连接,使用FIN 或RST结束连接[4]。针对TCP的这种通信建立与断开机机制,攻击者C可以实施SYN洪泛攻击(SYN Flooding Attack)。C向B发送大量的SYN包,但是始终不完成3次握手(比如:始终不发送ACK包),从而耗尽B的连接内存,导致B无法完成其它任何TCP连接。B的邻接路由器将会认为B不可达,从而撤消所有与B有关的路由。更为严重的情况下,当C暂停攻击,B重新在线后,所有与B有关的路由又要再次发布。当C再次攻击时,这种过程将重复出现,从而导致“路由振动(Route Flapping)”的出现。而路由振动对于所有BGP路由器都是有害的,因为它会消耗路由器处理器资源与带宽资源。 2 BGP安全技术
BGP安全保护层次划分如图2所示,不同层次采用不同的安全技术,实现对不同对象的安全保护。需要说明的是,这些层次都是相对于BGP协议而言的。
龙源期刊网 http://www.qikan.com.cn
安全保护实现的层次上移,保护的粒度就越粗,对网络结构与功能的影响就越小;层次下移则反之。下面将阐述这3个层次采用的典型安全技术。 2.1 密码技术
密码技术是对抗网络攻击的有效手段,通常可将其分为对称密码技术、非对称密码技术、信息摘要技术、防重放技术等[5]。典型的密码技术分类与对比如表1所示。
密码技术在部署上面临的最大问题是需要对协议进行功能上的改造,增加相应的密码处理硬件或软件。此外,进行密码处理需要一定的资源,从而不可避免地带来性能上的损失。 2.2 BGP路由过滤与注册
在BGP控制层通常采用基于静态规则的过滤(Static Rules Filtering)机制来实现对恶意路由过滤。常用过滤规则包括:专用地址文档(Documented Special Use Address,DSUA),无法与已分配数据匹配的IP地址块或AS表。此外也有一些其它补充性的规则,比如私有AS号过滤规则或过长AS路径过滤规则等。然而,静态规则过滤能够提供的安全强度无法与采用密码技术的保护方式相比。此外,单纯的静态过滤规则也不能很好地应对某些AS系统有意或无意的破坏规则行为,因而有时需要更加灵活的动态过滤。
BGP协议存在的一个根本问题是BGP规则或属性只能达到局部最优。特别是第一次收到其它AS发布的BGP路由信息时,没有规则或经验能够判断该信息的合法性。如果AS能够了解全网的正确路由信息,就会更加容易检测并过滤掉非法路由信息。路由注册表(Routing Registries)技术的目的正在于此。但若形成这样的注册表需要解决两方面的问题:一是如何保证注册表项初始的正确与合法性,注册方担心自己路由信息的正确性,而接收方则会担心注册的合法性;二是如何解决BGP路由注册表的存储与安全访问,PKI可能为此提供解决办法。BGP是全球性的域间路由协议,注册者分布在全球不同的组织中,但目前尚未有全球范围的PKI。
2.3 BGP安全会话
在BGP会话层即TCP层,实施安全增强的优势十分明显,它面向的是会话数据,可实现较细粒度的安全控制,同时保证了对BGP应用层的透明性。安全会话层的安全保护可分为两类:一类使用MD5、对称加密技术、非对称加密、防重放技术来实现BGP会话信息的完整性、机密性及防重放特性,该层最常采用且安全功能较完善的是IPSEC技术,它能够同时提供完整性、机密性、抗重放攻击及抗DOS攻击等安全服务[6];另一类是未采用密码手段的技术,如:HOP完整性协议和GTSM(the Generalized TTL Security Mechanism)。未采用密码技术的安全会话所具有的安全强度要远远低于基于密码技术的安全会话。 2.4 链路保护