28.5.1 Bezpieczeństwo i odporność BGP
BGP należy do klasy protokołów routingu wektorowego, w których każdy węzeł rozgłasza „najlepszą” trasę dla każdego miejsca docelowego do wszystkich swoich sąsiadów. Węzeł BGP przechowuje wszystkie ścieżki wysłane przez swoich sąsiadów, ale używa i rozgłasza tylko tę, która jest „najlepsza” zgodnie z pewną określoną polityką. Kiedy ta główna ścieżka zawiedzie, BGP wycofuje ją i wybiera następną najlepszą trasę zapasową. Nowa trasa jest następnie rozgłaszana do swoich sąsiadów.
Podstawowym powodem popularności BGP jest jego duża elastyczność w ustawianiu i używaniu tras, dzięki czemu każdy dostawca usług internetowych (ISP) może wdrożyć swoją politykę bez konieczności jej upubliczniania. Niestety, ta elastyczność i nieprzejrzystość są również przyczyną wielu problemów z BGP, w tym niekompatybilnych konfiguracji przez różnych dostawców usług internetowych, braku globalnego wglądu w jakość lub status tras oraz niezdolności do zastosowania skoordynowanego podejścia do rozwiązywania problemów związanych z routingiem. Na przykład, nawet jeśli wszystkie ścieżki są wybierane ściśle w oparciu o szacunkowe koszty, BGP często wykazuje niepożądane zachowanie, takie jak duże opóźnienia konwergencji i oscylacje, ponieważ informacje o dostępności ścieżki są zwykle wydedukowane, a nie jawnie propagowane. W rezultacie BGP może zastąpić nieudaną ścieżkę następną najlepszą, nie zdając sobie sprawy, że jego lokalna ocena tej ścieżki jest nieprawidłowa. Ten brak informacji o ważności trasy może spowodować, że BGP przejdzie przez wiele rezerwowych tras zanim wybierze właściwą. Cykl wycofań/reklam może trwać przez znaczny okres czasu. Opóźnienie to znane jest jako opóźnienie konwergencji (lub czas odzyskiwania). Te podatności mogą być nawet wykorzystane przez atakującego, aby sprawić, że BGP będzie zachowywał się gorzej niż w przeciwnym wypadku.
Problem zbieżności był szeroko badany w literaturze . W szczególności, Labovitz et al. wykazali, że opóźnienie konwergencji dla izolowanych wycofań tras może być większe niż trzy minuty w 30% przypadków i może wynosić nawet 15 minut. Stwierdzili oni również, że wskaźnik utraty pakietów może wzrosnąć o 30x, a opóźnienie pakietów o 4x podczas odzyskiwania. Istnieje również wiele prób poprawy opóźnienia konwergencji BGP za pomocą różnych technik. Referent bada kwestię wydajności dostarczania pakietów i proponuje technikę redukującą straty pakietów i opóźnienia.
Sprawdzimy teraz odporność samych tablic routingu. Chociaż trudno jest uszkodzić tablice routingu bezpośrednio, legalne wiadomości aktualizujące tablice routingu mogą zostać porwane w celu stworzenia niespójnych tablic routingu. Alternatywnie, fałszywe wiadomości aktualizujące mogą być wysyłane po prostu w celu wyczerpania zasobów obliczeniowych, pamięci lub innych zasobów routerów. Powiązanym problemem jest perturbacja ustawień QoS, którą można wykorzystać do zakłócenia właściwego traktowania ruchu. Tłumienie, powielanie lub zmiana wiadomości aktualizujących trasę może spowodować błędne dostarczenie i zatory. Takie ataki były szeroko rozważane w literaturze, a ochrona odbywa się za pomocą środków kryptograficznych, takich jak uwierzytelnianie wiadomości aktualizujących i szyfrowanie zawartości pakietów lub nagłówków. W artykule przedstawiono obszerny przegląd słabych punktów BGP oraz liczne mechanizmy ochrony.
Secure BGP (SBGP) wykorzystuje podpisane aktualizacje tras poprzez wykorzystanie dwóch hierarchii PKI, jednej do zapewnienia integralności prefiksów IP, a drugiej dla numerów AS. Głównym celem SBGP jest zapewnienie integralności „AS-path” zapisanych w aktualizacjach tras oraz reklamowanych prefiksów IP. (Ścieżka AS to lista AS-ów, przez które przechodzi wiadomość BGP o ogłoszeniu trasy lub wycofaniu trasy, zanim dotrze do miejsca przeznaczenia). Użycie hierarchii PKI jest niezbędne, aby mieć łańcuch zaufania dla każdego prefiksu IP i AS-path; jednak potrzeba wielu operacji na kluczach publicznych sprawia, że schemat jest dość powolny. Hu, Perrig, and Johnson omawiają szybki mechanizm zabezpieczania aktualizacji routingu dla BGP. Autorzy argumentują za użyciem kryptografii symetrycznej, która jest znacznie bardziej efektywna niż użycie PKI. Opowiadają się za wykorzystaniem łańcuchów hashujących zawierających kod uwierzytelniający wiadomość (MAC) w każdym węźle wzdłuż ścieżki pokonywanej przez pakiety aktualizacji, aby zapewnić, że aktualizacje nie są naruszane, a węzły są dodawane lub usuwane ze ścieżki. Chociaż taki schemat może zabezpieczyć aktualizacje, nadal istnieją problemy związane z wymianą klucza i narzutem sprawdzania MAC w łańcuchach hash. Inter-domain Route Validation (IRV) jest zupełnie innym uwierzytelnieniem, gdzie serwer IRV w każdym AS może opcjonalnie zatwierdzić aktualizację od inicjatora AS.
Ale chociaż techniki kryptograficzne są w stanie zabezpieczyć aktualizacje routingu przed nieautoryzowanymi zmianami, wprowadzają one dodatkową złożoność, a tym samym zwiększają szanse na błędną konfigurację. W rzeczywistości, problemy związane z SBGP, który wykorzystuje hierarchię PKI, są podobne do problemów związanych z DNSSEC omówionych w punkcie 28.3.3.
W rzadkich przypadkach, AS może sam stać się złośliwy, być może w wyniku kompromitacji przez przeciwnika. Na przykład, złośliwy AS BGP może zdecydować, że nie wycofa niedziałającej trasy lub nie umieści działającej trasy w zestawie aktualnych tras. Złośliwy AS może również fałszywie ogłaszać, że posiada najbardziej pożądaną (np. najkrótszą) ścieżkę do określonego miejsca docelowego. Spowoduje to, że cały ruch do miejsca docelowego będzie kierowany przez ten AS, a AS może albo węszyć ruch, albo po prostu odrzucić jego część lub całość i spowodować odmowę usługi. Modyfikacja AS-path może również spowodować podobne skutki. Osiągnięcie solidnego routingu pomimo złośliwych AS-ów może być bardzo trudne, ale może wystarczyć po prostu wykrycie i poddanie kwarantannie takich AS-ów.