Hashing

Hashing är i kryptografi processen att använda en hash-funktion för att konvertera klartext eller en inmatningsnyckel (indata) till ett hash-värde (utdata). I de flesta fall är indata längre än hash-resultatet. Hashing är en enkelriktad krypteringsmetod där ett hash-värde inte kan avkodas för att avslöja den ursprungliga oformaterade texten. Observera att ett hash-värde krypterar inte meddelande/filer som ska föras över från ett LAN till ett annat, Hash-värdet ger möjlighet att verifiera om den överförda data inte har ändrats. Mottagaren kommer att verifiera det genom att beräkna själv sitt has-värde och jämföra med det som mottagits. Om det är inte samma hash-värde kasseras mottagen data.

Bild 1: Hashing

En hash-funktion används för att generera det nya värdet enligt en matematisk algoritm.

Välkända hash-funktioner eller algoritmer

  • MD5 with 128-bit DigestUtvecklad av Ron Rivest och används i en mängd olika internetapplikationer, MD5 är en enkelriktad funktion som producerar ett 128-bitars hash-kodat meddelande. MD5 anses vara en äldre algoritm och bör undvikas och endast användas när inga bättre alternativ finns tillgängliga. Det rekommenderas att SHA-2 eller SHA-3 används istället.
  • SHA Hashing Algorithm – Utvecklad av U.S.S. National Security Agency (NSA) 1995. Den är väldigt lik MD5-hashfunktionerna. Det finns flera versioner. SHA-1 skapar ett 160-bitars hashkodat meddelande och är något långsammare än MD5. SHA-1 har kända brister och är en äldre algoritm.
  • SHA-2 – Utvecklad av NSA. Den har flera varianter såsom SHA-224 (224 bitar), SHA-256 (256 bitar), SHA-384 (384 bitar) och SHA-512 (512 bitar). Om du använder SHA-2 ska algoritmerna SHA-256, SHA-384 och SHA-512 användas när det är möjligt.
  • SHA-3SHA-3 är den senaste hash-algoritmen som en alternativ och eventuell ersättning för SHA-2-familjen av hash-algoritmer. SHA-3 inkluderar SHA3-224 (224 bitar), SHA3-256 (256 bitar), SHA3-384 (384 bitar) och SHA3-512 (512 bitar). SHA-3-familjen är nästa generations algoritmer och bör användas när det är möjligt.

Även om hashing kan användas för att upptäcka oavsiktliga ändringar, kan hashing inte användas för att skydda sig mot avsiktliga ändringar som görs av en hotaktör. Det finns ingen unik identifieringsinformation från avsändaren i hash-proceduren. Detta innebär att vem som helst kan beräkna en hash för vilken data som helst, så länge de har rätt hash-funktion.
Till exempel, när meddelandet passerar nätverket kan en potentiell angripare fånga upp meddelandet, ändra det, räkna om hash-värdet och lägga till det i meddelandet. Den mottagande enheten kommer endast att kontrollera och validera det mottaget hash-värde.

Autentisering – Origin Authentication

Även känd som meddelandeautentisering, är dataursprungsautentisering en försäkran om att källan till informationen verkligen är verifierad. Dataursprungsautentisering garanterar dataintegritet eftersom om en källa är bekräftad, bör data inte ha ändrats. Olika autentiseringsmetoder finns:

Hash-based message authentication code (or HMAC) – Hash-baserad meddelandeautentiseringskod (eller HMAC) är en autentiseringsteknik som använder en hash-funktion och en till hemlig nyckel. Endast avsändaren och mottagaren känner till den hemliga nyckeln, och utmatningen av hash-funktionen beror nu på indata och den hemliga nyckeln. Endast parter som har tillgång till den hemliga nyckeln kan autentiseras av en HMAC-funktion. Detta besegrar man-in-the-middle-attacker och ger autentisering av dataursprunget.

Datasekretess (Data Confidentiality)

Data kan krypteras med symmetriska eller asymmetriska krypteringsalgoritmer för att tillhandahålla datasekretess. Dessa två typer av kryptering skiljer sig åt i hur de använder nycklar.

Symmetriska krypteringsalgoritmer som Data Encryption Standard (DES), 3DES och Advanced Encryption Standard (AES) är baserade på antagandet att varje kommunicerande part känner till den fördelade nyckeln. Datasekretess kan också säkerställas med hjälp av asymmetriska algoritmer, inklusive Rivest, Shamir och Adleman (RSA) och den offentliga nyckelinfrastrukturen (PKI).

Obs: DES är en äldre algoritm och bör inte användas. 3DES bör undvikas om möjligt.