Содержание

Двухфакторная аутентификация (2FA) требует при входе не только пароль, но и подтверждение вторым способом — кодом из приложения, ключом безопасности или биометрией на устройстве. Она защищает аккаунт, даже если пароль утёк. Ещё надёжнее и удобнее passkeys: вход без пароля по ключу, который хранится на устройстве пользователя и не может быть украден фишинговым сайтом.

Разберём, какие бывают вторые факторы, как работают passkeys, как организовать восстановление доступа и как внедрить защиту, не усложнив вход.

Почему одного пароля недостаточно?

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

Основные угрозы:

  • повторное использование паролей — утечка с одного сайта открывает аккаунты на других;
  • фишинг — пользователь сам вводит пароль на поддельной странице;
  • перебор — простые пароли подбираются автоматически, подробнее в статье rate limiting;
  • вредоносные программы — перехват паролей на заражённом устройстве.

Какие бывают вторые факторы?

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

Способ Надёжность Удобство Защита от фишинга
SMS-код Низкая Высокое Нет
Код на почту Низкая Среднее Нет
Приложение-аутентификатор (TOTP) Средняя Среднее Нет
Push-подтверждение в приложении Средняя Высокое Частично
Аппаратный ключ безопасности Высокая Среднее Да
Passkey Высокая Высокое Да

Человек держит смартфон с экраном блокировки Фото: Unsplash

Как работают passkeys?

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

Почему это надёжнее:

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

Технически passkeys работают на стандарте WebAuthn, который поддерживают все современные браузеры и операционные системы. Про другие способы аутентификации — статья сессии, JWT и OAuth.

Как организовать восстановление доступа?

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

  1. Резервные коды. При включении 2FA пользователь получает одноразовые коды и сохраняет их.
  2. Несколько факторов. Можно добавить второй ключ или устройство.
  3. Проверка при сбросе. Сброс через поддержку — с подтверждением личности и задержкой, о которой уведомляют по всем каналам.
  4. Уведомления. О каждом изменении способов входа пользователь получает письмо.

Как внедрить защиту, не испортив вход?

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

  • предлагайте passkey сразу после успешного входа по паролю;
  • запрашивайте второй фактор при входе с нового устройства или из необычного места;
  • требуйте повторного подтверждения перед критичными действиями: сменой почты, выводом денег;
  • обязательная 2FA для админки и сотрудников — без исключений;
  • запоминайте доверенные устройства, чтобы не спрашивать код каждый раз.

О защите данных в целом — статьи OWASP Top 10 простыми словами и шифрование данных.

Коротко

  • Пароли утекают, поэтому нужен второй фактор.
  • SMS — самый слабый вариант, приложения надёжнее, passkeys и аппаратные ключи защищают от фишинга.
  • Passkeys работают на WebAuthn: ключ не покидает устройство и привязан к домену.
  • Продумайте восстановление доступа: резервные коды, несколько факторов, уведомления.
  • Обязательная 2FA — для сотрудников, для клиентов — мягкое внедрение и проверка при риске.

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

  • Нужно ли делать двухфакторную аутентификацию обязательной?

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

  • Что будет, если пользователь потеряет телефон с passkey?

    Обычно passkeys синхронизируются через облако аккаунта Apple, Google или менеджера паролей и восстанавливаются на новом устройстве. Дополнительно стоит разрешать несколько ключей и иметь резервный способ входа.

  • Сложно ли добавить passkeys в существующий сайт?

    Для популярных фреймворков есть готовые библиотеки WebAuthn, а поддержка есть во всех современных браузерах. Обычно это несколько дней работы плюс продумывание сценариев восстановления.