Skratka HMAC znamená:
Hash-Based Message Authentication Code (IT a bezpečnosť):
•HMAC je kryptografický mechanizmus používaný na overovanie integrity a autentickosti správy pomocou kombinácie hashovacej funkcie a tajného kľúča.
•Zabezpečuje, že správa nebola počas prenosu zmenená a že pochádza od overeného odosielateľa.
Ako funguje HMAC?
1.Tajný kľúč:
•Odosielateľ aj prijímateľ zdieľajú tajný kľúč, ktorý je známy iba im.
2.Hashovacia funkcia:
•Používa sa kryptografická hashovacia funkcia, ako napríklad SHA-256, SHA-1 alebo MD5.
3.Výpočet HMAC:
•Správa sa skombinuje s tajným kľúčom a prejde hashovacou funkciou, aby sa vytvoril autentifikačný kód (HMAC).
4.Overovanie:
•Prijímateľ vypočíta HMAC z prijatej správy pomocou rovnakého tajného kľúča a porovná ho s prijatým HMAC. Ak sa zhodujú, správa je autentická.
Kľúčové vlastnosti HMAC:
1.Integrita:
•Zabezpečuje, že správa nebola počas prenosu zmenená.
2.Autentifikácia:
•Potvrdzuje, že správa pochádza od overeného odosielateľa.
3.Odolnosť voči útokom:
•Kombinácia kľúča a hashovacej funkcie chráni pred útokmi, ako sú kolízne útoky alebo útoky hrubej sily.
4.Nezávislosť od hashovacej funkcie:
•HMAC môže používať rôzne hashovacie funkcie podľa úrovne požadovaného zabezpečenia.
Príklad použitia HMAC:
1.API autentifikácia:
•Pri komunikácii medzi klientom a serverom sa HMAC používa na zabezpečenie, že požiadavky API pochádzajú od autorizovaného klienta.
2.Bezpečná komunikácia:
•HMAC sa využíva v protokoloch ako TLS, IPsec, SSH na overenie integrity a autentickosti prenášaných dát.
3.Digitálne podpisy:
•HMAC môže byť použitý ako súčasť digitálnych podpisov na zabezpečenie, že podpis je autentický.
Výhody HMAC:
1.Zabezpečenie:
•Kombinácia kľúča a hashovacej funkcie zvyšuje bezpečnosť oproti jednoduchému hashovaniu.
2.Efektívnosť:
•Je rýchly na výpočet a má nízke nároky na výpočtový výkon.
3.Flexibilita:
•Môže používať rôzne hashovacie funkcie podľa potrieb.
Nevýhody HMAC:
1.Zdieľanie tajného kľúča:
•Obidve strany musia bezpečne zdieľať a uchovávať tajný kľúč, čo môže byť zložité vo väčších systémoch.
2.Obmedzená škálovateľnosť:
•Pri mnohých komunikujúcich stranách je správa kľúčov komplikovaná.