资源公钥基础设施(RPKI)的工作原理

介绍

边界网关协议(BGP)控制着数据在互联网上的传输方式。它连接了许多称为自治系统(AS)的网络,这些网络可以由互联网服务提供商(ISP)、企业、云服务提供商或内容分发网络运营。BGP 并不总是选择最短路径,而是根据每个网络设置的规则和偏好进行路由选择。这使得网络具有灵活性和可扩展性,但也使其容易出现错误和受到攻击。

BGP 出现于安全尚未成为重点的时期,它自身无法防止配置错误或攻击。路由劫持(Route Hijacking)是指某个自治系统宣布它不拥有的 IP 地址,从而使流量被引导到错误的地方。路由泄漏(Route Leak)则是指网络错误地将从一个提供商学习到的路由共享给另一个提供商。这两类问题都可能导致互联网速度下降、服务中断,甚至数据泄露。

一些事件清楚地展示了这些风险。2008 年,巴基斯坦电信(Pakistan Telecom)导致全球范围内 YouTube 无法访问。一些劫持事件被攻击者用来截获传输中的敏感信息。大型网络或云服务提供商有时也会错误地宣布路由,从而引发广泛问题。

为了解决这些问题,互联网社区创建了资源公钥基础设施(RPKI)。它可以验证路由公告是否来自正确的自治系统,使网络能够信任接收到的路由。RPKI 降低了错误和攻击的风险,也帮助网络之间更安全地协作。

BGP 采用路径向量(path-vector)方式工作,它不仅仅关注最短路径,还会考虑路径属性,如自治系统编号、路由策略和偏好。这就是 BGP 灵活性的原因。大型网络可以控制流量的流向,但同时也带来了风险,因为网络必须相互信任对方的路由公告。RPKI 在此基础上增加了一层验证,降低了信任带来的问题。

RPKI 是什么

RPKI 是一种用于互联网路由的加密系统。它能够证明某个自治系统(AS)被授权发送特定的 IP 地址,用以回答这样的问题:“这条路由来自可信来源吗?”

RPKI 依赖信任锚(trust anchors),即负责验证证书的权威机构,这些证书将 IP 地址和 AS 编号与其所有者关联起来。证书由区域互联网注册管理机构(RIR)颁发,例如北美的 ARIN、欧洲的 RIPE NCC、亚太地区的 APNIC、非洲的 AFRINIC 以及拉丁美洲的 LACNIC。

这些证书形成了一条信任链。网络可以验证路由公告是否正确且经过授权。传统 BGP 信任发布路由的运营者,但如果出现错误或攻击,这种信任可能会失效。RPKI 通过将信任机制加密化来改变这一点,使网络能够自动进行验证。

RPKI 的设计与 BGP 的工作方式相契合。它并不替代路由选择,而是在其基础上增加了验证机制。网络仍然可以根据策略、自治系统关系或偏好选择路径。不同之处在于,现在每条路由都可以通过 ROA(Route Origin Authorization,路由原点授权)进行检查,以确保路由来源正确。

RPKI 的工作原理

RPKI 有三个主要组成部分:证书颁发机构(Certification Authorities,CAs)、路由原点授权(Route Origin Authorizations,ROAs)以及验证器(Validators)。它们协同工作,用于验证路由的合法性。

证书颁发机构

证书颁发机构是 RPKI 系统中的权威机构,负责签发和管理数字证书。这些证书将 IP 地址块与其拥有的自治系统(AS)关联起来,形成信任基础。CAs 可以是区域互联网注册管理机构(RIRs),如 ARIN、RIPE NCC、APNIC、AFRINIC 和 LACNIC,也可以是 RIR 授权的下级机构。

路由原点授权(Route Origin Authorizations,ROAs)

ROA(路由原点授权)是经过签名的记录,用于指明哪个自治系统(AS)被允许发布某个 IP 前缀。资源持有者会将 ROA 发布到公共 RPKI 仓库中,网络可以利用这些信息自动验证路由的合法性。

例如,AS123 拥有 IP 前缀 203.0.113.0/24。它创建了一个 ROA,仅授权 AS123 宣布该前缀。如果 AS456 尝试发布该路由,则该路由会被标记为无效。ROA 还包括最大前缀长度(Max Length),帮助网络更精确地控制路由公告。

ROA 可以减少错误并防止路由劫持。在 ROA 出现之前,运营者必须手动检查路由,错误频繁发生。ROA 使这一过程自动化且更可靠。

ROA 还可以与路由策略结合使用。例如,网络可能会偏好某些路径,但仍然会拒绝未经授权的路由公告,这既增加了安全性,也保持了灵活性。

RPKI Validators

RPKI 验证器是 RPKI 系统中的关键组件,用于自动检查 BGP 路由公告的合法性。它从公共 RPKI 仓库中获取证书和 ROA,并将这些信息与收到的路由公告进行比对,以判断路由是否有效。

验证器的主要功能包括:

  1. 下载和缓存 ROA:从区域互联网注册管理机构(RIR)或公共 RPKI 仓库获取最新的 ROA 数据。

  2. 验证路由来源:将收到的 BGP 路由公告与 ROA 对比,判断路由是否由授权 AS 发布。

  3. 分类路由有效性:通常将路由分为三类:

    • 有效(Valid):路由与 ROA 匹配。

    • 无效(Invalid):路由由未授权 AS 发布或超出最大前缀长度。

    • 未知(Not Found / Unknown):没有对应的 ROA 信息。

  4. 生成验证结果:将验证结果提供给路由器或网络控制系统,用于做出策略决策,如拒绝无效路由或调整路径选择。

