В моей стране у нас есть служба MFA, которая, например, может взять ваш номер мобильного телефона, а затем пропинговать ваш телефон, ввести пин-код и вы аутентифицируетесь.Приложение, которое вызывает эту услугу, возвращает ваш эквивалент «номера социального страхования».
В приложениях это можно использовать следующим образом:
- Вы открываете приложение в первый раз.Введите свой номер телефона и выполните аутентификацию.
- Приложение может также позволить вам выбрать пин-код, но после первого входа в систему оно не предложит вам снова использовать этот MFA, оно будет использовать ваш идентификатор лица или вашtouchId
Как это работает?
Вот одно предположение:
- Во время регистрации вызывается служба MFA, она получает ваш "номер социального страхования"."и использует это как ваше имя пользователя
- Введенный вами пин-код (возможно, всего 4 буквы - очень короткий, так что это заставляет меня сомневаться в этой теории) затем используется в качестве вашего пароля
- Имя пользователя и пароль(пин-код) затем сохраняются в вашей ключевой цепочке / основном хранилище, и приложение запрашивает у вас faceId / touchId, но затем отправляет вашего пользователя / пин-код для аутентификации вас с помощью API
. Вот как это работает?И если это так, не слишком ли небезопасен 4-значный пин-код?Я предполагаю, что если вы можете использовать это для аутентификации, то любой, кто может получить доступ к вашему API, может попытаться его перебором.А поскольку приложение используется API, это означает, что оно открыто для всех.
Исправьте меня, если я ошибаюсь.
Редактировать: я думаю, секрет может быть сгенерирован для каждого пользователяи пин-код может быть зашифрован с использованием этого секрета, делая его длиннее.