RPKI 與 BGP 安全有何不同
BGP 交換路由,RPKI 提供驗證路由來源的證據。了解這項檢查能保護什麼、還有哪些風險,以及證據由誰掌控。

BGP 傳遞路由宣告;來源驗證則把宣告中的來源,與獨立的授權資料進行比對。
一個網路聲稱自己能抵達某個網際網路位址區塊,其他網路應該相信它嗎?比較 BGP 與 RPKI,背後就是這個問題。兩者各司其職:一個交換路由,另一個提供證據,協助判斷路由所聲稱的來源。
路由,以及伴隨它的證據
BGP 讓獨立營運的網路交換可達性資訊。位址區塊稱為 IP 前綴;參與交換的網路,則以自治系統編號,也就是 ASN 識別。營運者根據宣告及自身政策選擇路由。RFC 4271定義了這種交換方式。
收到一則宣告,本身並不能證明位址持有人已授權其中聲稱的來源。錯誤的來源可能來自設定失誤,也可能來自劫持企圖。實際代價可能是:伺服器明明仍在運作,人們卻突然無法存取服務。
RPKI 增加了一套憑證與簽署紀錄系統。路由來源授權,也就是 ROA,會指出哪個 ASN 獲准為指定前綴發起路由。驗證軟體檢查簽署資料,並向路由器提供可用的授權資料。路由來源驗證,也就是 ROV,則把宣告與這些資料進行比對。
一項範圍明確的檢查
比對要確認的是:來源 ASN 與宣告的前綴長度,是否符合涵蓋該前綴的授權。它不會檢查流量內容,也不會驗證宣告路徑上的每一個網路。路由即使通過來源檢查,仍可能被傳播到不該去的地方。
RFC 6811定義了三種結果。Valid 表示存在相符的授權。Invalid 表示有涵蓋該前綴的授權資料,但沒有任何紀錄允許該來源與前綴長度的組合。NotFound 表示正在使用的資料中,沒有涵蓋該前綴的授權。這些是證據的狀態,並非對路由安全或惡意與否的完整判定。
接下來如何處理,取決於接收方營運者設定的政策。網路可以拒絕 Invalid 宣告;但僅僅發布 ROA,不會強迫其他所有網路執行這項檢查。BGP 仍然是交換路由的機制。
服務中斷時,這項區別為何重要
想像一下,你把服務移到新的來源 ASN,但授權仍只列出舊 ASN。新的宣告可能因此變成 Invalid。解決問題的起點,是比對預期宣告、實際使用的授權資料,以及拒絕該宣告的政策。買一台不同的路由器,或假設纜線故障,都沒有抓到原因。
營運者仍需要適當的過濾器、可靠的驗證軟體、監控,以及協調一致的變更。來源驗證是這些工作中一項有用的檢查;若把它當成萬用的安全保證,就會掩蓋仍然存在的依賴。
誰掌控證據?
盧恒的筆記 28在維護紀錄與利用紀錄懲罰參與者之間劃下界線。當他人依賴其紀錄時,紀錄保管者就能影響正在運作的網路。但這種影響力本身,並不賦予它治理各國所有受影響者的權限。
他的筆記 64主張把共同規則限制在唯一性、互通性與安全所需的範圍內,透過本地驗證,並由參與者自願採用後續變更。目標是讓可信賴的協調機制可以替換,而不是讓某一個管理者永久不可或缺。
對營運者來說,眼前的問題很實際:你的團隊能否追溯一條路由,從授權一直到接收網路作出的決定?先從這裡開始,再閱讀如何準備與維護來源授權。在服務仍正常運作時,這些關係比較容易釐清。
回應這篇文章
使用現有帳號登入後,即可留言。