01 · 安全模型边界:ASPA证明了什么、没有证明什么
1.1 保证性质的三层界定
| 保证层 | ASPA能否提供 | 说明 |
|---|---|---|
| 关系真实性 | 能 | 路径中的每个"上坡"跳都有客户侧的密码学授权(私钥不可伪造的前提下) |
| 路径完整性 | 不能 | 无法证明这条AS_PATH就是发件方原始宣告的那条——满足同一授权关系的"等效路径"无法区分 |
| 端到端意图 | 不能 | 无法得知发件方真实意图(如流量工程偏好),仅验证关系拓扑的合法性 |
1.2 与BGPsec保证强度的对照
BGPsec通过逐跳签名提供路径完整性:任何路径篡改都会破坏签名链。ASPA放弃这一层保证,换取签名成本从O(路径长度×每UPDATE)降为O(每AS一份声明)。安全工程的意义在于:关系真实性已足以检出绝大多数泄露与粗糙的路径操纵(现实威胁分布以误配置泄露为主),而针对关系真实性残余的精化攻击(见§02)需要显著更高的攻击者能力——这是"以可部署性换安全强度"的合理权衡,但运营者必须清楚自己买到的是哪一层保证。
02 · 攻击面分析:针对ASPA验证模型的威胁
2.1 等效路径替换(已知残余风险)
攻击者若控制路径中一段真实的提供商—客户链(或借用合法的泄露路由),可将原始路径替换为另一条同样满足授权形态的路径,ASPA判定仍为Valid。缓解思路:①结合AS_PATH长度异常检测(路径显著长于历史基线时告警);②结合BGPsec在关键链路段的局部部署(签名链可锚定路径真实性);③利用起源侧ROV与RPKI数据交叉比对(起源授权与路径形态联合判定)。此外,草案的邻居AS一致性检查(第4页§01)为“剥离自身ASN”类操纵提供了协议级基础防御,但其本身不构成路径完整性保证。
2.2 Unknown降级利用(过渡期主要风险)
在覆盖率不足阶段,攻击者可特意选择未签发ASPA的AS作为路径中的顶点或关键跳,使验证结果落入Unknown并被宽松策略放行。缓解思路:①对重点保护前缀(自有资产、关键服务)建立"路径成分白名单"(允许出现的上游集合),Unknown路径降格而非放行;②监测Unknown占比趋势,推动关键AS签署;③对Unknown路径叠加OTC信号与历史基线偏离检测。
2.3 关系语义盲区:peer与复杂关系
ASPA的单向上坡语义无法表达:①peer-to-peer关系(攻击者可滥用"对等不验证"构造难以判定的路径段);②sibling/联盟等双向转接关系;③route-server之间的RS-peer关系。草案对顶点Unknown的容忍在无意中为"借peer段冒充顶点"提供了形态空间——防御依赖:①运营者对出口过滤的纪律(不向peer传播peer路由等MANRS行动一);②对自家客户的cone管理(只接受客户宣告其授权cone内的前缀)。
2.4 声明数据层的攻击
- 恶意/错误声明:AS可签发虚假ASPA(声明与真实商业关系不符的提供商)——这在模型内是"合法签名、错误语义",验证器无法识别;后果是虚假声明可能被用来将攻击路径"洗白"为Valid。缓解:声明的社会验证(与PeeringDB/IRR数据交叉比对)、声誉机制;
- 过期/撤销滥用:攻击者无法直接伪造撤销,但可通过观察目标AS的证书到期窗口,预测其声明失效时间并安排路径操纵(声明失效→Unknown→放行)。缓解:托管自动续期、有效期监控(与子课题03联动);
- 资料库与分发安全:ASPA与ROA共用RPKI资料库——rsync/RRDP篡改、RTR会话劫持、验证器数据投毒等风险及缓解与子课题04相同(Manifest校验、RTR TCP-AO/保护、多验证器交叉)。
03 · 运营风险:误判与可用性
3.1 误判来源清单
| 误判场景 | 机理 | 缓解 |
|---|---|---|
| 上游变更未同步ASPA | 客户切换到新上游后旧ASPA仍在,新路径被反证→Invalid | 变更流程内嵌ASPA更新;新旧声明并存窗口的灰度策略 |
| afiLimit错配 | 单栈授权被用于双栈路径判定 | 注册时明确栈归属;验证器告警"声明与观察流量栈不符" |
| sibling/联盟路径 | 双向转接被算法读作形态违规 | 对已知sibling对建立例外规则(本地抑制名单) |
| 含AS_SET的聚合 | 现行草案规定含AS_SET的路径直接判Invalid | 推动聚合方去AS_SET化(RFC 6472);实现锁定草案版本并回归测试 |
| 草案版本漂移 | 验证器与草案版本不一致导致判定分歧 | 版本锁定+升级回归测试(第8页检查清单) |
3.2 与ROV历史的对照
ROV推广期曾出现"maxLength配置错误导致合法路由被误杀"的经典事故(业界已沉淀出ROA最佳实践:按实际宣告粒度配置、避免过度宽泛的maxLength)。ASPA将重演同一规律:声明准确性决定误杀率。因此灰度期必须坚持"先降格(depref)后丢弃(drop)、先自家前缀后全网路由"的渐进纪律(第8页实施路线)。
04 · 与RFC 9234(OTC)及ROV的联动策略
4.1 三层判定的优先级设计
建议的联合判定优先级(任一环节命中即处置):
-- 联合判定决策树(运营建议,非标准规定) 1. ROV == Invalid → 丢弃(起源劫持,最高置信) 2. ASPA == Invalid → 丢弃或大幅降格+告警(路径违规,高置信) 3. OTC 违规信号 → 降格+人工复核(无密码学强度,中置信) 4. ASPA == Unknown → 按重点前缀白名单降格,其余采纳+统计 5. ROV == Valid 且 ASPA == Valid → 采纳(全绿)
4.2 与MANRS行动项的映射
| MANRS行动 | 与ASPA的关系 |
|---|---|
| 行动一:过滤(Filtering) | 出口过滤(BCP 84)是ASPA无法覆盖的peer/复杂关系盲区的第一兜底;入口过滤与ASPA判定互补 |
| 行动二:反欺骗(Anti-spoofing) | 与ASPA正交(源地址真实性 vs 路径关系真实性),同属纵深 |
| 行动三:协作(Coordination) | ASPA声明准确性依赖与上游的协调(上游变更同步声明);事件通报依赖协作渠道 |
| 行动四:全局验证(Global Validation) | ROV+ASPA正是"全局验证"的技术内涵;ASPA覆盖率有望成为MANRS的新度量项 |
05 · 威胁缓解对照总表
| 威胁/风险 | 严重度 | 缓解措施 | 责任方 |
|---|---|---|---|
| 等效路径替换 | 中 | 路径基线偏离检测;关键链路段BGPsec锚定;ROV联动 | 监测方/运营者 |
| Unknown降级利用 | 高(过渡期) | 重点前缀白名单降格;Unknown占比监测;推动关键AS签署 | 运营者/治理方 |
| peer关系滥用 | 中 | 出口过滤纪律;本地抑制名单;监测运营 | 运营者 |
| 虚假ASPA声明 | 低-中 | PeeringDB/IRR交叉验证;声誉与社区审计 | 验证方/社区 |
| 声明过期未续 | 中 | 托管自动续期;有效期监控告警 | AS持有者/RIR |
| RTR/资料库投毒 | 低(沿用ROV缓解) | Manifest校验、RTR会话保护、多验证器交叉 | 运营者(见子课题04) |
| 误杀合法路由 | 高(运营事故) | 灰度策略;声明准确性治理;回退预案 | 部署方 |
总体安全结论:ASPA将路径安全从"无法验证"推进到"关系可验证",其对主流威胁(泄露、粗糙路径操纵)的防护收益明确且成本可控;其残余风险(等效路径替换、peer盲区、Unknown降级)均属"已知且可运营缓解"类别。任何单一机制都不构成充分防御——ASPA的正确位置是纵深体系中的一层,而非银弹。
本节参考来源(第7页)
draft-ietf-sidrops-aspa-verification(安全考虑章节;解读基准v26,最新v28):datatracker.ietf.org/doc/draft-ietf-sidrops-aspa-verification。
IETF RFC 9234(OTC机制与安全模型):rfc-editor.org/rfc/rfc9234;RFC 7908(泄露类型学)。
IETF RFC 7705《BGPsec Router Certificate Usage and Provisioning》(2015年)与RFC 8208《BGPsec Security Considerations》(2017年):rfc-editor.org/rfc/rfc8208。
MANRS四项行动规范:manrs.org;BCP 84/RFC 8212《Default Egress BGP Route Filtering on ISP Borders》(2017年):rfc-editor.org/rfc/rfc8212。
IETF RFC 6492、RFC 6486、RFC 6489(RPKI供应协议、Manifest与密钥轮换——ASPA对象撤销与资料库安全的基础)。