跳到主要内容

1. Introduction (简介)

1. Introduction (简介)

一条 BGP route (路由) 将地址前缀与一组 Autonomous Systems (自治系统, AS) 关联起来, 这些 AS 以 BGP 通告的形式标识该前缀所经过的域间路径. 该集合在 BGP [RFC4271] 中表示为 AS_PATH 属性, 并以起源该前缀的 AS 开头. 为减轻针对 BGP 的知名威胁, 包括前缀误宣告与 monkey-in-the-middle (中间人) 攻击, 安全需求之一是具备验证 BGP 路由的 origination AS (起源 AS) 的能力. 更具体地说, 需要验证声称起源某地址前缀的 AS 编号 (由 BGP 路由的 AS_PATH 属性导出) 是否确经前缀持有者授权这样做. 本文描述一种简单的验证机制, 以部分满足该需求.

Resource Public Key Infrastructure (资源公钥基础设施, RPKI) 描述了一种构建形式上可验证的 IP 地址与 AS 编号资源数据库的方法. [RFC6480] 所定义的 RPKI 总体体系结构包含三个主要组成部分:

  • 带有必要 certificate objects (证书对象) 的 public key infrastructure (公钥基础设施, PKI),

  • 经数字签名的 routing objects (路由对象), 以及

  • 用于存放对象并支持定期检索的 distributed repository system (分布式仓库系统).

RPKI 系统基于 resource certificates (资源证书), 其对 X.509 进行扩展以表示 IP 地址与 AS 标识符 [RFC3779], 因而得名 RPKI. Route Origin Authorizations (路由起源授权, ROA) [RFC6482] 是独立的经数字签名的对象, 用于定义 AS 与 IP 地址块之间的关联. 最后, 该仓库系统通过 IANA, Regional Internet Registry (区域互联网注册机构, RIR) 层级以及 ISP 以分布式方式运营.

要从 RPKI 体系获益, 预期在 AS 或组织层面的 relying parties (依赖方) 会获取已签名对象集合的本地副本, 验证签名并处理它们. 还必须定期刷新 cache (缓存). 用于检索本地缓存的具体访问机制不在本文范围内.

各个 BGP speaker (BGP 发言者) 可以利用本地缓存中包含的已处理数据来验证 BGP 通告. 从本地缓存向 BGP 发言者检索已处理数据的协议细节不在本文范围内 (此类机制见 [RFC6810]). 本文提出一种方法, 使 BGP 发言者能够利用已处理数据, 对接收到的 BGP UPDATE 消息中的每个前缀指派 "validation state (验证状态)".

注意, 针对路由的 AS_PATH 属性的完整路径证明不在本文范围内.

与 DNS 类似, 全局 RPKI 仅呈现松散一致的观点, 取决于时间, 更新, 抓取等因素. 因此, 某一缓存或路由器关于特定前缀的数据可能与其他缓存或路由器不同. 对此没有 "修复" 办法, 这是分布式数据与分布式缓存的本质.

尽管 RPKI 为本文提供背景, 同样可以使用任何能够将前缀映射到其经授权 origin AS (起源 AS) 的其他数据库. 每种不同数据库都有其特定的运营与安全特性, 此类特性不在本文范围内.