计算机系统应用  2022, Vol. 31 Issue (2): 316-324   PDF    
基于RPKI-ASPA改进的BGP路径保护机制
包卓1,2, 马迪1,2,3, 毛伟2,3, 邵晴3     
1. 中国科学院 计算机网络信息中心, 北京 100190;
2. 中国科学院大学, 北京 100049;
3. 互联网域名系统北京市工程研究中心, 北京 100190
摘要:BGP协议明文传输, 攻击者易对前缀与路径信息进行伪造, 进而引发危害巨大的前缀劫持攻击. 其中, AS路径信息保护问题主要涉及两个方面: 路径防篡改与非法内容验证. RPKI作为解决路由劫持的重要安全体系, 目前其体系下的路径验证解决方案主要包括BGPSec、ASPA与Path-End, 其中BGPSec主要解决的是路径篡改问题, ASPA与Path-End解决路径合法性验证问题, 而这些方案分别存在计算复杂或者路径保护力度较弱的缺陷. 在ASPA方案中引入少量签名, 可对路径篡改的限制粒度进行提升. 据此, 本文提出一种改进的路径保护机制, 并设计了与其余方案的开销、安全性能对比实验. 实验结果表明, 在引入有限开销的情况下, 改进机制的路径保护性能优于其余方案.
关键词: BGP    路径验证    RPKI    ASPA    BGPSec    
Improved BGP Path Protection Mechanism Based on RPKI-ASPA
BAO Zhuo1,2, MA Di1,2,3, MAO Wei2,3, SHAO Qing3     
1. Computer Network Information Center, Chinese Academy of Sciences, Beijing 100190, China;
2. University of Chinese Academy of Sciences, Beijing 100049, China;
3. Internet Domain Name System Beijing Engineering Research Center, Beijing 100190, China
Abstract: In the BGP protocol plaintext transmission, attackers easily forge the prefix and path information, which thereby causes prefix hijacking with great harm. The AS path information protection mainly involves two aspects: path tamper-proofing and verification of illegal content. Resource public key infrastructure (RPKI) is an important security system to solve route hijacking. Currently, the path verification solutions under the RPKI system mainly include BGPSec, ASPA and Path-End, among which BGPSec mainly addresses path tampering, while ASPA and Path-End target path legality verification. However, these schemes have the defects of complicated calculation or weak path protection. A small number of signatures are introduced into the ASPA scheme to improve the granularity limiting path tampering. Therefore, this study proposes an improved path protection mechanism and designs comparison experiments with other schemes regarding the overhead and safety performance. The experimental results show that the performance of the improved scheme is better than that of the other schemes under the condition of introducing limited overhead.
Key words: BGP     path validation     RPKI     ASPA     BGPSec    

1 背景 1.1 现状

全球互联网中, BGP (border gateway protocol, 边界网关协议)是目前域间路由器进行可达性信息交换应用最广泛的安全协议, AS_PATH是BGP update报文中一种通用属性, AS边界路由器在广播前缀地址时, 会在AS_PATH最左端加上自己的AS号, 随后将该通告传递给邻居. 利用AS_PATH信息, 路由器可进行决策信息的补充, “AS-Path Prepend”技术[1]在路径信息中预装填自己的AS号, 用来影响AS_PATH属性长度, 实施流量工程. “BGP Poisoning”[2]则是利用BGP防环机制, 通过预装填AS号来达到绕过具体AS目的的一种方案.

AS_PATH明文传输且影响路由决策, 攻击者可对AS_PATH进行伪造, 删除或者恶意增加, 来影响后续路由器的路径抉择, 以达到ip前缀流量劫持的目的. 针对Update中AS_PATH的验证问题, 学术界提出过多种解决方案, 该文献提出了sBGP (secure BGP)[3]的解决方案, sBGP同样使用PKI体系对网络资源进行验证, sBGP基于资源分配的层级模型, 分别为ip前缀分配、AS编号及其路由器信息建立PKI认证体系. 在BGP路由器传递数据包过程中, 采用逐跳嵌套的方式, 将“地址”和“路由”的数字签名添加进路径属性中. 结合IPSec, 保证路由源头和路径的合法授权验证.

