Определение
Двухфакторная аутентификация (2FA) требует два разных подтверждения для входа или одобрения действия. Обычно это что-то, что вы знаете (пароль), и что-то, что у вас есть (телефон, на который приходит одноразовый код, приложение-аутентификатор или ключ безопасности).
Есть три типа факторов: знание (пароль, PIN-код), владение (телефон, аппаратный ключ, приложение) и свойство пользователя (отпечаток пальца, лицо). Две проверки одного типа, например пароль и контрольный вопрос, не являются настоящей 2FA. Многофакторная аутентификация (MFA) — это общий термин для двух и более факторов.
OTP-коды в сообщениях — самый распространённый фактор владения, потому что не требуют установки приложения. Но они слабее, чем методы на основе приложений или устойчивые к фишингу. Существуют подмена SIM-карты (SIM-swap), фишинговые страницы, которые передают коды в реальном времени, и перехват сообщений. Стандарт NIST SP 800-63B относит OTP, отправленные по телефонной сети общего пользования (SMS или голосовой вызов), к «ограниченным» (restricted) аутентификаторам и просит проверяющие стороны учитывать такие сигналы, как смена SIM-карты или перенос номера, прежде чем их использовать.
Для потребительских сервисов в странах Персидского залива (GCC) и регионе MENA OTP по SMS и в WhatsApp остаются практичным вариантом по умолчанию для регистрации, входа и подтверждения платежей. Банки и платёжные провайдеры часто применяют более строгие правила, установленные их центральным банком или регулятором. Для действий с высоким риском предложите более надёжный вариант (приложение-аутентификатор или passkey).
Советы по дизайну: отправляйте второй фактор только после ввода верного пароля, привязывайте коды к одной сессии и одному действию и объясняйте в сообщении, для чего нужен код («для подтверждения перевода на 500 AED»).
