Mis on HMAC?

HMAC (Hash-põhine sõnumi autentimiskood) on krüptograafiline tehnika, mis ühendab salajase võtme räsifunktsiooniga, et luua unikaalne autentimiskood. Erinevalt lihtsast räsimisest tagab HMAC nii andmete tervikluse kui ka autentsuse — kontrollides, et sõnumit ei ole muudetud, ja kinnitades saatja identiteeti.

HMAC toimib, töötades sõnumi läbi räsifunktsiooni (nagu SHA-256) kaks korda, segades seda salajase võtmega kindlal viisil. See kahekordne räsimine muudab selle vastupidavaks pikkuse laiendamise rünnakutele, mis mõjutavad tavalisi räsifunktsioone.

Kuidas HMAC töötab?

HMAC algoritm järgib neid samme:

  1. Võtme ettevalmistamine: Kui salajane võti on pikem kui räsilõigu suurus, räsitakse see esmalt. Kui lühem, täidetakse see nullidega.
  2. Sisemine räsimine: Võti XOR-itakse sisemise täitmise konstandiga (ipad), seejärel ühendatakse sõnumiga ja räsitakse.
  3. Välimine räsimine: Võti XOR-itakse välimise täitmise konstandiga (opad), seejärel ühendatakse sisemise räsi tulemusega ja räsitakse uuesti.

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

See konstruktsioon tagab, et isegi kui ründaja teab sõnumi räsit, ei saa ta luua kehtivat HMAC-i ilma salajast võtit teadmata.

Miks kasutada HMAC-i tavalise räsimise asemel?

Funktsioon Tavaline räsi HMAC
Andmete terviklus
Autentimine
Nõuab salajast võtit
Kaitse pikkuse laiendamise vastu
Sobiv API autentimiseks

Tavalised räsid (MD5, SHA-256) kontrollivad ainult seda, kas andmed pole muutunud. HMAC lisaks tõestab, et sõnum pärineb kelleltki, kes teab salajast võtit, muutes selle oluliseks turvalistes kommunikatsioonides.

[Ülejäänud tekst jätkub samamoodi, tõlgituna eesti keelde, järgides eelnevalt kirjeldatud tõlkimise reegleid.]