soBGP (secure origin BGP)[4]方案采用分布式认证中心, 为每个AS签发用以身份认证的证书EntityCert, 根据每一个AS对ip前缀资源的持有状态签发证书, 完成路由源的授权. 同时, 利用证书ASPolicyCert将邻间关系签发后进行广播. 通过建立的全局视图, 任意路由器可对AS_PATH信息进行验证, 以此对BGP通告进行过滤.

IRV (interdomain routing validation)[5]方案最大的特征是每个AS挂载一台验证服务器, 通过提供该AS历史通告记录的验证查询, 确保全网路由信息“可查”和“可信”.

1.2 RPKI体系与路径验证 1.2.1 RPKI体系架构

RPKI (resource public key infrastructure, 资源公钥基础设施)是一种基于PKI体系的路由资源保护方案, 截至2021年1月, 全球RPKI部署率已达27.2%[6]. RPKI工作架构如图1, 资源持有者通过资源证书的层级签发来进行号码资源的分配, 资料库负责证书的存储, 依赖方负责授权信息的验证与推送, 有效的授权信息将指导BGP环境号码资源的认证.

图 1 RPKI架构

1.2.2 BGPSec

BGPSec (border gateway protocol security)[7]方案借鉴了上述sBGP方案中的签名思路, 利用RPKI体系中的路由器证书及其密钥信息, 对链路AS信息进行签名. 其中, 路径签名信息循环嵌套, 通过BGP Update数据包进行传递. 前AS对包含后AS号码的路径信息进行签名, 表示对后一AS进行通告授权, 严格确保AS_PATH属性中的信息不被篡改.

BGPSec是一种严格的路径保护方案, 其高频率的密码学计算, 给路由器的硬件带来极大的算力考验, 同时也降低了BGP的实际收敛速率, 该方案难以在实际环境中进行大规模部署.

同时在身份未知的网络环境中, BGPSec无法对AS_PATH“合理性”做出验证, 因此无法阻止路由泄露的发生. 在性能方面, BGPSec逐跳签名引入了大量的计算开销与内存消耗. 对于两者开销瓶颈, 学术界存在一些优化思路. 例如通过使用签名聚合签名的方法减少签名的传递负载与计算消耗[8], 或者使用新型密码学进行公钥的传递[9], 以减少证书存储的内存消耗等.

1.2.3 Path-End

2016年, 基于RPKI体系, Cohen提出了Path-End[10]方案, Path-End方案继承路由源认证的同时对路径验证进行了拓展, 使用RPKI密钥对源头与邻居的有效连接声明进行签发. 与“严格”的BGPSec方案相比, Path-End只对AS_PATH末尾信息进行验证, 确保离源最近一跳路径的合理性. 通过简单的验证规则, Path-End能同时抵御路由源劫持与最后一跳路径篡改引发的劫持, 带来不错的安全收益. 但是Path-End无法对离源一跳以上及其复杂的路径篡改进行有效识别.

1.2.4 ASPA

沿袭于soBGP签发邻间关系的思路, 2018年IETF SIDROPS工作组提出了一种ASPA (autonomous system provider authorization)的路径验证方案草案[11], 并进行了多次版本迭代. ASPA同样基于RPKI体系, 具体思路如下:

(1) ASPA整体基于“Valley-Free” (无谷模型)[12], 即认为所有AS都遵守基本的路由转发策略, 在C2P、P2P和P2C三种“合法”商业关系中进行传递. 如图2所示, AS1发出的路由通告途径AS2、AS3, 到达AS4, 随后再通过AS4发往下游. 图中ASPA数据二元组AS1:{AS2}表示为AS2是AS1的provider.

图 2 ASPA原理图

(2) ASPA认为在进行路由通告的过程中, 需要重点保护上游部分, 防止错误的信息传递给大型运营商, 造成大规模的路由泄露等安全事件.

(3) AS发起前缀通告, 开始方向均指向上游, 即路径中的转发关系一定从C2P或者P2P开始, 当通告到达最大的一个provider之后, 转向下游传递, 一旦转向下游之后不会再转向上游.

