PBKDF2 — функция генерации ключей на основе пароля | Глоссарий FREEHOSTING

PBKDF2

Password-Based Key Derivation Function
PBKDF2 — PBKDF2 — криптографическая функция, которая преобразует пароль в безопасный ключ, используя итеративное хеширование. Она защищает пароли от атак перебором и ускоренного взлома, применяя соль и множество повторений.

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

PBKDF2 (Password-Based Key Derivation Function 2) — алгоритм для безопасного преобразования пароля в криптографический ключ. Он использует соль и многократное хеширование, что значительно усложняет взлом пароля с помощью атак перебором, делая процесс вычислительно дорогим для злоумышленника.

Основная цель PBKDF2 — обеспечить надежное хранение паролей и усилить защиту данных, минимизируя риски, связанные с утечками и злоупотреблениями.

Сравнение

Функция Метод защиты Скорость Устойчивость к атакам
PBKDF2 Соль + многократное хеширование Средняя (настраиваемая) Высокая
bcrypt Соль + адаптивное замедление Средняя Высокая
scrypt Соль + нагрузка по памяти и времени Низкая Очень высокая
MD5 Одинарное хеширование Очень высокая Низкая

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

  • Хранение паролей пользователей в базах данных веб-сервисов и приложений.
  • Генерация криптографических ключей из паролей для шифрования данных.
  • Обеспечение защиты аутентификационной информации в протоколах безопасности.
  • Создание ключей для защиты файловых систем и защищённого хранения.

Негативный пример: Использование PBKDF2 с малым числом итераций или без соли значительно снижает уровень защиты и делает пароли уязвимыми к атаке перебором.

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

PBKDF2 принимает на вход пароль, соль, количество итераций и функцию хеширования (обычно HMAC-SHA256 или HMAC-SHA1). Итоговый ключ получается путем повторного применения хеш-функции заданное количество раз.

PBKDF2(password, salt, iterations, keyLength) {
  for each block {
    U_1 = PRF(password, salt + blockIndex)
    U_i = PRF(password, U_{i-1}) for i = 2 to iterations
    outputBlock = U_1 XOR U_2 XOR ... XOR U_iterations
  }
  return concatenated outputBlocks truncated to keyLength
}

Подробности и стандарты описаны в PBKDF2 и рекомендуются к использованию в современных системах безопасности.

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

Что такое PBKDF2?

Это криптографический алгоритм преобразования пароля в надежный ключ с использованием соли и многократного хеширования.

Зачем нужна соль в PBKDF2?

Соль предотвращает использование готовых таблиц для взлома пароля, добавляя уникальность каждому процессу хеширования.

Можно ли использовать PBKDF2 для шифрования данных?

Да, PBKDF2 часто применяется для генерации ключей, используемых для шифрования.