Hva er HMAC?

HMAC (Hash-basert meldingsautentiseringskode) er en kryptografisk teknikk som kombinerer en hemmelig nøkkel med en hashfunksjon for å produsere en unik autentiseringskode. I motsetning til enkel hashing sikrer HMAC både dataintegritet og autentisitet—verifiserer at en melding ikke har blitt manipulert og bekrefter avsenderens identitet.

HMAC fungerer ved å behandle meldingen gjennom en hashfunksjon (som SHA-256) to ganger, blandet med den hemmelige nøkkelen på en spesifikk måte. Denne dobbel-hashingen gjør den motstandsdyktig mot lengde-utvidelsesangrep som påvirker vanlige hashfunksjoner.

Hvordan fungerer HMAC?

HMAC-algoritmen følger disse trinnene:

  1. Nøkkel-forberedelse: Hvis den hemmelige nøkkelen er lengre enn hashblokk-størrelsen, hasher den først. Hvis kortere, fylles den med nuller.
  2. Indre hash: Nøkkelen XOR-es med en indre padding-konstant (ipad), deretter konkateneres den med meldingen og hasher.
  3. Ytre hash: Nøkkelen XOR-es med en ytre padding-konstant (opad), deretter konkateneres den med det indre hash-resultatet og hasher igjen.

Formelen er: HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m))

Denne konstruksjonen sikrer at selv om en angriper kjenner hashen til en melding, kan de ikke forfalske en gyldig HMAC uten å kjenne den hemmelige nøkkelen.

Hvorfor bruke HMAC i stedet for vanlig hashing?

Funksjon Vanlig Hash HMAC
Dataintegritet
Autentisering
Krever hemmelig nøkkel
Beskyttelse mot lengde-utvidelsesangrep
Egnet for API-autentisering

Vanlige hasher (MD5, SHA-256) verifiserer bare at data ikke har endret seg. HMAC beviser i tillegg at meldingen kom fra noen som kjenner den hemmelige nøkkelen, noe som gjør den avgjørende for sikker kommunikasjon.

[Resten av dokumentet følger samme oversettelsesprinsipper, med tekniske termer beholdt på engelsk og resten oversatt til naturlig norsk.]