Hoe werkt een VPN-verbinding?

Hoe werkt een VPN

Een VPN werkt door een versleutelde tunnel op te zetten tussen je apparaat en een VPN-server in een locatie naar keuze. Dit verbergt je IP-adres, versleutelt je internetverkeer en voorkomt dat je internetprovider of andere derde partijen je internet gebruik in de smiezen kunnen houden.

VPNs zijn een cruciaal middel voor het beschermen van je privacy, online vrijheid en veiligheid.

In dit artikel leg ik je uit hoe een VPN precies werkt. Wil je eerst liever weten wat een VPN eigenlijk precies is, bekijk dan dit artikel.

Ik begin met een korte samenvatting die uitlegt hoe VPN’s werken, en behandel daarna in meer detail hoe ze je IP-adres en je werkelijke locatie kunnen verbergen.

Vervolgens duiken we in VPN-versleuteling.

Korte samenvatting: hoe werkt een VPN

Een VPN werkt door je data te versleutelen en het om te leiden via een VPN-server op afstand.

Dit is wat er met je internetverkeer gebeurd wanneer je een VPN gebruikt:

  1. Je surft naar een website via je browser.
  2. De VPN-software op je apparaat versleuteld de verbinding aanvraag. Dit zorgt ervoor dat de locatie en inhoud van je aanvraag niet door derden gezien kan worden.   
  3. Je data wordt doorgestuurd naar je gekozen VPN-server, waar het ontgrendeld wordt.
  4. De VPN-server verbindt met de website namens jou, en de website stuurt je aangevraagde informatie terug naar de VPN-server.
  5. Deze informatie wordt versleuteld door de VPN-server en doorgestuurd naar je apparaat waarmee je de informatie hebt opgevraagd (bijvoorbeeld je laptop of telefoon).
  6. Je VPN-app ontgrendeld de informatie en de aangevraagde website verschijnt in je browser.

Door dit proces te volgen, stelt een VPN je in staat je IP-adres te verbergen. De websites die je bezoekt kunnen hier nu dus geen toegang tot krijgen. Daarbij zorgt het dat je internetprovider, werkgever, overheid of andere derde partijen je internetgebruik niet kunnen inzien.

Wat is een VPN-tunnel?

Een “VPN-tunnel” is een gebruikelijke manier om te beschrijven wat er gebeurt zodra je een VPN-verbinding opzet. Het verwijst naar een versleutelde verbinding tussen je apparaat en de VPN-server.

De verbinding oogt als een tunnel omdat je eigen verkeer wordt versleuteld en wordt omgeven door een laag van niet-versleuteld verkeer.

Je kunt dit je als volgt voorstellen:

Neem een envelop met een brief erin, en stop deze in een tweede envelop met een ander adres erop. Het daadwerkelijke bericht raakt hierdoor verborgen voor de buitenwereld. Alsof het in een tunnel zit.  

Hoe verbergt een VPN je IP-adres?

Wanneer je surft op het internet zonder VPN, reist je verbinding direct van je apparaat naar de server die de website huisvest die je wilt bezoeken.

Om toegang te kunnen krijgen tot de website je opvraagt, moet deze server je IP-adres kennen.

Je IP-adres is in essentie je paspoort op het internet. Het is een unieke identificatie-methode die andere computers vertelt waar informatie te sturen als ze willen dat het jou bereikt.

Je IP-adres bevat een hoop persoonlijke informatie. Het onthult je locatie en kan gebruikt worden om een beeld te schetsen van je gedrag online.

Daarom willen veel mensen hun IP-adres verbergen via een VPN.

Wanneer je surft met een VPN, reist je verbinding altijd via een VPN-server op afstand voordat het de server bereikt die de website of dienst die je wilt bezoeken onderbrengt.

Wanneer de server informatie naar je terugstuurt, stuurt het dit eerst naar de VPN-server die het vervolgens weer naar jou stuurt.

Door je verkeer via deze tussenpersoon om te leiden (oftewel, je VPN-server), voorkom je dat websites erachter komen wat je werkelijke IP-adres is.

