Sobes.tech
Middle+

Čo je HMAC?

sobes.tech AI

Odpoveď od AI

HMAC (Hash-based Message Authentication Code) je mechanizmus na základe hashovania na overenie pravosti a integrity správy pomocou hashovacej funkcie a tajného kľúča.

Funguje nasledovne:

  1. Správa a tajný kľúč sa spracúvajú určitým spôsobom hashovacou funkciou.
  2. Výsledkom je jedinečný hash kód (HMAC).
  3. Tento HMAC sa odosiela spolu so správou.
  4. Prijímateľ, ktorý má rovnakú správu a tajný kľúč, vypočíta HMAC znova.
  5. Ak vypočítaný HMAC zodpovedá prijatému, považuje sa správa za nezmenenú a pochádza zo zdroja, ktorý má tajný kľúč.

HMAC_K(m) = Hash((K ⊕ opad) || Hash((K ⊕ ipad) || m))

Kde:

  • K — tajný kľúč.
  • m — správa.
  • Hash — použitá hashovacia funkcia (napríklad SHA-256).
  • || — spojenie.
  • — XOR operácia.
  • ipad (vnútorná podložka) a opad (vonkajšia podložka) — konštanty používané v algoritme.

Rozdiel od bežnej hashovacej funkcie je v tom, že HMAC používa tajný kľúč, čo ho robí odolným voči určitým typom útokov zameraných na falšovanie hashu.

Použitie v webovom vývoji:

  • Bearer tokeny: Na tvorbu a overovanie autentifikačných tokenov.
  • Podpis požiadaviek: Na overenie pravosti požiadaviek na API.
  • Overenie dát: Zabezpečuje, že dáta neboli počas prenosu zmenené.

Výhody:

  • Vysoká kryptografická odolnosť.
  • Kompatibilný s rôznymi hash funkciami.
  • Jednoduchá implementácia.