Назад к вопросам
Middle+
110
questionbank
Что такое HMAC и в каких случаях его используют?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
HMAC (Hash-based Message Authentication Code) — это механизм для проверки целостности и аутентификации сообщения с использованием криптографической хэш-функции и секретного ключа.
Принцип работы:
- Ключ расширяется до размера блока хэш-функции.
- Ключ XORится с внутренней фиксированной константой (inner padding) и конкатенируется с сообщением.
- Вычисляется хэш от результата.
- Ключ XORится с внешней фиксированной константой (outer padding) и конкатенируется с хэшем из шага 3.
- Окончательный HMAC вычисляется как хэш от результата шага 4.
Используется для:
- Проверки целостности данных (удостовериться, что сообщение не было изменено).
- Аутентификации сообщения (удостовериться, что сообщение отправлено известным источником, обладающим секретным ключом).
- В протоколах безопасности, таких как TLS/SSL, IPsec, JWT.
Пример генерации HMAC (псевдокод):
HMAC(key, message) = H( (key XOR opad) || H( (key XOR ipad) || message ) )
где:
H— хэш-функция (например, SHA-256).key— секретный ключ.message— сообщение.||— операция конкатенации.ipad— внутренняя фиксированная константа.opad— внешняя фиксированная константа.XOR— побитовая операция исключающее ИЛИ.
HMAC устойчив к атакам удлинением, в отличие от простого использования Hash(key || message) или Hash(message || key).