Как защитить авторизацию по звонку от подмены номера в 2026 году

Как защитить авторизацию по звонку от подмены номера в 2026 году

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

Как работает авторизация по звонку: три сценария

Сценариев три (Mango Office). В Flash Call пользователь вводит номер, система делает входящий вызов и сразу сбрасывает его — кодом служат последние цифры номера. В Voice Call робот произносит код голосом. В Call Me звонит сам пользователь, а система сверяет номер с тем, который он указал на сайте или в приложении.

Во всех трёх случаях проверяется один сигнал — номер, откуда пришёл вызов. И вот здесь слабое место. Номер в сети связи не равен личности. Его подменяют на уровне Caller ID, поэтому строить защиту только на цифрах в поле «звонящий» нельзя.

Практический вывод простой: код должен быть привязан к живой сессии, а не к номеру самому по себе. Пользователь запросил вход с конкретного браузера или приложения — вот эту сессию и подтверждает звонок. Номер тут вспомогательный признак, а не пропуск.

Почему OTP живёт 1–3 минуты и что это меняет

Одноразовый код действует от 1 до 3 минут (Юнибелл). Ограничение неслучайно: короткое окно оставляет мошеннику мало времени на перехват, перебор и перепродажу кода в чатах. Параллельно антифрод-системы анализируют поведение — сколько раз с номера запросили код, как быстро вводят цифры, меняется ли устройство между попытками (Юнибелл).

Для бизнеса из этого следует одна настройка: не удлиняйте срок жизни кода ради удобства клиента. Каждая лишняя минута — дополнительное окно для атаки. Ставьте окно 1–3 минуты, лимит попыток и внятный текст «код устарел, запросите новый» вместо молчаливой ошибки.

Flash Call, Voice Call, Call Me или SMS: что выбрать

Сценарий Что делает клиент Что проверяет система Где уместно
Flash Call Вводит номер, ждёт звонок, читает последние цифры Номер вызова и совпадение цифр с введёнными Вход в личный кабинет, подтверждение заказа
Voice Call Слушает код в звонке и вводит его Код, который произнёс робот Регистрация, восстановление доступа
Call Me Сам звонит на сервисный номер Номер входящего вызова Подтверждение заявки без ввода цифр
SMS Получает код текстом и вводит его Код из сообщения Когда клиент не ждёт звонка и смотрит в экран

Flash Call выигрывает по скорости: клиенту не нужно ждать сообщение и переключаться между приложениями. Voice Call надёжнее для тех, кто путает последние цифры номера. Call Me удобен, когда человек и так готов позвонить — например, подтверждает заявку на доставку. Все три варианта требуют телефонии с API и интеграции с вашей системой: сайтом, приложением или CRM (Mango Office).

Как снизить риск подмены номера: пять мер

  1. Привязывайте код к сессии. Звонок подтверждает конкретный запрос на вход, а не номер телефона вообще. Сессия живёт минуты, после — новый запрос и новый звонок.
  2. Держите окно 1–3 минуты и лимит попыток. Три-пять вводов на один запрос, дальше блокировка и повторная верификация.
  3. Включите антифрод по поведению. Смотрите на частоту запросов с одного номера, смену устройства между попытками, нетипичную географию.
  4. Логируйте всё, что связано с проверкой. Какой номер звонил, во сколько, сколько было попыток, чем закончилось. Без этих данных вы не поймёте, где именно просела защита. Собрать картину помогают метрики сквозной аналитики.
  5. Для дорогих действий добавляйте второй фактор. Звонок плюс пароль или подтверждение в приложении — там, где цена ошибки выше обычного входа.

Типичные ошибки

  • Считать входящий номер доказательством личности. Номер подменяется, и в логах останется чужой вызов.
  • Ставить срок жизни кода в 10–15 минут «чтобы клиент успел». Это окно для перебора.
  • Не ограничивать число попыток ввода на один запрос.
  • Не логировать вызовы и не связывать их с заявкой из CRM.
  • Писать код в логи или в отчёты поддержки.
  • Подключать сервис без API и тестового доступа, а потом выяснять интеграцию на живых клиентах.

Что проверить в подрядчике до запуска

Смотрите на четыре вещи. Есть ли API и документация. Можно ли протестировать сценарий на своём объёме. Как сервис ведёт себя, когда заявки с сайта попадают под спам-фильтры операторов. И насколько быстро подрядчик отдаёт статистику по вызовам.

Перед полноценным внедрением имеет смысл запустить короткий тест: одна форма, один сценарий, неделя наблюдений. Подробнее о таком подходе — в материале о том, как проверить гипотезу услуги через Flash Call за три дня. За это время вы увидите реальную конверсию, долю неудачных звонков и среднее время до ввода кода.

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

3 шага, которые можно сделать на этой неделе:

  1. Проверьте, привязан ли код у вас к сессии и какой у него срок жизни. Если больше трёх минут — сокращайте.
  2. Включите лимит попыток и базовый антифрод по частоте запросов с одного номера.
  3. Запросите у подрядчиков тестовый доступ на неделю и посчитайте стоимость одной успешной проверки.