课题研究 RPKI路由安全 子课题02 · 第2页 / 共8页
02子课题 · RPKI部署测量与效能评估

RPKI部署测量与效能评估第2页:RPKI技术体系与部署架构解剖

准确的测量必须建立在对测量对象的精确理解之上。本页对RPKI部署涉及的全部技术组件进行体系化解剖:X.509资源证书信任链、ROA/EE证书/Manifest/CRL对象模型、ROV三态判定算法(RFC 6483)、RTR验证结果分发协议(RFC 8210)、RRDP/rsync存储库同步机制(RFC 8182/6481)、托管与委托两种部署模式、SLURM本地例外层(RFC 8416),并逐一标注每个组件上的测量点。这一"解剖图"是第3页测量方法学与第4—6页所有量化指标的技术地基。

资源证书ROAManifestCRLROVRTR v1RRDPSLURM托管/委托RFC 6483RFC 8210RFC 8182研究状态:研究中
所属专题互联网基础设施安全 › RPKI路由安全
目标受众网络运营工程师、RIR/NIR注册管理人员、SOC与态势感知团队、安全研究人员
全文结构8页:总览 → 体系解剖 → 测量方法 → 覆盖画像 → 执行生态 → 效能评估 → 最佳实践 → 工具路线

01 · RPKI对象模型:测量对象的解剖

RPKI是一套以X.509资源证书为基础(复用RFC 5280证书规范并加入IP/AS资源扩展)的密码学基础设施。测量的第一步是弄清"被部署的对象到底是什么"。RPKI存储库中部署与验证涉及的对象类型如下:

对象定义与作用标准依据
信任锚证书(TA Certificate)每个RIR自行签发的自签名根证书,是所有验证链的起点;RP软件通过TAL(信任锚定位符)获取RFC 6490(TAL原始版,已被RFC 7730废黜);RFC 8630(现行TAL);RFC 6484(证书策略)
CA证书(资源证书)RIR向下级(NIR、LIR、最终用户)签发的资源证书,以RFC 3779扩展携带IP前缀块/AS号段授权RFC 6487(已被RFC 7318、RFC 8209、RFC 9829更新)
ROA(路由源授权)由EE证书签名的CMS对象,{asID, ipAddrBlocks(prefix, maxLength)}三元组的权威声明RFC 6482(已被RFC 9582更新)、RFC 6488(签名对象模板,已被RFC 9589更新)
Manifest(清单)某CA发布目录下全部对象的哈希清单,供RP校验存储库完整性与检测对象被删除/替换RFC 6486(v1,已被RFC 9286废黜更新)
CRL(证书撤销列表)EE证书撤销状态列表;配合Manifest共同支撑"对象消失"类攻击检测RFC 6481、RFC 6486;RFC 9829(2026年,CRL序号扩展处理)
Ghostbusters记录发布者联系信息记录,供异常处置时联络资源持有者RFC 6493(现状态为Historic)

1.1 信任链示例

以一条RIPE NCC区域的ROA验证链为例:

RIR信任锚(RIPE NCC, 自签名)
  └─ CA证书(LIR:某会员机构,获授权 203.0.113.0/24)
       └─ EE证书(一次性签发,仅用于签署单个ROA)
            └─ ROA:{ asID: AS64496, prefix: 203.0.113.0/24, maxLength: 24 }  ← CMS签名对象
RP软件验证:TA指纹(TAL内嵌)→ 证书链逐层校验 → 资源授权包含性检查 →
            有效期/撤销状态检查 → 提取VRP (203.0.113.0/24, max=24, AS64496)

测量启示:信任链中任何一环失效(证书过期、Manifest不一致、CRL不可达、RRDP同步失败),都会导致VRP缺失或验证失败。因此"部署测量"不仅是数ROA个数,还需沿整条信任链逐环节做可用性测量——这正是第4页覆盖质量维度与第3页管道设计的依据。

02 · ROV三态判定算法:效能测量的基准线

路由起源验证的判定规则由RFC 6483定义、RFC 6811给出操作框架:对BGP宣告{prefix p, origin AS a},在本地VRP库中寻找匹配项:

for each VRP {prefix v, maxLength m, authorized AS asn}:
    if p ⊆ v 且 length(p) ≤ m:
        if a == asn  → 判定 Valid(存在授权,且起源一致)
        else         → 判定 Invalid(存在授权,但起源不一致 → 疑似劫持)
