首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RPKI的工作原理与工作流程

RPKI的工作原理与工作流程

原创
作者头像
草竹道人
发布2025-10-13 13:49:44
发布2025-10-13 13:49:44
1400
举报

资源公钥基础设施(Resource Public Key Infrastructure, RPKI)的核心目标是为互联网域间路由协议BGP提供密码学级别的源认证与授权验证,以解决其固有的安全缺陷。其工作原理建立在一个分层的、基于信任链的公钥基础设施(PKI)之上,通过将IP地址前缀和自治系统号(AS Number)的合法持有权与数字证书绑定,并利用这些证书签发“路由源认证”(ROA),从而实现对BGP路由宣告真实性的验证。

RPKI的工作流程可以分解为以下几个关键步骤,涉及多个核心组件的协同运作:

1. 核心组件定义

理解RPKI的工作原理,首先需要明确其体系中的关键角色:

区域互联网注册机构(RIR - Regional Internet Registry):如APNIC(亚太)、RIPE NCC(欧洲)、ARIN(北美)等。它们是全球互联网号码资源(IP地址和AS号)的权威分配机构,在RPKI中扮演着顶级证书颁发机构(CA) 和信任锚(Trust Anchor) 的角色。

资源持有者(Resource Holder):通常是获得IP地址块和AS号的互联网服务提供商(ISP)或大型企业。他们是资源的实际使用者,也是创建验证数据的主体。

资源证书(Resource Certificate):一种符合X.509标准的数字证书,由RIR签发给其会员(资源持有者)。该证书证明了持有者对其所列IP地址前缀和AS号的合法使用权,并包含持有者的公钥。证书由RIR使用其根CA私钥进行签名。

路由源认证(ROA - Route Origin Authorization):这是RPKI中最核心的数据对象。它是由资源持有者创建并签名的一个声明,格式化地表达“我(拥有特定资源的实体)授权AS X可以宣告IP前缀P”。一个ROA通常包含:

签发者(Issuer):即资源持有者的公钥(来自其资源证书)。

被授权的AS号:允许宣告该前缀的AS号(通常是持有者自己的ASN)。

IP前缀:被授权宣告的网络前缀(例如 203.0.113.0/24)。

最大前缀长度(Max Length):可选字段,用于指定允许宣告的最具体前缀长度(例如 max 26)。这对于防止子前缀劫持至关重要。

数字签名:由资源持有者使用其对应的私钥对ROA内容进行签名,确保其完整性和来源真实性。

仓库(Repository):一个分布式的、公开可访问的文件存储系统(通常基于rsync或RRDP协议)。RIR和各级CA在此发布所有相关的PKI对象,包括资源证书、CRL(证书撤销列表)、ROA等。

依赖方(Relying Party, RP):通常是运行BGP的网络运营商(ISP)部署的软件系统(如Routinator, FORT, OctoRPKI等)。RP负责从全球仓库系统中拉取、验证所有RPKI对象,并生成一个本地的“可信路由列表”(Validated Prefix List)。

路由器(Router):实际运行BGP协议的网络设备。它通过某种机制(如SLURM文件或RFC 8210定义的RPKI-RTR协议)从RP获取验证结果,并据此在BGP决策过程中对收到的路由宣告进行过滤或优先级调整。

2. 工作流程详解

RPKI的验证过程是一个自上而下的信任链(Chain of Trust)建立和验证过程:

第一步:证书签发(Certificate Issuance)

资源持有者(例如 ISP A)向其所属的RIR(例如 APNIC)申请为其拥有的IP地址块(如 203.0.113.0/24)和AS号(AS65001)签发资源证书。

ISP A生成一对公私钥,并将其公钥提交给APNIC。

APNIC验证ISP A确实拥有这些资源后,使用其根CA的私钥为ISP A签发一张资源证书。该证书包含:

ISP A的公钥

被授权的资源列表(203.0.113.0/24, AS65001)

APNIC的数字签名

这张资源证书被发布到APNIC维护的公共仓库中。

第二步:创建与发布ROA(ROA Creation and Publication)

ISP A确认其希望宣告的前缀是 203.0.113.0/24,并且只允许AS65001进行宣告。

ISP A使用其私钥创建一个ROA对象,内容为:“AS65001 可以宣告 203.0.113.0/24”。

ISP A对该ROA对象进行数字签名。

签名后的ROA被上传并发布到RIR指定的仓库位置。

第三步:信息聚合与验证(Information Aggregation and Validation by RP)

全球各地的依赖方(RP)定期(通常每小时)从所有RIR的仓库中拉取最新的RPKI数据,包括所有的资源证书、CRL和ROA。

RP从预置的RIR根证书(信任锚)开始,构建信任链:

验证APNIC签发给ISP A的资源证书:使用APNIC的公钥(来自根证书)验证该证书上的签名是否有效,确保证书未被篡改且由可信的RIR签发。

验证ROA:使用从已验证的资源证书中提取的ISP A的公钥,来验证ROA上的签名。如果签名有效,则证明该ROA确实由资源持有者ISP A创建,内容可信。

RP对所有有效的ROA进行解析,生成一个本地数据库,记录每个IP前缀的“预期宣告者”(即被授权的AS号)和最大允许长度。这个数据库就是“可信路由列表”。

第四步:BGP路由验证与决策(BGP Route Validation and Decision)

当ISP B的边界路由器从邻居处收到一条BGP更新消息,例如:“AS65002 宣告 203.0.113.0/24”,路由器会查询本地RP提供的验证结果。

RP根据其可信路由列表,对该宣告进行评估,返回以下三种状态之一:

Valid(有效):存在一个有效的ROA,明确授权AS65002宣告203.0.113.0/24(或更长的超网,且符合max length)。此路由被视为可信。

Invalid(无效):存在一个有效的ROA,但授权的是其他AS(如AS65001),或者宣告的前缀(如203.0.113.128/25)超出了ROA中规定的最大长度。此路由极可能是非法宣告,应被拒绝或降级。

NotFound(未找到):没有找到针对203.0.113.0/24的任何ROA。这意味着该前缀的所有者尚未部署RPKI,无法验证其合法性。此路由的状态为未知。

路由器根据运营商配置的本地策略(Local Policy)处理不同状态的路由。常见的策略包括:

拒绝所有Invalid路由。

优先选择Valid路由。

对NotFound路由保持现有处理方式(既不强制接受也不强制拒绝),以避免因他人未部署而导致自身网络中断。

3. 总结:密码学信任链

RPKI的工作原理本质上是建立了一个自上而下的密码学信任链:

RIR(信任锚) → 签发资源证书 → 资源持有者 → 签发ROA → 授权路由宣告

整个过程依赖于非对称加密技术(公钥/私钥)和数字签名来确保数据的完整性、真实性和不可否认性。通过将互联网号码资源的行政分配关系(由RIR管理)转化为密码学可验证的数字凭证,RPKI为原本基于“信任”的BGP协议注入了“验证”的基因,从而在技术上大幅提升了全球互联网路由系统的安全基线。

编辑:芦笛(公共互联网反网络钓鱼工作组)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档