(4) 解析Update报文中的AS_PATH属性, 得到AS_SEQUENCE信息后, ASPA方案通过一个单位为2的滑动窗口对AS_PATH信息进行校验. 在验证过程中, 检索相应ASPA对象, 对路径转发状态进行判断, 并根据转发状态对路由信息进行验证过滤.

ASPA巧妙地利用RPKI体系实现了路径的验证, 结合ROA路由源验证, ASPA能够很大程度上限制各类路由泄露的发生. 区别于BGPSec, ASPA能够对整个路径属性进行“合法”校验, 不仅对AS之间的可达性进行验证, 还对其中转发关系的“合法性”进行验证. 其次, ASPA的验证过程不产生密码学的计算, 即对路由器的硬件性能无过高要求. 同时在实际部署中, ASPA能够实现增量部署.

但是对于路径篡改问题, ASPA并没有提供完整的解决方案. ASPA相当于将静态的拓扑关系进行发布, 但是在实际BGP环境中, 实时通告的最终路径, 均受到复杂的路由策略与决策的影响. ASPA完全基于AS粒度对通告路径进行检测, 存在以下缺陷:

ASPA对路径的限制基于AS粒度, 然而ip前缀在广播的过程中存在多条潜在路径, 路由器只对最优路径进行广播. 故在ip广播的过程中, AS粒度级别的路径限制并不能对AS_PATH属性进行百分百的保护. 由于ASPA提供了全局AS拓扑视图, 在缺乏密码学保护的情况下, 任何一个路由器可以根据数据集伪造出能通过验证的路径, 绕过ASPA验证完成欺骗. 其次, 随着路径长度的增加, 能够产生多条“合法”路径的可能性越大, 因此被篡改的几率也会随之增加.

图3描述了路径篡改的可能性, 图中ASX, ASY, ASZ, ASP分别代表号码为X, Y, Z, P的自治域边界路由器. ASP发出一个前缀通告p, 该条前缀通告通过不同路径到达ASY, 根据路由策略与路由优选后, 将该通告发送给ASZ, ASZ收到包之后, 将包的AS_PATH属性进行有意合成篡改, 此举能够绕过ASPA的检测.

图 3 路径篡改示例

图4提供了一个前缀劫持的实际案例, ASX同样作为说谎者, 将路径属性修改成了较短的路径1, 由于ASX伪造的路径1比较短, ASX便成功劫持了前缀f1的流量.

图 4 前缀劫持例子

2 改进的路径保护方案

AS_PATH的验证方案中, BGPSec的签名操作实际上引入了用以“比对”的路径“副本”, 在路由进行通告时带上签名, 路由器在收到通告时进行签名的验证等同于“副本”的“比对”, 抵御信息篡改导致的安全攻击. 基于ASPA提供的方案, 我们提出了一种间隔签名, 并只做一次签名验证的路径保护方案.

2.1 证书体系

图5, 改进方案基于RPKI, 密钥体系沿用RFC8635[13]的方案, 公私密钥对可由管理员生成或者路由器本地生成, 随后向RPKI系统中对应组织请求生成携带公钥的路由器证书(router-cert), 发布于全球RPKI仓库. 其中路由器证书属于RPKI终端EE证书, 携带AS号码资源, 资源由资源持有者进行层次授权, 并由相应CA进行管理.

图 5 证书体系

RP依赖方服务器对RPKI资料库进行同步, 并按层级进行一致性检查与资源授权校验后进行本地缓存, 之后定期将合法数据推送给路由器. 路由通告传递过程中, 路由器使用私钥产生签名, 验证者根据SKI信息查找对应路由器证书进行签名验证.

2.2 隔跳签名

当路径签名内容包含下一个AS时, 后续第一个AS受到签名限制, 无法对路径信息进行篡改. 而引入静态的有效数据例如ASPA数据后, 能够延长签名的限制半径, 则可考虑适度降低签名的产生频率.

图6, 在“Multi-Homing”[1]的场景中, customer通过不止一个provider连接互联网. 其中, customer将其路由前缀向其provider进行通告, 并按照商业关系制定实际导出策略, 即遵循“Valley-Free”(无谷模型)[12]. 同时为满足一部分性能指标, customer可给不同provider制定不同的转发策略. 以达到降低链路延迟、提高连接可靠性、流量负载均衡等目的.

