Как устроена работа временных номеров: подробный технический гайд

За простым интерфейсом «получить номер и принять SMS» скрывается сложная телекоммуникационная инфраструктура. Понимание того, как устроена работа временных виртуальных номеров, помогает лучше оценивать ограничения, правильно выбирать провайдера и грамотно интегрировать их в технические решения.

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

Базовые понятия: что такое виртуальный номер с технической точки зрения

Виртуальный номер — это телефонный идентификатор в формате E.164, не привязанный к физической SIM-карте или телефонной линии. Он существует как запись в базе данных оператора связи или VoIP-провайдера.

Стандарт E.164 определяет формат номера: знак +, код страны от одной до трёх цифр, код зоны или оператора, абонентский номер. Общая длина — не более 15 цифр. Например: +7 для России и Казахстана, +1 для США и Канады, +44 для Великобритании.

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

Из чего состоит инфраструктура провайдера

Нумерационный пул

Провайдер виртуальных номеров получает блоки телефонных номеров двумя путями: напрямую от национального регулятора (в России — через Роскомнадзор и ГРЧЦ) или как субарендатор у лицензированного оператора. Каждый номер в пуле — это зарезервированный идентификатор, закреплённый за провайдером в центральной базе данных нумерации.

SIP-сервер

SIP — Session Initiation Protocol — основной протокол VoIP-телефонии. SIP-сервер провайдера обрабатывает установление, управление и завершение голосовых сессий. Когда кто-то звонит на виртуальный номер, звонок поступает на SIP-сервер провайдера, который маршрутизирует его согласно настроенным правилам: переадресует на другой номер, направляет в SIP-клиент пользователя или запускает автоответчик.

SMS-шлюз (SMSC)

SMS-шлюз — компонент, отвечающий за приём и отправку коротких сообщений. Он взаимодействует с операторами мобильной связи через протокол SMPP (Short Message Peer-to-Peer). Входящее SMS от оператора поступает на шлюз, который маршрутизирует его в нужный аккаунт на платформе провайдера.

База данных и оркестрационный слой

Хранит состояние каждого номера: кому выдан, до какого момента активен, история входящих сообщений. Оркестрационный слой управляет жизненным циклом номеров: выдача, продление, деактивация, возврат в пул.

Путь SMS от отправителя до получателя

Проследим полную цепочку — например, когда Google отправляет код верификации на виртуальный номер.

  1. Отправитель формирует SMS и передаёт его своему SMS-шлюзу или агрегатору — например, Twilio, Sinch или MessageBird.

  2. Агрегатор определяет оператора, обслуживающего номер-получатель, через базу данных HLR (Home Location Register) или таблицу маршрутизации.

  3. Запрос направляется оператору или провайдеру, за которым закреплён виртуальный номер.

  4. SMS поступает на SMSC провайдера виртуальных номеров.

  5. SMSC проверяет, кому в данный момент выдан номер-получатель.

  6. Если номер активен и закреплён за аккаунтом — SMS маршрутизируется на этот аккаунт: появляется в веб-интерфейсе, отправляется через вебхук или возвращается через polling API.

  7. Если номер истёк или не закреплён — SMS либо отклоняется, либо уходит в никуда.

SS7: протокол, обеспечивающий глобальную доставку

SS7 (Signaling System No. 7) — набор протоколов сигнализации, разработанных в 1975 году и до сих пор составляющих основу глобальной телефонной сети. SS7 обеспечивает установление соединений, роуминг и обмен SMS между операторами разных стран.

Виртуальный номер интегрируется в систему SS7 через оператора-хоста. Когда на виртуальный номер приходит звонок или SMS из обычной телефонной сети, он проходит через SS7-инфраструктуру точно так же, как любой другой звонок.

Известные уязвимости SS7 — перехват SMS, определение местоположения абонента — актуальны и для виртуальных номеров в той же мере, что и для обычных. Это один из аргументов в пользу использования приложений-аутентификаторов вместо SMS для двухфакторной аутентификации критически важных аккаунтов.

Типы виртуальных номеров: техническая классификация

DID-номера (Direct Inward Dial) строятся на технологии PSTN/VoIP, принимают SMS через шлюз и обеспечивают прямое подключение к публичной телефонной сети.

SIP-номера работают на основе SIP/VoIP-протокола. Приём SMS зависит от конфигурации. Их главное преимущество — гибкая маршрутизация: звонок можно направить куда угодно в рамках настроек.

SMS-only номера работают только через SMS-шлюз, не поддерживают голосовые звонки и стоят дешевле остальных типов.

