Что такое двухфакторная аутентификация (2FA)

Константин Докучаев
Константин Докучаев
Что такое двухфакторная аутентификация (2FA)

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

Как самый простой пример, можно назвать авторизацию на сайте с помощью логина и пароля, а затем ввода пароля из текстового сообщения. Имя пользователя/пароль — это первый фактор. А текстовое сообщение с кодом — второй.

basic-example-2fa

Среди других терминов можно услышать — мультифакторная аутентификация и двухшаговая верификация.

Как это работает

2FA можно настроить при регистрации аккаунта или уже после прохождения регистрации. Обычно сюда входит добавление второго слоя авторизации в дополнение к имени пользователя и паролю.

Вот как этот процесс объясняется на сайте Amazon. Они используют термин «двухшаговая верификация» (two-step verification).

amazon-2fa

В общем смысле подразумевается, что если кто-то получит данные для авторизации, он не сможет ввести код из сообщения. Ведь у него нет доступа к вашему смартфону. Следовательно, зайти в учётную запись не получится.

Коды восстановления

Большинство сайтов при активации двухфакторки дают коды восстановления, которые нужно сохранить «в животике». Ведь без них вы не сможете восстановить доступ при потере устройства. Я обычно для таких кодов использую менеджеры паролей.

Часто используемые механизмы двухфакторной аутентификации

Поскольку 2FA значительно повышает безопасность аккаунта, разработчики часто предлагают несколько способов её реализации. Чтобы пользователь смог выбрать наиболее удобный для себя. Чаще всего встречаются следующие виды:

  • Email с временным кодом доступа;
  • Текстовое сообщение с кодом на номер телефона;
  • Код, основанный на времени, в приложении для аутентификации;
  • Физическое устройство (YubiKey или SoloKey);
  • Отпечаток пальца, скан лица или другая биометрия.

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

Почта

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

Текстовое сообщение

Часто этот способ используют как дополнение к получению кода по почте. Как и в предыдущем случае, подразумевается, что у вора есть знание кода и пароля, но нет доступа к мобильному телефону. Согласитесь, такой вариант более реален. С другой стороны, хакеры умеют подменять номер телефона, а значит, они могут перехватить текстовое сообщение.

Приложения для аутентификации

Такие приложения генерируют коды, основанные на времени, Time-based One Time Password (или TOTP). Обычно такие приложения бесплатны и устанавливаются на смартфон. Логика здесь такая: при авторизации от пользователя требуется ввести код из такого приложения. Сам код при этом меняется каждые 30 секунд и, как правило, состоит из шести цифр. Перехватить такой код нельзя без доступа к устройству, а сгенерировать или угадать — почти невозможно.

Физические (железные) ключи

Это физическое устройство, которое используется при двухфакторной аутентификации. Получить доступ к аккаунту не получится без физического подключения такого устройства к компьютеру. Сделать копию такого устройства сложно, что делает такой метод наиболее безопасным. Но не очень удобным.



Great! Next, complete checkout for full access to All-In-One Person
Welcome back! You've successfully signed in
You've successfully subscribed to All-In-One Person
Success! Your account is fully activated, you now have access to all content
Success! Your billing info has been updated
Your billing was not updated