课题研究 RPKI路由安全 子课题03 · 第4页 / 共8页
03子课题 · ROA数据质量分析与错误识别

ROA数据质量分析与错误识别第4页:ROA错误识别方法论(错误分类学)

本页是子课题的"方法核心"。在前两页刻画了ROA的"正确形态"与"数据底座"之后,这里系统建立ROA错误的分类学:以"成因维度×严重程度"二维框架组织九类典型错误模式,给出每类的机理、检测信号、后果与严重度,并提出"静态规则 + 多源比对 + 生命周期检查"的组合检测方法,以及误报抑制与置信度分级策略。所有类型均可在第3页的数据底座上被程序化检出。

错误分类学maxLengthover-claim僵尸ROA证书过期矛盾ROA置信度分级研究状态:研究中
所属专题互联网基础设施安全 › RPKI路由安全
前置知识第2页数据模型 + 第3页数据治理
后续衔接第5页一致性校验 → 第6页案例库

01 · 错误分类框架

为兼顾"可操作检出"与"风险可排序",本课题采用二维分类:横轴为成因维度(决定用什么方法检出),纵轴为严重程度(决定处置优先级)。

1.1 成因维度(四类)

维度含义主要检出手段
配置型ROA字段本身与真实意图不符(asID、前缀、maxLength)静态规则校验 + BGP/RDAP比对
生命周期型证书/Manifest/CRL过期、陈旧、未续签时间戳与新鲜度闸门检查
越界型授权超出资源证书范围(over-claim)、僵尸(已回收仍授权)资源范围校验 + RDAP状态核验
一致性型ROA与BGP/IRR/真实宣告脱节(无宣告、无ROA、双轨矛盾)多源比对与时间序列

1.2 严重程度(四级)

等级判定标准典型动作
致命(P0)已造成或即将造成合法路由Invalid、批量失效立即告警 + 优先修复建议
严重(P1)削弱防护(maxLength过松)或越界授权高优先级整改
一般(P2)数据噪声/僵尸、轻微不一致纳入周期性清理
提示(P3)可接受的宽松策略、待观察记录与观察
已发现ROA质量问题的构成(示意)
基于公开文献对错误类型相对频次的排序示意,非精确实测值
说明:本图为示意性结构图,用于说明各错误类型的相对归类与排序思路;精确频次需以本课题实测数据集为准(见第5页量化)。

02 · 九类错误模式详述

下表汇总九类可在数据底座上程序化检出的ROA质量缺陷,含机理、检测信号、后果与严重度。

错误模式机理 / 检测信号后果严重度
① maxLength过严ROA maxLength < 该前缀真实最具体BGP宣告长度(如宣告/24而maxLength=23)更具体合法宣告被判Invalid→自伤中断P0 致命
② maxLength过松maxLength ≫ 真实需要(如对/24设到/32),开放sub-prefix空间sub-prefix劫持仍可Valid,防护失效P1 严重
③ 错误asIDROA的asID与真实起源AS不一致(填错/上游/邻居)真实宣告Invalid;错误AS反而可ValidP0 致命
④ 资源越界(over-claim)ROA授权范围超出签发证书RFC 3779资源扩展;或与RDAP持有范围冲突验证器可能拒收;无效授权P1 严重
⑤ 僵尸ROAROA存在但对应地址长期(如≥90天)无任何BGP宣告,或地址已被回收/转让数据噪声、越界风险、覆盖度虚高P2 一般
⑥ 证书/EE过期ROA绑定的EE或上级CA证书已越过notAfter,未自动重签ROA瞬间失效,连带合法路由InvalidP0 致命
⑦ Manifest/CRL陈旧Manifest序列/thisUpdate滞后,或CRL未包含最新撤销部分RP拒绝该子树ROAP1 严重
⑧ 矛盾ROA(双轨)同一前缀存在多asID ROA,其中一个疑似填错;或与IRR route对象起源矛盾判定混乱、可被利用P1 严重
⑨ 缺失ROA(未保护)重要前缀在BGP中广泛宣告但无任何覆盖ROA(质量缺口,非ROA错误)劫持时ROV无法拦截(防护缺失)P1 严重

