Nyckelutbyte

Hur kan en kryptonyckel delas med andra på ett säker sätt är en viktig fråga för kryptering och autentiserings mekanismer. Det finns två sätt att göra det:

Nyckeldelning utanför gränserna

Krypteringsnyckeln och autentiseringsnyckeln konfigureras manuellt på avsändaren och mottagarens datorsystem. De två parterna säkerställer nyckelkonsistens utanför egna gränser. Vad menas med det? att kommunikationspartner delar den hemliga kryptonyckel med varandra (genom telefoner eller e-post till exempel). Att dela kryptonyckel på det här sättet har dålig skalsäkerhet. Lägg till att det behövs också dela ut den hemliga nyckel flera gånger till flera olika kommunikationspartner i ett punkt-till-multipunkt-nätverk. Dessutom är det här nyckeldelning svårt att implementera eftersom nycklarna måste ändras med jämna mellanrum för att förbättra nätverkssäkerheten.

Nyckeldelning via ett säkert nyckeldistributionsprotokoll

Att använda ett protokoll som kan generera den hemliga nyckeln och distribuera på ett säker sätt är ett bättre alternativ. Den hemliga nyckel kan genereras i en autoförhandling mellan kommunikationspartner eller peers med hjälp av exempelvis protokollet Internet Key Exchange, IKE. Detta protokoll använder DH (Diffie-Hellman) algoritm för att implementera ett säker nyckeldistributionssystem över ett osäkert nätverk. Ett sådan distributionssystem är relativt lätt att konfigurera och har definitivt hög skalsäkerhet, särskilt på ett stort dynamiskt nätverk som Internet.

IKE

Internet Key Exchange (IKE) är ett UDP-baserat applikationsprotokoll byggt på ISAKMP (Internet Security Association and Key Management Protocol). IKE implementerar automatisk nyckelförhandling och IPSec SA installation. Det förenklar IPSec-användning och -hantering samt underlättar IPSec-konfiguration och underhåll.

IKE finns i två versioner: IKEv1 och IKv2. IKEv2 har följande fördelar jämfört med IKEv1:

  • IKv2 förenklar SA-förhandling och förbättrar förhandlingseffektiviteten. IKEv1 går igenom två faser för att förhandla om nyckeln och etablera SA för IPSec.
    • I fas 1 förhandlar två kommunikationspartner (peer) om att etablera en säker kanal, IKEv1 SA.
    • I fas 2 etablerar två kommunikationspartner (peer) ett par IPSec SA med hjälp av den säkra kanalen som etablerades i IKEv1 fas 1.
  • Med IKEv2 genereras nyckeln och upprättar en säker kanal SA för IPSec i en förhandling, vilket förenklar förhandlingsprocessen.

Bilden nedan visar samarbete mellan IKE och IPSec.

Bild 1: Samarbete mellan IPSec och IKE
  1. De två kommunicerande parter (peers) etablerar en IKE SA för identitetsautentisering och nyckelinformationsutbyte. Skyddade av IKE SA, förhandlar kommunicerande parter om ett par IPSec SA med hjälp av Authentication Header (AH) eller Encapsulating Security Payload (ESP)-protokoll.
  2. Därefter krypteras data och den överförs mellan peers i en IPSec-tunnel.

IKE säkerhetsmekanismer

IKE protokollet definierar en serie av automatiserade säkerhetsmekanismer som kan autentisera identiteter, distribuera nycklar och etablera IPSec SA i ett osäkert nätverk:

  • Identitetsautentisering – Två kommunicerande parter eller peer måste autentisera varandras identitet. Det kan göras med hjälp av PSK-autentisering (Pre-Shared Key) eller RSA-signaturautentisering.
    • PSK-autentisering – En autentiseringsnyckel används för att generera en kryptonyckel. De två peers beräknar hash-värdet för paket med hjälp av en utdelad kryptonyckel. Om de får samma hash-värde lyckas autentiseringen men om hash-värden är inte samma misslyckas autentiseringen.
    • RSA-signaturautentisering – De två peers använder ett certifikat utfärdat av en certifikatutfärdare (Certificate Authority, CA) för att verifiera giltigheten av ett digitalt certifikat. Varje peer har en publik nyckel (sänds över nätverket) och en privat nyckel (som innehas av sig själv).
    1. Avsändaren beräknar ett hash-värde för det ursprungliga paketet/meddelandet och krypterar sedan hash-värdet med sin privata nyckel för att generera en digital signatur. Den ursprungliga data ändrats inte, den är enbart en input för att räkna ut hash-värdet.
    2. Mottagaren dekrypterar den digitala signaturen med hjälp av den publika nyckeln som tas emot från avsändaren och beräknar sedan ett hash-värde. Om det beräknade hash-värdet är detsamma som det krypterade betraktas autentisering som lyckad, annars inte.
Bild 2: Autentisering

Identitetsautentisering mellan flera peers via PSK-autentisering kräver att samma fördelade nyckel konfigureras på alla peers. Denna autentiseringsmetod kan enkelt implementeras på små nätverk men har låg säkerhet. RSA-signaturautentisering ger högre säkerhet men kräver digitala certifikat utfärdade av en CA. Det är säkrare att använda RSA-signaturautentisering på stora nätverk.

Protokollet IKE stöder följande autentiseringsalgoritmer: MD5, SHA1, SHA2-256, SHA2-384 och SHA2-512. MD5- och SHA1-autentiseringsalgoritmerna är osäkra. Den säkrare algoritmen SHA2-256, SHA2-384 eller SHA2-512 rekommenderas.

  • Identitetsskydd – Efter att en utbytesnyckel har genererats ska identitetsdata krypteras för att säkra kommunikationen och i det syftet stödjer IKE följande krypteringsalgoritmer: DES, 3DES, AES-128, AES-192 och AES-256. DES- och 3DES-krypteringsalgoritmerna är osäkra. Den säkrare AES-algoritmen rekommenderas.
  • DHDiffie-Hellman är en nyckelutbytemekanism för publika kryptonyckel. Denna algoritm genererar nyckelmaterial och använder ISAKMP-meddelanden för att utbyta det materialet mellan initiator och responder.
Bild 3: IKE fas 1 och 2 mellan Initiator och Responder

När initiator och responder är överens med nyckelmaterialet beräknar de separat en och samma symmetriska utbytesnyckel som används för att generera krypteringsnyckeln och autentiseringsnyckeln. De två enheterna byter inte ut den riktiga nyckeln i några fall. DH-nyckelutbyte är kärnan för IKE.

Algoritmerna MD5, SHA1, DES, 3DES och AES kan använda DH-algoritmen för att möjliggöra delning av en symmetrisk nyckel mellan två parter.

För att definiera nyckellängden (styrkan) använder DH nyckelgrupper. Nyckellängden motsvarar antal bitar som används, desto fler bitar starkare kryptonyckel.

Nyckelgrupp Antal bitar
1 768
2 1024
5 1536
14 2048
  • Perfect Forward Secrecy – PFS är en säkerhetsfunktion som skyddar säkerhetsnycklar genom att utföra ytterligare en nyckelutbyte via DH-algoritmen.