通过验证器,网络能够自动化地检查和应用 RPKI 的安全规则,降低人为错误,提高 BGP 路由的安全性和可靠性。

RPKI 的重要性

RPKI 的作用与优势

RPKI 提升了 BGP 的安全性、稳定性和可靠性,其主要作用包括:

  1. 防止路由劫持
    只有被授权的自治系统(AS)可以宣布特定的 IP 前缀,从而阻止大部分路由劫持事件。2008 年巴基斯坦电信导致 YouTube 全球中断的事件,就展示了错误路由公告可能影响数百万用户的风险。正如 Doug Madory 所说:“RPKI 减少了无效的 BGP 路由公告,使大规模路由劫持更加困难。”

  2. 防止路由泄漏
    多宿主(multi-homed)网络可能意外泄漏路由。RPKI 对每条路由公告进行验证,未授权的路由会被过滤,从而避免了低效或不安全的路径传播。

  3. 提升网络稳定性
    经过验证的路由减少了错误信息的传播,互联网服务提供商(ISP)、云服务提供商以及最终用户都能从中受益。RPKI 可与 BGPsec 配合,为网络提供多层安全保障。验证过的路由也让对等互联(peering)和商业关系更安全可靠。

  4. 支持自动化
    网络可以在无需人工干预的情况下验证路由,降低了运营错误的发生率,同时提高了路由处理速度和效率。

总体来说,RPKI 不仅增强了 BGP 的安全性,还提高了互联网的稳定性和可操作性,为网络运营提供了可靠的信任基础。

部署与采用(Deployment and Adoption)

RPKI 的部署和采用在全球范围内仍在推进,但进展因地区和网络类型而异。以下是主要情况:

  1. 区域互联网注册管理机构(RIRs)的角色
    各大 RIR(如 ARIN、RIPE NCC、APNIC、AFRINIC、LACNIC)负责提供 RPKI 基础设施,包括信任锚和公共仓库。它们为资源持有者签发证书和 ROA,是全球 RPKI 部署的基础。

  2. 网络运营商和 ISP 的采用情况
    大型 ISP、云服务提供商和内容分发网络(CDN)逐渐启用 RPKI 验证器来检查路由合法性。一些网络甚至强制拒绝无效路由公告,以提高安全性。中小型网络的采用率相对较低,部分原因是技术部署成本和操作复杂性。

  3. BGP 与 RPKI 的集成
    RPKI 并不替代 BGP,而是增加验证层。网络可以继续基于策略和 AS 关系选择路径,同时结合 RPKI 对路由进行有效性检查。随着路由器厂商和开源路由软件对 RPKI 支持的增强,部署变得更加便捷。

  4. 全球趋势与挑战

    • 趋势:越来越多的区域和网络开始发布 ROA,并启用验证器。RPKI 的使用有助于减少路由劫持和泄漏事件。

    • 挑战:部分网络对操作复杂性、证书管理、ROA 更新和潜在单点故障仍存在顾虑。全球统一的部署和互操作性仍需不断改进。

总之,RPKI 的部署和采用正在稳步推进,其安全与稳定性的价值正在被越来越多的网络运营者认可,但完全普及仍需要时间与持续努力。

专家观点(Expert Perspectives)

  • Doug Madory
    “RPKI 过滤显著减少了无效的 BGP 路由公告。运营者可以信任流量路径,互联网因此更加安全。”

  • Job Snijders
    “保持 ROA 的及时更新至关重要。自动化和告警机制有助于避免错误。运营者必须了解过滤策略对对等互联和流量流向的影响。”

RPKI 的未来

RPKI 的采用预计将持续增长,未来发展方向包括:

  • ROA 自动化生成:简化证书和授权的创建流程,提高效率。

  • 运营者的实时可见性:提供对路由公告和验证状态的即时监控。

  • RIR、服务提供商与研究人员的协作:推动最佳实践和全球标准化部署。

  • 与 BGPsec 和遥测工具的整合:增强多层次的路由安全和网络可观测性。

随着流量增长和攻击手段日益复杂,保障 BGP 安全变得更加关键。RPKI 提供了一种可扩展且有效的方法,用于验证路由并维护互联网的信任基础。

常见问题(FAQs)

  • RPKI 是什么?
    RPKI(资源公钥基础设施)是一种加密系统,用于验证 BGP 路由公告的合法性。它通过证书和 ROA 确保只有授权的自治系统(AS)可以宣布特定的 IP 前缀。

  • RPKI 为什么重要?
    它可以防止路由劫持和路由泄漏,减少人为配置错误,提高互联网的安全性、稳定性和可靠性。

  • ROA 是什么?
    ROA(路由原点授权)是经过签名的记录,指明哪些 AS 被授权发布特定 IP 前缀,并可包含最大前缀长度限制。

  • RPKI 验证器的作用是什么?
    验证器从公共 RPKI 仓库获取 ROA 和证书,并将其与收到的 BGP 路由公告进行比对,自动判断路由是否有效。

  • RPKI 会取代 BGP 吗?
    不会。RPKI 并不替代 BGP 的路由选择,它只增加了验证层,网络仍可根据策略、AS 关系或偏好选择路径。

  • RPKI 是否适用于所有网络?
    是的,但部署进度因网络规模和技术能力而异。大型 ISP、云服务提供商和 CDN 通常率先采用,中小型网络的采用率较低。

  • RPKI 部署面临哪些挑战?
    主要包括 ROA 管理和更新的复杂性、证书撤销流程、以及网络运营者对过滤策略和流量影响的理解。

  • RPKI 与 BGPsec 有何关系?
    RPKI 可与 BGPsec 配合使用,形成多层次的路由安全机制,RPKI 提供来源验证,BGPsec 提供路径完整性验证。

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top