Hvad er Diffie-Hellman key exchange?

Diffie-Hellman key exchange er en metode, hvor to parter kan aftale et fælles hemmeligt nøglemateriale over en kanal, som en tredjepart kan observere. Pointen er, at de informationer, der udveksles undervejs, ikke i sig selv afslører den fælles hemmelighed, når metoden og parametrene er valgt korrekt.

En vigtig præcisering er, hvad Diffie-Hellman faktisk giver: Det er især en mekanisme til at etablere en fælles hemmelighed. Det betyder ikke automatisk, at parterne er enige om hinandens identitet, og det betyder ikke automatisk, at forbindelsen er beskyttet mod alle typer aktive angreb.

En enkel model: hemmeligheder, beregninger og fælles resultat

Tænk på to deltagere, A og B.

  1. A vælger en privat hemmelig værdi (en “hemmelig eksponent”) og beregner en offentlig værdi ud fra denne.
  2. B gør det samme: vælger sin egen private værdi og sender en offentlig værdi.
  3. A bruger B’s offentlige værdi og sin egen private værdi til at beregne det fælles hemmelige nøglemateriale.
  4. B bruger A’s offentlige værdi og sin egen private værdi til at beregne det samme fælles nøglemateriale.

Hvis det forløber korrekt, ender A og B med samme nøglemateriale, selv om en tredjepart har set de offentlige værdier, der blev sendt.

Det er dog “kun” nøglematerialet. I praksis bruges der ofte en nøgleafledning (key derivation) til at udlede konkrete nøgler til f.eks. symmetrisk kryptering og integritetsbeskyttelse.

Hvad Diffie-Hellman typisk kombineres med

Når Diffie-Hellman bruges til at “oprette en krypteret forbindelse”, er det ofte en del af en større protokol, hvor der også indgår:

  • Autentificering: så parterne kan være nogenlunde sikre på, hvem de taler med.
  • Nøgleafledning: så nøglematerialet bliver til de konkrete nøgler, der passer til protokollens algoritmer.
  • Symmetrisk kryptering og integritet: den faktiske datakryptering foregår typisk med symmetriske nøgler, fordi det er effektivt.

Det centrale er, at Diffie-Hellman i sig selv handler om “hemmelighedsaftale”, ikke om identitet. Derfor bliver autentificering en afgørende byggesten i en sikker ende-til-ende løsning.

Forskelle og grænser: den vigtigste undtagelse

Den mest relevante grænse for forståelsen er: Hvis ingen autentificering er til stede, kan en aktiv angriber i teorien indsætte sig mellem parterne.

I et man-in-the-middle-scenarie kan angriberen etablere separate Diffie-Hellman-forhandlinger med A og med B, så angriberen får mulighed for at påvirke og aflæse det, der ellers skulle være beskyttet. Resultatet er, at “samme hemmelige” stadig kan opstå mellem de forkerte parter, men sikkerheden for selve kommunikationsmålet bortfalder.

Det er derfor, man typisk ser Diffie-Hellman kombineret med noget, der binder den nøglematerialeudveksling til en identitet (f.eks. signaturer eller certificerede offentlige nøgler), eller med protokoller der på anden måde sikrer integritet og identitet af nøgleudvekslingen.

En anden praktisk grænse er, at sikkerheden afhænger af korrekte valg: matematiske parametre, korrekte implementeringsvalg og den konkrete protokol-flow. En “rigtig idé” kan blive svækket af fejl i konfiguration eller kode.

Praktisk anvendelse: hvad du kan kontrollere selv

Du kan bruge følgende kontrolpunkter til at forstå, om en løsning baseret på Diffie-Hellman reelt skaber en sikker krypteret forbindelse:

  1. Om der findes autentificering Søg efter mekanismer, der knytter den etablerede nøgle til en identitet, så en tredjepart ikke kan skifte identitet undervejs uden at blive opdaget.

  2. Hvordan nøglemateriale bliver til brugbare nøgler Tjek om protokollen beskriver nøgleafledning og anvendelse til kryptering og integritet. Det er et tegn på, at hemmelighedsaftalen ikke står alene.

  3. Om der er beskyttelse mod aktive angreb i håndtrykket En sikker løsning håndterer ikke kun “hemmelighed lækker ikke”, men også “håndtrykket kan ikke manipuleres uden at blive opdaget”.

  4. Valg af parametre og algoritmer Selv uden at gå dybt i matematik kan du se, om systemet benytter moderne og passende algoritmer/parametre, og om det understøtter hensigtsmæssige sikkerhedsprincipper.

Hvis du leder efter den korte formulering: Diffie-Hellman kan hjælpe to parter med at blive enige om fælles nøglemateriale via en observerbar kanal, men en sikker krypteret forbindelse kræver typisk autentificering og en protokol, der beskytter selve håndtrykket.