資源公鑰基礎設施

資源公鑰基礎設施（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工作組 date=20210502091215 的製作，並是基於記錄的一份威脅分析。這些標準涵蓋了BGP源驗證，而路徑驗證（BGPSEC）則還在進展中。前綴源驗證目前已有數個實現。

**資源證書和子對象**
RPKI使用X.509 PKI證書（RFC 5280）  附有IP地址和AS標識符擴展（RFC 3779）的。它允許區域互聯網註冊管理機構的成員即本地互聯網註冊機構（LIR）獲取一個資源證書，列出其持有的互聯網碼號資源。這為其持有提供了有效證據，但應注意該證書不包含身份信息。通過使用資源證書，本地機構可以為其對所持有前綴執行路由宣告一事創建密碼學證明。這些證明被稱為路由源授權（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有效性產生影響。它們可以是：- 有效
** 路由宣告覆蓋至少一個ROA- 無效
** 該前綴從未經授權的AS發佈。意即：
*** 另一個AS有這個前綴的ROA，但沒有ROA授權這個AS。或者，
*** 這可能是一次劫持企圖
** 該宣告超過ROA中設置的與前綴和AS匹配的最大長度- 未知
** 此次宣告的前綴未被現有的ROA覆蓋（或僅部分覆蓋）
注意，無效的BGP更新也可能是由於配置不正確的ROA所造成。

**管理**
已有 開源工具date=20130509113631 可用於運行證書頒發機構和管理資源證書以及子對象（例如ROA）。此外，區域機構在其成員門戶有託管的RPKI平臺。本地機構可以選擇依賴於一個託管的系統，或運行自己的軟件。

**發佈**
該系統不使用單個存儲庫發佈點來發布RPKI對象，而是由由多個存儲庫發佈點組成。每個存儲庫發佈點與一個或多個RPKI證書發佈點相關聯。在實踐中，這意味著運行一個證書頒發機構時，本地機構可以選擇自己發佈所有加密資料，也可以依賴第三方發佈。當本地機構選擇使用由區域機構提供的託管系統時，原則上發佈將在區域機構的存儲庫中完成。

**驗證**
相關各方運行本地的RPKI驗證工具，它們指向不同的RPKI信任錨，並使用rsync收集用於發佈各存儲庫的所有加密對象。這將創建一個本地驗證的緩存，用於進行BGP路由決策。

**路由決策**
在ROA驗證後，該證明可以與BGP路由一同協助網絡運營商的決策過程。這可以手動完成，但已驗證前綴的原始數據也可以使用 RPKI to Router Protocol (RFC 6810) date=20210502105852 發送到支持的路由器。思科系統在 眾多平臺 date=20150324121745 提供了獲取RPKI數據集的原生支持，並在 路由器配置 date=20201028083728 中使用。瞻博網絡在運行12.2或更新版本的 所有平臺 date=20150810082608 上提供支持。Quagga通過 BGP Secure Routing Extensions (BGP-SRx) date=20210502094905 或基於RTRlib的一個 RFC完全兼容RPKI實現 date=20210308221459 獲得此功能。 RTRlib date=20210228040324 提供了一個RTR協議和前綴源驗證的開源C實現。該庫對於路由軟件的開發人員有用，但也適用於網絡運營商。開發人員可以將RTRlib集成到BGP守護程序中，以實現將其擴展到RPKI。網絡運營商也可以使用RTRlib開發監控工具（例如，檢查緩存的正常運行或評估其性能）。
RFC 6494更新了鄰居發現協議（ND）的安全機制（即安全鄰居發現協議，SEND）的證書驗證方法，以便在IPv6中使用RPKI。它使用修改的RFC 6487 RPKI證書配置定義了SEND證書配置，其中包含一個RFC 3779 IP地址委派擴展。

**參考資料**

**外部鏈接**
 中文：-  CNNIC成功舉辦2017中國IP地址分配聯盟高峰會議 date=20190725114304 ，CNNIC-  通標網站內檢索：RPKI date=20190723203844 
 英文：-  IETF Journal - Securing BGP and SIDR-  An open source implementation of the complete set of RPKI protocols and tools date=20170225060949 -  RTRlib - Open source RPKI-Router Client C Library date=20210228040324 -  Quagga RPKI implementation date=20210308221459 -  BGP-SrX - Quagga router implementation of RPKI-based Origin and Path validation. date=20210502094905 -  RPKI-Monitor - Global and regional monitoring and analysis of RPKI deployment and use. date=20210502101708 -  RPKI Deployment statistics for all RIRsdate=20111027230015 -  Global ROA deployment heatmap-  EuroTransit Czech Republic-  BGPMON - Validating BGP announcement with RPKIdate=20110120212349 -  An APNIC primer on RPKI date=20151026115818 -  RIPE NCC Resource Certification (RPKI) information date=20110114200734 -  LACNIC RPKI Informationdate=2013-02-21 -  ARIN RPKI Information-  NRO statement on RPKI date=20160426134455 -  Internet Architecture Board statement on RPKI date=20180529192935 -  Building a new governance hierarchy: RPKI and the future of Internet routing and addressing-  Secure Border Gateway Protocol (Secure-BGP)- RPKI Router Implementation Report