图 6 Multi-Homing模型

在添加签名机制之后, 因数据包存在路径签名信息, 故在未实际窃取数据包的情况下, 攻击者无法凭空进行数据包的伪造. 可知具体前缀的路径决策为ASPA数据的子集. 因此将ASPA用于路径验证存在以下情况如图7, AS100路径签名后将ip数据包转发给AS200, 同时, AS200对应的ASPA二元组数据集有AS400与AS300, 其中AS300与AS400为不同运营商, 同时为AS200提供服务. 因为使用不同的转发策略, AS200的一部分前缀只向AS400转发. 但是攻击者AS300通过网络嗅探等方式, 获取到该前缀的数据包, 可进行数据包的重放转发, 污染后序AS的路由表.

在此攻击场景中, AS400与AS300作为ISP竞争者, 同时为customer提供连接互联网服务, 其重放攻击目的通常仅出于流量计费利益, 此类基于竞争的攻击对全局互联网危害具有局部性, 并且易被customer察觉. 同时, 根据caida relationship[14]数据分析可得, 只有一个provider的customer数量占比接近40%. 在不考虑此种攻击的情况下, 可以直接使用ASPA数据作为路由决策的验证数据.

ASPA数据中, 授权关系不存在传递性, 即ASPA的授权关系是一对一的, 无法通过多个ASPA数据拼接进行传递, 则可知一次签名加上一次ASPA授权验证, 签名频率最多可减为隔跳一次. 可知在基于ASPA数据的隔跳签名的机制中, 有以下特性:

1)保证路径内容合法. ASPA二元组数据携带了两类基本信息, 其一为二元组之间的连接关系. 其二两者存在商业关系. 利用第一类信息, 可对任意两个AS之间连接性进行验证. 利用第二类信息, 能够路径内容合理性, 即转发与决策过程的合法性进行校验.

2)防止路径篡改. ASPA机制下, 长度大于一的路径存在篡改的隐患. 通告传递过程中, 其中每个AS均知晓通告AS_PATH和邻间者AS信息. 在隔跳签名操作下, 签名内容能够覆盖所有的AS号码. 其中, 签名内容直接包含后续第1个AS. 而对于后续第2个AS来说, 已无法对签名包含的历史路径进行修改, 而其与第一个AS连接合理性可由ASPA二元组给出证明. 则可知签名的最大有效半径为2, 签名者间距最长可为2. 同时, 为防止签名者缓存路径后进行签名重放伪造, 签名信息加入可ip前缀信息.

图8, 对于签名者AS3来说, 存在邻居AS8和AS4, 当通告发送至不同邻居时, AS3针对不同出口AS进行签名. path1中, 当通告途径AS4转发时, 后续AS通过签名可证AS_PATH中AS4真实性, 同时在ASPA提供的数据中, 能检索到(AS4, AS5)、(AS4, AS6)和(AS4, AS7)二元组, 可知, AS5、AS6、AS7均与AS4存在有效连接. 则AS3所提供的路径签名能够对半径为2以内的AS做出路径篡改的限制.

图 7 嗅探重放攻击示例

对于两跳之外的AS, 如AS5、AS6、AS7的后续邻居, AS3的签名信息无法对后续路径内容作出限制. 同样的, 对于另外一条路径path2{…AS3 AS8 AS4…}来说, AS5、AS6和AS7均在半径两跳之外, 此时, 需要AS4进行后续签名补充, 对半径为2以内的AS进行限制.

图 8 隔跳签名保护

2.3 具体方案

根据上述原则, 如图9, BGP协议Update路径属性中增加可选过渡的属性“PATH_SIGNATURE”, 该属性保存ip前缀及其AS_PATH属性对应的签名和签名者SKI信息, 设置该属性缓存队列长度为2, 即最多保存两个签名信息. 假设ASPA数据的签发与改进机制部署同步, 即可通过查询该AS对应ASPA数据个数是否为零来判断部署情况, 则在ASPA数据签发率较高的情况下, 改进方案如下.

