Diffie-Hellman Key Exchange: Hoe twee vreemden het eens worden over een geheim

Stel je voor dat jij en een vriend een geheim wachtwoord willen afspreken, maar dat jullie alleen kunnen communiceren door te roepen in een drukke ruimte waar iedereen meeluistert. Diffie-Hellman Key Exchange (DH) lost precies dit probleem op — en het is een van de meest elegante ideeën in de geschiedenis van de cryptografie.

Wat het is

Ontwikkeld door Whitfield Diffie en Martin Hellman in 1976, is Diffie-Hellman Key Exchange een cryptografisch protocol waarmee twee partijen een gedeeld geheim kunnen genereren via een onbeveiligd, openbaar kanaal. Geen van beide partijen verzendt het eigenlijke geheim — ze sturen elk gedeeltelijke informatie die, gecombineerd met hun eigen privégegevens, aan beide kanten hetzelfde resultaat oplevert. Iedereen die de uitwisseling onderschept, ziet alleen de gedeeltelijke waarden, die wiskundig nutteloos zijn zonder het ontbrekende privéonderdeel.

Dit was een revolutionair concept. Vóór DH vereiste veilige communicatie dat beide partijen al een geheime sleutel deelden, wat betekende dat deze vooraf fysiek uitgewisseld moest worden. Diffie-Hellman brak die afhankelijkheid volledig.

Hoe het werkt

De wiskunde achter Diffie-Hellman steunt op een principe dat het discrete logaritmeprobleem wordt genoemd — in één richting eenvoudig te berekenen, maar uiterst moeilijk om te keren. Hier volgt een vereenvoudigde uitleg:

  1. Overeenkomen over openbare parameters: Beide partijen komen openbaar overeen over twee getallen — een groot priemgetal (p) en een basisgetal (g). Deze zijn niet geheim.
  2. Elke partij kiest een privéwaarde: Alice kiest een geheim getal (a), Bob kiest een geheim getal (b). Geen van beiden deelt deze.
  3. Elke partij berekent een openbare waarde: Alice berekent `g^a mod p` en stuurt dit naar Bob. Bob berekent `g^b mod p` en stuurt dit naar Alice.
  4. Elke partij berekent het gedeelde geheim: Alice neemt Bobs openbare waarde en berekent `(g^b mod p)^a`. Bob neemt Alice's openbare waarde en berekent `(g^a mod p)^b`. Beide berekeningen leveren hetzelfde resultaat op — het gedeelde geheim.

Een aanvaller die de uitwisseling volgt, ziet `g`, `p` en beide openbare waarden, maar kan de privéwaarden niet eenvoudig reconstrueren of het gedeelde geheim achterhalen. Dit is de kern van wat DH veilig maakt.

Moderne implementaties gebruiken veel grotere getallen en geavanceerdere varianten zoals Elliptic Curve Diffie-Hellman (ECDH), die gelijkwaardige beveiliging bereikt met kleinere sleutelgroottes — waardoor het sneller en efficiënter is, met name op mobiele apparaten.

Waarom het belangrijk is voor VPN-gebruikers

Elke keer dat je verbinding maakt met een VPN, werkt Diffie-Hellman (of de elliptische curve-variant) vrijwel zeker op de achtergrond. Tijdens de VPN-handshake moeten jouw apparaat en de VPN-server overeenstemming bereiken over een versleutelingssleutel om je sessie te beveiligen. DH maakt dit mogelijk zonder die sleutel ooit via het internet te verzenden, waar deze onderschept zou kunnen worden.

Dit is nauw verbonden met een cruciale beveiligingseigenschap die Perfect Forward Secrecy (PFS) wordt genoemd. Wanneer een VPN gebruik maakt van ephemeral Diffie-Hellman (waarbij voor elke sessie een nieuw DH-sleutelpaar wordt gegenereerd), krijgt elke sessie een unieke versleutelingssleutel. Zelfs als een aanvaller jaren later op de een of andere manier uw langetermijn privésleutel zou bemachtigen, zou hij nog steeds eerdere sessies niet kunnen ontsleutelen. Deze beveiliging vormt een hoeksteen van moderne VPN-security.

Protocollen zoals OpenVPN, IKEv2 en WireGuard maken allemaal gebruik van DH of ECDH als onderdeel van hun handshake-proces. Als u een VPN evalueert en verwijzingen ziet naar DHE (Diffie-Hellman Ephemeral) of ECDHE in de versleutelingsspecificaties, is dat een sterk positief signaal.

Praktische voorbeelden

  • Browsen via HTTPS: Uw browser gebruikt ECDHE tijdens de TLS-handshake om veilig een sessiesleutel tot stand te brengen met een website.
  • VPN-verbindingen: OpenVPN maakt gebruik van DH-parameters tijdens het opzetten van de verbinding; sterkere DH-groepen (2048-bit of hoger) bieden betere beveiliging.
  • Beveiligde berichtenapps: Apps zoals Signal gebruiken een variant van DH, het Signal Protocol genaamd, om voor elke berichtuitwisseling nieuwe versleutelingssleutels te genereren.

Een opmerking over kwantumbedreigingen

Traditionele Diffie-Hellman wordt kwetsbaar geacht voor toekomstige kwantumcomputers, die het discrete logaritmeprobleem theoretisch efficiënt zouden kunnen oplossen. Dit stimuleert onderzoek naar post-kwantumcryptografie, met nieuwe sleuteluitwisselingsalgoritmen die zijn ontworpen om kwantumaaanvallen te weerstaan. De overgang is al in gang gezet in sommige geavanceerde VPN-implementaties.

Diffie-Hellman blijft een fundamentele pijler van internetbeveiliging — inzicht hierin helpt u slimmere keuzes te maken over de VPN's en beveiligingstools die u vertrouwt.