if 无任何VRP覆盖 p:
    判定 NotFound(无证据,默认接受 → 无防护状态)
  • 最长前缀匹配优先:多条VRP同时覆盖时,以最长匹配VRP为准;VRP库中相同前缀可能存在多条记录(不同授权AS)。
  • maxLength语义:声明"授权宣告允许的最长掩码"。若LIR只宣告/24却签署maxLength=24覆盖整个/16,攻击者仍无法以/25劫持(maxLength约束),但若maxLength=16而实际宣告/24,则合法宣告反而被判Invalid——这是ROA配置错误的主要来源之一(第7页展开)。
  • 判定结果只是"输入":路由器对Invalid路由的策略(discard / de-prefer / log-only)由本地配置决定,RPKI本身不强制任何动作——这导致"全球ROA覆盖率"与"全球实际防护率"之间必然存在落差(第5、6页的测量重点)。
  • 验证状态可传播:RFC 8097定义了携带起源验证三态结果的BGP扩展团体属性,边界路由器的OV判定可沿iBGP传递给域内其他路由器,支撑"一处验证、域内一致策略"的部署形态——测量执行率时,"全网统一discard"与"仅边界执行"是两种不同的执行强度档位。
RPKI验证与分发流水线
从资源持有者签发到路由器决策的六个环节,每个环节都是测量点
依据RFC 6482/6483/6486/8210整理的架构模型。

03 · RTR协议(RFC 8210):执行测量的关键观测面

RTR是RP软件与路由器之间的验证结果分发协议,v1版由RFC 8210(2017)定义,废黜了2013年的v0(RFC 6810)。协议要点:

  • 传输与会话:运行于TCP之上(约定服务端口323),通过Serial Number机制支持增量同步;支持IPv4/IPv6双栈VRP下发。
  • PDU类型:Serial Query / Serial Notify / Reset Query / Cache Response / IPv4 Prefix PDU / IPv6 Prefix PDU / End of Data / Error Report等;Prefix PDU携带前缀、掩码、最大长度与起源AS,即VRP的线上编码。
  • 会话重置:RP侧缓存重置或路由器会话异常时,触发全量刷新(Reset Query → Cache Response → 全量PDU → End of Data)。
  • 安全考量:协议本身不强制加密(RFC 8210建议部署方以TCP-AO或隧道等方式保护会话),同一RP可为多台路由器服务,形成"一点验证、多点分发"结构。

测量启示:RTR是ROV执行链路中唯一存在可观测交互的环节——虽然无法从全球视角直接观测,但可通过"路由器侧公开配置案例、IXP开放测量、RP软件部署统计"三角互证来估计RTR生态规模;而"是否对Invalid执行discard"仍属路由器本地决策,只能间接推断(第5页方法)。

3.1 RTR版本演进与兼容现状

版本标准状态说明
RTR v0RFC 6810(2013)原始版本,仅支持IPv4/IPv6前缀PDU基础集;已被RFC 8210废黜
RTR v1RFC 8210(2017)现行版本:扩展PDU格式、明确错误处理与会话语义;主流RP软件与路由器厂商均支持

04 · 存储库分发:rsync与RRDP双轨制

RPKI对象从RIR存储库到RP软件的同步存在两套机制,直接影响覆盖测量的采集时效:

机制标准特征测量影响
rsyncRFC 6481(目录结构)早期唯一方式;目录树按CA层级组织;全量镜像开销大、延迟高快照时点粗糙,难以支撑分钟级测量;仍在部分遗留管道中使用
RRDPRFC 8182(2017)基于HTTPS的XML机制:notification.xml(版本通知)+ snapshot.xml(全量)+ delta(增量);仅传输变更对象同步延迟从小时级降至分钟级;是现行测量管道的事实标准

RRDP的引入是RPKI测量史上的分水岭:2017年之前,全局覆盖统计只能做到"日级甚至更粗"的快照;RRDP普及后,RP软件(如rpki-client、Routinator)可将全部五大RIR对象的同步周期压缩至10—15分钟,使"接近实时的全球ROA覆盖仪表盘"成为可能(NIST RPKI Monitor、RIPE NCC统计均基于此)。

同步失败=测量盲区:若某RIR存储库短时不可用或RRDP证书配置异常,RP侧的VRP集会暂时缺失该区域数据,BGP侧对应前缀会大面积"退化为NotFound"。覆盖测量必须剔除或标注此类同步异常窗口,否则会把基础设施故障误读为"ROA被撤销"(第3页数据治理)。

05 · 部署模式:托管与委托

资源持有者参与RPKI有两种模式,测量时必须区分(两者在存储库拓扑、证书控制权上差异显著):

模式机制优点局限
托管(Hosted)在RIR提供的Web平台直接点击签发ROA,密钥与CA由RIR托管零门槛、无运维负担;出错率低;适合中小LIR依赖RIR平台可用性;细粒度控制有限
委托(Delegated)自建CA,从RIR获取委托资源证书,自行运营发布点(需支持RRDP/rsync+Manifest/CRL完整栈)完全控制密钥与ROA生命周期;可自动化签发(RFC 8181发布协议、RFC 8183带外配置)运维复杂度高;证书/Manifest管理不当会导致验证失败

不同RIR的托管/委托成熟度不同:RIPE NCC与ARIN的托管服务较早成熟,APNIC提供托管与委托双轨,AFRINIC/LACNIC亦提供托管平台。测量上,托管比例高的区域ROA增长更快、错误率更低,这是区域对比(第4页)的重要解释变量。

