Что такое HMAC — защита целостности и аутентичности | Глоссарий FREEHOSTING

HMAC

Hash-based Message Authentication Code
HMAC — HMAC (Hash-based Message Authentication Code) — криптографический метод для проверки целостности и подлинности сообщения с использованием секретного ключа и хеш-функции.

Определение простыми словами

HMAC — это способ убедиться, что сообщение пришло от доверенного источника и не было изменено по пути. Для этого к сообщению добавляется дополнительный ключ, и вся эта информация обрабатывается с помощью хеш-функции. Результат проверки позволяет определить, была ли передача корректной и безопасной.

Использование HMAC гарантирует, что передаваемые данные защищены от подделки и несанкционированных изменений, что критично для безопасности сетевых коммуникаций и хранения информации.

Сравнение

Метод Использование ключа Назначение Уровень безопасности
HMAC Секретный ключ + хеш-функция Аутентификация и целостность Высокий
Простая хеш-функция Нет Только контроль целостности Низкий (без ключа уязвим)
Цифровая подпись Открытый и закрытый ключи Аутентификация, неотрекаемость Очень высокий

Кейсы использования

  • Защита аутентичности API-запросов и ответов.
  • Контроль целостности файлов и передаваемых данных.
  • Безопасная передача сообщений в распределённых системах.
  • Применение в протоколах TLS, IPsec, SSH и других для обеспечения надежности соединений.
  • Использование в токенах доступа для подтверждения подлинности.

Негативный пример: Использование HMAC с коротким или слабым ключом снижает безопасность и может привести к компрометации данных.

Технические детали

HMAC строится на основе любой криптографической хеш-функции (SHA-256, SHA-1 и др.) и секретного ключа. Общая формула:

HMAC(key, message) = H((key XOR opad) || H((key XOR ipad) || message))

Где H — выбранная хеш-функция, opad и ipad — фиксированные константы. Входной ключ при необходимости приводится к длине блока хеш-функции.

Подробнее в разделе HMAC, сравнение с CMAC и использование в TLS.

Частые вопросы

Для чего используется HMAC?

HMAC используется для проверки целостности и подлинности сообщений с помощью секретного ключа и хеш-функции.

Какие хеш-функции применяются в HMAC?

Чаще всего используются SHA-256, SHA-1 и другие криптографические функции с крепкой стойкостью.

Чем HMAC отличается от обычного хеша?

HMAC дополнительно использует секретный ключ, что защищает от подделки и обеспечивает аутентичность.