Как взламывают пароли?
Учетные записи редко взламывают так, как показывают в кино. На практике пароль получают одним из трех способов. Его взламывают: подбирают, пробуя один вариант за другим, обычно по хешам из украденной базы данных сервиса. Его крадут: вы вводите его на поддельной странице или его копирует вредоносная программа. Или его используют повторно: злоумышленники берут пароль из прежней утечки и пробуют его на других сервисах, рассчитывая, что владелец пользовался им и там. Разница важна, потому что против каждого способа нужна своя защита. В статье разобраны основные методы и для каждого объяснено, что помогает.
Пароли из прежних утечек
Каждый год сервисы взламывают, и базы их пользователей попадают в продажу или в свободный доступ. Злоумышленники берут пары «адрес электронной почты — пароль» из одной утечки и автоматически пробуют их в банках, почтовых сервисах, магазинах и социальных сетях — такая атака называется подстановкой учетных данных (credential stuffing). Угадывать здесь ничего не приходится, и работает она по простой причине: люди используют одни и те же пароли повторно. Даже надежный пароль здесь не поможет, если он везде один и тот же.
Что помогает: уникальный пароль для каждой учетной записи, чтобы утечка на одном сервисе не давала доступа к другим.
Фишинг
Фишинговая страница — это копия настоящей страницы входа по слегка отличающемуся адресу, на которую ведет ссылка из письма или сообщения, которое требует действовать немедленно: заблокированная учетная запись, посылка, счет. Все, что вы там введете, попадет прямо к злоумышленнику. Длина и случайность пароля ничего не меняют, потому что вы вводите его сами.
Что помогает: открывайте сайты из собственных закладок, а не по ссылкам. Пользуйтесь менеджером паролей: он предлагает подставить пароль только по тому адресу, для которого он сохранен, так что если он не предлагает сохраненный пароль, проверьте адрес, прежде чем вводить его вручную. И включите двухфакторную аутентификацию, с которой одного украденного пароля недостаточно. Правда, одноразовые коды можно выманить фишингом так же, как и пароль. Ключи доступа (passkey) и ключи безопасности FIDO2 — нельзя, потому что они отвечают только настоящему сайту; это различие NIST называет устойчивостью к фишингу.
Вредоносные программы
Программы для кражи данных — стилеры (infostealer) — копируют сохраненные в браузере пароли вместе с сеансовыми файлами cookie и отправляют их за считаные секунды после запуска, а кейлогеры — программы, записывающие нажатия клавиш, — фиксируют все, что вводится с клавиатуры. Украденный сеансовый файл cookie может дать злоумышленнику доступ к учетной записи, в которую уже выполнен вход, — без пароля и без второго фактора. Такие программы обычно попадают на устройство с пиратскими программами, поддельными обновлениями и вложениями в письмах.
Что помогает: устанавливать программы только из официального источника, обновлять систему и браузер и считать неожиданные вложения потенциально опасными — хотя эти меры не гарантируют полной защиты. Если устройство заражено, действуйте с другого, заведомо не зараженного устройства: смените пароли, воспользуйтесь в каждом сервисе функцией выхода из всех сеансов и проверьте, что резервный адрес электронной почты, номер телефона и настройки двухфакторной аутентификации никто не изменил. Очистите зараженное устройство, прежде чем снова входить с него в учетные записи.
Подбор пароля через форму входа
Пробовать пароли прямо на сайте — медленно: хорошо сделанный сервис после нескольких неверных попыток делает паузу, блокирует вход или просит пройти капчу. Перебирать много паролей для одной учетной записи поэтому неэффективно, и распространен противоположный подход: несколько самых популярных паролей — 123456, password, qwerty123 — пробуют на миллионах учетных записей; это называется распылением паролей (password spraying). Целевой подбор работает так же, но с личными сведениями: имена детей и питомцев, дни рождения, любимая команда — все это легко найти в социальных сетях.
Что помогает: любой пароль, который не относится к распространенным и не составлен из фактов о вас, — см. как создать надежный пароль.
Офлайн-подбор паролей по украденным хешам
Правильно построенный сервис не хранит пароли в читаемом виде. Он хранит хеши — результат односторонней функции, по которому пароль нельзя вычислить в обратном направлении. Когда такая база утекает, злоумышленники проверяют возможные пароли: вычисляют их хеши на собственном оборудовании и сравнивают результаты. Никакая форма входа их не замедляет, а скорость зависит от хеш-функции, которую выбрал сервис, и от ее настроек. Для быстрых устаревших функций, таких как MD5, одна современная видеокарта проверяет десятки миллиардов вариантов в секунду. Функции, созданные для хранения паролей, — Argon2id или, в более старых системах, bcrypt — намеренно медленные и снижают эту скорость на много порядков, поэтому действующие рекомендации называют именно их.
Атаки по словарю
Варианты не случайны. Программы для взлома начинают со списков настоящих паролей из прежних утечек и со словарей слов и имен, а затем применяют правила, имитирующие человеческие привычки: заглавная буква в начале, год или восклицательный знак в конце, буква, замененная похожим символом. Пароль вроде Summer2024! выглядит сложным, но его пробуют в числе первых. Соль — уникальное случайное значение, которое добавляют к каждому паролю перед хешированием, — не дает злоумышленникам использовать заранее вычисленные таблицы, известные как радужные, и взламывать все одинаковые пароли разом, но предсказуемый пароль от нее не становится менее предсказуемым.
Полный перебор (brute force)
Когда словари исчерпаны, остается перебирать все комбинации, и для случайно сгенерированного пароля исход решает длина. Для иллюстрации возьмем быстрый хеш и пароль, в котором каждый символ выбран независимо и с равной вероятностью из 94 печатных символов ASCII, не считая пробела. Таких паролей из 8 символов около 6 × 1015; при десяти миллиардах попыток в секунду перебор их всех займет около недели, а в среднем нужный найдется за половину этого времени. Для 12 символов перебор всех вариантов на том же оборудовании занял бы около 1,5 миллиона лет, а для 16 эта величина уже не поддается осмысленному сравнению. В этом и состоит весь довод в пользу длинных случайных паролей: словари против них почти бесполезны, а перебор всех комбинаций при таких допущениях нереалистичен. Наш генератор надежных паролей создает их в вашем браузере и для каждого показывает оценку энтропии в битах.
Что помогает: длинный пароль без предсказуемых шаблонов, то есть на практике — сгенерированный. Вы не можете повлиять на то, как сервис хранит ваш пароль, поэтому исходите из худшего и выбирайте такой, который будет стойким к подбору, даже если его хранят с быстрой хеш-функцией.
Подглядывание и социальная инженерия
Самым старым методам техника не нужна. Пароль подсматривают через плечо, читают со стикера на мониторе или с экрана, показанного во время видеозвонка; либо злоумышленник просто просит его назвать, выдавая себя за сотрудника поддержки или коллегу, — это называют социальной инженерией. Ни один настоящий сервис никогда не попросит ваш пароль по телефону, в письме или в чате.
Что помогает: никогда никому не называть и не отправлять пароль и не держать его там, где его могут увидеть другие.
Что из этого следует
Разным атакам противостоят разные привычки, и основную работу делают три из них: уникальный пароль для каждой учетной записи, сгенерированный, а не придуманный, и двухфакторная аутентификация в дополнение к нему — или ключ доступа вместо пароля, если сервис его предлагает. Они защищают не от всего — например, не от украденного сеанса, — поэтому советы о вредоносных программах выше тоже важны. Другие статьи собраны в материалах о паролях.