47 lines
3.2 KiB
Markdown
47 lines
3.2 KiB
Markdown
|
---
|
|||
|
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 -->
|
|||
|
|