Dataintegritet

Hash funktioner används för att säkerställa integriteten hos ett meddelande. De garanterar att meddelandets data inte har ändrats av misstag.

I figuren skickar avsändaren en penningöverföring på 100 dollar till Alex.

Hash-algoritmen fungerar enligt följande:

  • Avsändarens enhet matar in meddelandet i en hash-algoritm och beräknar dess längd på 4ehiDx67NMop9.
  • Denna hash bifogas sedan till meddelandet och skickas till mottagaren. Både meddelandet och hashen är i klartext.
  • Mottagarens enhet avlägsnar hashen från det mottagna meddelandet och matar in meddelandet i samma hash-algoritm för att få ett värde, en ny hash. Om den beräknade hashen är lika med den som är bifogad till meddelandet, har meddelandet inte ändrats under överföringen. Om hasharna inte är lika, som visas i figuren, kan integriteten hos meddelandet inte längre lita på.

Hash-funktioner

Det finns fyra välkända hash-funktioner.

MD5 med 128-bitars Digest

Utvecklad av Ron Rivest och används i en mängd internetapplikationer. MD5 är en envägs funktion som producerar ett 128-bitars hash-skyddat meddelande. MD5 anses vara en äldre algoritm och därmed 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.

I figuren passerar ett klartext meddelande genom en MD5-hashfunktion. Resultatet är ett 128-bitars hashat meddelande.

SHA Hashing algoritm

Utvecklad av USA:s National Security Agency (NSA) 1995. Den är mycket lik MD5-hashfunktionerna. Flera versioner existerar. SHA-1 skapar ett 160-bitars hash-skyddat meddelande och är något långsammare än MD5. SHA-1 har kända brister och är en äldre algoritm.

I figuren passerar ett klartextmeddelande genom en SHA hashfunktion. Resultatet är ett hash-skyddat meddelande.

SHA-2

Utvecklad av NSA. Den inkluderar SHA-224 (224 bitar), SHA-256 (256 bitar), SHA-384 (384 bitar) och SHA-512 (512 bitar). Om du använder SHA-2 bör algoritmerna SHA-256, SHA-384 och SHA-512 användas när det är möjligt.

SHA-3

SHA-3 är den nyaste hash-algoritmen och introducerades av NIST som ett alternativ och eventuellt 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.

Medan hashing kan användas för att upptäcka ändringar, kan det inte användas för att skydda mot ändringar som görs av en hotaktör som använder en rätt hashfunktion. Hashing kan inte identifiera avsändaren, endast meddelandets integritet. Detta betyder att vem som helst kan beräkna en hash för vilken data som helst, så länge de har rätt hashfunktion.

Till exempel, när meddelandet färdas genom nätverket, kan en potentiell angripare avlyssna meddelandet, ändra det, räkna om hashen och bifoga den till meddelandet. Mottagarenheten kommer endast att validera den bifogade hash-värdet. Därför är hashing sårbar för man-in-the-middle-attacker och erbjuder inte säkerhet för överförd data. För att tillhandahålla dataintegritet och ursprungsautentisering krävs något mer.

Ursprungsautentisering – Origin Authentication

För att lägga till autentisering till integritetssäkring, använd en keyed-hash message authentication code (HMAC). HMAC använder en ytterligare hemlig nyckel som input till hashfunktionen.

HMAC hash-algoritm

Som visas i figuren, beräknas en HMAC nyckel med användning av vilken kryptografisk algoritm som helst som kombinerar en kryptografisk hashfunktion med en hemlig nyckel. Hashfunktioner är grunden för skyddsmekanismen i HMAC.

Endast sändaren och mottagaren känner till den hemliga nyckeln, och utdata från hashfunktionen beror nu på indata och den hemliga nyckeln. Endast parterna som har tillgång till den hemliga nyckeln kan beräkna värdet av en HMAC-funktion. Detta förhindrar man-in-the-middle-attacker och tillhandahåller ursprungsautentisering.

Om två parter innehar en gemensam hemlig nyckel och tillämpar HMAC-funktioner för autentisering, bekräftar en korrekt framställd HMAC-digest (beräknat värde) för ett mottaget meddelande att meddelandet faktiskt härstammar från den andra parten. Detta beror på att endast den andra parten har tillgång till den gemensamma hemliga nyckeln.

Skapa HMAC-värdet

Som visas i figuren, matar avsändaren in data (till exempel Terry Smiths lön på 100 dollar och den hemliga nyckeln) i hash-algoritmen och beräknar det fasta längdens HMAC-digest. Detta autentiserade värde bifogas sedan till meddelandet och skickas till mottagaren.

Verifiering av HMAC-värdet

I figuren tar avsändaren bort hash-värdet från meddelandet och använder klartextmeddelandet med sin hemliga nyckel som input i samma hashfunktion. Om värdet som beräknas av den mottagande enheten är lika med det värdet som skickades, har meddelandet inte ändrats. Dessutom är meddelandets ursprung autentiserat eftersom endast sändaren besitter en kopia av den delade hemliga nyckeln. HMAC-funktionen har säkerställt meddelandets äkthet.