Słownik

Czym jest HMAC?

HMAC (Hash-Based Message Authentication Code) to mechanizm kryptograficzny łączący kryptograficzną funkcję haszującą z tajnym kluczem w celu generowania kodu uwierzytelniania o stałym rozmiarze, pozwalającego odbiorcy zweryfikować zarówno integralność, jak i autentyczność wiadomości.

Znane również jako: Hash-Based Message Authentication Code, HMAC-SHA256

Prosta funkcja haszująca, jak SHA-256, może weryfikować integralność danych — jeśli hasz się zgadza, dane nie zostały zmienione. Jednak sam hasz nie może weryfikować autentyczności, bo każdy może obliczyć hasz. HMAC rozwiązuje to, włączając tajny klucz w proces haszowania. Tylko strony posiadające klucz mogą generować lub weryfikować poprawną wartość HMAC, zapewniając integralność i uwierzytelnianie w jednej operacji.

Konstrukcja HMAC zdefiniowana w RFC 2104 stosuje funkcję haszującą dwukrotnie, mieszając klucz na określonych etapach. Ta dwuprzebiegowa struktura chroni przed atakami rozszerzenia długości i innymi podatnościami, które pojawiłyby się przy prostym sklejaniu klucza z wiadomością przed haszowaniem. HMAC-SHA256 (HMAC z SHA-256 jako bazową funkcją haszującą) jest najczęstszym wariantem i generuje 256-bitowy kod uwierzytelniania.

HMAC jest szeroko stosowany w protokołach bezpieczeństwa: podpisy JWT, uwierzytelnianie API, weryfikacja webhooków, ochrona rekordów TLS i OAuth — wszystkie polegają na HMAC. Jego wydajność czyni go praktycznym do uwierzytelniania danych o dużym wolumenie, jak pakiety sieciowe czy żądania API, gdzie asymetryczne schematy podpisów wprowadzałyby niedopuszczalne opóźnienia.

Sign a message with HMAC-SHA256

Edit either the key or the message and watch the signature change completely — the avalanche effect that makes HMAC forgery-resistant.

HMAC-SHA256 signature (256 bits, hex)
computing…

A verifier with the same key recomputes the HMAC over the received message; if it matches, the message was authored by someone who knows the key andwasn't modified in transit. Vaulted uses this exact construction to issue tamper-proof status-page tokens.

Jak Vaulted używa HMAC

Vaulted używa HMAC-SHA256 do generowania bezpiecznych tokenów dla stron statusu sekretów. Gdy sekret jest tworzony, HMAC jest obliczany na podstawie ID sekretu przy użyciu klucza po stronie serwera. Token HMAC jest dołączany do URL strony statusu, pozwalając twórcy sekretu sprawdzić, czy sekret został wyświetlony lub wygasł — bez dawania punktowi końcowemu statusu możliwości zużycia wyświetleń ani dostępu do zaszyfrowanej treści. HMAC jest też używany wewnętrznie przez PBKDF2 jako funkcja pseudolosowa przy wyprowadzaniu kluczy z passphrase.