Получение ключей PBKDF2
Генерация безопасных криптографических ключей из паролей
Документация PBKDF2
PBKDF2 (Password-Based Key Derivation Function 2) — криптографический стандарт, определённый в RFC 8018. Он преобразует пароль в безопасный криптографический ключ путём итеративного хеширования, делая атаки перебором вычислительно дорогими.
PBKDF2 широко применяется в протоколах безопасности, включая шифрование WiFi WPA2, защиту данных iOS, macOS FileVault и многочисленные корпоративные системы хранения паролей. Его статус, одобренный NIST, делает его первым выбором для приложений, чувствительных к требованиям соответствия.
Как работает PBKDF2
PBKDF2 итеративно применяет псевдослучайную функцию (по умолчанию HMAC-SHA256) для генерации производного ключа:
- Принимает пароль, соль, количество итераций и желаемую длину ключа в качестве входных данных
- Применяет HMAC с паролем в качестве ключа и соль + счётчик в качестве сообщения
- Повторяет операцию HMAC указанное количество итераций
- Объединяет промежуточные результаты для получения итогового производного ключа
Рекомендуемые итерации OWASP (2023)
Open Web Application Security Project (OWASP) предоставляет минимальные рекомендации по итерациям на основе силы алгоритма хеширования. Эти значения откалиброваны для обеспечения адекватной защиты от современных аппаратных атак:
| Алгоритм хеширования | Минимум итераций | Рекомендуется |
|---|---|---|
| PBKDF2-SHA256 | 310,000 | 600,000+ |
| PBKDF2-SHA384 | 210,000 | 500,000+ |
| PBKDF2-SHA512 | 120,000 | 210,000+ |
| PBKDF2-SHA1 | 1,300,000 | Не рекомендуется |
Типичные сценарии использования
- Получение ключей шифрования для AES/ChaCha20 из паролей пользователей
- Хранение и проверка паролей в системах аутентификации
- Генерация детерминированных ключей из мастер-паролей (менеджеры паролей)
- Получение ключей для шифрования дисков и защищённых контейнеров
Сравнение KDF: PBKDF2 vs Bcrypt vs Argon2
| Функция | PBKDF2 | Bcrypt | Argon2 |
|---|---|---|---|
| Стандарт | RFC 8018 | OpenBSD | RFC 9106 |
| Memory-Hard | Нет | Ограничено (4 КБ) | Да |
| Устойчивость к GPU | Низкая | Умеренная | Высокая |
| Лучший сценарий | Соответствие FIPS/NIST | Устаревшие системы | Новые приложения |
Лучшие практики безопасности
- Всегда используйте криптографически случайную соль минимум 16 байт (128 бит)
- Храните соль вместе с производным ключом — она не является секретом
- Ежегодно увеличивайте количество итераций для соответствия улучшениям оборудования
- Рассмотрите Argon2id для новых систем, требующих memory-hard защиты от GPU-атак
Технические ссылки
Связанные инструменты
Генератор хеша паролей
Генерация и проверка безопасных хешей паролей с использованием алгоритмов Bcrypt, Scrypt и Argon2
HMAC Генератор
Генерация HMAC кодов аутентификации с алгоритмами MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3 и RIPEMD-160
AES Шифрование/Дешифрование
Безопасное шифрование и дешифрование текста с использованием алгоритма AES
SHA Генератор хешей
Онлайн-генератор SHA хешей с поддержкой алгоритмов SHA-1, SHA-256, SHA-384, SHA-512