资源公钥基础设施

资源公钥基础设施（Resource Public Key Infrastructure，简称RPKI），也称资源认证（Resource Certification），中文全称“互联网码号资源公钥基础设施”，是一项旨在使互联网路由基础设施更安全的公開金鑰基礎建設（PKI）框架。

RPKI为将互联网码号资源信息（如自治系统号码和IP地址）连接到一个提供了一种方式。它的证书结构反映了互联网码号资源的分发方式，即资源最初由IANA分配到区域互联网注册管理机构（RIR），区域机构再将其分配给（LIR），最后由本地机构将资源分配给其客户。资源的合法持有人可以使用RPKI来控制互联网路由协议的运行，以防止和其他攻击。尤其是RPKI可通过BGPSEC保护边界网关协议（BGP），以及以安全邻居发现协议（SEND）作为IPv6的邻居发现协议。

RPKI架构被记录于RFC 6480。RPKI规范记录于一系列RFC：RFC 6481、RFC 6482、RFC 6483、RFC 6484、RFC 6485、RFC 6486、RFC 6487、RFC 6488、RFC 6489、RFC 6490、RFC 6491、RFC 6492和RFC 6493。SEND记录于RFC 6494和RFC 6495。这些RFC由IETF的SIDE工作组 的制作，并是基于RFC 4593记录的一份威胁分析。这些标准涵盖了BGP源验证，而路径验证（BGPSEC）Security Requirements for BGP Path Validation , S. Bellovin, R. Bush, D. Ward, October 19, 2011则还在进展中。前缀源验证目前已有数个实现。Resource Public Key Infrastructure (RPKI) Router Implementation Report (RFC 7128), R. Bush, R. Austein, K. Patel, H. Gredler, M. Waehlisch, February, 2014

 资源证书和子对象 
RPKI使用X.509 PKI证书（RFC 5280）  附有IP地址和AS标识符扩展（RFC 3779）的。它允许区域互联网注册管理机构的成员即（LIR）获取一个资源证书，列出其持有的互联网码号资源。这为其持有提供了有效证据，但应注意该证书不包含身份信息。通过使用资源证书，本地机构可以为其对所持有前缀执行路由宣告一事创建密码学证明。这些证明被称为A Profile for Route Origin Authorizations (ROAs) , M. Lepinski, S. Kent, D. Kong, May 9, 2011（ROA）。

 路由源授权 
路由源授权状态表示着自治系统（AS）是否已被授权作为特定IP前缀的源头。此外，它可以确定AS已被授权宣告的最大前缀长度。

 最大前缀长度 
最大前缀长度是一个可选字段。当它未定义时，AS仅被授权宣告明确指定的前缀，任何更具体的前缀宣告被视为无效。这是以宣告更具体前缀来强制实施聚合并防止劫持的一种方式。

当它存在时，这指定了AS已被授权宣告具体IP前缀的长度。例如，如果IP地址前缀为10.0/16，最大长度为22，则该AS被授权宣告10.0/16下的任何前缀，只要没有超出/22的范围。因此本例中，该AS被授权宣告10.0/16、10.0.128/20或10.0.252/22，但不含10.0.255.0/24。

 RPKI路由宣告核验 
当为特定源AS和前缀创建一个ROA时，它将对一个或多个路由宣告的RPKI有效性产生影响Validation of Route Origination using the Resource Certificate PKI and ROAs, G. Huston, G. Michaelson, November 11, 2010。它们可以是：
 有效
 路由宣告覆盖至少一个ROA
 无效
 该前缀从未经授权的AS发布。意即：
 另一个AS有这个前缀的ROA，但没有ROA授权这个AS。或者，
 这可能是一次劫持企图
 该宣告超过ROA中设置的与前缀和AS匹配的最大长度
 未知
 此次宣告的前缀未被现有的ROA覆盖（或仅部分覆盖）
