摘要

  • RFC 9582 要求 ROA 的 EE 证书包含明确的 IP 地址资源,不得使用 inherit,并且不得出现 AS 标识符委派扩展。
  • 获准的来源 AS 写在签名载荷的 asID 中;它证明地址资源权人作出有限授权,不认证 ASN 背后的主体,也不承诺不可否认。
  • 对象校验、VRP、BGP 观测、路由器接收、本地策略、选路与数据交付必须各有凭证。

绿色证书里,ASN 从哪里来

审计画面显示证书链为绿色,IP 前缀也在授权范围内。有人指着 AS 一栏问:既然证书中找不到这个 ASN,系统凭什么称它为有效来源?

答案不是去补一项扩展。RFC 9582 正好要求这项扩展不存在。EE 证书必须有 RFC 3779 的 IP 地址委派扩展,载荷里的每个前缀都要被它覆盖,而且不能用 inherit 把范围留给上级链条解释。与此同时,AS 标识符委派扩展不得出现在这张证书中。

ASN 来自另一层:签名的 RouteOriginAttestation 载荷。asID 与 IPv4、IPv6 前缀共同受到 CMS 签名保护。证书说明签署者对哪些地址具有授权资格;载荷说明这份资格把哪些前缀的来源权授给哪个 AS。

这个结构没有认证 AS 的运营者、法人或持钥设备。RFC 9582 的安全章节明确说,ROA 验证所用 PKI 提供授权而不是显式认证,ROA 也不打算提供不可否认性。若界面把“有效”翻译成“AS 身份已认证”,它已经越过规范边界。

一份 ROA 只授权一个 AS

同一地址持有人若允许两个 AS 宣告同一组前缀,需要签发两份 ROA。两份对象可以有不同的生命周期、撤销路径和错误历史。把它们压成一个绿色单元格会损失可追溯性。

每个地址项包含前缀与可选的 maxLength。没有它,只允许精确前缀;有它,才允许直到指定长度的更具体路由。/24 加 26 可覆盖 /25、/26,却不包括 /27。RFC 9319 对过宽范围提出谨慎建议,因为授权面可能大于真实发布需求。

但范围大小仍不是身份。即使 maxLength 最小化,也只缩小“哪些路由不会因长度不匹配而无效”的集合,不会证明谁在控制 ASN、BGP 会话或转发设备。

规范化解决字节歧义,不解决时间差

ASN.1 可用不同序列表示相同地址集合。RFC 9582 因而把每项映射为地址族、首地址、前缀长度和有效最大长度四元组,再按序排列并识别重复项。未来依赖方可能更严格地拒绝多余或非规范表示。

这让比较稳定,却不让运行状态自动一致。一份字节完美的 ROA 可能尚未到达某个镜像,某个验证器可能还在旧快照,缓存到路由器的会话也可能滞后。规范顺序无法证明传播与执行。

正确次序是:先完成 RFC 6488 的签名对象校验,再检查证书路径、IP 资源包含关系、无 inherit、无 AS 扩展和载荷结构。任何一项失败都令整份 ROA 无效,而不是只摘掉可疑前缀继续使用其签名权威。

路由是后来到达的另一份事实

有效 ROA 可以导出 VRP。RFC 6811 再拿一条实际收到的路由——前缀、长度、来源 AS——与 VRP 比较,得到 Valid、Invalid 或 NotFound。没有路由观测,就没有这一步判定。

Valid 不说明 AS 背后的组织是谁,也不说明完整 AS_PATH 可信。Invalid 不自动证明恶意;NotFound 更不等同于无效。不同观测点、验证器时间和路由器缓存可能得到不同结果。

RFC 8210 还要求把验证数据送到路由器,RFC 7115 与 RFC 8893 再进入本地导入、导出政策。一台设备收到 VRP,不等于已经执行拒绝;执行拒绝,不等于全网同步;选中路径,也不等于数据包或应用已经成功。

因此,最强的忠实结论只到这里:在明确时间、信任锚和仓库快照下,某对象通过校验,并授权某 AS 发布一定范围的前缀。它没有替网络宣布后续结果。

来源