公开/公告号CN106060014A
专利类型发明专利
公开/公告日2016-10-26
原文格式PDF
申请/专利权人 中国互联网络信息中心;
申请/专利号CN201610330795.1
申请日2016-05-18
分类号H04L29/06(20060101);H04L12/741(20130101);H04L9/32(20060101);
代理机构北京君尚知识产权代理事务所(普通合伙);
代理人邱晓锋
地址 100190 北京市海淀区中关村南四街四号1号楼
入库时间 2023-06-19 00:46:44
法律状态公告日
法律状态信息
法律状态
2019-04-26
授权
授权
2016-11-23
实质审查的生效 IPC(主分类):H04L29/06 申请日:20160518
实质审查的生效
2016-10-26
公开
公开
技术领域
本发明提出一种能够同时解决前缀劫持、AS_PATH路径劫持及路由泄露攻击问题的方法,属于计算机网络技术领域。
背景技术
边界网关协议(Border Gateway Protocol,BGP)是当前互联网中唯一的域间路由协议,其本身存在的安全漏洞会使整个互联网面临严峻的安全威胁,比如路由劫持、AS_PATH路径劫持、路由泄露攻击等。根据BGP协议规范,路由器通过发送update报文来通告其他路由器,自己发生变更的路由信息,并且对接收到的任何update报文都采取无条件信任的态度。所以,BGP协议缺乏一个安全可信的路由认证机制,无法对路由信息的真实性和完整性进行验证。
下面对几种常见的BGP安全攻击类型进行介绍:
(1)前缀劫持攻击如图1所示,路由器R4是IP地址10.0.0.0/24的合法持有者,其通过路由器R3向R2发送路由通告。同时攻击者R1也向路由器R2发送相同的IP地址信息。路由器R2会收到两个针对该IP地址的路由通告update报文,其AS_PATH分别为1和3 4。根据AS_PATH路径最短原则,R2优先选择R1到达10.0.0.0/24。由于R2没有任何认证机制证明消息的合法性和真实性,R2中目的地为10.0.0.0/24的流量原本应该路由到R4中,却被劫持到R1中,造成前缀劫持攻击。
(2)路径劫持攻击如图2所示,IP地址10.0.0.0/24的合法通告路由器R5通过R4、R3向R2通告路由,路径为3 4 5,而非法路由器R1构造虚假AS_PATH路径信息为1 5,路由器R2接收到两条到达IP地址10.0.0.0/24的路由通告报文,根据路径最短原则,R2会优先选择非法路由器R1为下一跳路由器,由此造成路径劫持攻击。
(3)目前,根据观察到的路由泄露攻击类型共分为6种,如图3所示,其中Provider表示提供者;Peering表示对等体;Customer表示客户;Prefix表示前缀;subPrefix表示子前缀;Leak表示泄露。
类型1:AS1为AS3的Provider,AS2为AS3的Provider。AS1向AS3宣告前缀P的路由,AS3将此路由信息泄露给AS2。
类型2:AS1为AS2的Peering,AS2为AS5的Peering。AS1向AS2宣告前缀P的路由,AS2将此路由信息泄露给AS5。
类型3:AS1为AS3的Provider,AS3为AS4的Peering。AS1向AS3宣告前缀P的路由,AS3将此路由信息泄露给AS4。
类型4:AS1为AS2的Peering,AS6为AS2的Provider。AS1向AS2宣告前缀P的路由,AS2将此路由信息泄露给AS6。
类型5:AS1为AS3的Provider,AS2为AS3的Provider。AS1向AS3宣告前缀P的路由,AS3作为路由源向AS2宣告P的路由信息,改变路径信息。
类型6:AS将其内部前缀信息通告给其他AS。
针对Relationship(关系)和TransitPolicy(传递策略)的判断原则是:
(1)来自Customer的路由通告给Customer,Peer以及Provider。
(2)来自Peer的路由仅通告给Customer,不向Peer和Provider传播。
(3)来自Provider的路由仅通告给Customer,不向Peer和Provider传播。
为了弥补BGP存在的设计缺陷,降低域间路由传播中的安全威胁。S-BGP(Secure BGP)、soBGP(Secure Origin BGP)等方法应运而生,但是S-BGP机制计算开销大、部署困难,soBGP方案由于缺乏信任锚的地址授权认证体系导致安全性显著下降。目前IETF SIDR工作组正在开发和推行的资源公钥基础设施(Resource Public Key Infrastructure,RPKI)和边界网关协议安全(Border Gateway Protocal Security,BGPSEC)很好的解决了上述问题。
RPKI是一种公钥基础设施,用来保障互联网基础码号资源的可信分配和安全使用。RPKI体系由三部分组成,分别是资源公钥基础设施(RPKI)、数字签名对象和分布式数据仓库。其中RPKI是本套体系中最为核心的组成部分。RPKI的证书发布体系沿袭传统的地址分配逻辑,按照互联网数字分配机构(Internet Assigned Numbers Authority,IANA)、地区性Internet注册机构(Regional Internet Registries,RIRs)、本地Internet注册机构(Native Internet Registries,NIRs)/互联网服务提供商(Internet Service Providers,ISPs)逐层向下发布认证权威(Certification Authority,CA)证书。每一个最底层的资源持有者实体都拥有一段不可再细分的IP地址资源,资源持有者用所属的CA证书继续签发EE(End-Entity)证书,用来对路由源授权(Routing Origin Authorization,ROA)的信息进行签名。ROA包含了IP地址块以及地址所有者指定用于通告该段地址的自治系统(Autonomous System,AS)号。简单来说,一个ROA就是地址所有者授权某AS发起某IP前缀路由的担保,从而对路由源进行合法性验证。
BGPSEC机制作为RPKI的功能补充,解决了AS_PATH路径劫持和路由泄露的问题。该技术通过对BGP路由的每个环节加以签名来保障整条BGP路由的安全,完成路由的路径验证功能。即BGP路由器在收到BGP update消息后,首先用上一跳公钥解密报文中的签名,并根据AS_PATH路径信息依次逐层向上验证路径的正确性和完整性。验证无误后,如果要向下一跳传递,就需要附上自己的签名。这样,就可以实现BGP完整转发路径的验证。BGPSEC实例展示如图4所示:AS1用自己的私钥为IP前缀、AS1和下一跳AS2及公钥签名,并和公钥附加到报文一起传输到AS2。AS2在接收到报文后,首先验证AS_PATH(AS路径)的正确性。继续用AS2的私钥同样为AS1签名、AS2和下一跳AS3及公钥签名,在报文中添加AS2签名,继续传递。当AS3收到此报文,首先用key2验证AS2,再用key1验证AS1。以后依次封包验证。这种机制实际上代表了AS_PATH中的前一个AS对后一个AS继续通告路由的授权。
然而在RPKI体系中,依赖方(Relying Rarty,RP)与BGP路由器交互协议在设计上存在着一些问题。如图5所示,路由器周期性的向RP发送更新请求,不论RP是否已经将数据库进行更新,所以RP数据库与路由器缓存列表之间的数据同步机制存在问题。即RP的更新频繁程度、路由器缓存列表更新周期如何设定,都会对ROA信息的真实性和准确性产生影响。同时当路由器缓存列表中的数据量非常大时,不断查询缓存列表信息会加重路由器的运行负载。由此可见,RP与BGP路由器交互机制存在很大的性能问题和安全隐患。
对于BGPSEC技术来说,由于BGPSEC对一条路由中的每一跳都要回溯验证到源AS,当路由很长时,此种操作会对路由器产生很大的性能负载。在没有完全部署BGPSEC时,对验证失败的AS无法判断是一种攻击类型还是未部署类型,而且BGPSEC机制中对一条路由的授权通告时间的制定仍存在问题与争议。同时,BGPSEC机制不能全面防范路由泄露攻击类型。
发明内容
针对现有技术中存在的性能问题和安全隐患,本发明的目的在于提出一种能够同时解决前缀劫持、AS_PATH路径劫持及路由泄露攻击问题的方法。
为实现上述目的,本发明采取的技术方案如下:
1)对RPKI的起源认证方式进行改进:将当前路由器定期同步RP数据库中的ROA信息机制改为将ROA证书置于update报文中传递机制,接收端路由器从RP申请证书公钥,验证ROA证书身份合法性并对AS是否有权宣告此IP前缀的合法性进行验证;
2)同时将上述改进的RPKI与soBGP相结合,利用其网状信任模型和ASPolicyCert证书拓扑验证机制,实现路由源验证和路径验证功能;
3)为了同时解决路由泄露安全问题,本发明对ASPolicyCert证书格式进行扩展,将AS之间的商业关系和传递策略添加到证书中,便于路由器对当前路由是否存在路由泄露进行验证。
具体来说,本发明的同时解决前缀劫持、路径劫持及路由泄露攻击的方法,包括以下步骤:
1)AS1从RP申请ROA证书,ROA证书由AS1自己签署并放到RPKI体系中的资料库中,供RP下载,ROA证书的公钥由RP进行验证以证明其正确性,ROA证书表明当前AS具有通告某IP地址的权利;同时AS1自签署ASPolicyCert证书,表明与当前AS相连的所有AS号码及相应的商业关系和传递策略;然后AS1将ROA证书与ASPolicyCert证书附加到update报文中传递到下一跳;
2)AS2接收到update报文后,首先从RP获取ROA证书和ASPolicyCert证书公钥,并使用公钥对ROA证书和ASPolicyCert证书进行解密,对当前的路由信息进行路由源认证,同时对AS1是否说明与自己相连,AS1是否授权自己进行下一跳传递,以及相应的传递策略进行确认;如果验证成功,AS2继续用自己的私钥签署ASPolicyCert证书,并通过update报文将ROA证书、AS1的ASPolicyCert证书,AS2的ASPolicyCert证书发送到下一跳;否则,丢弃报文;
3)AS3接收到update报文后,获知当前路由的AS_PAHT信息为2,1(真实的报文显示中2和1之间没有标点,是由空格隔离开),并获取AS1和AS2的公钥,对传递过来的ASPolicyCert证书进行解密;然后验证AS1的ASPolicyCert证书,检验AS1是否与AS2相连,并且获知AS1与AS2的商业关系及AS1对AS2的路由限制策略,判断是否存在路由泄露的可能;同时验证AS2的ASPolicyCert证书,检验AS2是否与AS1相连;如果验证成功,则继续将ROA证书、AS1的ASPolicyCert证书、AS2的ASPolicyCert证书和AS3的ASPolicyCert证书发送到下一跳;否则,丢弃报文;
4)ASi即其余AS依照步骤(3)的验证过程进行路径验证。基于soBGP的信任模型机制,只需要第一跳AS2对路由源进行验证,其余AS只需要对路径进行验证并判断是否存在路由泄露的可能。
步骤2)中,AS2对当前路由信息进行路由源认证时,通过查看ROA证书所携带的AS号与IP前缀信息来验证当前update报文中的AS是否具有通告当前IP的权利。
步骤2)中,ROA证书和ASPolicyCert证书可以共用同一套公、私钥对,或者用两套公、私钥对(即两个证书分别使用一套公、私钥对)。
所述ASPolicyCert证书采用扩展格式,即在ASPolicyCert证书中添加关系字段Relationship、传递策略字段TransitPolicy、前缀信息字段Prefix。
本发明提到soBGP机制中的ASPolicyCert证书,每个AS都为自己相连的AS号进行签名,防止攻击者构造不存在但路由源验证正确的AS_PATH路径。然而当攻击者位于AS拓扑结构中,其构造的AS_PATH路径不论如何验证都能满足其真实存在,所以仍可以造成路径劫持攻击。所以可以对ASPolicyCert证书中AS相连关系进一步改进,具体方法是:
对于每一个AS,在自签名的ASPolicyCert证书中,不仅包含与其相连的AS号码,还指出下一跳AS的号码,表明只授权此AS有权进行下一跳路由传递。假设攻击者位于拓扑结构中,但是验证攻击者上一跳AS签发的ASPolicyCert证书中,并未指定其有进一步路由的权利,其无法造成路径劫持攻击。
与现有技术相比,本发明的优点如下:
1)针对RPKI方案,本发明提出的改进的BGP路由源认证方案对于BGP路由器来说,不需要周期性地向RP申请数据更新,有效解决了RP数据库与BGP路由器缓存列表之间数据同步导致的安全和性能问题,保证了路由器缓存列表中信息的真实性和准确性。同时BGP路由器在进行路由源认证时,不需要查询数据量很大的路由器缓存列表,由此大大地减少了缓存列表查询机制所带来的路由负载开销。
2)针对BGPSEC方案,本发明提出了将soBGP机制的ASPolicyCert证书格式进行扩展,不仅和提出的RPKI与BGP数据同步方案有效结合,而且相较于BGPSEC,ROA证书与ASPolicyCert证书可以共用一套公私钥对,有效减少了公私钥对的使用。
3)针对soBGP方案,本发明将路径拓扑验证机制改为授权验证机制,更有效的防范了AS_PATH路径劫持攻击。
综上,本发明提出的这种能够同时解决前缀劫持、AS_PATH路径劫持及路由泄露攻击问题的方法,不仅有效解决了RPKI数据同步存在的问题,而且弥补了BGPSEC存在的问题。
附图说明
图1为前缀劫持图。
图2为路径劫持图。
图3为路由泄露攻击展示图。
图4为BGPSEC实例展示图。
图5为RP与路由器交互机制图。
图6为RPKI改进方案交互机制图。
图7为安全机制总体设计图。
图8为仿真拓扑图。
图9为路由器R2信息接收图。
图10为错误日志记录图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明对RPKI数据同步方案进行了改进,并对soBGP机制中的ASPolicyCert证书格式进行了扩展,进而将两者有效结合,由此提出了一种能够同时解决前缀劫持、AS_PATH路径劫持及路由泄露攻击问题的方式。
针对当前RPKI数据同步方案,本发明设计的改进方案的流程如图6所示:
(1)路由器R1向RP申请ROA证书。
(2)R1将ROA证书作为update报文路径属性的一部分附加到update报文中。
(3)R1将包含ROA证书的update报文发送到对等端路由器R2。
(4)R2接收到ROA证书后,向RP申请ROA证书公钥并解密证书,此公钥由RP进行审核验证。
(5)通过查看ROA证书所携带的AS号与IP前缀信息来验证当前update报文中的AS是否有通告当前IP的权利。
(6)如果验证正确则继续传递,否则将此包(update报文)丢弃。
(7)BGP路由器将申请到的ROA信息保存到本地缓存列表,以待下一次验证。BGP路由器缓存列表采用定期清空的机制,以防止更新不及时导致的信息错误。
针对当前BGPSEC路径验证和路由泄露方案,本发明提出的改进方案为将soBGP方案中的ASPolicyCert证书格式进行扩展,将上两跳路由器的路由关系和相应的路由策略添加到ASPolicyCert证书中。本发明对ASPolicyCert证书扩展格式如表1所示:
扩展soBGP机制中ASPolicyCert证书,添加关系字段Relationship、传递策略字段TransitPolicy、前缀信息字段Prefix。
表1.ASPolicyCert证书扩展格式
对于AS1来说,第二个字段表明和AS1相连的AS号。第三个字段表明AS1与AS2的关系,比如Provider-to-Customer(提供者-客户),Customer-to-Provider(客户-提供者),Peer-to-Peer(对等体-对等体)等。00表示Provider-to-Customer,01表示Customer-to-Provider,10表示Peering-to-Peering。TransitPolic字段表明AS1对AS2的传递输出的权限。比如0可以表示默认传递,1表示禁止AS2将此路由发送给上游(up stream)的AS。Prefix字段为宣告的前缀信息。
本发明的技术方案将上述对ASPolicyCert证书格式进行扩展的方法和改进的RPKI数据同步方案进行有效结合,具体验证步骤如图7所示:
1)AS1从RP申请ROA证书,ROA证书由AS1自己签署并放到RPKI体系中的资料库中,供RP下载,ROA证书的公钥也由RP进行验证,证明其正确性。ROA证书表明当前AS具有通告某IP地址的权利。同时AS1自签署ASPolicyCert证书,表明与当前AS相连的所有AS号码及相应的商业关系和传递策略;然后AS1将ROA证书与ASPolicyCert证书附加到update报文中传递到下一跳。
2)AS2接收到update报文后,首先从RP获取ROA证书和ASPolicyCert证书公钥,这两套证书可以共用同一套公、私钥对或者用两套公、私钥对。AS2使用公钥对ROA证书和ASPolicyCert证书进行解密,对当前的路由信息进行路由源认证,同时对AS1是否说明与自己相连,以及AS1是否授权自己继续下一跳及相应的传递策略,进行确认。如果验证成功,AS2继续用自己的私钥签署ASPolicyCert证书,并通过update报文将ROA证书、AS1的ASPolicyCert证书,AS2的ASPolicyCert证书发送到下一跳;否则,丢弃报文;
3)AS3接收到update报文后,获知当前路由的AS_PAHT信息为2,1,并获取AS1和AS2的公钥,对传递过来的ASPolicyCert证书进行解密。然后验证AS1的ASPolicyCert证书,看AS1是否与AS2相连,并且获知AS1与AS2的商业关系及AS1对AS2的路由限制策略,判断是否存在路由泄露的可能。同时验证AS2的ASPolicyCert证书,检验AS2是否与AS1相连。如果验证成功,则继续将ROA证书、AS1的ASPolicyCert证书、AS2的ASPolicyCert证书和AS3的ASPolicyCert证书发送到下一跳;否则,丢弃报文。
4)ASi即其余AS依照步骤(3)的验证过程进行路径验证。基于soBGP的信任模型机制,只需要第一跳AS2对路由源进行验证,其余AS只需要对路径进行验证并判断是否存在路由泄露的可能。
本发明通过修改Quagga源代码,实现将静态ROA证书附加到update报文,并传递到接收端路由器的过程。接收端通过获取静态ROA证书与报文信息进行比较,验证ROA证书的合法性,同时利用ROA证书对当前路由源进行验证。ROA证书的正确传递证明了本发明方案技术的可行性。
Quagga是一种能够将Linux系统打造成一台功能完备的路由器的开源软件。其能够同时支持RIP、OSPF、BGP等诸多TCP/IP协议。Quagga拥有模块化设计、运行速度快、可靠性高等特性。由于Quagga采用了模块化设计,所以在其运行时要运行多个守护进程。其中zebra进程用来更新内核的路由表,bgpd进程则负责进行BGP协议的路由更新。
本文提到的Quagga实验旨在验证将ROA证书附加到update报文中进行传输,并在接收端进行验证的方案具有可行性,可以将此方案部署到更复杂的路由拓扑结构。具体实验步骤如下:
①发送端从模拟的RP中获取ROA静态信息添加到update报文中。
②将ROA信息通过update报文传递到对等端路由器。
③对等端路由器接收到更新信息后,也从RP获取相应的ROA信息,并将两者进行比较,验证接收到的ROA信息是否真实有效。
④通过合法的ROA信息,验证当前AS是否有通告当前IP前缀的权利,即进行路由源认证。
仿真实验拓扑图如图8所示。路由器R2接收到传递的ROA信息如图9所示。当验证失败时,R2路由器错误日志记录显示如图10所示。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
机译: 路由劫持检测方法及路由劫持检测系统路径监控设备,路由监控程序
机译: 路由劫持检测方法,路由监视设备,路由劫持检测系统和路由劫持检测程序
机译: 一种互联网边界网关协议前缀劫持攻击的检测方法