Конец эпохи паролей: что придет на смену?
В прошлом посте разобрали, как хранятся пароли. Хеши, соль, перчик, bcrypt – всё красиво. Но есть проблема.
Пароль можно украсть. Фишинг, кейлоггер, утечка с другого сервиса, где ты использовал тот же пароль. И всё – злоумышленник заходит как ты.
Причём существуют целые базы утечек – миллиарды паролей, собранных из взломов разных сервисов. При брутфорсе они перебираются первыми. Если твой пароль когда-то утёк хоть откуда-то – его подберут не за годы, а за секунды.
Мне как-то пришло сообщение в телеге – мол, проголосуйте за девочку. От человека, с которым давно не общался. И так живенько написано. А там вход через телегу, бац-бац – и у тебя нет аккаунта. Ну, у меня стоит облачный пароль, поэтому угнать мой аккаунт не вышло. Но сама схема рабочая – без второго фактора люди теряют аккаунты за секунды.
Поэтому одного пароля уже давно недостаточно.
Что такое 2FA
Двухфакторная аутентификация – два разных доказательства для входа:
🔸 Что-то, что ты знаешь – пароль
🔸 Что-то, что ты имеешь – телефон, ключ, приложение
Даже если пароль утёк, без второго фактора войти не получится.
Варианты второго фактора
SMS-код – самый знакомый. Сервер генерирует код, шлёт через SMS-шлюз, ты вводишь. Просто, но ненадёжно: SIM можно перевыпустить (SIM-свопинг), SMS – перехватить через уязвимость SS7, а код – выманить фишингом в реальном времени. Лучше, чем ничего, но самый слабый вариант. А еще SMS-ки стоят денюжек. Коды на почты, в ТГ аккаунты и другие сервисы – в той же категории.
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
Post #590
402
- 🔥 11