Головне
- 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 Первинне джерело або джерело першої сторони для визначення, вимог протоколу, межі безпеки чи нормативного контексту.