2.0 各错误模式的建议检测参数(初始值,需在实测集上校准)

错误模式判定参数(建议初始值)备注
① maxLength过严观测窗口内存在 length > maxLength 的合法起源宣告需区分"真实起源AS"与劫持,避免把劫持误判为自伤
② maxLength过松maxLength − 观测最具体宣告长度 ≥ 4(IPv4)/ ≥ 16(IPv6)阈值为启发式初始值,应结合前缀用途(任播/多归属)调整
③ 错误asIDROA asID ∉ 该前缀观测到的起源AS集合(窗口≥30天)多归属需纳入全部合法asID后再判定
⑤ 僵尸ROA连续 ≥90 天无任何BGP宣告剔除签发未满7天的"预热期"对象
⑥ 证书过期now > EE notAfter,或 now > 上级CA notAfternotBefore未生效同样计入(时钟偏差±5分钟容差)
⑦ Manifest陈旧now > Manifest thisUpdate + 24h(nextUpdate缺失时)各RP对陈旧的处理策略不同,需标注实现差异

说明:上述阈值为方法论文档级初始值,非业界统一标准;本课题将在实测数据集上以"误报率≤1%且P0漏报率为0"为约束校准。

2.0.1 判定参数规范锚点

错误①②的判定原则并非本课题自创:RFC 9319(2022)从防护有效性角度论证了maxLength应与真实宣告需求匹配;RFC 7454(BCP 194,2015)从运维角度给出同源建议。本课题的贡献在于把规范建议转化为可计算的偏差指标(maxLength − 真实最具体宣告长度),并给出误报抑制机制(§04)。

2.1 重点模式深挖:maxLength过严为何是"首痛"

大量运营实践表明,组织在首次启用ROV(或首次创建ROA)时,最常踩的坑正是maxLength过严:出于"照着前缀填"的习惯,把maxLength设为与address等长,却忘了自身为流量工程而对前缀做了deaggregation。一旦启用ROV的对等方按ROV丢弃"更具体但length超界"的路由,该组织会突然发现"我自己的路由被人丢掉了"——而罪魁正是自己签的ROA。因此本课题将maxLength过严列为最高优先级(P0)质量缺陷。

2.2 重点模式深挖:over-claim的隐蔽性

over-claim(越界授权)在"字段看起来完全合法"时也能发生:ROA的asID与前缀都正确,只是该前缀已不在签发者的资源证书范围内(可能因为地址转让、证书范围更新滞后)。这类错误不会让路由Invalid(对真实宣告者而言可能仍是Valid,因为它由正确持有者另签),但却制造了"一张本不应存在的授权",在地址治理与责任认定上是隐患。它必须用"资源证书范围 + RDAP持有状态"双重核验才能发现,是越界型缺陷的代表。

03 · 组合检测方法

单一方法必然漏检或误报。本课题采用"四法组合",各法覆盖不同维度:

方法做什么擅长检出
静态规则校验对ROA字段做语法/语义规则检查(maxLength≥address长度、maxLength≤32/128、前缀在资源范围内)配置型、越界型(字段级)
BGP RIB比对将每个ROA与当前BGP宣告做前缀包含/长度比对,统计有ROA无宣告、有宣告无ROA、maxLength vs 真实长度一致性型、maxLength过严/过松
RDAP/WHOIS核验用注册数据确认地址/AS持有状态,识别已回收地址上的僵尸ROA与越界授权越界型、僵尸型
IRR交叉对比IRR route对象的origin与ROA asID,识别"双轨"矛盾矛盾ROA、配置型
生命周期检查扫描EE/CA notAfter、Manifest thisUpdate/nextUpdate、CRL生命周期型(过期/陈旧)

04 · 误报抑制与置信度分级

