Два разных процесса, которые часто путают

Когда вы вводите пароль на сайте и нажимаете «Войти», происходит одно действие. Когда браузер предлагает запомнить этот же пароль и подставляет его при следующем визите, происходит совсем другое. Первое — задача сервиса, у которого вы регистрируетесь, второе — задача программы на вашем устройстве. У них разные угрозы, разные механизмы защиты и разная ответственность за утечку.

Путаница возникает из-за слова «шифрование», которым называют оба процесса. На сайте пароль на самом деле хешируют — применяют одностороннее преобразование, из которого невозможно восстановить исходный текст, даже зная алгоритм. Разница здесь принципиальная: шифрование обратимо при наличии ключа, хеширование — нет.

Как сайт проверяет пароль, не сохраняя его

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

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

Зачем к паролю добавляют соль

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

Как браузер хранит пароли на вашем устройстве

Когда вы разрешаете браузеру запомнить пароль, он сохраняет его в файле профиля на диске в зашифрованном виде. Ключ шифрования обычно привязан к вашей учётной записи в операционной системе: в Windows это встроенное хранилище DPAPI, в macOS — Связка ключей. Пока злоумышленник не вошёл в вашу учётную запись на компьютере, добраться до этих паролей напрямую сложно.

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

Зачем нужен мастер-пароль

Некоторые браузеры позволяют задать отдельный пароль для доступа к сохранённым логинам, в Firefox он называется основным паролем. Он добавляет второй слой шифрования, ключ от которого не совпадает с ключом вашей учётной записи в системе. Без него зашифрованные пароли просто лежат рядом с ключом, которым их легко открыть при доступе к самому устройству; с ним для расшифровки нужно ещё и ввести отдельную фразу, которую не хранит ни система, ни диск.

Почему отдельный менеджер паролей надёжнее

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

  • Генерирует длинный уникальный пароль для каждого сайта, не полагаясь на память
  • Шифрует всю базу отдельным мастер-ключом, который не совпадает с паролем от операционной системы
  • Работает одинаково в разных браузерах и на разных устройствах, а не привязан к одному профилю
  • Предупреждает, если один и тот же пароль используется на нескольких сайтах, и подсказывает, где утечка уже произошла

Отдельный менеджер паролей не делает вас неуязвимым: если заражён сам компьютер, вредоносная программа может перехватить пароль в момент ввода. Но он закрывает самую массовую угрозу — повторное использование одного и того же пароля на десятках сайтов, из-за которого одна утечка превращается в цепочку взломов.

Частые вопросы

Если сайт взломали, узнает ли хакер мой настоящий пароль?

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

Стоит ли доверять паролям, сохранённым в браузере?

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

Можно ли восстановить забытый пароль из хеша?

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

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

Хеширование защищает базу данных конкретного сайта, но не защищает вас от последствий, если этот сайт всё же взломали и пароль подобрали или получили другим способом, например фишингом. Дальше этот же пароль подходит ко всем остальным вашим аккаунтам.