Главное
- 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 из первых рук. Ссылки открывают полный источник.
- 01 RFC 5869: HMAC-based Extract-and-Expand Key Derivation Function Первичный источник или источник первой стороны для определения, требований протокола, границы безопасности либо нормативного контекста.
- 02 RFC 2104: HMAC Первичный источник или источник первой стороны для определения, требований протокола, границы безопасности либо нормативного контекста.
- 03 SealTask security architecture Первичный источник или источник первой стороны для определения, требований протокола, границы безопасности либо нормативного контекста.