资源公钥基础设施

**資源公鑰基礎設施**（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）則還在進展中。字首源驗證目前已有數個實現。

## 資源憑證和子物件

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 所造成。

## 管理

已有開源工具（頁面存檔備份，存於網際網路檔案館）可用於執行憑證頒發機構和管理資源憑證以及子物件（例如 ROA）。此外，區域機構在其成員門戶有代管的 RPKI 平台。本地機構可以選擇依賴於一個代管的系統，或執行自己的軟體。

## 發布

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

## 驗證

相關各方執行原生的 RPKI 驗證工具，它們指向不同的 RPKI 信任錨，並使用 rsync 收集用於發布各儲存庫的所有加密物件。這將建立一個本地驗證的快取，用於進行 BGP 路由決策。

## 路由決策

在 ROA 驗證後，該證明可以與 BGP 路由一同協助網路業者的決策過程。這可以手動完成，但已驗證字首的原始資料也可以使用 RPKI to Router Protocol (RFC 6810) （頁面存檔備份，存於網際網路檔案館）傳送到支援的路由器。思科系統在眾多平台 （頁面存檔備份，存於網際網路檔案館）提供了取得 RPKI 資料集的原生支援，並在路由器組態 （頁面存檔備份，存於網際網路檔案館）中使用。瞻博網路在執行 12.2 或更新版本的所有平台 （頁面存檔備份，存於網際網路檔案館）上提供支援。Quagga 通過 BGP Secure Routing Extensions (BGP-SRx) （頁面存檔備份，存於網際網路檔案館）或基於 RTRlib 的一個 RFC 完全相容 RPKI 實現 （頁面存檔備份，存於網際網路檔案館）獲得此功能。RTRlib （頁面存檔備份，存於網際網路檔案館）提供了一個 RTR 協定和字首源驗證的開源 C 實現。該庫對於路由軟體的開發人員有用，但也適用於網路業者。開發人員可以將 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 InformationArchive.is 的存檔，存檔日期 2013-02-21
* 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