Двухфакторная аутентификация (2FA), при которой используются 2 различных типа аутентификационных данных, существенно повышает безопасность сайтов, мобильных приложений и информационных систем. Первый тип в большинстве случаев — связка логин + пароль. В качестве второго типа аутентификационных данных могут использоваться:
Последний вариант становится все более популярным.
Авторизация с помощью биометрических данных сложна в реализации и обходится недешево. Далеко не для всех ее использование будет экономически оправданным. SMS дешевле, но есть вопросы к безопасности (возможен перехват сообщений троянами, есть проблемы с уязвимостями в протоколе SS7, используемом для передачи СМС-сообщений). Обратный звонок проще в реализации и обходится дешевле других вариантов.Давайте рассмотрим, как это реализуетсяна сайте или в приложении.
Чтобы реализовать 2FA с использованием связки логин + пароль и обратного звонка, нужно подключиться к сервису, оказывающему такую услугу. Пример — Voicepassword.
Клиент сервиса получает ID и secret key. Далее на сайте или в приложении необходимо разместить форму, в которой запросивший авторизацию будет вводить свой номер, и организовать его отправку (вместе с ID и ключом) в API сервиса. Обмен данными осуществляется в JSON-формате. Сервис после получения запроса перезванивает на указанный номер. Пользователю для завершения прохождения 2FA нужно ввести в форму последние 4-5 цифр номера, с которого ему позвонят.
Такой вариант двухфакторной аутентификации можно реализовать на любом сайте или в приложении (складском, бухгалтерском, CRM и так далее). Причем в мобильных приложениях этот процесс можно автоматизировать за счет «подхвата» номера и автоматической подстановки нужных цифр в форму для авторизации.
К безопасности такого способа вопросов не возникает. Ведь коды доступа каждый раз новые, они нигде не хранятся, а формируются в момент звонка (номер каждый раз разный, выбирается рандомно).
В общем, это перспективная технология. К тому же и реализовать ее относительно просто. Стоит присмотреться.