digital-garden/dev/Хранение паролей в приложении.md
Struchkov Mark 935f64fcf2
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-11-03 21:49:43 +03:00

3.2 KiB
Raw Blame History

aliases tags date
maturity/🌱
2024-11-03

!../../../garden/ru/meta/files/images/Pasted image 20241103184325.png

Что не следует делать

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

Как защититься от атак с предварительным вычислением хэшей? Для предотвращения атак с использованием радужных таблиц используется соль (salt).

Что такое соль? Согласно рекомендациям OWASP, «соль — это уникальная, случайно сгенерированная строка, которая добавляется к каждому паролю как часть процесса хэширования».

Как хранить пароль и соль?

  • Результат хэширования будет уникален для каждого пароля.
  • Пароль можно сохранить в базе данных в следующем формате: hash(password + salt).

Как проверить пароль? Процесс проверки пароля может выглядеть следующим образом:

  1. Клиент вводит пароль.
  2. Система получает соответствующую соль из базы данных.
  3. Система добавляет соль к паролю и выполняет хэширование. Назовем полученный хэш H1.
  4. Система сравнивает H1 с H2, где H2 — это хэш, сохраненный в базе данных. Если они совпадают, пароль считается правильным.

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


Мета информация

Область:: Родитель:: Источник:: Создана:: 2024-11-03 Автор::

Дополнительные материалы

Дочерние заметки