Как называется технология автоматического ввода одноразового пароля (OTP) и какой приложение для смартфона?

Существует ли название дополнения OTP, которое позволяет отправлять цифры на сервер с помощью простой кнопки "Подтвердить"? Есть ли открытые клиенты для Android и Mac с открытыми исходниками?
  • 8 декабря 2023 г. 14:58
Ответы на вопрос 3
Технология автоматического ввода одноразового пароля (OTP) называется "OTP-генератором" или "генератором OTP". 

Одно из популярных приложений для смартфонов, которое предоставляет возможность генерировать и использовать OTP, - "Google Authenticator". Оно доступно как для устройств на базе Android, так и для iOS.

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

Что касается открытых клиентов с открытыми исходниками для Android и Mac, то существуют различные проекты с открытым исходным кодом, которые реализуют функции OTP-генераторов. Некоторые из них включают:

1. FreeOTP: Это открытое приложение с открытым исходным кодом для генерации OTP, доступное для Android и iOS.
2. andOTP: Еще одно открытое приложение для генерации OTP на Android с возможностью экспорта и импорта сохраненных данных.
3. OTP Auth: Это открытое приложение для Mac, которое позволяет генерировать и использовать OTP.

Это лишь несколько примеров, и существуют другие проекты с открытыми исходниками для генерации OTP на Android и Mac.
Нужно свою схему выдумывать, но это будет менее секурно, тк нужна связь между вторым фактором (телефоном) и сервером. 
То есть нужно, что бы была просто кнопка "Подтвердить" и эти цифры отправлялись на IP адрес сервера.

Тут будут уже не цифры отправляться, а просто запрос с идентификатором сессии, которую нужно разрешить.

+ Это не стандартизировано и придётся делать своё приложение и свой протокол.

Обычно это выглядит так:
1. На каждую попытку входа создаётся уникальный токен, который выводится на экран компьютера при помощи QR-кода.
2. Пользователь открывает приложение на телефоне, где он уже залогинился (используя другой вариант второго фактора, типа тех же TOTP или sms)
3. В приложении сканирует этот код, приложение получает информацию об этой попытке входа с вашего сервера и демонстрирует пользователю (ip адрес, имя устройство, примерное местоположение).
4. В случае подтверждения пользователем - отправляет запрос на сервер, токен становится "подтверждённым"
5. Сервер отправляет в браузер уведомление о том, что вход разрешён и выдаёт уже рабочий токен. Успех.
(Используется в Steam, Discord, Telegram)

Второй вариант:
1. Пользователь вводит логин + пароль и выбирает в качестве второго фактора - приложение на телефоне, где он уже залогинен.
2. В приложение приходит уведомление о том, что совершена попытка входа, которую нужно подтвердить или отказать. Для дополнительной безопасности также может быть запрошено число, которое отображено на странице входа.
3. При подтверждении - попытка также подтверждается и в браузер отправляется уведомление.
Используется в сервисах MS, Github, Google

Оба варианта не отменяют TOTP, так как требуют как минимум одно уже авторизованное устройство.

но пользователи жалуются, что не удобно вбивать цифры из приложения с телефона.

Пользователи всегда будут жаловаться. Ещё больше они будут жаловаться, если они не смогут залогиниться в ваш сервис, когда у них нет связи на телефоне.
Это дополнение называется Microsoft Autenticator и почти именно так и работает. К сожалению - это способ только для самого Microsoft.
Похожие вопросы