Пароль можно украсть. Фишинг, кейлоггер, утечка с другого сервиса где ты использовал тот же пароль. И всё — злоумышленник заходит как ты.
Причём существуют целые базы утечек — миллиарды паролей, собранных из взломов разных сервисов. При брутфорсе они перебираются первыми. Если твой пароль когда-то утёк хоть откуда-то — его подберут не за годы, а за секунды.
Мне как-то пришло сообщение в телеге — мол, проголосуйте за девочку. От человека, с которым давно не общался. И так живенько написано. А там вход через телегу, бац-бац — и у тебя нет аккаунта. Ну, у меня стоит облачный пароль, поэтому угнать мой аккаунт не вышло. Но сама схема рабочая — без второго фактора люди теряют аккаунты за секунды.
Поэтому одного пароля уже давно недостаточно.
Что такое 2FA
Двухфакторная аутентификация — два разных доказательства для входа:
- Что-то, что ты знаешь — пароль
- Что-то, что ты имеешь — телефон, ключ, приложение
Даже если пароль утёк, без второго фактора войти не получится.
Варианты второго фактора
SMS-код — самый знакомый. Сервер генерирует код, шлёт через SMS-шлюз, ты вводишь. Просто, но ненадёжно: SIM можно перевыпустить (SIM-свопинг), SMS — перехватить через уязвимость SS7, а код — выманить фишингом в реальном времени. Лучше, чем ничего, но самый слабый вариант.
TOTP — одноразовые коды из приложения (Google Authenticator, Authy, Яндекс.Ключ). При настройке сканируешь QR-код — секретный ключ сохраняется на устройстве. Каждые 30 секунд приложение генерирует новый код из этого ключа и текущего времени. Сервер делает то же самое и сравнивает. Секрет не передаётся по сети после настройки — перехватить нечего.
Push-уведомления — то, что делают банки и Яндекс. Вместо кода получаешь push: "Вы входите с устройства X?" → нажимаешь "Да". Под капотом — асимметричная криптография: устройство подписывает ответ приватным ключом, который никогда не покидает телефон.
Физические ключи и токены — YubiKey, смарт-карты, корпоративные ID-карты. Тот же принцип: приватный ключ зашит в устройство, вытащить его нельзя. Воткнул ключ в USB или приложил карту — подтвердил личность. В корпоративной среде это стандарт уже давно.
Фактор владения побеждает
А теперь интересное. Некоторые сервисы вообще выкинули пароли:
- Telegram — нет пароля по умолчанию. Вход только через код на устройство. Облачный пароль — это опциональный второй фактор. Всё наоборот: владение телефоном — первый фактор, пароль — дополнительная защита
- Microsoft — разрешает удалить пароль из аккаунта целиком, вход через Authenticator или Passkey
- WhatsApp, Signal — только номер + устройство
- Passkeys (Apple, Google, Microsoft) — стандарт FIDO2/WebAuthn. Приватный ключ на устройстве + биометрия. Пароля нет вообще. Фишинг невозможен — ключ привязан к домену
Тренд понятен: фактор владения (телефон, ключ, токен) оказался надёжнее фактора знания (пароль). Пароль можно подобрать, перехватить, выманить. Физическое устройство — нет.
Так что когда видишь в требованиях "поддержка 2FA" — это не одна строчка. Это выбор: какой фактор, какая интеграция, какие риски. И может, стоит вообще спросить: а нужен ли тут пароль?
Диаграммы процесса TOTP приложу в комментах.
А вы какой второй фактор используете? И есть ли сервисы, где вы уже забыли, что такое пароль?
@analyst_exe