图 9 隔跳签名方案

1)签名. 如算法1描述, 在BGP通告转发过程中, 进行路径信息的隔跳签名. 同时签名缓存队列只保留两个最新的签名信息. 通过第2.2节所述隔跳签名原理, 该签名方案能够将定期将AS_PATH信息以签名副本的形式进行保存, 并且签名者同时受到上一个签发者签名信息制约, 可保证每一个签名的内容合理性. 在全局部署的情况下, 签名者次序为连续奇数.

算法1. AS_PATH签名算法

1) 路由源AS发起ip前缀通告时产生签名, 跳转步骤5.

2) 解析路径属性AS_PATH, 遍历AS号, 获取AS号码的次序索引.

3)如果次序为奇数, 则将即将转发的AS编号拼接AS_PATH作为数字签名的摘要内容, 利用私钥进行签名, 跳转步骤5).

4) 如果次序不为奇数, 判定为非签名者, 则直接返回.

5) 取签名队列块部分, 将产生的签名进队操作.

6) 如果队列长度大于2, 则出队至长度为2为止.

2)验证. 如算法2描述, 每一个AS接收到BGP通告时, 将AS_PATH信息和PATH_SIGNATURE信息进行解析, 首先对AS_PATH进行ASPA的常规检查, 判断整条AS_PATH的转发关系是否合法. 后对AS_PATH信息遍历, 匹配到最新两个签名者的AS号及其签名, 使用签名携带的SKI信息匹配到对应的路由器证书, 对有效验证半径内的签名信息PATH_SIGNATURE和AS_PATH明文进行密码学验证, 返回验证结果.

算法2. AS_PATH签名验证算法

1)解析得到AS_PATH, 并记录索引, 根据ASPA数据集, 统计路径中已部署AS序列;

2)遍历进行常规ASPA校验, 校验状态为invalid直接跳转步骤8;

3)判断已部署AS序列中, 上一个AS是否为签名者, 是则跳转步骤4, 否跳转步骤5;

4)获取队列首部签名, 截取取倒数第2个签名者索引后一位的AS_PATH信息, 跳转步骤6;

5) 获取队列尾部签名, 获取全局AS_PATH信息, 跳转步骤6;

6) 根据SKI匹配路由器证书;

7) 将ip前缀与AS_PATH信息拼接, 进行签名验证;

8)返回校验结果.

2.4 性能分析 2.4.1 收敛时间

建立简单的BGP收敛拓扑图G(V, E), 其中节点和边集合分别表示为V={v1, v2, v3, …,vn}, E={e1, e2, e3, …,en}, 其中, 定义路径集合Rij(G)={{vi, vi+1, …,vj–1, vj}, …}表示所有从节点vi到节点vj合法路径, 路径rijRi, j(G)表示集合中最长路径.

节点vi发起路由通告, 当其余节点均接收到该通告, 并作出相应一致性处理后, 认为vi发起的路由通告全局收敛. 可知收敛时长为式(1), Pvi表示vi节点对数据包处理的总体时间开销, 包括路由表项定位与处理更新及其出口数据处理时间开销, Tl为通信链路时间开销. 则可知ASPA与Path-End开销为式(2), BGPSec方案总体时间开销为式(3), 改进方案时间开销为式(4), 其中Tsign_pathTvalidate_path分别为进行一次数字签名与签名验证的时长, 可知Tsign_pathTvalidate_path系数增长趋势如图10图11.

$ {T_{con}} = \left( {\left| r \right| - 1} \right){T_l} + \sum\limits_{{v_i} \in r} {{P_{{v_i}}}} $ (1)
$ {T_{con}} = \left( {\left| r \right| - 1} \right)\left( {{T_l} + {T_p}} \right) $ (2)
$ \begin{split} {T_{con}} =& \left( {\left| r \right| - 1} \right)\left( {{T_l} + {T_p}} \right) + \left( {\left| r \right| - 1} \right){T_{{\rm{sign\_path}}}} \\ &+\left( {\left| r \right| - 1} \right)\left\lfloor {\frac{{\left| r \right|}}{2}} \right\rfloor {T_{{\rm{validate\_path}}}}, \left| r \right| \geqslant 1 \end{split} $ (3)
$ \begin{split} {T_{con}} =& \left( {\left| r \right| - 1} \right)\left( {{T_l} + {T_p}} \right) + \left\lfloor {\frac{{\left| r \right|}}{2}} \right\rfloor {T_{{\rm{sign\_path}}}}\\ &+ \left( {\left| r \right| - 1} \right){T_{{\rm{validate\_path}}}}, \left| r \right| \geqslant 1 \end{split} $ (4)
图 10 签名次数

