28.5.1 Säkerhet och robusthet hos BGP
BGP tillhör klassen path vector routing protocols, där varje nod annonserar den ”bästa” rutten för varje destination till alla sina grannar. En BGP-nod lagrar alla vägar som skickas av grannarna men använder och annonserar endast den som är ”bäst” enligt en viss policy. När denna primära väg misslyckas drar BGP tillbaka den och väljer den näst bästa reservvägen. Den nya rutten annonseras sedan till grannarna.
Den grundläggande orsaken till BGP:s popularitet är dess stora flexibilitet när det gäller att inrätta och använda rutter så att varje Internetleverantör (ISP) kan genomföra sina önskade riktlinjer utan att behöva offentliggöra dem. Tyvärr är denna flexibilitet och ogenomskinlighet också orsaken till många problem med BGP, bland annat inkompatibla konfigurationer hos olika Internetleverantörer, brist på global insyn i rutternas kvalitet eller status och oförmåga att skapa ett samordnat tillvägagångssätt för att hantera routningsproblem . Även om alla vägar väljs strikt på grundval av kostnadsberäkningar uppvisar BGP ofta oönskade beteenden, t.ex. långa konvergensfördröjningar och svängningar, eftersom informationen om vägens tillgänglighet i regel härleds snarare än sprids uttryckligen. BGP kan därför ersätta en misslyckad väg med den näst bästa vägen utan att inse att den lokala bedömningen av denna väg är felaktig . Denna avsaknad av information om en vägs giltighet kan leda till att BGP går igenom ett antal reservvägar innan det väljer en giltig. Cykeln av indragningar/annonseringar kan fortsätta under en avsevärd tid. Denna fördröjning kallas konvergensfördröjning (eller återhämtningstid). Dessa sårbarheter kan till och med utnyttjas av en angripare för att få BGP att bete sig sämre än annars.
Konvergensproblemet har undersökts ingående i litteraturen . Labovitz et al. visade att konvergensfördröjningen för isolerade ruttuttag kan vara större än tre minuter i 30 % av fallen och kan vara så hög som 15 minuter. De fann också att paketförlusten kan öka med 30 gånger och paketfördröjningen med 4 gånger under återhämtningen. Det finns också många försök att förbättra BGP:s konvergensfördröjning med hjälp av olika tekniker. Reference undersöker frågan om paketleveransprestanda och föreslår en teknik för att minska paketförlust och fördröjning.
Vi undersöker nu robustheten hos själva routningstabellerna. Även om det är svårt att korrumpera routningstabellerna direkt, kan legitima uppdateringsmeddelanden för routningstabeller kapas för att skapa inkonsekventa rutningstabeller. Alternativt kan falska uppdateringsmeddelanden skickas helt enkelt för att uttömma dator-, minnes- eller andra resurser hos routrarna. En relaterad fråga är störningar i QoS-inställningarna, som kan utnyttjas för att störa den korrekta trafikbehandlingen. Om uppdateringsmeddelanden om ruttuppdateringar undertrycks, dubbleras eller ändras kan det leda till felaktiga leveranser och överbelastning. Sådana angrepp har behandlats utförligt i litteraturen, och skyddet sker med hjälp av kryptografiska metoder, t.ex. autentisering av uppdateringsmeddelanden och kryptering av paketens innehåll eller rubriker. Referensen ger en omfattande översikt över BGP-sårbarheter och många skyddsmekanismer.
Secure BGP (SBGP) använder signerade ruttuppdateringar genom att använda sig av två PKI-hierarkier, den ena för att säkerställa integriteten hos IP-prefix och den andra för AS-nummer. Huvudsyftet med SBGP är att säkerställa integriteten hos den ”AS-sökväg” som registreras i ruttuppdateringar och de annonserade IP-prefixen. (AS-path är den lista över AS:er genom vilken en BGP-routeannonsering eller ett meddelande om återkallande av en BGP-väg går innan den når sin destination). Användningen av PKI-hierarkin är nödvändig för att få en förtroendekedja för varje IP-prefix och AS-sökväg, men behovet av flera offentliga nyckeloperationer gör systemet ganska långsamt. Hu, Perrig och Johnson diskuterar en snabb mekanism för att säkra routningsuppdateringar för BGP. Författarna argumenterar för att använda symmetrisk kryptografi, vilket är mycket effektivare än att använda PKI. De förespråkar användning av hashkedjor med en meddelandeautentiseringskod (MAC) vid varje nod längs den väg som uppdateringspaketen tar för att säkerställa att uppdateringarna inte manipuleras och att noder läggs till eller tas bort från vägen. Även om ett sådant system kan säkra uppdateringar finns det fortfarande problem med nyckelutbyte och den övertid som det innebär att kontrollera MAC-koder i hashkedjor. Interdomain Route Validation (IRV) är en mycket annorlunda autentisering där en IRV-server i varje AS kan valfritt validera uppdateringen från AS:s avsändare.
Och även om kryptografiska tekniker kan säkra routningsuppdateringar mot obehöriga ändringar, medför de extra komplexitet och ökar därmed risken för felkonfigurationer. I själva verket liknar problemen med SBGP, som använder en PKI-hierarki, de DNSSEC-problem som diskuteras i avsnitt 28.3.3.
I sällsynta fall kan ett AS självt bli skadligt, kanske på grund av att en motståndare äventyrar det. Ett skadligt BGP AS kan till exempel besluta att inte dra tillbaka en icke fungerande rutt eller underlåta att lägga in en fungerande rutt i uppsättningen aktuella rutter. Ett illvilligt AS kan också felaktigt annonsera att det har den mest önskvärda (t.ex. kortaste) vägen till en viss destination. Detta kommer att leda till att all trafik till destinationen dirigeras genom detta AS och AS kan antingen snoka i trafiken eller helt enkelt förkasta en del av eller hela trafiken och orsaka en förnekelse av tjänsten. Ändringen av AS-path kan också ge liknande effekter. Det kan vara mycket svårt att uppnå robust routing trots vissa skadliga ASes, men det kan räcka med att helt enkelt upptäcka och sätta sådana ASes i karantän.