IPv6 is een nieuw protocol naast het bekende IPv4-protocol en maakt het onder andere mogelijk om meer netwerkadressen te kunnen gebruiken. Naast de mogelijkheden brengt IPv6 ook nadelen met zich mee. Dus voordat je er enthousiast mee aan de slag gaat, schenk dan eerst aandacht aan de performance- en security-risico’s.
Impact IPv6 op performance
IPv6 heeft op verschillende gebieden impact op de performance van je website.
Routering
Zo kan ten eerste de routering bij IPv6 een andere weg volgen. Het is waarschijnlijk dat niet alle ‘peers’ IPv6 praten en daardoor de IPv6-pakketten een kortere of langere route volgen. Bij proefmetingen hebben we al gezien dat soms IPv6 een lagere latency oplevert, maar meestal een fractie (enkele ms) hoger.
IPv6 header
Daarnaast zijn alle IPv6 packets meestal 20 bytes groter ten opzichte van IPv4 packets. Dat komt omdat een IPv6-adres 16 bytes groot is en een IPv4-adres 4 bytes. Bij een ‘van en naar adres’ is dat 24 bytes meer. Haal daar optionele bytes vanaf en je komt praktisch op 20 meer bytes uit. Een gemiddelde website als www.marktplaats.nl heeft al 1292 packets nodig met een totaal van 1014KB. Daar komt dan 26KB aan extra packetgrootte bij voor IPv6, gemiddeld dus 2,6 procent. Je kunt dus zeggen dat je 2,6 procent minder bandbreedte beschikbaar hebt. Volgens Akamai is de gemiddelde beschikbare bandbreedte van Nederlandse aansluitingen 17Mbps. Omgerekend betekent dat dan dat een dergelijke website dan 13ms langzamer laadt door IPv6 gebruik. Bij grotere downloads zakt het verschil, door grotere packets, naar ongeveer 1,5 procent.
Impact IPv6 op security
Op het gebied van security is de impact van IPv6 nog groter. Om een indruk te geven benoemen we hier een aantal voorbeelden.
Minder NAT
Tegenwoordig geven verreweg de meeste providers maar één ip-adres uit aan thuisgebruikers. Het modem krijgt een ip-adres en pc’s, laptops, mobieltjes en tablets krijgen een lokaal ip-adres. Deze apparaten zijn dan in principe niet vanaf het internet toegankelijk. Dat komt door Network Address Translation (NAT), wat eigenlijk een truc is om apparaten met een lokaal ip-adres toch met het internet te kunnen laten praten. De modem/router houdt dan bij welke connectie het lokale apparaat heeft en weet op die manier de in- en uitgaande pakketten ‘om te nummeren’. Het bijkomende voordeel was dat interne apparaten direct op een bepaalde manier waren afgeschermd. Het lokale apparaat moet immers eerst een connectie naar buiten maken wil de modem/router de pakketten goed doorsturen.
Het hele idee van IPv6 is dat ook apparaten thuis een eigen en uniek ip-adres krijgen. Ze zijn dan in principe ook vanaf het internet benaderbaar. Het is hier dus heel belangrijk om echte firewall functionaliteiten toe te passen.
Policies
Standaard is er veel focus op IPv4-adressen. Binnen dit domein worden veel regels toegepast. Voor IPv6 zouden veel van deze regels opnieuw moeten worden ingevoerd om ze dus ook voor IPv6 toe te kunnen passen. De zichtbaarheid hierop is laag, omdat er veel minder gebruik van gemaakt wordt. Tests worden vaak slechts op IPv4 uitgevoerd, waardoor gebreken in de firewalls op IPv6 niet worden opgemerkt.
Daarnaast gebruiken applicaties vaak een ip-adres ter identificatie van een gebruiker of een aanvaller. Bijvoorbeeld bij authenticatie wordt op basis van een ip-adres bijgehouden of een gebruiker niet te vaak heeft geprobeerd in te loggen met een verkeerd wachtwoord. Als dat dan zo is, wordt een ‘CAPTCHA’ getoond. Een hacker die over IPv6 beschikt, heeft echter mogelijk honderdduizenden adressen tot zijn beschikking, en kan dit soort beveiligingen dus gemakkelijk omzeilen.
Kennis
Gebrek aan kennis van IPv6 van SysOps zou ook een mogelijk risico kunnen zijn. Het is voor velen toch een vrij onbekend protocol en weten zij hoe ze de security goed moeten toepassen? Beheerders die denken dit risico te kunnen omzeilen door IPv6 gewoon uit te zetten, komen van een koude kermis thuis: er zijn aanvallen waarmee juist machines waarop geen IPv6 is geconfigureerd, worden overgehaald hun verkeer via IPv6 naar de hacker te sturen in plaats van over IPv4.
Tunnels
Omdat nog niet iedereen IPv6 aangeboden krijgt van zijn provider, zijn er diverse manieren om over IPv4-verbindingen toch IPv6 te krijgen. Dit gaat meestal door middel van tunnels, zoals Teredo en 6to4. Deze mechanismes introduceren echter ook risico’s, aangezien zo’n tunnel dwars door firewalls en dergelijke heen gaat en termineert op het werkstation van degene die de tunnel aan heeft gezet! Het is dus zaak om ook op een IPv4-only netwerk, te zorgen dat het gebruik van zulke tunnels gereguleerd wordt.
Obscure features
IPv6 is ontworpen om een heleboel problemen van het internet in één keer op te lossen. Het ontwerp stamt echter wel uit de jaren ’90, toen het internet op een heel andere manier gebruikt werd dan tegenwoordig. Veel van deze features zijn dus in de vergetelheid geraakt, maar bieden wel mogelijkheden tot misbruik. Bijvoorbeeld de ‘source routing’ feature die mogelijkheden biedt om firewalls te omzeilen. Daarnaast gaan verschillende apparaten verschillend om met de grote hoeveelheid IPv6 extension headers, wat ook voor interessante kwetsbaarheden zorgt.
Privacy
In het SLAAC algoritme, de IPv6-vervanger van DHCP, worden MAC-adressen gebruikt voor het genereren van je unieke IPv6-adres. Je MAC-adres is uniek per laptop/telefoon/desktop. Neem je dus je laptop of telefoon mee, dan is het heel eenvoudig voor trackers om je te identificeren, waar je ook bent ter wereld. Ze kunnen aan de hand van je IPv6-adres afleiden dat dat jouw laptop is en zelfs zien welk merk.
Meer weten over wat IPv6 betekent voor security? Lees dan de paper The Impact of IPv6 on Penetration Testing.
Dit artikel is teveel van de klok horen luiden, maar weet niet waar de klepel hangt.
NAT = Security? Nee, NAT is al jaren niet een veiligheids-optie. Daarvoor heb je echt wel een Firewall nodig. Juist de afwezigheid van NAT zal er voor zorgen dat we zaken beter kunnen beveiligen. Denk aan end-to-end encryptie en authenticatie. Met een NAT device blijft dit een uitdaging.
Dat het MAC adres gebruikt wordt als host id klopt ook niet elk geval. In het begin was dit zeker het geval, maar tegenwoordig zie je steeds meer hosts gebruik maken van een random waarde.
De echte security issue zie ik niet terug in het artikel. Juist het uitdelen van prefix en route adressen zorgen voor de nodig uitdaging. Daarom is er ook SEND gekomen.
@Martijn
NAT is inderdaad geen security, maar het is wel een effectief middel om het thuisnetwerk te verbergen voor de buitenwereld. Als je bij IPv4 met NAT met 5 devices (computers, telefoons, tablets, mediaspelers, …) naar site X gaat, dan ziet site X maar 1 uniek IP adres van jou. Als je bij IPv6 zonder NAT met dezelfde 5 devices naar site X gaat, dan ziet site X 5 unieke (IP+MAC of IP+random) adressen van jou.
Met andere woorden: bij IPv4 plus NAT weet de site die jij bezoekt niet met hoeveel unieke devices jij dat doet, bij IPv6 zonder NAT weet de site die jij bezoekt dat wel.
Zo kunnen aanvallen van buitenaf in vijfvoud plaatsvinden, te weten op alle 5 unieke adressen, in de hoop dat het zwakst beveiligde apparaat in jouw thuisnetwerk een lek heeft. Feitelijk betekent dat dat je bijvoorbeeld smart tv’s of goedkope Android tablets ouder dan 2 jaar niet meer in je netwerk mag hebben.
NAT is geen security, maar het ontbreken van NAT betekent wel dat je je security in de meterkast heel erg goed op orde moet hebben!
Met NAT in de typische vorm (1toN translation) met 1 publiek ip adres en N prive adressen, impliceert wel degelijk een vorm van beveiliging. Masking and initiating. Precies wat de auteur beschrijft. End to end encryptie zoals van je webbrowser naar https://www.computable.nl is prima mogelijk met ipv4. EUI-64 niet ok ?
Tunnels vormen inderdaad ook security risico’s, evenals source routing.
Prima artikel.
Hi Martijn,
Zoals je zult begrijpen scherm je met NAT impliciet al je lokale interfaces af. Je hoeft een gemiddelde thuisgebruiker niet te vragen om hun firewall verder optimaal in te stellen. Iets wat met NAT veel minder aandacht vereist.
Door IPv6 te activeren zullen ineens gebruikers wel een publiek toegankelijk adres krijgen. Ziggo doet dat bijvoorbeeld al voor haar zakelijke klanten. Zonder een firewall te gebruiken wordt er zonder dat je het weet, een publiek toegankelijk IPv6 adres aan het interface toegevoegd bij een default Windows install. Het subnet wordt standaard (zonder activeren en zonder default firewall) door de router announced. Een firewall wordt dus ineens wel een MUST om dat ook fatsoenlijk in te richten, juist voor IPv6. Het opent dus deuren, welke je zelf bewust moet sluiten. Ik suggereer niet dat NAT ook security is, alleen het bijkomende voordeel wel een bepaalde impliciete security maatregel is.
En met de grote embedding van privacy extensions door mainstream OS’en waardoor IPv6 adressen random gegenereerd worden lost voornamelijk het SLAAC-privacy issue op. Dat neemt niet weg dat in de basis het SLAAC protocol hier nog wel in voorziet en ook nog gebruikt wordt.