图 11 签名验证次数

假设最长传播路径长度为n, 对于BGPSec来说, 可知密码计算消耗主要体现在签名验证部分. 其总体签名次数为n, 签名验证次数为n(n–1)/2, 相比之下, 改进方案只有奇数次序路由器产生签名, 故签名总次数为n/2. 验签的次数为n. 可知收敛时间性能方面, 改进方案优于BGPSec.

而对于只考虑路径“合理”校验的ASPA与End-Path来说, 不涉及到密码计算, 故整个过程签名与验签次数均为0.

可知全球AS_PATH长度平均为4.3[15], 改进方案中, 大部分路由通告从传播到收敛, 实际只需要进行一到两次的签名, 签名验签次数也平均为3次, 相比较BGPSec的消耗而言, 改进方案在原ASPA方案基础上引入的时间消耗有限.

2.4.2 空间消耗

内存消耗. 考虑路由器RIB表随签名增加的内存消耗. 可知RIB中路径属性的内存消耗与表项数存在线性关系, 单个表项内存消耗也与签名数量存在线性关系, 可知, 改进方案中, 路由器需要处理的签名数量少于BGPSec, 在路径属性带来的内存消耗方面, 改进方案也小于BGPSec.

通信负载消耗. BGPSec方案通过直接修改AS_PATH信息来负载签名信息, 改进方案则通过增加路径属性来负载签名信息. 在签名算法一致的情况下, BGPSec需要增加路径长度等量的签名信息, 而改进方案只保留长度为2的签名缓存队列, 故改进方案通信负载消耗也小于BGPSec.

ASPA与End-Path均未对BGP进行修改, 无需增加额外的通信负载与路由表负载, 故在与上述两种方案对比之下, 改进方案引入了相对有限的空间消耗.

2.5 安全性分析

假设绝大多数AS都完成了ASPA部署, 即ASPA数据签发率足够高, 则改进方案对路径安全保护性能分析如下:

1)路由泄露: 该方案基于ASPA改进, 在ASPA验证结束后才进行路径签名验证, 使用ASPA原生数据获得AS之间的商业关系, 可以识别1、2、3、4型路由泄露[4], 结合ROV, 可以识别5、6型路由泄露. 改进方案集成了路由泄露检测的功能. 有效地保护部署者, 防止部署者受到路由泄露的危害.

2)路径删除: 路径签名中, 已经对历史签名进行签名, 攻击者对AS_PATH属性进行恶意删除将会导致签名验证不通过. 因此路径删除直接导致通告被丢弃.

3)路径增加: 与路径删除攻击一致, 构造签名信息时, 签名代表一定程度上可以视为历史版本的凭证. 一旦对AS_PATH属性进行恶意增加, 需要同时增加签名信息, 或者修改签名信息, 否则路径签名验证不通过. 因此恶意增加路径信息也被成功限制.

4)路径合成: 在路径伪造的同时, 也需对路径信息的数字签名进行伪造, 否则无法通过验证. 私钥只有签名者自己持有, 其余AS路由器无法修改AS_PATH的签名信息. 由于ASPA数据验证的存在, 且连续两个签名信息的明文存在交集, 故任一AS均受到上一个签名者AS的限制, 无法进行路径的合成伪造.

原生ASPA方案使用转发关系进行路径验证, 能够有效阻止路由泄露的发生, 改进方案继承了ASPA方案的优点的基础上, 引入了周期性的签名, 增强了其安全性能.

