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

47 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- maturity/🌱
date: 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]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
- [[Хеширование паролей пользователей алгоритмом bcrypt]]
<!-- SerializedQuery END -->