Co to jest Keyed-Hash Message Authentication Code (HMAC)?

Inne nazwy: Keyed-Hash Message Authentication Code.

HMAC jest nowoczesną wersją MAC (Message Authentication Code. Jego zadaniem jest weryfikacja integralności oraz autentyczności wiadomości.

HMAC wykorzystuje klucz tajny znajdujący się w rękach nadawcy i odbiorcy, przy czym ten drugi zakłada że wiadomość jest autentyczna, to jest pochodzi od nadawcy, bo tylko oni dwaj znają klucz użyty do wygenerowania HMAC.

Istotną różnicą w stosunku do oryginalnej funkcji MAC (która wykorzystywała DES), jest wykorzystanie jednokierunkowych funkcji skrótu przez HMAC. Podstawą HMAC może być dowolna funkcja skrótu, na przykład MD5 lub SHA1, do której w odpowiedni sposób "domieszany" zostaje tajny klucz. Standardowo odbywa się to w następujący sposób:

 

  1. na końcu bloku jawnego dołączamy tajny klucz i obliczamy skrót z całości
  2. do wynikowego skrótu znów dołączamy klucz i obliczamy skrót z całości
  3. wynik jest kodem HMAC dla danego bloku

W powyższym opisie dla uproszczenia zostały pominięte dodatkowe dwie operacje - w pierwszym kroku każdy bajt klucza jest xorowany z bajtem 0x36 (tzw. inner pad), w drugim kroku klucz jest xorowany z bajtem 0x5c (tzw. outer pad).

Jedną z zalet HMAC w stosunku do MAC jest brak ograniczenia długości bloku tekstu poddawanego ochronie - większość stosowanych obecnie funkcji skrótu może w praktycznych implementacjach sumować tekst jawny o dowolnej długości.

Bibliografia


Odpowiedzi

Dodaj nową odpowiedź

Zawartość tego pola nie będzie udostępniana publicznie. If you have a Gravatar account, used to display your avatar.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <b> <i> <table> <tr> <td> <th> <pre> <blockquote>
  • LaTex commands embedded in text will be interpreted and rendered. Additional information can be found at DruTex Documentation Pages
    • Line and paragraphs break automatically.
    • Assists automatic numbering of tex, equation, and equations environments.
    • Provides different environments to create rendered images (especially maths).
    • Znaki końca linii i akapitu dodawane są automatycznie.
    • Adresy internetowe są automatycznie zamieniane w klikalne odnośniki.
    • E-Mail addresses are hidden with reCAPTCHA Mailhide.

    Więcej informacji na temat formatowania

    CAPTCHA
    Poniższy test chroni przed automatami spammerskimi.