Пароль можно украсть. Фишинг, кейлоггер, утечка с другого сервиса где ты использовал тот же пароль. И всё — злоумышленник заходит как ты.

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

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

Поэтому одного пароля уже давно недостаточно.

Что такое 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