Autentisering och kryptering

IPSec involverar autentisering och datakryptering i mekanismer som säkrar informationsutbyte mellan kommunicerande parter (peer).  Här tar jag upp, översiktligt, autentisering och kryptering.

Autentisering

Autentisering är en operation som en mottagare utför dels för att verifiera avsändarens identitet (source origin authentication) och dels för att verifiera om data har manipulerats under överföringen (data integrity). IPSec säkerställer datatillförlitlighet genom att använda autentisering- och dataintegritetskontroll tillsammans.

Keyed-Hash Message Authentication Code (HMAC) jämför digitala signaturer för att kontrollera dataintegritet och autenticitet. Denna process använder endast ett fåtal CPU-resurser och är mycket effektiv. Därför använder IPSec HMAC för autentisering.

Vanliga autentiseringsalgoritmer inkluderar:

  • MD5 – Den genererar en 128-bitars signatur baserat på ett meddelande av valfri längd.
    MD5 är snabbare men mindre säker än Secure Hash Algorithm (SHA).
  • SHA1 – SHA utvecklades av National Institute of Standards and Technology (NIST). SHA1 är en revidering av SHA och publicerades 1994. Definierat i RFC, konverterar SHA1 ett meddelande med en längd mindre än 264 bitar till en 160-bitars. SHA1 är långsammare men säkrare än MD5. SHA1 genererar en lång signatur för att förhindra nyckelsprickor och upptäcker den delade nyckeln effektivt.
  • SHA2 – SHA2 är en förbättring av SHA1. Den har en större nyckellängd och är mycket säkrare än SHA1. SHA2 inkluderar SHA2-256, SHA2-384 och SHA2-512, med 256-bitars, 384-bitars respektive 512-bitars nyckellängder. Autentiseringsalgoritmen med en längre nyckel är säkrare men långsammare. Generellt sett kan SHA2-256 uppfylla säkerhetskrav. AES-XCBC-MAC-96 är en typ av AES-baserad meddelandeautentiseringsalgoritm.

Algoritmerna har sina egna styrkor och svagheter. MD5 är snabbare än SHA1, men mindre säker. SHA2 har en längre nyckel än SHA1, vilket gör att SHA2 är svårare att knäcka, och därför säkrare.

Datakryptering

Kryptering är en process för att konvertera klartextdata till chiffertextdata med hjälp av en algoritm. Mottagaren kan dekryptera chiffertextdata endast när den har rätt nyckel. Krypteringsmekanismen säkerställer datasekretess (data confidentiality) och förhindrar att data avlyssnas under överföring.

IPSec använder symmetriska krypteringsalgoritmer för att kryptera och dekryptera data. Symmetriska krypteringsalgoritmer kräver att avsändaren och mottagaren använder samma kryptonyckel för att kryptera och dekryptera data (se bilden nedan).

Bild 1: Kryptering i IPSec

Den symmetriska kryptonyckel kan konfigureras manuellt eller den kan genereras automatiskt enligt DH-algoritmen. Vanliga symmetriska krypteringsalgoritmer inkluderar:

  • Data Encryption Standard (DES) – DES utvecklades av National Institute of Standards and Technology (NIST). Den använder en 56-bitars nyckel för att kryptera ett 64-bitars klartextblock.
  • Triple Data Encryption Standard (3DES) – 3DES är en förbättring av DES och använder tre olika 56-bitars nycklar (168 bitar totalt) för att kryptera ett klartextblock. Jämfört med DES är 3DES långsammare men säkrare.
  • Advanced Encryption Standard (AES) – AES är designad för att ersätta 3DES och är snabbare och säkrare än 3DES. AES stöder tre typer av nycklar: AES-128, ES-192 och AES-256, som har nyckellängder på 128 bitar, 192 bitar respektive 256 bitar. Krypteringsalgoritmen med en längre nyckel är säkrare men långsammare. I allmänhet kan AES-128 uppfylla säkerhetskrav.

Kryptering och autentisering tillsammans

Kryptering och autentisering används ofta tillsammans på IPSec-avsändaren. Avsändaren krypterar IP-paket, genererar en digital signatur under HMAC-autentisering och skickar sedan både de krypterade IP-paketen och den digitala signaturen till mottagaren. Den digitala signaturen ingår i fältet Integrity Check Value (ICV) i ett AH- eller ESP-header. Mottagaren jämför den mottagna digitala signaturen med den lokalt genererade för att kontrollera dataintegritet och autenticitet i de mottagna IP-paketen. Mottagaren kasserar de paket som misslyckas med autentiseringen och dekrypterar de som klarar autentiseringen. Bilden nedan visar processen för kryptering och HMAC-autentisering.

Bild 2: Autentisering och kryptering