Мобильные виртуальные номера используют технологию MVNO (Mobile Virtual Network Operator) или SIM-эмуляцию. Принимают SMS и выглядят при проверке как настоящие мобильные номера оператора — это их ключевое преимущество для верификации в требовательных сервисах.

Toll-free номера — это бесплатные линии формата +1-800, +1-888 и подобные. Используются исключительно для входящих звонков в бизнес-линиях и не подходят для верификации.

Как платформы определяют, что номер виртуальный

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

HLR lookup — это запрос в Home Location Register оператора, который возвращает тип номера: мобильный или VoIP. Мобильные и VoIP-номера дают разные ответы, и антифрод-системы используют это для фильтрации.

Таблицы нумерации: в каждой стране диапазоны номеров распределены между операторами. Мобильные операторы имеют конкретные диапазоны, VoIP-провайдеры — другие. Эти таблицы публично доступны и регулярно обновляются.

Базы данных репутации: компании вроде Neustar и GSMA ведут базы типов номеров и их репутации. Платформы подписываются на эти базы для проверки входящих номеров в реальном времени.

История номера: если номер использовался для регистрации сотнями пользователей ранее, он попадает в стоп-лист независимо от своего технического типа.

Провайдеры мобильных виртуальных номеров решают проблему блокировки, работая через лицензированных MVNO: номер формально закреплён за мобильным оператором, HLR-запрос возвращает тип mobile.

Жизненный цикл временного номера

Процесс начинается с запроса: пользователь или API-клиент запрашивает номер с параметрами — страна, тип, поддерживаемый сервис. Оркестрационная система выбирает свободный номер из пула и присваивает ему статус reserved, фиксируя время истечения.

В период активной аренды все входящие SMS и звонки маршрутизируются исключительно на аккаунт арендатора. Другим пользователям номер недоступен. Входящие SMS поступают на SMSC, оттуда — в аккаунт через API или вебхук.

По достижении времени истечения статус меняется на expired, маршрутизация прекращается. Далее система очищает историю сообщений согласно политике хранения и возвращает номер в пул со статусом available для выдачи следующему пользователю.

API: как разработчик взаимодействует с системой

REST API провайдера — это HTTP-интерфейс к оркестрационной системе. Набор стандартных операций включает следующие:

  • GET /numbers/available — список свободных номеров с фильтрацией по стране, типу и поддерживаемому сервису.

  • POST /numbers/rent — зарезервировать номер, установить TTL (время жизни аренды).

  • POST /numbers/release — досрочно освободить номер и остановить тарификацию.

  • GET /sms/inbox — polling входящих SMS для конкретного номера.

  • POST /webhooks/configure — настроить URL для push-уведомлений о входящих SMS.

  • GET /numbers/status — текущий статус номера и время истечения аренды.

Доставка SMS через вебхук работает следующим образом: при получении входящего SMS SMSC формирует HTTP POST-запрос на зарегистрированный URL клиента. Тело запроса содержит номер, отправителя, текст сообщения и временную метку. Клиент должен ответить HTTP 200 в течение нескольких секунд — иначе провайдер попытается повторить доставку согласно своей retry-логике.

Безопасность: технические уязвимости временных номеров

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

SS7-атаки теоретически возможны: перехват SMS на уровне сигнальной сети требует серьёзных ресурсов и характерен для целевых атак, но остаётся реальным вектором.

Провайдер как точка доверия: провайдер видит все входящие SMS в открытом виде. При компрометации инфраструктуры провайдера коды верификации могут быть перехвачены.

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

Заключение

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

Ключевые технические выводы: тип номера — мобильный или VoIP — критичен для прохождения верификации на крупных платформах. Вебхук надёжнее polling для получения SMS. Провайдер является точкой доверия и имеет доступ к содержимому SMS. Временный номер не обеспечивает юридической анонимности.

Часто задаваемые вопросы

Почему одни временные номера принимаются в Facebook, а другие нет?

Это зависит от типа номера и его истории. Facebook выполняет HLR-запросы для определения типа номера и сравнивает диапазон с базой известных VoIP-провайдеров. Мобильные номера через MVNO проходят успешнее, чем стандартные VoIP-номера.

Что происходит с SMS, отправленными на номер после истечения аренды?

Зависит от политики провайдера. Чаще всего SMS либо отклоняется на уровне SMSC, либо попадает к новому арендатору номера. Гарантий доставки после истечения нет.

Почему доставка SMS иногда занимает несколько минут?

Задержки возникают на нескольких уровнях: загруженность SMSC отправителя, задержки при маршрутизации между операторами через SS7, очередь на SMS-шлюзе провайдера. В редких случаях задержку вызывает антифрод отправителя, дополнительно проверяющий номер перед отправкой.

Оставить комментарий