← Blog
Guide · 10 мин чтения · Updated апрель 2026

Как работает SMS-верификация — техническое объяснение

Как работает SMS-верификация — техническое объяснение

Шаг 1: Генерация OTP

Когда платформа требует подтверждения вашего номера телефона, она генерирует одноразовый пароль (OTP). Вот что происходит на стороне сервера:

  1. Пользователь отправляет номер телефона — Серверная часть платформы получает номер и проверяет его формат (код страны, количество цифр, допустимый префикс).
  2. Генерируется OTP — Создается криптографически случайный код, обычно из 4-6 цифр. Большинство реализаций используют HMAC-SHA1 или HMAC-SHA256 с временным или счетчиковым начальным значением (стандарты TOTP/HOTP из RFC 6238/RFC 4226).
  3. OTP сохраняется — Код сохраняется на стороне сервера с меткой истечения срока действия (обычно 60-300 секунд) и связан с номером телефона.
  4. Применяется ограничение скорости — Платформа проверяет, сколько OTP было запрошено для этого номера за последнее время. Большинство сервисов разрешают 3-5 попыток на номер в час.
  5. Вызывается SMS API — Платформа отправляет запрос своему SMS-провайдеру с номером телефона и текстом сообщения.

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

Шаг 2: Экосистема A2P SMS

A2P означает Application-to-Person (приложение для человека) — сообщения, отправляемые из программного приложения на телефон человека. Это отличается от P2P (Person-to-Person, человек-человек) обмена сообщениями. Экосистема A2P имеет свою собственную инфраструктуру:

SMS-агрегаторы

Большинство платформ не отправляют SMS напрямую через операторов. Вместо этого они используют SMS-агрегаторы — компании, которые поддерживают связи с сотнями операторов по всему миру. Крупные агрегаторы включают:

Когда Instagram отправляет вам OTP, сообщение, вероятно, проходит через Twilio или аналогичный агрегатор, прежде чем достигнет вашего оператора. Агрегатор отвечает за маршрутизацию, переговоры с операторами и подтверждение доставки.

SMS-маршрутизация

Агрегатор определяет оптимальный маршрут для доставки SMS. Для номера в США это может означать:

  1. Вызов API платформы → Агрегатор (например, Twilio)
  2. Агрегатор → Шлюз оператора (например, AT&T, T-Mobile)
  3. Шлюз оператора → SMSC (Short Message Service Center)
  4. SMSC → MSC (Mobile Switching Center)
  5. MSC → Базовая станция → Телефон пользователя

Международные сообщения добавляют сложности. OTP из платформы, базирующейся в США, для индийского номера может пройти через 2-3 промежуточных оператора, прежде чем достигнет получателя. Каждый этап добавляет задержку и небольшую вероятность сбоя.

Хотите увидеть это в действии?

Попробуйте VerifySMS бесплатно →

Получите виртуальные номера и принимайте OTP в реальном времени

Шаг 3: SS7 и уровень сигнализации

SS7 (Signaling System No. 7) — это набор протоколов, который управляет взаимодействием телефонных сетей. Разработанный в 1970-х годах, он до сих пор является основой глобальной телефонии. При отправке SMS SS7 отвечает за:

Проблемы безопасности SS7

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

Именно эти уязвимости заставляют экспертов по безопасности рекомендовать переход от SMS-based 2FA к приложениям-аутентификаторам (TOTP) или аппаратным ключам (FIDO2). Однако для первоначальной проверки учетной записи (подтверждения владения номером) SMS остается отраслевым стандартом, поскольку имеет самый широкий охват.

Шаг 4: Как виртуальные номера получают SMS

Виртуальные телефонные номера работают путем замены физических SIM-карт и радиокомпонентов программным обеспечением. Вот как виртуальный номер получает OTP:

  1. Назначение номера — Поставщик виртуальных номеров арендует блоки номеров у операторов. Это реальные телефонные номера с действующей регистрацией у оператора.
  2. SIM-банк или программная SIM — Поставщик использует физические SIM-карты в оборудовании (SIM-банки с сотнями или тысячами SIM-карт) или интегрируется на уровне оператора для получения сообщений.
  3. SMS поступает к оператору — Сообщение OTP доставляется оператору, связанному с виртуальным номером, как и любая другая SMS.
  4. Сообщение перенаправляется — SIM-банк или интеграция с оператором перехватывает входящую SMS и перенаправляет ее на серверную часть поставщика через API.
  5. Пользователь видит код — Панель управления или API поставщика отображает полученное SMS пользователю.

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

Шаг 5: Верификация на стороне платформы

После того как пользователь получает OTP и вводит его на платформе, происходит серверная верификация:

  1. Сравнение кодов — Платформа сравнивает введенный код с сохраненным OTP.
  2. Проверка срока действия — Если срок действия OTP истек (обычно 60-300 секунд), верификация не удается.
  3. Подсчет попыток — Большинство платформ разрешают 3-5 неправильных попыток перед блокировкой верификации.
  4. Классификация номера — Некоторые платформы проверяют номер по базам данных VoIP/виртуальных номеров, чтобы выявить потенциальное злоупотребление.
  5. Успех или неудача — Если код совпадает и срок его действия не истек, номер телефона помечается как проверенный.

Как платформы обнаруживают виртуальные номера

Некоторые платформы пытаются блокировать виртуальные номера. Методы, которые они используют:

Метод обнаруженияКак это работаетЭффективность
Определение типа номераЗапрашивает базы данных операторов, чтобы проверить, является ли номер мобильным, стационарным или VoIPСредняя — многие виртуальные номера зарегистрированы как мобильные
Проверка базы данных оператораСравнивает номер с известными диапазонами поставщиков VoIPСредняя — работает для крупных поставщиков, пропускает мелких
HLR-запросЗапрашивает Home Location Register для получения сведений о SIM-картеВысокая для обнаружения чисто программных номеров, ниже для номеров из SIM-банков
Поведенческий анализОтслеживает, сколько учетных записей было создано с номерами из одного диапазонаВысокая со временем, но требует накопления данных

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

Почему SMS-верификация сохраняется, несмотря на недостатки

SMS-верификация имеет известные недостатки в безопасности, но остается доминирующим методом. Причины практические:

Отрасль медленно движется к альтернативам. Passkeys (FIDO2), приложения-аутентификаторы (TOTP) и push-уведомления набирают популярность. Но для первоначальной проверки телефона — подтверждения того, что пользователь контролирует номер телефона — SMS остается стандартом.

Роль виртуальных номеров в этой экосистеме

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

С технической точки зрения, виртуальные номера работают, потому что они используют тот факт, что SMS-верификация доказывает только контроль над номером, а не то, что номер находится на физическом телефоне в чьем-то кармане. Пока номер действителен и может принимать A2P-сообщения, верификация проходит успешно.

Дополнительно: Оптимизация доставки OTP

Если вы разработчик, внедряющий SMS-верификацию, вот технические соображения для надежной доставки:

Посмотрите SMS-верификацию со стороны получателя

Попробуйте VerifySMS бесплатно →

150+ стран · Мгновенная активация · $0.10/номер

Ещё статьи на русском

Все статьи блога на русском →

>Похожие статьи