Sobes.tech
Middle+

Co je HMAC?

sobes.tech AI

Odpověď od AI

HMAC (Hash-based Message Authentication Code) je mechanismus pro ověření pravosti a integrity zprávy pomocí hashovací funkce a tajného klíče.

Funguje následovně:

  1. Zpráva a tajný klíč jsou zpracovány určitým způsobem hashovací funkcí.
  2. Výsledkem je unikódový hash kód (HMAC).
  3. Tento HMAC je odeslán spolu se zprávou.
  4. Příjemce, který má stejnou zprávu a tajný klíč, vypočítá HMAC znovu.
  5. Pokud vypočítaný HMAC odpovídá přijatému, považuje se zpráva za nezměněnou a pochází ze zdroje, který má tajný klíč.

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

Kde:

  • K — tajný klíč.
  • m — zpráva.
  • Hash — použitá hashovací funkce (například SHA-256).
  • || — spojení.
  • — XOR operace.
  • ipad (vnitřní polštář) a opad (vnější polštář) — konstanty používané v algoritmu.

Rozdíl od běžné hashovací funkce je, že HMAC používá tajný klíč, což z něj činí odolný vůči určitým typům útoků zaměřených na falšování hashe.

Použití ve webovém vývoji:

  • Bearer tokeny: Pro tvorbu a ověřování autentizačních tokenů.
  • Podpis požadavků: Pro ověření pravosti požadavků na API.
  • Ověření dat: Zajištění, že data nebyla během přenosu změněna.

Výhody:

  • Vysoká kryptografická odolnost.
  • Kompatibilní s různými hashovacími funkcemi.
  • Snadná implementace.