HMAC (скорочення від англ. hash-based message authentication code, код автентифікації повідомлень на основі хешування, або від англ. keyed-hash message authentication code, код автентифікації повідомлень на основі хешування з ключем) — механізм перевірки цілісності інформації, що передається або зберігається в ненадійному середовищі. Подібні способи є невід'ємною і необхідною частиною світу відкритих обчислень і комунікацій. HMAC використовує хеш-функцію разом з секретним ключем, що дозволяє створити унікальний код для кожного повідомлення, який можна використовувати для перевірки автентичності повідомлення. Хеш-функція використовується для створення контрольної суми повідомлення, а секретний ключ додає додатковий рівень безпеки, так як лише особа з доступом до секретного ключа зможе створити коректний HMAC. Механізми, які надають такі перевірки цілісності на основі секретного ключа, зазвичай називають кодом автентифікації повідомлення (MAC). Як правило, МАС використовується між двома сторонами, які поділяють секретний ключ для перевірки автентичності інформації, переданої між цими сторонами. Цей стандарт визначає MAC.
Означення
Це означення взято з RFC 2104:
де
- це криптографічна хеш-функція
- це повідомлення до автентифікації
- це секретний ключ
- це ключ завдовжки з блок отриманий зі секретного ключа, K; або додаванням нулів праворуч до розміру блока, або спочатку хешуванням до розміру меншого чи рівного розміру блока, а потім додаванням нулів справа
- позначає конкатенацію
- позначає побітову виключну диз'юнкцію (XOR)
- це зовнішнє доповнення завдовжки з блок, що складається із повторень байта 0x5c
- це внутрішнє доповнення завдовжки з блок, що складається із повторень байта 0x36
Доцільність застосування
- Для того щоб можна було використовувати наявні хеш-функції без змін, зокрема, хеш-функцій, які вже є в програмному продукті, і їх код вже доступний.
- Щоб зберегти початкове виконання хеш-функції без яких-небудь значних погіршень.
- Використовувати і обробляти ключі простішим способом.
- Для легкої замінюваності базової хеш-функції в тому випадку, якщо більш швидка і більш безпечна хеш-функція буде доступна пізніше.
Підвищений інтерес до розробки 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).
Див. також
Джерела
- FIPS PUB 198-1. The Keyed-Hash Message Authentication Code (HMAC) [ 2 грудня 2017 у Wayback Machine.]
- RFC 2104 HMAC: Keyed-Hashing for Message Authentication
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
HMAC skorochennya vid angl hash based message authentication code kod avtentifikaciyi povidomlen na osnovi heshuvannya abo vid angl keyed hash message authentication code kod avtentifikaciyi povidomlen na osnovi heshuvannya z klyuchem mehanizm perevirki cilisnosti informaciyi sho peredayetsya abo zberigayetsya v nenadijnomu seredovishi Podibni sposobi ye nevid yemnoyu i neobhidnoyu chastinoyu svitu vidkritih obchislen i komunikacij HMAC vikoristovuye hesh funkciyu razom z sekretnim klyuchem sho dozvolyaye stvoriti unikalnij kod dlya kozhnogo povidomlennya yakij mozhna vikoristovuvati dlya perevirki avtentichnosti povidomlennya Hesh funkciya vikoristovuyetsya dlya stvorennya kontrolnoyi sumi povidomlennya a sekretnij klyuch dodaye dodatkovij riven bezpeki tak yak lishe osoba z dostupom do sekretnogo klyucha zmozhe stvoriti korektnij HMAC Mehanizmi yaki nadayut taki perevirki cilisnosti na osnovi sekretnogo klyucha zazvichaj nazivayut kodom avtentifikaciyi povidomlennya MAC Yak pravilo MAS vikoristovuyetsya mizh dvoma storonami yaki podilyayut sekretnij klyuch dlya perevirki avtentichnosti informaciyi peredanoyi mizh cimi storonami Cej standart viznachaye MAC OznachennyaCe oznachennya vzyato z RFC 2104 HMAC K m H K o p a d H K i p a d m K H K K dovshij nizh rozmir bloka K inakshe displaystyle begin aligned operatorname HMAC K m amp operatorname H Bigl bigl K oplus opad bigr parallel operatorname H bigl left K oplus ipad right parallel m bigr Bigr K amp begin cases operatorname H left K right amp K text dovshij nizh rozmir bloka K amp text inakshe end cases end aligned de H displaystyle operatorname H ce kriptografichna hesh funkciya m displaystyle m ce povidomlennya do avtentifikaciyi K displaystyle K ce sekretnij klyuch K displaystyle K ce klyuch zavdovzhki z blok otrimanij zi sekretnogo klyucha K abo dodavannyam nuliv pravoruch do rozmiru bloka abo spochatku heshuvannyam do rozmiru menshogo chi rivnogo rozmiru bloka a potim dodavannyam nuliv sprava displaystyle parallel poznachaye konkatenaciyu displaystyle oplus poznachaye pobitovu viklyuchnu diz yunkciyu XOR o p a d displaystyle opad ce zovnishnye dopovnennya zavdovzhki z blok sho skladayetsya iz povtoren bajta 0x5c i p a d displaystyle ipad ce vnutrishnye dopovnennya zavdovzhki z blok sho skladayetsya iz povtoren bajta 0x36Docilnist zastosuvannyaDlya togo shob mozhna bulo vikoristovuvati nayavni hesh funkciyi bez zmin zokrema hesh funkcij yaki vzhe ye v programnomu produkti i yih kod vzhe dostupnij Shob zberegti pochatkove vikonannya hesh funkciyi bez yakih nebud znachnih pogirshen Vikoristovuvati i obroblyati klyuchi prostishim sposobom Dlya legkoyi zaminyuvanosti bazovoyi hesh funkciyi v tomu vipadku yaksho bilsh shvidka i bilsh bezpechna hesh funkciya bude dostupna piznishe Pidvishenij interes do rozrobki MAC na osnovi kriptografichnih hesh funkcij napriklad MD5 SHA 1 abo RIPEMD 160 poyasnyayetsya prosto Kriptografichni hesh funkciyi zazvichaj u programah pracyuyut shvidshe nizh pri vikoristanni simetrichnih blokovih shifriv takih yak DES Bibliotechni kodi dlya kriptografichnoyi hesh funkciyi shiroko dostupni Hesh funkciyi taki yak MD5 ne priznacheni dlya vikoristannya yak MAC i ne mozhut buti vikoristani bezposeredno dlya ciyeyi meti bo voni ne spirayutsya na sekretnij klyuch Bulo zrobleno kilka propozicij dlya vklyuchennya sekretnogo klyucha v isnuyuchi hesh algoritmi HMAC otrimav najbilshu pidtrimku HMAC buv obranij yak obov yazkovij angl mandatory to implement pri realizaciyi MAC dlya IP bezpeki i vikoristovuyetsya v inshih internet protokolah takih yak Transport Layer Security TLS yakij zaminiv Secure Sockets Layer i Secure Electronic Transaction SET Div takozhDzherelaFIPS PUB 198 1 The Keyed Hash Message Authentication Code HMAC 2 grudnya 2017 u Wayback Machine RFC 2104 HMAC Keyed Hashing for Message Authentication Cya stattya ye zagotovkoyu Vi mozhete dopomogti proyektu dorobivshi yiyi Ce povidomlennya varto zaminiti tochnishim