BroadNet
Верификация Средний

OTP и верификация номера

Как работают одноразовые пароли и верификация номера — TOTP/HOTP, каналы доставки и переключение между ними, конвенции автозаполнения и защита от AIT.

5 уроки4 мин чтенияОбучение на основе стандартов · в удобном для вас темпе
СхемаПуть OTP с резервным каналом (fallback)
  1. Пользователь запрашивает кодВход, оплата или регистрация
  2. Ваше приложение вызывает API верификацииОдин запрос на один код
  3. BroadNet доставляет кодПо лучшему доступному каналуРезервный канал в случае недоставкиSMSWhatsAppГолос
  4. Пользователь вводит кодПроверка на соответствие выданному коду
  5. ПодтвержденоДоступ разрешен
Урок 01

Что такое OTP

Одноразовый пароль (OTP) — это код, действительный для одного входа в систему или одной транзакции. Это второй фактор в двухфакторной аутентификации: нечто, что пользователь получает, доказывая владение номером телефона или аутентификатором, в дополнение к паролю, который он знает.

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

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

Урок 02

Как генерируются коды: HOTP и TOTP

HOTP (RFC 4226) генерирует код из общего секрета и счётчика с помощью HMAC. Каждое использование увеличивает счётчик, поэтому коды не повторяются. На нём строятся токены на основе событий.

TOTP (RFC 6238) заменяет счётчик текущим временем, разделённым на фиксированные интервалы (обычно 30 секунд), так что обе стороны получают один и тот же код из одного и того же секрета и часов. Именно это используют приложения-аутентификаторы, и это работает офлайн, поскольку доставлять сообщение не требуется.

Для OTP, доставляемых по SMS, код обычно представляет собой короткое случайное числовое значение, сгенерированное на стороне сервера, привязанное к сессии или устройству и истекающее после первого использования или по тайм-ауту. Шесть цифр — распространённое значение по умолчанию, уравновешивающее удобство использования и устойчивость к подбору.

Урок 03

Каналы доставки и переключение (fallback)

SMS — канал OTP по умолчанию благодаря своему универсальному охвату, но не единственный. Голосовой OTP зачитывает код вслух и помогает на рынках с плохой доставляемостью SMS или для обеспечения доступности. WhatsApp и RCS могут доставлять коды в богатом формате там, где пользователь доступен в этих каналах.

Верификация через flash call — экономически эффективная альтернатива: платформа совершает звонок, который приложение обнаруживает и автоматически сбрасывает, верифицируя номер по последним цифрам номера звонящего, без ответа пользователя. Это полностью убирает стоимость SMS и ручной ввод кода.

Каскад каналов (waterfall) объединяет их: попробуйте канал первый, и если доставка не подтверждена в течение нескольких секунд, переходите к следующему. Каскад должен быть ограничен по времени и не должен отправлять один и тот же код по двум каналам одновременно, что удваивает стоимость и риск мошенничества.

Урок 04

Автозаполнение, дизайн сообщения и задержка

Хорошо продуманные сообщения с OTP конвертируют лучше. Делайте текст минимальным, брендированным и последовательным, чтобы он проходил фильтры контента, и поддерживайте конвенции автозаполнения платформы — например, формат одноразового кода, привязанного к источнику (origin-bound), на последней строке, — чтобы код вводился автоматически.

Никогда не размещайте код внутри кликабельной ссылки, которую можно фишить; оставляйте его только для копирования или ввода вручную. Локализуйте окружающий текст, сохраняя код и токен бренда неизменными, чтобы автозаполнение и узнавание пользователем продолжали работать.

Измеряйте сквозную задержку до телефона (от отправки до DLR), а не только время подтверждения отправки, и устанавливайте короткий период действия, чтобы задержанный код истекал, а не приходил устаревшим. Запускайте fallback при отсутствии DLR в рамках вашего бюджета задержки, а не только при явном сбое.

Урок 05

Защита от AIT / накрутки SMS-трафика

Искусственно завышенный трафик (AIT), также называемый накруткой SMS-трафика (SMS pumping), — это мошенничество, при котором злоумышленники инициируют выглядящие настоящими отправки OTP на контролируемые ими номера, раздувая ваш счёт без реального пользователя за этим. Это область с самой высокой отдачей от защиты для большинства отправителей.

Основные меры контроля — это ограничения по скорости (rate limits) на номер телефона, IP-адрес, отпечаток устройства и учётную запись, а также ограничение числа повторных отправок за сессию и дополнительное трение (проверка или CAPTCHA) при всплеске интенсивности из одного источника.

Следите за конверсией по направлениям: накрученный трафик показывает поток запросов при почти нулевом вводе кода, а внезапный всплеск в необычный диапазон стран — классический признак. Проверка номеров через HLR / сервис аналитики номеров перед отправкой отклоняет недействительные и высокорисковые номера заранее.

Основные выводы
  • OTP — отдельный, чувствительный к задержке класс трафика; HOTP основан на счётчике, а TOTP (RFC 6238) — на времени.
  • Каналы включают SMS, голос, WhatsApp/RCS и flash call; объединяйте их в ограниченный по времени каскад fallback.
  • Поддерживайте автозаполнение, не помещайте коды в ссылки, используйте короткий срок действия и измеряйте сквозную задержку доставки.
  • AIT / накрутка SMS-трафика отражается ограничениями скорости, лимитами повторных отправок, мониторингом конверсии и проверкой номеров перед отправкой.
Примените это на практике.

Используйте полученные знания для построения проектов.

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

Почему стоит учиться у BroadNet
  • С2003
  • Страны200+
  • Ссылки оператора1,000+