06 · 信任锚体系与例外处理

  • 五大信任锚:APNIC、ARIN、RIPE NCC、LACNIC、AFRINIC各自运营信任锚;IANA将号码资源按区域委托给RIR,RPKI信任结构与此一一对应(RFC 6491描述RIR代表IANA签发的对象)。
  • 跨区迁移的历史对象:资源在RIR之间转移(如欧洲LIR迁入ARIN区域)时,历史ROA可能在旧RIR侧残留、新RIR侧未签,形成"幽灵VRP"——测量覆盖时若仅以"当前宣告前缀∩ROA"计算,会低估实际冲突风险;Testart等(IMC 2019)将此列为Invalid宣告的重要来源之一。
  • SLURM本地层(RFC 8416):RP软件支持管理员本地添加或过滤VRP。它是灰度上线(先log-only观察)与例外处置的标准手段,但也意味着"RP侧实际生效的VRP集"可能偏离"全球客观ROA集"——严肃测量应区分两集合并记录差异。
  • 路由器和RP的角色分离:RP软件(验证者)与路由器(消费者)可同机或分离部署;大型网络常采用中心RP集群+边缘RTR分发结构,测量RTR会话规模时需按"每对会话"而非"每组织"计数。
10–15min
现代RP全量同步周期量级
rpki-client/Routinator等主流RP软件的默认RIR轮询间隔量级,RRDP普及后的测量时效基线
323
RTR约定服务端口
RFC 8210约定的TCP服务端口,RP软件默认监听
2种
存储库同步协议
rsync(RFC 6481)与RRDP(RFC 8182),后者为现行主流
2017
RRDP/RTR v1发布年
RFC 8182/8210同年发布,RPKI进入"可运营测量"阶段

本节参考来源(第2页)

以下均为真实可查的IETF标准原文与权威文档。

[1]

IETF RFC 6482《A Profile for Route Origin Authorizations (ROAs)》(2012):rfc-editor.org/rfc/rfc6482;RFC 6483《Validation of Route Origination Using RPKI》(2012):rfc-editor.org/rfc/rfc6483。

[2]

IETF RFC 6811《BGP Prefix Origin Validation》(2013):rfc-editor.org/rfc/rfc6811;RFC 7115《Origin Validation Operation Based on the RPKI》(2014):rfc-editor.org/rfc/rfc7115。

[3]

IETF RFC 8210《The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 1》(2017):rfc-editor.org/rfc/rfc8210。

[4]

IETF RFC 8182《The RPKI Repository Delta Protocol (RRDP)》(2017):rfc-editor.org/rfc/rfc8182。

[5]

IETF RFC 6486《Manifests for the RPKI》(2012):rfc-editor.org/rfc/rfc6486;RFC 6490《Trust Anchor Locator》(2012):rfc-editor.org/rfc/rfc6490。

[6]

IETF RFC 8416《Simplified Local Internet Number Resource Management with the RPKI (SLURM)》(2018):rfc-editor.org/rfc/rfc8416。

[7]

IETF RFC 8181《A Publication Protocol for the RPKI》(2017):rfc-editor.org/rfc/rfc8181;RFC 8183《An Out-of-Band Setup Protocol for RPKI Production Services》(2017,废黜RFC 6492):rfc-editor.org/rfc/rfc8183。

[8]

IETF RFC 8209《A Profile for BGPsec Router Certificates, Version 2》(2017,更新RFC 6487):rfc-editor.org/rfc/rfc8209;RFC 7935《The RPKI Algorithms and Key Size Profile》(2016,更新RFC 6485):rfc-editor.org/rfc/rfc7935。

[9]

rpki-client文档:rpki-client.org;NLnet Labs Routinator:nlnetlabs.nl;Fort Validator:fortproject.org;Cloudflare OctoRPKI:github.com/cloudflare/cfrpki。

[10]

IETF RFC 7730《RPKI Trust Anchor Locator》(2016,废黜RFC 6490):rfc-editor.org/rfc/rfc7730;RFC 8630(2019,TA格式):rfc-editor.org/rfc/rfc8630(RIPE NCC CPS亦引用8630作为其TA依据)。

[11]

IETF RFC 9286《Manifests for the RPKI》(2022,废黜RFC 6486):rfc-editor.org/rfc/rfc9286;RFC 9829《Handling of RPKI CRL Number Extensions》(2026):rfc-editor.org/rfc/rfc9829。

[12]

IETF RFC 9582(ROA配置文件更新版,废黜RFC 6482):rfc-editor.org/rfc/rfc9582;RFC 9589(签名对象模板更新):rfc-editor.org/rfc/rfc9589。

[13]

IETF RFC 8097《BGP Prefix Origin Validation State Extended Community》(2017):rfc-editor.org/rfc/rfc8097(OV三态结果的BGP域内传播机制)。