Czym jest RPKI?
RPKI to infrastruktura kluczy publicznych, która kryptograficznie potwierdza, który AS może ogłaszać dany prefiks w BGP i blokuje przejęcia tras.
Ostatnia aktualizacja:
RPKI (Resource Public Key Infrastructure) to system kryptografii klucza publicznego. Pozwala on właścicielowi zasobów internetowych (adresów IP i numerów AS) w sposób weryfikowalny potwierdzić, który system autonomiczny ma prawo ogłaszać dany prefiks w protokole BGP. Operatorzy mogą dzięki temu odróżnić prawidłowe ogłoszenia od fałszywych i ograniczyć skutki przejęć tras (route hijacking), które przez lata były jedną z głównych słabości globalnego routingu.
ROA: Route Origin Authorization
Podstawowym obiektem RPKI jest ROA (Route Origin Authorization), czyli podpisany cyfrowo rekord, w którym posiadacz prefiksu deklaruje, który numer AS może ten prefiks ogłaszać oraz jaka jest maksymalna dopuszczalna długość maski (maxLength). ROA tworzy się w systemie regionalnego rejestru (RIR), na przykład RIPE NCC, ARIN czy APNIC, korzystając z certyfikatu powiązanego z przydzielonymi zasobami. Łańcuch certyfikatów prowadzi do zaufanej kotwicy (trust anchor) danego RIR, więc każdy operator może niezależnie zweryfikować autentyczność rekordu.
Pojedynczy ROA może obejmować wiele prefiksów i wiele numerów AS, ale każda kombinacja prefiks-AS jest oceniana osobno podczas walidacji. Brak ROA dla prefiksu nie oznacza, że ogłoszenie jest złe, lecz że nie da się go zweryfikować.
Route Origin Validation: valid, invalid, unknown
Mechanizm wykorzystujący ROA do oceny tras w BGP nazywa się ROV (Route Origin Validation). Router lub dedykowany walidator porównuje ogłaszany prefiks i jego AS pochodzenia z dostępnym zbiorem ROA, a następnie przypisuje jeden z trzech stanów.
- Valid: istnieje ROA, którego AS pochodzenia i długość maski pokrywają się z ogłoszeniem.
- Invalid: dla prefiksu istnieje ROA, ale AS pochodzenia jest inny lub maska jest dłuższa niż maxLength. Wskazuje to na przejęcie lub błąd.
- Unknown (NotFound): dla danego prefiksu nie ma żadnego ROA, więc nie można rozstrzygnąć poprawności.
Relacja z BGP i MANRS oraz kroki praktyczne
RPKI nie zastępuje protokołu BGP, lecz go uzupełnia. Chroni przed przejęciami pochodzenia (origin hijack), w których inny AS bezprawnie ogłasza cudzy prefiks. Nie zabezpiecza natomiast całej ścieżki AS przed manipulacją: tym zajmują się odrębne mechanizmy, takie jak ASPA. Wdrożenie RPKI to jeden z filarów inicjatywy MANRS, która promuje dobre praktyki routingu. W praktyce operator powinien wykonać dwa równoległe działania.
- Strona ogłaszająca: utworzyć ROA dla wszystkich własnych prefiksów, ustawiając poprawny AS i rozsądny maxLength, aby uniknąć przypadkowych stanów invalid.
- Strona filtrująca: uruchomić walidator RPKI (np. Routinator, FORT, rpki-client) i skonfigurować router tak, by trasy oznaczone jako invalid były odrzucane, a valid i unknown akceptowane.
Takie podejście, nazywane drop invalids, chroni zarówno własne prefiksy, jak i ruch kierowany przez sieć operatora. Regularne monitorowanie stanu ROA i pracy walidatora jest niezbędne, ponieważ wygasły certyfikat lub błędny maxLength może niespodziewanie unieważnić własne trasy.
Najczęstsze pytania
Czy RPKI chroni całą ścieżkę AS w BGP?
Nie. RPKI z ROA chroni jedynie pochodzenie prefiksu, czyli to, który AS może go ogłaszać. Zabezpieczeniem całej ścieżki AS zajmują się odrębne mechanizmy, takie jak ASPA.
Co oznacza stan invalid i czy zawsze to atak?
Stan invalid oznacza, że istnieje ROA, ale AS pochodzenia lub długość maski nie pasują. Może to być przejęcie trasy, ale częściej wynika z błędu konfiguracji lub źle ustawionego maxLength.
Czy odrzucanie tras invalid jest bezpieczne?
Tak, to zalecana praktyka (drop invalids), ale wymaga wcześniejszego poprawnego utworzenia własnych ROA, aby nie unieważnić własnych prefiksów, oraz monitorowania walidatora.
Jak RPKI wiąże się z MANRS?
Publikowanie ROA i filtrowanie tras invalid to jedno z głównych działań rekomendowanych przez inicjatywę MANRS, która promuje wspólne dobre praktyki bezpieczeństwa routingu.
