Подмена номера ломает авторизацию там, где вы доверяете одному входящему звонку. Защита держится на трёх опорах: короткий срок жизни 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–3 минуты и лимит попыток. Три-пять вводов на один запрос, дальше блокировка и повторная верификация.
- Включите антифрод по поведению. Смотрите на частоту запросов с одного номера, смену устройства между попытками, нетипичную географию.
- Логируйте всё, что связано с проверкой. Какой номер звонил, во сколько, сколько было попыток, чем закончилось. Без этих данных вы не поймёте, где именно просела защита. Собрать картину помогают метрики сквозной аналитики.
- Для дорогих действий добавляйте второй фактор. Звонок плюс пароль или подтверждение в приложении — там, где цена ошибки выше обычного входа.
Типичные ошибки
- Считать входящий номер доказательством личности. Номер подменяется, и в логах останется чужой вызов.
- Ставить срок жизни кода в 10–15 минут «чтобы клиент успел». Это окно для перебора.
- Не ограничивать число попыток ввода на один запрос.
- Не логировать вызовы и не связывать их с заявкой из CRM.
- Писать код в логи или в отчёты поддержки.
- Подключать сервис без API и тестового доступа, а потом выяснять интеграцию на живых клиентах.
Что проверить в подрядчике до запуска
Смотрите на четыре вещи. Есть ли API и документация. Можно ли протестировать сценарий на своём объёме. Как сервис ведёт себя, когда заявки с сайта попадают под спам-фильтры операторов. И насколько быстро подрядчик отдаёт статистику по вызовам.
Перед полноценным внедрением имеет смысл запустить короткий тест: одна форма, один сценарий, неделя наблюдений. Подробнее о таком подходе — в материале о том, как проверить гипотезу услуги через Flash Call за три дня. За это время вы увидите реальную конверсию, долю неудачных звонков и среднее время до ввода кода.
Цены на авторизацию по звонку зависят от тарифов операторов и объёма вызовов, поэтому фиксированной цифры для всех не существует. Запрашивайте расчёт под своё количество проверок в месяц и сравнивайте не прайс, а стоимость одной успешной авторизации.
3 шага, которые можно сделать на этой неделе:
- Проверьте, привязан ли код у вас к сессии и какой у него срок жизни. Если больше трёх минут — сокращайте.
- Включите лимит попыток и базовый антифрод по частоте запросов с одного номера.
- Запросите у подрядчиков тестовый доступ на неделю и посчитайте стоимость одной успешной проверки.


