HMAC

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

HMAC (скорочення від англ. Hash-based message authentication code, хеш-код аутентифікації повідомлень) - механізм перевірки цілісності інформації, що передається або зберігається в ненадійному середовищі. Подібні способи є невід'ємною і необхідною частиною світу відкритих обчислень і комунікацій. Механізми, які надають такі перевірки цілісності на основі секретного ключа, зазвичай називають кодом автентичності повідомлення (MAC). Як правило, МАС використовується між двома сторонами, які поділяють секретний ключ для перевірки автентичності інформації, переданої між цими сторонами. Цей стандарт визначає MAC. Механізм, який використовує криптографічні хеш-функції в поєднанні з секретним ключем називається HMAC.

Доцільність застосування[ред.ред. код]

  • Для того щоб можна було використовувати наявні хеш-функції без змін, зокрема, хеш-функцій, які вже є в програмному продукті, і їх код вже доступний.
  • Щоб зберегти початкове виконання хеш-функції без яких-небудь значних погіршень.
  • Використовувати і обробляти ключі простішим способом.
  • Для легкої замінюваності базової хеш-функції в тому випадку, якщо більш швидка і більш безпечна хеш-функція буде доступна пізніше.

Підвищений інтерес до розробки MAC на основі криптографічних хеш-функцій, наприклад, MD5, SHA-1 або RIPEMD-160 поясняється просто:

  • Криптографічні хеш-функції зазвичай у програмах працюють швидше, ніж при використанні симетричних блокових шифрів, таких як DES.
  • Бібліотечні коди для криптографічної хеш-функції широко доступні.
  • Хеш-функції, такі як MD5, не призначені для використання в якості MAC і не можуть бути використані безпосередньо для цієї мети, оскільки вони не спираються на секретний ключ. Було зроблено кілька пропозицій для включення секретного ключа в існуючі хеш-алгоритми. HMAC отримав найбільшу підтримку.

HMAC був обраний як обов'язковий (англ. mandatory to implement) при реалізації MAC для IP-безпеки, і використовується в інших інтернет-протоколах, таких, як Transport Layer Security (TLS, який незабаром замінить Secure Sockets Layer) і Secure Electronic Transaction (SET).

Див. також[ред.ред. код]