Sobes.tech
Middle+

Šta je HMAC?

sobes.tech АИ

Одговор од АИ

HMAC (Hash-based Message Authentication Code) je mehanizam za proveru autentičnosti i integriteta poruke korišćenjem hash funkcije i tajnog ključa.

Radi na sledeći način:

  1. Poruka i tajni ključ se obrađuju putem određene hash funkcije na specifičan način.
  2. Kao rezultat, dobija se jedinstveni hash kod (HMAC).
  3. Ovaj HMAC se šalje zajedno sa porukom.
  4. Primalac, koji poseduje isti poruku i tajni ključ, ponovo izračunava HMAC.
  5. Ako izračunati HMAC odgovara primljenom, smatra se da poruka nije izmenjena i da potiče od izvora koji poseduje tajni ključ.

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

Gde:

  • K — tajni ključ.
  • m — poruka.
  • Hash — korišćena hash funkcija (npr. SHA-256).
  • || — konkatenacija.
  • — XOR operacija.
  • ipad (unutrašnja jastučnica) i opad (spoljašnja jastučnica) — konstante koje se koriste u algoritmu.

Razlika od obične hash funkcije je što HMAC koristi tajni ključ, čime je otporan na određene vrste napada usmerene na falsifikovanje hasha.

Primene u web razvoju:

  • Bearer tokeni: Za kreiranje i verifikaciju tokena za autentifikaciju.
  • Potpisivanje zahteva: Za proveru autentičnosti zahteva ka API-ju.
  • Verifikacija podataka: Garantuje da podaci nisu izmenjeni tokom prenosa.

Prednosti:

  • Visoka kriptografska otpornost.
  • Kompatibilan sa različitim hash funkcijama.
  • Lako za implementaciju.