互联网流量依靠边界网关协议 (BGP) 在网络之间寻找路径。然而,由于配置错误或恶意行为,流量有时会被错误路由。当流量被路由到流经其原本不应经过的网络时,这种情况被称为路由泄露。我们曾在博客中多次撰文论述 BGP 路由泄露及其对互联网路由的影响,甚至还多次提及 BGP 路径验证的未来发展方向。
虽然网络社群在验证互联网流量的最终目的地方面已取得重大进展,但确保流量到达目的地的实际路径安全仍然是维护可靠的互联网的关键挑战。为了解决这个问题,业界将采用一种名为自治系统提供商授权 (ASPA) 的新加密标准,用于验证网络流量的整个路径并防止路由泄露。
为了帮助网络社群跟踪这项标准的采用情况,Cloudflare Radar 推出了一项新的 ASPA 部署监测功能。该视图让用户可以观察五个区域互联网注册管理机构 (RIR) 的 ASPA 采用随着时间推移而变化的趋势,并查看自治系统 (AS) 级别的 ASPA 记录及其随着时间推移的变化。
要了解 ASPA 的工作原理,首先要了解互联网目前如何保护流量目的地。
如今,网络使用一种名为资源公钥基础设施 (PKI) 的安全基础设施系统,该系统在过去几年内的部署取得了显著增长。在 RPKI 中,网络发布名为路由源授权 (ROA) 的特定加密记录。ROA 作为可验证的数字身份证,它负责确认自治系统 (AS) 已获得正式授权可以公告特定的 IP 地址。这解决了“源劫持”问题,即:一个网络试图假冒另一个网络。
自治系统提供商授权 (ASPA) 直接建立在此基础之上。ROA 验证目的地,而 ASPA 记录则验证旅程路径。
当数据在互联网上传输时,它会记录所经过的每个网络的运行日志。在 BGP 中,此日志被称为 AS_PATH(自治系统路径)。ASPA 为网络提供了一种方法,使其能够在 RPKI 系统内正式发布其已获授权的上游服务提供商列表。这样一来,任何接收网络均可查看 AS_PATH,检查相关 ASPA 记录,以及验证流量是否仅通过已核准的网络链传输。
ROA 有助于确保流量到达正确的目的地;ASPA 则确保流量通过预期的、已获授权的路径到达目的地。我们来看看实践中的路径评估工作原理。
ASPA 如何判断一条路由是否为绕行路线?它依据互联网的层次结构。
在一个正常运行的互联网路由拓扑中(例如“valley-free” routing),流量传输通常遵循特定的路径:它从客户“向上”传输到大型提供商(例如主流 ISP),可选地跨越另一个大型提供商,然后“下行”至目的地。您可以将其想象成一座“山”的形状:
上行路径:流量从客户开始,并“向上”传输,经过越来越大型的互联网服务提供商 (ISP),ISP 会付费给其他 ISP 来为其传输流量。
顶端:它到达互联网骨干网线路的顶层,可能会跨越单个对等互连链路。
下行路径:流量通过各个服务提供商“向下”传输,最终到达目标客户。
“valley-free” routing 的可视化图。路由将流量向上传播到服务提供商,可选地跨越某个对等互连链路,然后向下传输到客户。
在这个模型中,路由泄露就像一个山谷或低谷。当流量向下传输到客户,然后意外地尝试向上返回到另一个提供商时,即发生这种泄露。
这种“由下而上”的传输是不利的,因为客户既无意图也无能力在两个大型网络提供商之间传输流量。
ASPA 为网络运营商提供一种加密方式来宣告其已获授权的提供商,从而使接收网络能够验证 AS 路径是否遵循预期的结构。
ASPA 通过检查路由传播两端的“关系链”来验证 AS 路径:
如果“上行”路径和“下行”路径在顶端重叠或交汇,则该路由有效。山形结构保持完整。
但是,如果两条有效路径没有交汇,即:中间存在授权缺失或无效的缺口,ASPA 会将此类路径报告为问题路径。这个缺口代表“山谷”或路由泄露。
我们看一下这个场景:网络 (AS65539) 收到了来自客户 (AS65538) 的错误路由。
客户 (AS65538) 尝试将其收到某个提供商 (AS65537) 发送的流量“向上”传输到另一个提供商 (AS65538),后者充当提供商之间的桥梁。这是一个典型的路由泄露事件。现在我们来了解一下 ASPA 验证流程。
检查上行路径:原始来源 (AS65536) 向提供商授权。(检查通过)。
检查下行路径:从目的地开始,回头倒查。我们看到了客户 (AS65538)。
不匹配:上行路径终止于 AS65537,而下行路径终止于 AS65538。两个路径无法连通。
由于“上行”路径与“下行”路径无法连通,系统将其标记为 ASPA 无效。需要 ASPA 来执行这个路径验证,因为如果 RPKI 中没有已签名的 ASPA 对象,则无法找到哪些网络已获授权可以向另外哪些网络公告哪些前缀。通过为每个 AS 提供商网络列表进行签名,我们可以知道哪些网络应该能够横向传播或向上游传播前缀。
ASPA 可以有效防范伪造源劫持,它是指攻击者通过伪装并公告指向真实源前缀的 BGP 路径来绕过路由源验证 (ROV)。虽然源 AS 仍然正确,但劫持者与受害者之间的关系是伪造的。
ASPA 让受害者网络可以通过加密方式来宣告其实际已获授权的提供商,以此来揭露这种欺骗行为;由于劫持者不在该授权列表中,因此,该路径会被视为无效路径而遭到拒绝,从而有效阻止恶意重定向。
但是,ASPA 无法完全防范伪造源劫持。至少在一种情况下,即使实施 ASPA 验证流程,也无法完全防范此类网络攻击。ASPA 无法处理的伪造源劫持示例是提供商伪造了指向其客户的路径公告。
本质上,服务提供商也可能“伪造”与其他自治系统 (AS) 的对等互连链路,以吸引使用较短 AS_PATH 路径的客户流量,即使是在不存在此类对等互连链路的情况下。ASPA 无法阻止提供商伪造这种路径,因为 ASPA 仅根据提供商信息运行,并且对关于对等互连关系的信息一无所知。
因此,虽然 ASPA 可以有效阻止伪造源劫持路由,但在极少数情况下,它仍然会失效,这些情况值得注意。
如今,在 RIPE 和 ARIN 等注册管理机构中创建网络(或自治系统)的 ASPA 对象是一个简单的流程。您只需要提供您的 AS 编号,以及您向其购买互联网传输服务的服务提供商的 AS 编号。这些是您信任的已获授权的上游网络,它们会将您的 IP 地址公告给更广泛的互联网。反过来,这些也是您授权其向您发送完整路由表的网络,该路由表相当于一张完整的互联网连接地图。
我们希望通过一个简短的示例,展示如何轻松创建 ASPA 对象。
假设我们需要为 AS203898 创建 ASPA 对象,这是 Cloudflare 伦敦办公室互联网使用的 AS。在撰写本文时,伦敦办公室使用了三个互联网服务提供商:AS8220、AS2860 和 AS1273。这意味着我们将为 AS203898 创建一个 ASPA 对象,且这三个服务提供商都在授权列表中。
首先,登录 RIPE RPKI 仪表板并导航到 ASPA 部分:
然后,针对想要创建 ASPA 对象的对象,单击“创建 ASPA”。接着,只需填写该 AS 的提供商即可。
就是这么简单。短暂等待后,即可查询全球 RPKI 生态系统,并找到为我们定义的提供商 AS203898 创建的 ASPA 对象。
ARIN 的操作步骤类似,它是目前唯一支持创建 ASPA 对象的另一个区域互联网注册管理机构 (RIR)。登录 ARIN 在线平台,然后导航到“路由安全”,单击“管理 RPKI”。
接着,单击“创建 ASPA”。在此示例中,我们将为另一个 ASN (AS400095) 创建对象。
大功告成,现在已经为提供商 AS0 的 AS40095 创建了 ASPA 对象。
“AS0”提供商条目在使用时具有特殊意义,它表示自治系统 (AS) 所有者证实其没有有效的上游提供商。根据定义,这意味着,如果每个无传输的 Tier-1 网络确实只有对等互连网络和客户关系,则其最终都应该对仅包含“AS0”的 ASPA 对象签名。
Cloudflare Radar 中新增的 ASPA 功能
Cloudflare Radar 中添加了新增的 ASPA 部署监测功能。全新的 ASPA 部署视图让用户可以查看 ASPA 的采用率随时间推移的增长情况,并且能够根据 AS 注册情况,可视化五个区域互联网注册管理机构 (RIR) 的趋势。
我们还将 ASPA 数据直接集成到国家/地区以及 ASN 路由页面中。现在,用户可以根据与本地注册的客户 ASN 关联的 ASPA 记录,跟踪不同地点在保护其基础设施方面的进展。
如果放大查看特定的自治系统 (AS),例如 AS203898,也会发现一些新功能。
可以查看网络上观察到的 BGP 上游提供商是否已获得 ASPA 授权,其 ASPA 对象中包含的完整提供商列表,以及涉及该 AS 的 ASPA 变更时间线。
随着 ASPA 最终成为现实,我们迎来了互联网路径验证的加密技术升级。然而,那些自 RPKI 路由源验证诞生之初就一直予以关注的人都知道,要真正为互联网安全带来显著价值,还有很长的路要走。需要更改 RPKI 中继方 (RP) 包、签名者实施、RPKI 到路由器协议 (RTR) 软件以及 BGP 实施,才能真正使用 ASPA 对象并利用它们验证路径。
除了采用 ASPA 之外,运营商还应按照 RFC9234 中的说明配置 BGP 角色。在 BGP 会话中配置的 BGP 角色将有助于未来路由器上的 ASPA 实施 决定采用哪种算法:upstream 或 downstream。换句话说,BGP 角色赋予我们运营商的以下权力:将预期的 BGP 关系与其他 AS 直接关联到与这些相邻路由的会话。请咨询您的路由供应商,确保他们支持 RFC9234 BGP 角色和 OTC(仅限客户)属性实施。
为了充分利用 ASPA,我们鼓励所有用户为其自治系统 (AS) 创建 ASPA 对象。创建并维护这些 ASPA 对象需要格外小心谨慎。未来,随着网络使用这些记录主动阻止无效路径,忽略合法提供商可能会导致流量下降。然而,管理这种风险与网络目前处理路由源授权 (ROA) 的方式并无二致。ASPA 是互联网路径验证必需的加密升级,我们很高兴推出这项标准!