RPKI路由安全

wen IT资讯 31

本文目录导读:

RPKI路由安全

  1. 问题的背景:为什么需要 RPKI?
  2. RPKI 的核心概念:数字证书 + 路由对象
  3. RPKI 的工作流程:验证与路由决策
  4. RPKI 的部署现状与挑战
  5. 超越RPKI:BGPsec(BGP安全扩展)

这是一个关于 RPKI(资源公钥基础设施,Resource Public Key Infrastructure) 路由安全的非常核心且专业的问题。

RPKI 是目前互联网上最关键的、用于防止 BGP 路由劫持和路由泄露的验证框架。

下面为你详细拆解:

问题的背景:为什么需要 RPKI?

互联网的“主干道”——BGP(边界网关协议),自诞生之初就有一个巨大的缺陷:它完全信任任何邻居发来的路由信息,而不进行真实性验证。

这导致了两类严重的攻击:

  • 路由劫持(Route Hijacking):某人(恶意或意外)宣告了一个不属于自己的 IP 地址段,导致该IP段的流量被错误地引导到他的网络。
    • 经典案例:2018年,一个名为 eBGP 的泄露事件导致恶意方劫持了亚马逊 DNS 服务器的 IP,窃取了大量加密货币。
  • 路由泄露(Route Leak):一个网络将本应只发给它客户的路由,泄露给了它的上游或对等网络,导致这些网络错误地将流量通过它传输,可能造成服务中断或数据被监听。
  • 前缀劫持 vs 子前缀劫持:攻击者宣告一个更精确的子前缀(更长的网络掩码),即使它不拥有这个前缀,根据BGP的最长匹配原则,所有流量会被引导到攻击者的网络。

RPKI 正是为了解决这些问题而生。

RPKI 的核心概念:数字证书 + 路由对象

RPKI 通过公钥基础设施(PKI)引入了一整套 信任链数字签名 机制,它主要由两个关键对象组成:

a. 路由源授权(ROA,Route Origin Authorization)

这是最基础、最广泛部署的部分。ROA 是一个数字签名的对象,由 IP 地址块的合法持有者(你的公司从RIR/APNIC/ARIN等分配了一个/24的IP段)签发。

一个 ROA 包含了三个关键信息:

  1. IP前缀:哪个IP地址段(0.113.0/24)。
  2. AS号(自治系统号):授权哪个 AS(AS64496)可以宣告这个前缀。
  3. 最大前缀长度:授权宣告的具体掩码长度范围(24,表示只能宣告 /24,不能拆成更小的 /25/26 来劫持)。

签署 ROA 就是告诉全世界:“听好了!只有 AS64496 有权宣告我的 203.0.113.0/24,并且最多只能以掩码 /24 宣告。”

b. 资源证书(Resource Certificate)

这是 RPKI 体系的“根”,IP 地址分配机构(如 IANA、RIR)给 IP 地址持有者颁发一个数字证书,证明持有者对该IP块的所有权,证书本身也记录了前缀和AS号的隶属关系,形成一条从 IANA -> RIR -> LIR/ISP -> 最终用户的信任链。

RPKI 的工作流程:验证与路由决策

  1. 创建:IP地址所有者(如一家公司)在它注册的RIR(如APNIC)的RPKI系统中,为其拥有的IP前缀创建一个 ROA,并指定被授权宣告的AS号和最大前缀长度。

  2. 发布:RIR将这个 ROA 签名后,发布到全球的 RPKI 资料库 中。

  3. 获取:所有参与的路由器(运行验证器)会定期从这些资料库同步并验证整个RPKI证书链。

  4. 验证:当一个路由器收到一条BGP路由更新(0.113.0/24 来自 AS65534)时,它会查询本地缓存的RPKI数据:

    • 查找0.113.0/24 是否有对应的 ROA?
    • 比对:该 ROA 是否授权了 AS65534 来宣告?宣告的掩码是否在允许的范围内?
  5. 结果:路由器会得出三种验证状态,并据此采取行动:

    • Valid(有效):BGP路由与ROA完全匹配。- 接受并正常使用。
    • Invalid(无效)
      • 前缀不匹配:该前缀没有任何ROA授权给这个AS宣告。
      • AS不匹配:该前缀有ROA,但授权给了别的AS,而不是宣告者。
      • 长度不匹配:宣告的掩码长度超出了ROA允许的最大值。
      • 结果:路由器应拒绝这条路由。
    • NotFound(未找到):该前缀没有任何ROA信息。- 这是最常见的情况(全球90%+前缀未签名),路由器通常会接受该路由,但无法验证其真实性。

RPKI 的部署现状与挑战

  • 现状:全球部署速度正在加快,尤其是大型CDN(如Cloudflare、Akamai、Google)、云服务提供商、交换中心(IXP)和Tier 1 ISP都已广泛部署。
  • 挑战
    • 部署率仍较低:虽然经过多年的努力,但全球ROA覆盖的IP前缀比例仍然只有20%-30%左右,大量小型网络尚未签署ROA。
    • ROA管理复杂性:网络动态变化(如变更上游ISP、多宿主连接、BGP community)时,需要精确维护ROA,否则可能误伤自己。
    • 过滤策略的“一刀切”问题:如果所有ISP都严格丢弃“Invalid”路由,一个小错误(例如忘记更新ROA)会导致流量完全中断,因此很多网络目前使用“软惩罚”(降低优先级)而非硬丢弃,但这降低了安全性。
    • 信任根的安全:如果某个RIR的私钥泄露,攻击者可以签发假的ROA来劫持整个地区的前缀。
    • 拉取和验证延迟:全球RPKI资料库的同步和本地验证的实时性对大型网络是技术挑战。

超越RPKI:BGPsec(BGP安全扩展)

RPKI 只解决了路由起源验证问题(即谁宣告了前缀),但它无法防止路由路径篡改(即中间网络恶意修改AS_PATH)。

为了解决这个问题,业界发展了 BGPSec (BGP Security),BGPSec 要求路由更新的每一跳都使用数字签名,从而确保 整条路径 的真实性,但BGPSec 部署复杂(需要支持签名的硬件、更高的计算开销、互操作性问题),实际部署远不如ROA普及。

RPKI 是目前对抗 BGP 路由劫持和路由泄露最主流、最成熟的技术。

  • 核心价值:将IP地址所有权的信任从“朋友间的口头承诺”升级为“加密数字签名”。
  • 关键组件:ROA 和 资源证书。
  • 最终目标:让全球路由器能够验证收到的BGP路由的真实性,拒绝伪造的、非授权的路由。

对于任何管理着自主IP地址块的组织(公司、机构),部署RPKI签署ROA 是当前提升自身和全球互联网路由安全的最重要、最直接、成本最低的行动之一。

上一篇DDoS攻击缓解

下一篇DNSSEC部署率

抱歉,评论功能暂时关闭!