Теория
HMAC — код аутентификации сообщения на основе хеш-функции и секретного ключа: \(HMAC = H((K \oplus opad) ,|, H((K \oplus ipad) ,|, M))\). Обычный хеш может пересчитать кто угодно, а HMAC без ключа не подделать.
HMAC проверяет одновременно целостность и подлинность: сообщение не изменено и отправлено владельцем ключа. Его используют для подписи запросов API и веб-хуков — сервисы передают подпись в заголовке.
Важно: надёжность HMAC определяется секретностью ключа — длинный случайный ключ обязателен, а короткий словарный сводит защиту на нет.
Пример с решением
- Условие. Посчитайте HMAC-SHA256 сообщения «hello» с ключом «key».
- Формула. Двойное хеширование с подкладками ipad/opad и ключом.
- Подстановка. H — SHA-256; ключ дополняется до размера блока.
- Вычисление. Перемешивание двух проходов даёт 32-байтовый код.
- Ответ. Готовый HMAC в hex. Калькулятор с сообщением hello, ключом key и алгоритмом SHA-256 покажет код; смена ключа меняет результат полностью.
Главное
- HMAC = хеш + секретный ключ.
- Проверяет целостность и подлинность.
- Ключ должен быть длинным и случайным.