Вступ до HMAC
HMAC розшифровується як Код аутентифікації повідомлень на основі хеша. Доступні різні алгоритми дайвінгу повідомлень. Завдання HMAC - повторне використання цих алгоритмів перебору повідомлень. Він розроблений для реалізації середовища безпеки для інтернет-протоколів. HMAC працює з алгоритмом дайвінгу будь-яких повідомлень. Він використовує алгоритм дайвінгу повідомлень у вихідному повідомленні, він також використовує симетричний ключ для шифрування дайджесту повідомлень, який виробляє MAC (Code Authentication Code). HMAC схожий на MAC, різниця в HMAC, він використовує алгоритм на основі хешу. Код аутентифікації повідомлень на основі хеша також використовується в протоколі SSL (Secure Socket Layer). Крім того, HMAC швидше обчислювати. Навіть якщо основна хеш-функція буде порушена, HMAC все одно забезпечить кращу безпеку. У цій статті ми збираємося обговорити основну концепцію коду аутентифікації повідомлень на основі хеша і він працює.
Як працює HMAC?
Давайте тепер розглянемо роботу коду аутентифікації повідомлень на основі хеша.
Крок 1: Зробіть довжину симетричного ключа рівним кільком бітам у кожному блоці.
Існує три можливості, виходячи з того, що кожен з нас повинен діяти, щоб дорівнювати довжину ключа кількості біт. Довжина ключа менша за кількість бітів у кожному блоці. У цьому випадку, щоб дорівнювати довжину ключа декільком бітам, нам потрібно розширити довжину ключа, додавши багато 0 біт.
Довжина ключа дорівнює декільком бітам у кожному блоці. У цьому нам не потрібно виконувати жодних дій, оскільки ключ дорівнює кількості біт. Довжина ключа більша за кількість бітів у кожному блоці. У цьому випадку, щоб дорівнювати довжину ключа числовим бітам, нам потрібно обрізати ключ, застосувавши алгоритм дайвінгу повідомлень, який ми використаємо для створення HMAC.
Крок 2: XOR симетричний з накладкою.
На цьому кроці ми XOR симетрично з колодкою для отримання змінної під назвою S1.
Примітка : pad = Це рядок 00110110, повторений b / 8 разів.Крок 3: Додайте оригінальне повідомлення до S1.
На цьому кроці ми додаємо початкове повідомлення в кінці S1.
Крок 4: Застосуйте алгоритм перебору повідомлень.
На цьому кроці ми застосовуємо вибраний алгоритм перебору повідомлень (MD5, SHA-1, SHA-512 тощо) до виходу кроку 3. Припустимо, що вихід цього кроку 4 є H
Крок 5: Симетричний ключ XOR з накладкою.
На цьому кроці XOR симетричний ключ із накладкою для отримання змінної під назвою S2.
Примітка : pad = Це рядок 01011010, повторений b / 8 разів.Крок 6: Додайте Н до S2.
На цьому кроці ми беремо дайджест повідомлень, який обчислюється на кроці 4, і додаємо його до та S2, який отриманий на попередньому кроці, тобто кроці 5.
Крок 6: Алгоритм дайвінгу повідомлень
На цьому кроці ми застосуємо вибраний алгоритм дайвінгу повідомлень до виходу кроку 6. Створений дайджест повідомлень цього кроку є кінцевим MAC.
Недоліки HMAC
- Давайте обговоримо деякі проблеми, з якими ми можемо зіткнутися в коді аутентифікації повідомлень на основі хеша.
Як ми вже обговорювали раніше, в коді аутентифікації повідомлень на основі хеша використовується симетричний ключ. Симетричний ключ означає той самий ключ, який використовують відправник і одержувач. Тут виникає проблема в тому, як відправник і одержувач обміняються ключем ?. - Як-небудь вищезазначена проблема, обмін симетричним ключем вирішено, ми не можемо використовувати Код аутентифікації повідомлень на основі Хаша у випадку, коли більше одного приймача. це тому, що HMAC використовує симетричний ключ для генерації MAC. Симетричний ключ повинен ділитися лише двома сторонами, тобто відправником та одержувачем.
- Інша проблема полягає в тому, що якщо ми ділимося симетричним на декілька сторін, то як одержувач знає, що повідомлення було підготовлене та відправлене відправником, а не інші приймачі, ключі також ділиться з ними, тому існує можливість шахрайства, що хтось із приймачі можуть створювати помилкові повідомлення.
Висновок
У цій статті ми побачили основну концепцію коду аутентифікації повідомлень на основі хеша і він працює.
Рекомендована стаття
Це посібник з HMAC. Тут ми обговорюємо Вступ до коду аутентифікації повідомлень на основі хешу та його роботу з недоліками. Ви також можете ознайомитись із запропонованими нами статтями, щоб дізнатися більше -
- Симетричне шифрування ключа з перевагами
- Що таке тестування протоколів | Для чого він використовується?
- Ознайомлення з першими 7 інструментами IPS
- Вступ до інструментів тестування регресії