注意，无效的BGP更新也可能是由于配置不正确的ROA所造成。M. Wählisch, O. Maennel, T.C. Schmidt: "Towards Detecting BGP Route Hijacking using the RPKI", Proc. of ACM SIGCOMM, pp. 103–104, New York:ACM, August 2012.

 管理 
已有开源工具可用于运行证书颁发机构和管理资源证书以及子对象（例如ROA）。此外，区域机构在其成员门户有托管的RPKI平台。本地机构可以选择依赖于一个托管的系统，或运行自己的软件。

 发布 
该系统不使用单个存储库发布点来发布RPKI对象，而是由由多个存储库发布点组成。每个存储库发布点与一个或多个RPKI证书发布点相关联。在实践中，这意味着运行一个证书颁发机构时，本地机构可以选择自己发布所有加密资料，也可以依赖第三方发布。当本地机构选择使用由区域机构提供的托管系统时，原则上发布将在区域机构的存储库中完成。

 验证 
相关各方运行本地的RPKI验证工具，它们指向不同的RPKI信任锚，并使用rsync收集用于发布各存储库的所有加密对象。这将创建一个本地验证的缓存，用于进行BGP路由决策。

 路由决策 
在ROA验证后，该证明可以与BGP路由一同协助网络运营商的决策过程。这可以手动完成，但已验证前缀的原始数据也可以使用RPKI to Router Protocol (RFC 6810) 发送到支持的路由器。思科系统在众多平台 提供了获取RPKI数据集的原生支持，并在路由器配置 中使用。瞻博网络在运行12.2或更新版本的所有平台 上提供支持。通过BGP Secure Routing Extensions (BGP-SRx) 或基于RTRlib的一个RFC完全兼容RPKI实现 获得此功能。RTRlib 提供了一个RTR协议和前缀源验证的开源C实现。该库对于路由软件的开发人员有用，但也适用于网络运营商。M. Wählisch, F. Holler, T.C. Schmidt, J.H. Schiller: "RTRlib: An Open-Source Library in C for RPKI-based Prefix Origin Validation, Proc. of USENIX Security Workshop CSET'13, Berkeley, CA, USA:USENIX Assoc., 2013.开发人员可以将RTRlib集成到BGP守护程序中，以实现将其扩展到RPKI。网络运营商也可以使用RTRlib开发监控工具（例如，检查缓存的正常运行或评估其性能）。

RFC 6494更新了邻居发现协议（ND）的安全机制（即安全邻居发现协议，SEND）的证书验证方法，以便在IPv6中使用RPKI。它使用修改的RFC 6487 RPKI证书配置定义了SEND证书配置，其中包含一个RFC 3779 IP地址委派扩展。

 参考资料 

 外部链接 
 中文：
 CNNIC成功举办2017中国IP地址分配联盟高峰会议 ，CNNIC
 通标网站内检索：RPKI 

 英文：
 IETF Journal - Securing BGP and SIDR
 An open source implementation of the complete set of RPKI protocols and tools 
 RTRlib - Open source RPKI-Router Client C Library 
 Quagga RPKI implementation 
 BGP-SrX - Quagga router implementation of RPKI-based Origin and Path validation. 
 RPKI-Monitor - Global and regional monitoring and analysis of RPKI deployment and use. 
 RPKI Deployment statistics for all RIRs
 Global ROA deployment heatmap
 EuroTransit Czech Republic
 BGPMON - Validating BGP announcement with RPKI
 An APNIC primer on RPKI 
 RIPE NCC Resource Certification (RPKI) information 
 LACNIC RPKI Information
 ARIN RPKI Information
 NRO statement on RPKI 
 Internet Architecture Board statement on RPKI 
 Building a new governance hierarchy: RPKI and the future of Internet routing and addressing
 Secure Border Gateway Protocol (Secure-BGP)
 RPKI Router Implementation Report

Category:互联网结构
Category:公钥密码学
Category:路由协议