De websites die je bezoekt zien enkel een verbindingsverzoek binnenkomen van een VPN-server.

Pro tip: De beste VPN’s bieden toegang tot duizenden servers in tientallen verschillende landen. Je kunt websites hierdoor laten denken dat je je in een ander land bevindt. Hierdoor kun je bijvoorbeeld toegang krijgen tot Netflix bibliotheken in andere landen.

Hoe versleutelen en beveiligen VPN’s je data?

Versleuteling verwijst naar het veranderen van leesbare tekst in een brabbeltaal die enkel begrijpelijk is voor iemand die weet hoe hij dit moet ontgrendelen. Het doel van versleuteling is ervoor te zorgen dat derden niet je data kunnen inzien.

VPN’s gebruiken versleuteling om de details van je surfgedrag te verbergen terwijl het tussen je apparaat en de VPN-server reist. Dit zorgt ervoor dat internetproviders, overheden, je werkgever, hackers en andere geïnteresseerden je verbinding niet kunnen bespioneren.

Hoe werkt dit eigenlijk? Hoe versleuteld en beveiligt een VPN je data nou precies?

In de volgende sectie gaan we precies bekijken hoe dit zit, te beginnen met versleutelingscodes.

Versleutelingscodes

Om je online activiteit in onleesbare brabbeltaal te veranderen, moeten VPN’s een versleutelingscode gebruiken.

Zo’n code is een algoritme dat data versleuteld en weer ontgrendeld.

Het gaat meestal gepaard met een specifieke sleutellengte.

In het algemeen geldt: hoe langer de sleutellengte, hoe veiliger de codering is. AES-256 wordt bijvoorbeeld als veiliger beschouwd dan AES-128.

De meest gebruikte versleutelingscodes in VPN-diensten zijn:

Advanced Encryption Standard (AES)

De Advanced Encryption Standard (AES) is een van de veiligste beschikbare versleutelingscodes en wordt veel gebruikt binnen de VPN-industrie.

AES is in 2001 opgericht door het Amerikaanse National Institute of Standards and Technology (NIST) en wordt ook wel het Rijndael-algoritme genoemd. Het is ontworpen om grotere bestanden te verwerken dan andere versleutelingscodes (zoals Blowfish) vanwege de grotere blokgrootte.

AES is meestal beschikbaar in lengten van 128 bits en 256 bits. Hoewel AES-128 nog steeds als veilig wordt beschouwd, weten we dat overheidsinstanties zoals de NSA altijd proberen coderingsstandaarden te ondermijnen. Daarom heeft AES-256 de voorkeur, omdat dit een veel betere beveiliging biedt.

Wanneer je op de website van een VPN leest over versleuteling van “military grade,” bedoelen ze over het algemeen dat ze AES-256 gebruiken. De Amerikaanse overheid gebruikt zelf AES-256-codering om hun eigen gevoelige gegevens te beveiligen, dus daarom zou je dit ook in een VPN willen terug zien.

Blowfish

Blowfish is een versleutelingscode die is ontworpen door de Amerikaanse cryptograaf Bruce Schneier in 1993. Vroeger was het de standaardcode die in de meeste VPN-verbindingen werd gebruikt, maar het is nu grotendeels vervangen door AES-256.

Meestal zie je dat Blowfish wordt gebruikt met een 128-bits sleutellengte, hoewel deze kan variëren van 32 bits tot 448 bits.

Blowfish heeft enkele zwakke plekken. Het bekendste is de kwetsbaarheid voor een cryptografische aanval die bekend staat als een “birthday attack.” Om deze reden kun je beter geen VPN gebruiken met deze versleuteling.

ChaCha20

ChaCha20 in 2008 gelanceerd door Daniel Bernstein en is daarmee een relatief nieuwe VPN-codering. Desondanks wordt het steeds populairder omdat het de enige versleutelingscode is die werkt met het steeds populairder wordende WireGuard-protocol (o.a. NordVPN pushed dit protocol hard).

Net als AES heeft ChaCha20 een sleutellengte van 256 bits, wat als zeer veilig wordt beschouwd. Onderzoek laat tevens zien dat ChaCha20 tot drie keer sneller is dan AES.