相应的, BGPSec方案使用签名嵌套, 因此密码计算消耗较大, 并且由于转发关系的未知, BGPSec方案无法阻止路由泄露与虫洞攻击的发生.

Path-End校验规则简单, 只能对简单的源头一跳路径进行有效验证, 无法对复杂的路径篡改进行有效识别.

四者的具体优缺点对比见表1.

表 1 4种路径验证方案的比较

3 实验分析 3.1 实验设计

BGP路由器处理路由通告的流程如图12, 路由器从邻居接收到通告数据包, 路由信息经过策略决策和路径优选后, 将被存入本地RIB表中, 随后路由器将最优路径转发给邻居AS, 完成路由信息的传达.

近年来容器虚拟化技术逐渐兴起, 利用容器虚拟化技术, 可在有限的资源里进行资源扩展, 使物理机器实现对多台设备的虚拟. 利用虚拟网络, 可对节点交互进行模拟, 进行网络仿真实验.

为模拟路由器的实时响应, 该实验使用golang语言轻量级的goroutine编写服务, 整体架构如图13, 仿照BGP邻间协商, 该实验模拟AS路由器建立连接, 并且将节点拓展到其余容器实例, 进行BGP Update仿真模拟. 节点部署完毕, handle模块将采集的通告信息进行同步发送, 同时设置路由通告计数器, 根据计数器数值判定收敛状态. 其中, 每一个路由器根据通告路径信息可知自己的位置索引, 根据对路径属性不同处理方案完成路由通告的解析与验证, 具体实验环境参数如表2.

图 12 BGP数据处理流程

表 2 实验环境

图 13 实验架构图

全网BGP路由器实时产生路由通告, 是一个动态收敛的过程. 该实验使用BGPStream项目收集的3个收集器的update数据集. 采用最近的12月1日的数据集. 全网AS数量大约6万个, 经过数据清洗操作后, 该数据集合剩下3 万个AS接近500万条路由通告.

为描述签名数量导致的收敛速率的差异, 在仿真逻辑与数据一致的基础上, 分别在1千、10千、100千、500 千、1 000千、2 000千、2 500千、3 000千、3 500千、4 000千条前缀通告基础上进采样行测量, 进行收敛时间对比, 同时, 在数据处理转发的过程中, 对几个连接数较大的AS进行签名处理数量的统计.

在考虑全局部署的情况下, 实验结果如图14图15. 据图14收敛时长对比可知, 改进方案场景下的收敛时长明显短于BGPSec场景下的收敛时长, 并且随着网络拓扑规模的增加, 前缀数量的增多, 收敛时长的差距会愈加明显. 相比之下, 优化方案在引入少量签名之后, 收敛时长在原有ASPA机制的基础上增长有限.

图 14 收敛时间

图 15 实际签名处理个数

图15可知, 在相同网络拓扑中, 对于路由器来说, 改进方案签名缓存数量远少于BGPSec, 根据上文推测的签名数量与内存消耗的线性关系, 可知改进方案签名缓存的内存消耗也明显小于BGPSec, 高于原生ASPA与Path-End机制.

3.2 路径篡改过滤实验

在保证路由源认证的前提下, 路径篡改行为主要包括路径内容的增加与删除. 根据攻击者对全局路由拓扑的掌握情况, 本实验把篡改分为有意与随机两类. 其中有意篡改为攻击者在对路径信息进行删除与增加后, 路径仍然“合法”, 仍能满足“Valley-Free”模型[12]; 而随机篡改则是对路径内容进行随机添加与删除, 篡改后的路径不构成有效链路, 即篡改部分与原有部分节点间无直接物理连接.

该实验选取上述收集器收集的真实路由路径信息与relationship静态路由拓扑信息[14]. 在真实路径信息的基础上, 进行有意与随机的路径增删篡改. 在攻击者序列后选取同样的AS作为观测点, 统计在多种方案下观测点识别篡改行为的次数, 并在相同拓扑的情况下进行了多次试验. 平均数值统计如图16.

图 16 路径篡改识别

