Mikä on HMAC?

HMAC (Hash-based Message Authentication Code) on kryptografinen tekniikka, joka yhdistää salaisen avaimen hajautusfunktioon luodakseen ainutlaatuisen todennuskoodin. Toisin kuin yksinkertainen hajautus, HMAC varmistaa sekä tietojen eheyden että aitouden - todentaen, että viestiä ei ole muutettu ja vahvistaen lähettäjän henkilöllisyyden.

HMAC toimii käsittelemällä viestin hajautusfunktion (kuten SHA-256) läpi kahdesti, sekoittaen sen salaisen avaimen kanssa tietyllä tavalla. Tämä kaksinkertainen hajautus tekee siitä vastustuskykyisen pituuden laajennushyökkäyksiä vastaan, jotka vaikuttavat tavallisiin hajautusfunktioihin.

Miten HMAC toimii?

HMAC-algoritmi noudattaa seuraavia vaiheita:

  1. Avaimen valmistelu: Jos salainen avain on pidempi kuin hajautuslohkon koko, se hajautetaan ensin. Jos se on lyhyempi, se täytetään nollilla.
  2. Sisäinen hajautus: Avain XOR-ataan sisäisen pehmustevakion (ipad) kanssa, sitten yhdistetään viestiin ja hajautetaan.
  3. Ulkoinen hajautus: Avain XOR-ataan ulkoisen pehmustevakion (opad) kanssa, sitten yhdistetään sisäisen hajautuksen tulokseen ja hajautetaan uudelleen.

Kaava on: HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m))

Tämä rakenne varmistaa, että vaikka hyökkääjä tietäisi viestin hajautuksen, hän ei voi luoda kelvollista HMAC:ia ilman salaista avainta.

Miksi käyttää HMAC:ia tavallisen hajautuksen sijaan?

Ominaisuus Tavallinen hajautus HMAC
Tietojen eheys
Todentaminen
Vaatii salaisen avaimen
Suojaus pituuden laajennushyökkäyksiä vastaan
Sopiva API-todentamiseen

Tavalliset hajautusfunktiot (MD5, SHA-256) varmistavat vain, että tietoja ei ole muutettu. HMAC todentaa lisäksi, että viesti on peräisin taholta, joka tuntee salaisen avaimen, tehden siitä välttämättömän turvalliselle viestinnälle.

[Loput dokumentista käännetään samalla periaatteella - säilyttäen tekniset termit englanninkielisinä ja kääntäen muu teksti luonnolliseen suomeen.]