Криптография без лишней сложности

HKDF

HKDF — функция HMAC Extract-and-Expand для вывода ключей из RFC 5869. Она создаёт из исходного ключевого материала отдельные ключи для конкретных целей. [1]

Проверено 3 первичных источника или источника первой стороны Автор — SealTask

Главное

  • HKDF сначала извлекает равномерный псевдослучайный ключ, затем расширяет его.
  • Параметр info разделяет ключи по протоколам, версиям и назначениям.
  • HKDF построена на HMAC и наследует требования к выбранной хеш-функции.
  • HKDF не добавляет энтропию и не заменяет функцию хеширования паролей.

Определение и область

HKDF из RFC 5869 состоит из этапов Extract и Expand. Extract с помощью HMAC нормализует исходный ключевой материал в псевдослучайный ключ, а Expand выводит из него один или несколько ключей нужной длины. Такое разделение удобно, когда один общий секрет используется в нескольких криптографических контекстах. [1]

Граница безопасности

Значение salt укрепляет этап извлечения, а info связывает результат с конкретным назначением. Разные метки для шифрования, аутентификации и обёртывания ключей помогают не использовать один и тот же ключ в несовместимых операциях. Основа HMAC определена отдельно и должна применяться с согласованной хеш-функцией. [1][2]

Ограничения и оценка

HKDF не исправляет предсказуемый пароль и не создаёт отсутствующую энтропию. Для паролей нужна требовательная к памяти функция вроде Argon2id, а затем при необходимости HKDF для разделения назначения. Повторное использование одинаковых входов, salt и info закономерно даёт одинаковый результат. [1]

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

Что означает HKDF?

HKDF — функция HMAC Extract-and-Expand для вывода ключей из RFC 5869. Она создаёт из исходного ключевого материала отдельные ключи для конкретных целей. [1]

Чего не гарантирует HKDF?

HKDF не исправляет предсказуемый пароль и не создаёт отсутствующую энтропию. Для паролей нужна требовательная к памяти функция вроде Argon2id, а затем при необходимости HKDF для разделения назначения. Повторное использование одинаковых входов, salt и info закономерно даёт одинаковый результат. [1]

Как SealTask рассматривает HKDF?

SealTask применяет HKDF с явными метками назначения для вывода независимых ключей из аутентификационных и обменных секретов. Версия протокола и роль ключа входят в контекст, чтобы ключ содержимого нельзя было случайно переиспользовать как ключ другой операции. [3]

Первичные источники

Определения опираются прежде всего на органы стандартизации, государственные рекомендации и архитектуру SealTask из первых рук. Ссылки открывают полный источник.

  1. 01
    RFC 5869: HMAC-based Extract-and-Expand Key Derivation Function Первичный источник или источник первой стороны для определения, требований протокола, границы безопасности либо нормативного контекста.
  2. 02
    RFC 2104: HMAC Первичный источник или источник первой стороны для определения, требований протокола, границы безопасности либо нормативного контекста.
  3. 03
    SealTask security architecture Первичный источник или источник первой стороны для определения, требований протокола, границы безопасности либо нормативного контекста.
Открыть весь центр знаний