資源公鑰基礎設施如何運作
跟著一項 RPKI 授權,從位址持有人一路到路由器,了解盧恒為何主張服務必須可靠,管理者也必須可以替換。

你把一項服務搬到新的網路。伺服器狀態正常、位址也沒變,但部分訪客卻再也連不上。可能原因出乎意料地小:網際網路的路由紀錄仍只授權舊網路宣告那些位址。
RPKI 將這項許可轉化為其他網路能核對的資料。以下說明它如何從位址持有人傳到路由器,以及盧恒為何認為,維持這套機制運作,絕不能以讓某個管理者持續掌權為前提。若想先讀較短的介紹,可以從RPKI 保護的是什麼開始。
1. 確認誰有權授權這些位址
一組 IP 位址稱為前綴。宣告該前綴的網路以自治系統號碼(ASN)識別自身。RPKI,即資源公鑰基礎設施,使用憑證確認誰能為特定位址範圍簽發授權。
這些憑證形成一條可追溯至受信任根的鏈。如 RFC 6480所述,這個階層依循網路號碼資源的分配關係。它提供的是這個系統內有關資源的證據,不是賦予憑證機構對網際網路使用者的政治授權。
2. 發布經簽署的許可
位址持有人發布路由來源授權(ROA)。它傳達的訊息很具體:這個 ASN 可以發起這個前綴。發起指的是作為所宣告路由起點的網路,不是之後承載流量的每一個網路。
ROA 也可以設定最大前綴長度,亦即位址範圍能被細分成多小的範圍來宣告。若沒有這項選填設定,就只允許所列的前綴長度。這避免了「對這段範圍的許可」悄悄變成對所有可能細分範圍的許可。RFC 9582定義了這份經簽署的紀錄。
3. 將發布的紀錄轉成經驗證的資料
經簽署的紀錄會放在發布儲存庫中供取用。驗證軟體收集它們,檢查憑證鏈、簽章、到期及撤銷資訊,也檢查描述已發布物件的清單。光是一個可讀取的檔案還不夠;支撐它的證據也必須通過驗證。
驗證器產生可供使用的授權資料,通常稱為經驗證的 ROA 酬載(Validated ROA Payloads,VRP),其中包含前綴、獲准的來源 ASN 與最大長度。路由器透過 RFC 8210描述的 RPKI-to-Router 協定,從受信任的快取接收結果。它們不會在訪客每次開啟頁面時,向註冊機構請求許可。
4. 將路由與許可進行比對
BGP 是網路用來宣告路由的協定。接收路由的路由器,會將該路由的前綴與來源 ASN,和自己取得的經驗證授權進行比對。這就是路由來源驗證(ROV)。
Valid(有效):有涵蓋該前綴的授權,同時允許該來源與前綴長度。Invalid(無效):有涵蓋該前綴的授權,但沒有任何一項允許這個組合。NotFound(未找到):沒有授權涵蓋該前綴。這些是比對結果,不是對任何人意圖的判決。營運者決定如何將結果用於路由政策。參見 RFC 6811。
回到服務搬遷的例子。如果舊 ASN 仍獲授權,新 ASN 卻沒有,新宣告就可能被判為 Invalid。過濾 Invalid 路由的網路可能拒絕它。解決方法是讓授權變更與搬遷協調一致,包括兩個網路可能同時需要許可的期間,而不是假定伺服器正常就保證能連通。RFC 7115討論了營運上的預防措施。
5. 讓整條鏈持續運作
來源驗證有助於拒絕虛假的來源主張,但不會驗證每一跳、不會加密流量,也抓不到所有路由洩漏。路由洩漏仍可能保有獲授權的來源。其他路由保護措施依然必要。
證據也需要維護。憑證會到期,許可與發布資料會改變。移除 ROA 不一定造成即時中斷:最終的驗證結果取決於其他可用紀錄,路由上的後果則取決於本地政策。RFC 8211探討憑證機構與儲存庫營運者的錯誤或不利行動如何影響系統。
盧恒的提議:保全服務,替換管理者
在第 70 篇札記中,盧恒質疑一個常見的推論跳躍:因為註冊服務不可或缺,所以目前的營運者就必須不可替代。網路需要準確的紀錄與有效的安全機制,但這不會確立某個機構永久控制網路的權利。
他提出的替代方向,是讓延續性成為系統本身的特性:可獨立稽核的紀錄、經測試的合格接任者交接程序,以及不強迫網路更換位址就能轉移管理的方式。他明確認識到,RPKI 無法靠複製一個目錄就完成移轉。金鑰、憑證、發布與信任,必須在整個過渡期間保持一致。
這是他主張的設計要求,不是宣稱這種可攜性已到處存在。它同時處理問題的兩面:草率替換可能破壞驗證;不可替代的守門人則可能把依賴轉化為權力。服務可靠與管理者可替換,必須一起設計。
為什麼要在危機前建立這種能力?
當爭議延伸到憑證鏈時,影響可能遠遠超出爭議雙方。客戶沒有選擇捲入爭論,卻可能承擔連線中斷的成本。若在中斷期間才臨時設計接任程序,就已來不及讓他們免受這種不確定性影響。
盧恒主張事先確立延續性與退出權,避免行政爭議變成針對正常運作網路的武器。完整論述請見第 70 篇札記:保護帳本,而不是守門人。