质量分析的最大风险是"把合法配置判成错误",进而给出错误的修复建议。本课题通过三类机制抑制误报:

  • 白名单/已知合法模式:任播(同一前缀多asID)、多归属、已知迁移窗口、故意宽松授权(已标注策略意图)纳入白名单,不作为错误。
  • 多源一致才定论:关键判定(如越界、僵尸)需rsync+RRDP一致且RDAP交叉确认,单源异常降级为"待观察"。
  • 置信度三级标注:每条错误结论附高/中/低置信度与证据链(哪些数据源指向该结论),供人工复核。

原则:本课题宁可"漏报一条边界可疑、标为待观察",也不"高置信地误判一条合法ROA为错误"——因为错误的修复建议若被执行,可能反而制造自伤型中断。这是质量分析与攻击检测的根本区别:前者面向"自己/友邻的配置",误判的代价是真实业务中断。

05 · 自动化检测流水线

ROA错误检测自动化流水线
从采集到分级告警的端到端环节
说明:本课题设计的标准检测流水线,各环节方法论见本页及第5页。

5.1 错误档案(结构化输出规范)

每条错误结论以如下结构产出,作为后续修复建议(第8页)与态势感知输出(子课题06)的统一输入,字段对齐STIX风格的可扩展结构:

{
  "finding_id": "ROAQ-2025-000001",
  "pattern": "MAXLENGTH_TOO_STRICT",      // 对应本页九类错误模式
  "severity": "P0",
  "confidence": "high",                    // high/medium/low
  "roa": {
    "prefix": "198.51.100.0/23",
    "as_id": 64500,
    "max_length": 23,
    "rir": "EXAMPLE",                       // 对象所在RIR存储库
    "ee_not_after": "2026-03-01T00:00:00Z",
    "validation_profile": "RFC6487"          // RFC6487 / RFC8360交集模式
  },
  "evidence": {                             // 证据链,多源一致才给high
    "bgp": "该前缀存在 length=24 的合法起源宣告(AS64500),持续≥72h",
    "rdap": null,
    "irr": null
  },
  "false_positive_checks": [
    "多归属白名单: 未命中", "迁移窗口: 未命中", "任播: 未命中"
  ],
  "suggestion_draft": "将 maxLength 调整为 24(依据真实最具体宣告长度)",
  "disclaimer": "仅供资源持有者审核执行;本课题不代修改任何生产对象"
}
图示:ROA质量错误档案 JSON Schema(字段级示意,与第8页修复框架衔接)

本节参考来源(第4页)

以下为真实可查权威来源,支撑本页分类与方法论表述。

[1]

RFC 6482(ROA对象)、RFC 6483(ROV状态)、RFC 3779(资源扩展)、RFC 6486(Manifest):rfc-editor.org/rfc/rfc6482 等。分类学的规范基础。

[2]

RFC 7454《BGP Operations and Security》(2015年2月,BCP 194):rfc-editor.org/rfc/rfc7454。maxLength配置建议与路由起源验证常见错误。

[3]

RDAP(RFC 7480-7484)与 IRR 路由注册库:用于资源归属与路由策略交叉核验的公开注册数据标准。

[4]

NLnet Labs Routinator / rpki-client / Cloudflare OctoRPKI:均输出经验证的VRP列表,是本课题"四道闸门验证"环节的可用实现参考。

[7]

Snijders, J.《RPKI's 2025 Year in Review》(RPKIViews.org数据,2026年1月,NANOG/SIDROPS邮件列表与APNIC Blog同步刊载):lists.nanog.org。全球ROA/VRP规模、各RIR打包效率差异(每ROA前缀数:APNIC 8.2、RIPE NCC 6.6、LACNIC 1.3、ARIN 1.1)等年度统计。

[5]

RIPE NCC RPKI / Routing Statistics 与 APNIC Labs RPKI测量:公开披露ROA覆盖率与Invalid路由占比,为本课题"质量缺口(缺失ROA)"维度提供背景基准。

[6]

关于"RPKI fragility / ROA misconfiguration"的公开研究与运营报告(如各RIR与运营商工程博客中关于maxLength导致Invalid的讨论):用于错误类型相对频次的示意性排序(见本页示意环图,非精确实测)。