0Pricing
Cyber Security Academy · Урок

Хеширование паролей: bcrypt, Argon2, PBKDF2

Узнайте, почему хранение паролей в открытом виде опасно и как хеширование с солью защищает пароли

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

Почему нельзя хранить пароли в открытом виде

Хранение паролей в открытом виде приводит к катастрофическим последствиям: одна утечка базы данных раскрывает все учётные записи. Перед сохранением пароли необходимо обработать с помощью односторонней функции, чтобы даже доступ к базе данных не позволил узнать исходный пароль.

Что такое хеширование

Хеш-функция преобразует входные данные любой длины в результат фиксированной длины. Одинаковые входные данные всегда дают одинаковый результат, но восстановить исходные данные по хешу невозможно. Примеры: SHA-256, bcrypt, Argon2.

Почему нельзя использовать SHA-256 для паролей

Хеш-функции общего назначения, такие как SHA-256, разработаны так, чтобы работать быстро. Злоумышленник может вычислять миллиарды хешей SHA-256 в секунду на GPU, благодаря чему взлом перебором становится осуществимым.

Для хеширования паролей необходимы медленные и ресурсоёмкие функции.

Добавление соли

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

# Conceptual salt example
hash = bcrypt("password" + random_salt)

bcrypt

bcrypt был разработан в 1999 году специально для хеширования паролей. В нём есть настраиваемый параметр стоимости, который определяет, насколько медленным будет хеширование. По мере совершенствования оборудования увеличивайте параметр стоимости, чтобы сохранять необходимый уровень безопасности.

Сегодня обычно используется параметр стоимости 12 — хеширование занимает примерно 250 мс на современном CPU.

PBKDF2

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

Argon2

Argon2 победил в конкурсе алгоритмов хеширования паролей в 2015 году. Это современный стандарт. В нём настраиваются:

  • стоимость времени — количество итераций
  • стоимость памяти — требуемый объём RAM (ограничивает ускорение на GPU)
  • параллелизм — количество потоков

Для большинства приложений используйте Argon2id.

Радужные таблицы

Радужная таблица — это заранее вычисленная таблица соответствий «хеш → открытый текст». Без соли злоумышленник, имеющий хеш, может мгновенно найти его в таблице. Соль делает радужные таблицы бесполезными, поскольку каждый хеш становится уникальным.

Методы взлома паролей

Распространённые методы взлома без доступа к сервису:

  • атака по словарю — проверка распространённых паролей и их вариантов
  • полный перебор — проверка всех комбинаций символов
  • атака на основе правил — применение правил изменения к словарю (добавление года, замена регистра, замена букв символами)
  • инструменты: Hashcat, John the Ripper

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

Предпочтительный порядок для новых приложений:

  1. Argon2id — лучшая устойчивость к взлому с использованием GPU/ASIC
  2. bcrypt — широкая поддержка и проверенная временем надёжность
  3. PBKDF2 — одобрен NIST и требуется в некоторых случаях для соблюдения нормативов

Никогда не используйте MD5, SHA-1 или SHA-256 без соли для паролей.

Процесс проверки

Когда пользователь входит в систему:

  1. Получите сохранённые хеш и соль пользователя
  2. Хешируйте отправленный пароль с использованием той же соли и алгоритма
  3. Сравните полученный хеш с сохранённым хешем (сравнение за постоянное время)
  4. Никогда не расшифровывайте — только сравнивайте

Быстрая проверка: хеширование паролей

Какой алгоритм хеширования паролей считается актуальной рекомендацией и стал победителем конкурса по хешированию паролей?

Итоги урока

Пароли необходимо хранить в виде хешей, а не в виде открытого текста. Быстрые алгоритмы, такие как SHA-256, не подходят — используйте медленные функции хеширования паролей: Argon2id (предпочтительно), bcrypt или PBKDF2. Всегда используйте случайную соль для каждого пароля, чтобы предотвратить атаки с использованием радужных таблиц. Никогда не разрабатывайте собственную криптографию — используйте проверенные библиотеки.

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

Урок «Хеширование паролей: bcrypt, Argon2, PBKDF2» бесплатный?

Да — полный текст урока «Хеширование паролей: bcrypt, Argon2, PBKDF2» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Хеширование паролей: bcrypt, Argon2, PBKDF2»?

Узнайте, почему хранение паролей в открытом виде опасно и как хеширование с солью защищает пароли Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

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

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

Сколько времени занимает урок «Хеширование паролей: bcrypt, Argon2, PBKDF2»?

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

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

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

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

  1. Надёжность паролей и политики
  2. Хеширование паролей: bcrypt, Argon2, PBKDF2
  3. Многофакторная аутентификация
  4. Подстановка учётных данных и распыление паролей
← Назад к Cyber Security Academy