0Pricing
Cryptology Academy · Урок

PBKDF2 и выбор подходящего алгоритма

Сравните PBKDF2 с bcrypt и Argon2 и выберите лучший вариант для своего приложения

«PBKDF2 и выбор подходящего алгоритма» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Добро пожаловать

На этом заключительном уроке для начинающих мы изучим PBKDF2, сравним его с bcrypt и Argon2 и создадим схему принятия решений для выбора подходящего алгоритма хеширования паролей.

Обзор PBKDF2

PBKDF2 (функция выработки ключа на основе пароля) опубликован в RFC 2898 (2000). Он многократно применяет псевдослучайную функцию (обычно HMAC-SHA256) к паролю и соли.

Формула PBKDF2

PBKDF2(PRF, password, salt, iterations, keylen) Пример: key = PBKDF2-HMAC-SHA256(password, salt, 600000, 32) По состоянию на 2023 год OWASP рекомендует 600 000 итераций с SHA-256.

PBKDF2 в Python

import hashlib, os salt = os.urandom(16) key = hashlib.pbkdf2_hmac( 'sha256', password.encode(), salt, 600000, dklen=32 ) # Or using cryptography library: from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC

Преимущества PBKDF2

Соответствует требованиям FIPS 140-2/3. Встроен в стандартные библиотеки Python, Java и .NET. Широко используется в корпоративных и государственных средах. Прост для корректной реализации.

Недостатки PBKDF2

Не требует больших затрат памяти. Удобен для GPU: миллиарды итераций SHA-256 в секунду. При 600 000 итераций GPU всё ещё достигает примерно 1 миллиона паролей в секунду. bcrypt, а особенно Argon2, значительно сильнее усложняют перебор.

Таблица сравнения алгоритмов

Алгоритм | Требует больших затрат памяти | FIPS | Скорость (GPU) | Рекомендация bcrypt | Нет | Нет | 50 тыс./с | Приемлемый вариант PBKDF2 | Нет | Да | 1 млн/с | Для регулируемых сред Argon2id | Да | Нет | 100/с | Лучший выбор

Схема принятия решений

Используйте Argon2id: для новых приложений без ограничений соответствия требованиям. Используйте bcrypt: если Argon2 недоступен, а также для устаревших систем. Используйте PBKDF2-SHA256: если требуется соответствие требованиям FIPS или государственных стандартов. Никогда не используйте: MD5, SHA-1, SHA-256 без итераций и любые алгоритмы без соли.

Примечания о соответствии требованиям

PCI-DSS: не указывает конкретный алгоритм, но требует «надёжного» хеширования. bcrypt и Argon2 соответствуют этому требованию. NIST SP 800-132: допускает PBKDF2. Некоторые системы со строгими требованиями FedRAMP требуют PBKDF2 с одобренной FIPS PRF.

Эволюция числа итераций

Число итераций OWASP для PBKDF2-SHA256: 2010: 1000, 2016: 100000, 2023: 600000. Оборудование становится быстрее — пересматривайте параметры и увеличивайте их каждые 2 года. Коэффициент стоимости bcrypt: 2010: 10, 2023: 12, целевое значение на 2025 год: 13.

Безопасный процесс сброса пароля

1. Сгенерируйте криптографически случайный токен: secrets.token_urlsafe(32) 2. Хешируйте его с помощью SHA-256 (не bcrypt — только для хранения) 3. Сохраните хеш и отправьте токен по электронной почте 4. При сбросе: хешируйте отправленный токен, сравните результаты и немедленно сделайте токен недействительным после использования

Краткая проверка

В какой среде PBKDF2 предпочтительнее Argon2id, несмотря на меньшую устойчивость к атакам с использованием GPU?

Итоги

Вы завершили направление для начинающих по криптологии! Теперь вы понимаете хеши, симметричное и асимметричное шифрование, подписи, PKI и хеширование паролей. Далее: темы среднего уровня — режимы блочных шифров, потоковые шифры и обмен ключами.

Часто задаваемые вопросы

Урок «PBKDF2 и выбор подходящего алгоритма» бесплатный?

Да — полный текст урока «PBKDF2 и выбор подходящего алгоритма» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «PBKDF2 и выбор подходящего алгоритма»?

Сравните PBKDF2 с bcrypt и Argon2 и выберите лучший вариант для своего приложения Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «PBKDF2 и выбор подходящего алгоритма»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Почему обычный SHA-256 не подходит для паролей
  2. bcrypt: алгоритм и фактор вычислительной стоимости
  3. Argon2: хеширование паролей с высокой потребностью в памяти
  4. PBKDF2 и выбор подходящего алгоритма
← Назад к Cryptology Academy