通过图16可知, BGPSec方案是“严格”的方案, 在全局部署的情况下, BGPSec路径保护力度最强, 但随着部署率降低, 即一旦路径中存在“断链”的情况, BGPSec保护失效, 性能便会骤降. ASPA方案根据转发关系进行验证, 所以有意篡改的路径能够绕过ASPA的验证, 因此即使在全量部署的情况下, ASPA也无法对所有篡改行为进行都有效识别. Path-End只对离源头最近一跳路径进行验证, 故其余复杂篡改均无法进行有效识别.

改进方案吸纳了ASPA与BGPSec方案的优势, 在保证路径合理的同时, 通过签名提升了路径篡改限制粒度, 故改进方案安全性能最强. 同时改进方案也尽力追求对路径“相对严格”的保护. 故改进方案在部署率为1的情况下, 改进方案安全性能接近于BGPSec.

4 结束语

AS_PATH是BGP协议中关键的路径属性之一, 路径验证也一直是路由安全领域研究的热点, 本文开始对路径验证现有解决思路及缺陷进行了阐述, 并提出了一种RPKI体系下的路径保护改进方案. 改进方案将授权数据与路径签名进行结合, 同时继承了ASPA与BGPSec优点, 能对路径信息进行有效保护, 实验表明, 在引入相对有限的时间与空间消耗的情况下, 改进方案在不同部署率均能对路径进行更为有效的保护. RPKI的时代已经来临, 如何利用RPKI体系对BGP内容进行保护与验证, 仍有很大的探索与研究空间.

参考文献
[1]
Chang RKC, Lo M. Inbound traffic engineering for multi-homed ASes using AS path prepending. 2004 IEEE/IFIP Network Operations and Management Symposium (IEEE Cat. No. 04CH37507). Seoul: IEEE. 2004. 89–102.
[2]
McDaniel T, Smith JM, Schuchard M. Flexsealing BGP Against route leaks: Peerlock active measurement and analysis. arXiv: 2006.06576, 2020.
[3]
Kent S, Lynn C, Seo K. Secure border gateway protocol (S-BGP). IEEE Journal on Selected Areas in Communications, 2000, 18(4): 582-592. DOI:10.1109/49.839934
[4]
White R. Securing BGP through secure origin BGP (soBGP). Business Communications Review, 2003, 33(5): 47-53.
[5]
Goodell G, Aiello W, Griffin TG, et al. Working around BGP: An incremental approach to improving security and accuracy in interdomain routing. Proceedings of the Network and Distributed System Security Symposium. San Diego: DBLP, 2003. 156.
[6]
National Institute of Standards and Technology. NIST RPKI monitor. https://rpki-monitor.antd.nist.gov/. [2021-05-03].
[7]
Huston G, Bush R. Securing BGP with BGPsec. The Internet Protocol Forum. 2011, 14(2): 1–10.
[8]
Tanaka K, Yanai N, Okada M, et al. APAT: An application of aggregate signatures to BGPSEC. The 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. Toulouse: IEEE, 2016.
[9]
Hohenberger S, Sahai A, Waters B. Full domain hash from (leveled) multilinear maps and identity-based aggregate signatures. 33rd Annual Cryptology Conference on Advances in Cryptology. Santa Barbara: Springer, 2013. 494–512.
[10]
Cohen A, Gilad Y, Herzberg A, et al. Jumpstarting BGP security with path-end validation. Proceedings of the 2016 ACM SIGCOMM Conference. Florianopolis: Association for Computing Machinery, 2016. 342–355.
[11]
Azimov A, Bogomazov E, Bush R, et al. Verification of AS_PATH Using the Resource Certificate Public Key Infrastructure and Autonomous System Provider Authorization. Internet Engineering Task Force, 2018: 1–8.
[12]
Sriram K, Montgomery D, McPherson D, et al. Problem definition and classification of BGP route leaks. RFC 7908, 2016.
[13]
Bush R, Turner S, Patel K. Router keying for BGPsec. RFC8635, 2019.
[14]
CAIDA. AS relationships. https://www.caida.org/catalog/datasets/as-relationships/. [2021-05-01].
[15]
Kühne M. Update on AS path lengths over time. https://labs.ripe.net/author/mirjam/update-on-as-path-lengths-over-time/. [2021-05-08].