BroadNet
SS7 / MAPДоставка SMS

Схема доставки MT-SMS через SS7, шаг за шагом

Обновлено 3 мин чтенияна основе стандартов
Прямой ответ

Доставка SMS на абонента через SS7 занимает два шага MAP. Сначала SMSC отправляет SendRoutingInfoForSM к HLR получателя, который возвращает IMSI и адрес обслуживающего MSC/SGSN. Затем SMSC отправляет MT-ForwardSM этому MSC, который выполняет пейджинг аппарата и доставляет сообщение, возвращая результат SMSC.

§01

Шаг 1 — поиск маршрута (SRI-SM)

SMSC начинает, имея только MSISDN получателя. Он отправляет MAP SendRoutingInfoForSM к HLR, которому принадлежит этот номер, адресуя HLR по global title (SSN 6). HLR ищет абонента и, если тот достижим, отвечает IMSI плюс locationInfoWithLMSI — адресом MSC (или SGSN), обслуживающего абонента в данный момент. Это и есть информация о маршруте, нужная SMSC для доставки сообщения.

§02

Шаг 2 — доставка (MT-ForwardSM)

Имея адрес обслуживающего MSC, SMSC отправляет MAP MT-ForwardSM этому MSC (SSN 8), неся TPDU SMS-DELIVER — собственно содержимое сообщения, адрес отправителя и data_coding — внутри параметра MAP. MSC выполняет пейджинг аппарата и при контакте доставляет короткое сообщение по радиоинтерфейсу. Успешный ReturnResult возвращается через MSC к SMSC.

Двухфазная доставка MT-SMStext
1  SMSC → HLR   MAP sendRoutingInfoForSM { MSISDN, SC address }
2  HLR  → SMSC MAP result { IMSI, servingMSC address }
3  SMSC → MSC  MAP mt-ForwardSM { IMSI, SMS-DELIVER TPDU }
4  MSC  → MS   paging + radio delivery of the short message
5  MSC  → SMSC MAP result (delivered)  →  SMSC generates delivery report
§03

Когда абонент недостижим

Если аппарат выключен или вне зоны покрытия, MSC возвращает ошибку MAP, такую как absentSubscriber, или HLR сообщает о недостижимости абонента на шаге 1. Тогда SMSC сохраняет сообщение и просит HLR установить флаги Message Waiting Data (MWD) — флаги Mobile-station-Not-Reachable и Memory-Capacity-Exceeded — через ReportSM-DeliveryStatus. Сообщение остаётся в очереди на SMSC, пока абонент не станет достижим, вплоть до истечения периода действия.

Распространённые ошибки MAP при MT-SMS
ОшибкаЗначение
absentSubscriber(SM)Телефон выключен/вне зоны покрытия — установите MWD, попробуйте позже
subscriberBusyForMT-SMSАбонент занят обработкой другого MT-SMS — повторите попытку
sm-DeliveryFailureДоставка не удалась (память заполнена, ошибка протокола оборудования…)
unknownSubscriberMSISDN не зарегистрирован в HLR — окончательный отказ
callBarredЗапрет со стороны оператора/абонента препятствует доставке
§04

Повтор — Alert и ReadyForSM

Когда абонент снова появляется — включается, возвращается в покрытие или освобождает память аппарата — обслуживающий MSC/SGSN сигнализирует ReadyForSM к HLR, который сверяется со списком MWD и отправляет AlertServiceCentre каждому ожидающему SMSC. Каждый SMSC затем повторяет последовательность SRI-SM/MT-ForwardSM для доставки сообщения из очереди. Именно этот механизм оповещения объясняет, почему SMS, отправленное на выключенный телефон, приходит через мгновения после его включения.

§05

Почему эта схема важна для безопасности

Каждый шаг раскрывает информацию или доверие, которыми можно злоупотребить. SRI-SM, отправленный из чужой сети, может извлечь IMSI абонента и адрес обслуживающего MSC — сырьё для отслеживания местоположения и последующих атак — без всякой доставки сообщения. Поддельный адрес обслуживающего MSC может перенаправить MT-SMS, включая одноразовые пароли, злоумышленнику. Поэтому сигнальные межсетевые экраны проверяют SRI-SM и MT-ForwardSM по источнику, правдоподобию и скорости.

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

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

Каковы два основных шага доставки SMS через SS7?

Первый, SendRoutingInfoForSM: SMSC просит у HLR получателя IMSI и адрес MSC, обслуживающего абонента в данный момент. Второй, MT-ForwardSM: SMSC отправляет сообщение этому MSC, который выполняет пейджинг аппарата и доставляет его.

Что HLR возвращает в ответе SRI-SM?

Для достижимого абонента HLR возвращает IMSI и locationInfoWithLMSI — адрес обслуживающего MSC или SGSN. SMSC использует этот адрес, чтобы нацелить последующий MT-ForwardSM. Если абонент недостижим, HLR вместо этого возвращает ошибку.

Что происходит, когда я пишу на выключенный телефон?

Доставка не удаётся с absentSubscriber, и SMSC ставит сообщение в очередь, прося HLR установить флаги Message Waiting Data. Когда телефон снова выходит в сеть, MSC отправляет ReadyForSM, HLR выдаёт AlertServiceCentre, а SMSC повторяет попытку доставки.

Что такое Message Waiting Data (MWD)?

MWD — это список, который HLR ведёт по SMSC с сообщениями, ожидающими для недостижимого абонента, вместе с флагами MNRF и MCEF. Он управляет уведомлениями AlertServiceCentre, запускающими повтор, когда абонент снова становится достижим.

Как этой схемой можно злоупотребить для перехвата OTP?

Злоумышленник, подделывающий UpdateLocation или поставляющий ложный адрес обслуживающего MSC, может заставить сеть маршрутизировать MT-SMS — включая одноразовые пароли — узлу, который он контролирует. Проверка источника SRI-SM/MT-ForwardSM и применение проверок скорости — стандартная защита.

Ссылки

Технические характеристики источника

На этой странице представлены опубликованные стандарты, на которых они основаны. (Открывается в новой вкладке)

BNПоддерживается инженерной командой BroadNet·Обмен сообщениями операторского класса с 2003 года.
Прикрепите это к проводу

Разработано с использованием реального SMPP подключения и REST API.

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