BroadNet
SS7 / MAPEntrega de SMS

Fluxo de entrega de MT-SMS por SS7, passo a passo

Atualizado em 4 min de leituraBaseado em padrões
Resposta direta

Entregar um SMS terminado no terminal sobre SS7 leva dois passos MAP. Primeiro o SMSC envia SendRoutingInfoForSM ao HLR do destinatário, que devolve o IMSI e o endereço do MSC/SGSN servidor. Depois o SMSC envia MT-ForwardSM a esse MSC, que faz paging ao terminal e entrega a mensagem, devolvendo o desfecho ao SMSC.

§01

Passo 1 — consulta de encaminhamento (SRI-SM)

O SMSC começa apenas com o MSISDN do destinatário. Envia um MAP SendRoutingInfoForSM ao HLR que detém esse número, endereçando o HLR por global title (SSN 6). O HLR consulta o subscritor e, se este estiver alcançável, responde com o IMSI mais o locationInfoWithLMSI — o endereço do MSC (ou SGSN) que serve atualmente o subscritor. Esta é a informação de encaminhamento de que o SMSC precisa para entregar a mensagem.

§02

Passo 2 — entrega (MT-ForwardSM)

Munido do endereço do MSC servidor, o SMSC envia um MAP MT-ForwardSM a esse MSC (SSN 8), transportando o TPDU SMS-DELIVER — o conteúdo real da mensagem, o endereço de origem e a codificação de dados — dentro do parâmetro MAP. O MSC faz paging ao terminal e, ao contactá-lo, entrega a mensagem curta pela interface rádio. Um ReturnResult bem-sucedido regressa através do MSC até ao SMSC.

A entrega de MT-SMS em duas fasestext
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

Quando o subscritor está inalcançável

Se o terminal está desligado ou fora de cobertura, o MSC devolve um erro MAP como absentSubscriber, ou o HLR reporta o subscritor como inalcançável no passo 1. O SMSC armazena então a mensagem e pede ao HLR que ative as flags de Message Waiting Data (MWD) — as flags Mobile-station-Not-Reachable e Memory-Capacity-Exceeded — via ReportSM-DeliveryStatus. A mensagem permanece em fila no SMSC até o subscritor ficar alcançável, até ao seu validity period.

Erros MAP comuns de MT-SMS
ErroSignificado
absentSubscriber(SM)Aparelho desligado / fora de cobertura — definir MWD, tentar novamente mais tarde
subscriberBusyForMT-SMSO assinante está ocupado processando outro SMS MT — tente novamente
sm-DeliveryFailureA entrega falhou (memória cheia, erro de protocolo do equipamento…)
unknownSubscriberMSISDN não aprovisionado no HLR — falha definitiva
callBarredO bloqueio pela operadora/assinante impede a entrega
§04

A repetição — Alert e ReadyForSM

Quando o subscritor reaparece — liga o terminal, volta à cobertura ou liberta memória do terminal — o MSC/SGSN servidor sinaliza ReadyForSM ao HLR, que consulta a lista MWD e envia AlertServiceCentre a cada SMSC em espera. Cada SMSC repete então a sequência SRI-SM/MT-ForwardSM para entregar a mensagem em fila. Este mecanismo de alerta é a razão pela qual um SMS enviado para um telefone desligado chega momentos depois de este voltar a ligar.

§05

Porque este fluxo importa para a segurança

Cada passo expõe informação ou confiança que pode ser abusada. Um SRI-SM enviado de uma rede estrangeira pode extrair o IMSI e o endereço do MSC servidor de um subscritor — a matéria-prima para rastreio de localização e ataques subsequentes — sem que nenhuma mensagem seja entregue. Um endereço de MSC servidor forjado pode redirecionar o MT-SMS, incluindo códigos de uso único, para um atacante. As signalling firewalls filtram, por isso, o SRI-SM e o MT-ForwardSM por origem, plausibilidade e velocidade.

Perguntas frequentes

Perguntas frequentes

Quais são os dois passos principais para entregar um SMS sobre SS7?

Primeiro, SendRoutingInfoForSM: o SMSC pede ao HLR do destinatário o IMSI e o endereço do MSC que serve atualmente o subscritor. Segundo, MT-ForwardSM: o SMSC envia a mensagem a esse MSC, que faz paging ao terminal e a entrega.

O que devolve o HLR na resposta ao SRI-SM?

Para um subscritor alcançável, o HLR devolve o IMSI e o locationInfoWithLMSI — o endereço do MSC ou SGSN servidor. O SMSC usa esse endereço para dirigir o MT-ForwardSM seguinte. Se o subscritor estiver inalcançável, o HLR devolve antes um erro.

O que acontece quando envio SMS para um telefone desligado?

A entrega falha com absentSubscriber e o SMSC coloca a mensagem em fila, pedindo ao HLR que ative as flags de Message Waiting Data. Quando o telefone volta a ficar online, o MSC envia ReadyForSM, o HLR emite AlertServiceCentre e o SMSC reentrega.

O que é o Message Waiting Data (MWD)?

O MWD é uma lista que o HLR mantém de SMSCs com mensagens em espera para um subscritor inalcançável, junto com as flags MNRF e MCEF. Conduz as notificações AlertServiceCentre que despoletam a repetição assim que o subscritor volta a ficar alcançável.

Como pode este fluxo ser abusado para intercetar um OTP?

Um atacante que forja um UpdateLocation, ou fornece um endereço de MSC servidor falso, pode fazer a rede encaminhar o MT-SMS — incluindo códigos de uso único — para um nó que controla. Filtrar a origem do SRI-SM/MT-ForwardSM e aplicar verificações de velocidade é a defesa padrão.

Referências

Especificações de origem

Os padrões publicados nos quais esta página se baseia. Abre num novo separador.

BNMantido pela equipa de engenharia BroadNet·Mensagens de nível de operadora desde 2003
Coloque-o no fio.

Construa com uma vinculação SMPP real e uma API REST.

Solicite acesso de teste com chaves de teste reais: envie primeiro para o seu próprio número verificado e, em seguida, passe para o ambiente de produção em mais de 200 países assim que a sua identidade de remetente e rotas forem aprovadas.