Er zijn momenteel geen kwetsbaarheden bekend waar ChaCha20 onder leidt, en daarmee vormt het een mooi alternatief voor AES.

Camellia

Camellia is een versleutlingscode die qua beveiliging en snelheid erg lijkt op AES. Zelfs kijkende naar de kortere sleutellengte optie (128 bits), wordt het beschouwd als praktisch onmogelijk om in te breken met een brute kracht aanval, gezien de huidige technologie. Er zijn geen succesvolle aanvallen bekend die de Camellia-versleutelingcode effectief verzwakken.

Het belangrijkste verschil tussen Camellia en AES is dat het niet is gecertificeerd door NIST, de Amerikaanse organisatie die AES heeft opgericht.

Hoewel je zou denken dat het logisch is een versleutelingscode te gebruiken die niet is geassocieerd met de Amerikaanse overheid, is Camellia zelden beschikbaar in VPN-software en is het ook niet zo grondig getest als AES.

VPN-protocollen

VPN-protocollen zijn de processen en regels die een VPN-dienst volgt om ervoor te zorgen dat er een beveiligde verbinding kan worden opgezet tussen je apparaat en de VPN-server. Het VPN-protocol bepaalt hoe de versleutelde tunnel daadwerkelijk wordt gevormd.

Afhankelijk van het protocol dat een VPN gebruikt heeft het verschillende snelheden, mogelijkheden maar ook zwakke plekken.

Er zijn een behoorlijk aantal VPN-protocollen beschikbaar, maar ze zijn niet allemaal veilig om te gebruiken. Voor de meeste veiligheid raden we je aan OpenVPN te gebruiken, maar WireGuard is ook een steeds sterker wordend protocol. WireGuard is veel sneller dan OpenVPN en wordt ook door steeds meer populaire VPN-diensten aanbevolen.

Hier zijn de meest bekende VPN-protocollen:

  • OpenVPN. Dit is waarschijnlijk het meest bekende en meest gevestigde protocol. Het is open-source, zeer goed beveiligd en werkt met praktisch elk apparaat waar je een VPN op kan draaien.
  • WireGuard. Dit is het nieuwste VPN-protocol. WireGuard mikt erop veilig, snel en eenvoudig implementeerbaar te zijn doordat het uit veel minder regels code bestaat dan andere protocollen. Hoewel dit protocol nog steeds in de kinderschoenen staat, wordt het ondersteunt door een groeiend aantal VPN-diensten en ook aanbevolen door onder anderen NordVPN.
  • IKEv2/IPsec. IKEv2 wordt samen met IPsec gebruikt en is een relatief nieuw, closed-source VPN-protocol. Het is veilig, erg snel en kan netwerkveranderingen met gemak aan. Dit maakt het een ideaal protocol voor apparaten die vaak wisselen tussen mobiele data en WiFi.
  • SoftEther. SoftEther is eveneens een relatief nieuw VPN-protocol. Het biedt zeer snelle verbindingssnelheden en goede beveiliging. Helaas heeft het een paar zwaktes in zijn configuratie en wordt het slechts gebruikt door een klein aantal VPN-diensten.
  • SSTP. SSTP is nog een closed-source VPN-protocol. Het is in het bezit van Microsoft en is gebouwd op SSL 3.0, wat kwetsbaar is voor een MITM aanval genaamd Poodle. Het is nog niet helemaal zeker of SSTP ook daadwerkelijk aangetast is door deze aanval, maar het is waarschijnlijk het risico niet waard om het te gebruiken.
  • PPTP. Vermijd dit protocol als de pest. Het is verouderd en super eenvoudig te hacken.

VPN-handshakes

Naast versleutelingscodes en protocollen, gebruiken VPN’s ook protocollen genaamd “handshakes” en “hash authentications” die je verbinding nog veiliger maken.

Een handshake (handdruk in het Nederlands) refereert aan de eerste verbinding tussen twee computers. Het is een groet waar binnen beide partijen elkaar authenticeren en waarbij de communicatieregels worden vastgesteld.

Gedurende een VPN-handshake, stelt je apparaat wat een VPN gebruikt een verbinding op met de VPN-server.

