Как сайты на самом деле хранят пароли
Нормальные сайты не хранят пароли в открытом виде. Вместо этого они используют хеширование, соль и современные механизмы защиты.
Почему сайтам не нужен пароль в открытом виде
Сервису не нужно знать ваш пароль «как текст», чтобы пустить вас в аккаунт. Достаточно проверить, соответствует ли введённое значение сохранённому результату обработки.
Поэтому правильная модель — не обратимое хранение, а безопасное преобразование пароля в значение для сравнения.
Как выглядит нормальная безопасная схема
- При создании пароля добавляется соль и считается хеш.
- В базу уходит не сам пароль, а результат вычисления и нужные метаданные.
- При входе процесс повторяется, а результат сравнивается с сохранённым хешем.
Где всё обычно ломается
Проблемы начинаются там, где используют устаревшие алгоритмы, слабые параметры или вообще обратимое хранение. В таком случае утечка базы становится намного опаснее.
Для пользователя отсюда следует простое правило: не повторять пароли. Тогда даже плохая серверная реализация не потянет за собой остальные аккаунты.
Быстрый контрольный список
Самые важные действия из этого руководства в компактной форме.
- В своих проектах используйте только современные методы хеширования паролей.
- Как пользователь, держите пароли сильными и уникальными: серверную реализацию вы не контролируете.
- Старые аккаунты периодически пересматривайте и обновляйте, если не доверяете сервису.
Общие вопросы
Создайте надежный пароль сейчас
Используйте генератор Zenkey.click, чтобы сразу создать надежный случайный пароль или безопасную парольную фразу.
Хеширование и шифрование паролей: в чём разница?
Если вы хотите продолжить, это следующее руководство, которое стоит прочитать.
Хеширование и шифрование часто путают. Для паролей правильный путь — хеширование, потому что сервер не должен уметь восстановить исходный пароль.