De verbinding wordt dan gebruikt om op een veilige manier een versleutelingscode tussen je apparaat en de server te delen. Deze code wordt vervolgens gebruikt om je data aan het uiteinde van de VPN-tunnel te versleutelen en te ontgrendelen gedurende je sessie online.

VPN-handshakes gebruiken over het algemeen het RSA (Rivest Shamir-Adleman) algoritme. Dit algoritme is de afgelopen twee decennia de basis geweest voor internetbeveiliging.

Dit RSA-algoritme komt in meerdere varianten: RSA-1024, RSA-2048 en RSA-4096. RSA-1024 wordt tegenwoordig als onveilig beschouwd, waardoor de meeste VPN’s het niet meer gebruiken.

Hoewel het handshake-proces goed werkt en een veilige versleuteling genereert, kan elke online sessie mogelijk worden gedecodeerd met de privésleutel die wordt gebruikt in de RSA-handshake. Je kunt het dus zien als de “hoofdsleutel.”

Als de hoofdsleutel ooit zou worden gehacked, zou deze kunnen worden gebruikt om elke beveiligde sessie op die VPN-server te decoderen. Een aanvaller kan dan toegang krijgen tot alle gegevens die door de VPN-tunnel stromen.

Om dat te voorkomen, raden we aan om VPN-services te gebruiken die zijn ingesteld met Perfect Forward Secrecy. De VPN’s die wij aanbevelen hebben dit.

Perfect Forward Secrecy

Perfect Forward Secrecy is een protocolfunctie die gebruikmaakt van het Diffie-Hellman (DH) of het Elliptic Curve Diffie-Hellman (ECDH) sleuteluitwisselingsalgoritme om tijdelijke sessiesleutels te genereren.

Perfect Forward Secrecy zorgt ervoor dat de coderingssleutel nooit via de verbinding wordt uitgewisseld.

In plaats daarvan genereren zowel de VPN-server als het apparaat dat de VPN gebruikt onafhankelijk de sleutel met behulp van het DH- of ECDH-algoritme.

Dit is een complex proces, maar Perfect Forward Secrecy verwijdert eigenlijk de dreiging van een enkele privésleutel die, indien deze wordt gekraakt, elke beveiligde sessie openbaart die ooit op de server is gehost.

In plaats daarvan zijn de sleutels 1-dagsvliegen. Dit betekent dat ze maar één specifieke sessie kunnen openbaren, en niets meer.

Hash-authenticatie

Secure Hash Algorithms (SHA) worden gebruikt om de integriteit van verzonden gegevens en client-serververbindingen te verifiëren. Ze zorgen ervoor dat informatie niet is gewijzigd tijdens de reis tussen bron en bestemming.

SHA's werken door brongegevens te bewerken met behulp van een zogenaamde hash-functie. Het originele bronbericht wordt door een algoritme geleid en het resultaat is een tekenreeks met een vaste lengte op geen enkele manier op het origineel lijkt.

Het is een eenrichtingsfunctie – je kunt geen de data niet “ont-hashen” om het originele bericht uit de hash-waarde te bepalen.

Een apparaat dat een VPN gebruikt zal de gegevens die van de server worden ontvangen, gecombineerd met de geheime sleutel, uitvoeren via een hash-functie die is vastgesteld tijdens de VPN-handshake.

Als de hash-waarde die het apparaat wat de VPN gebruikt verschilt van de hash-waarde in het bericht, worden de gegevens verwijderd omdat dit betekent dat er met het bericht is geknoeid.

SHA-hash-authenticatie voorkomt man-in-the-middle-aanvallen omdat het elke manipulatie van een geldig certificaat kan detecteren.

Zonder dit kan een hacker zich voordoen als een legitieme VPN-server en je verleiden om verbinding te maken met een onveilige server, waar je internetactiviteit kan worden ingezien.

Om maximale veiligheid te garanderen, raad ik je aan om VPN-services te gebruiken die SHA-2 of hoger gebruiken. SHA-1 heeft een aantal zwakke punten die je beveiliging in gevaar kunnen brengen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.