BroadNet
SS7 / MAPConsegna SMS

Flusso di consegna MT-SMS su SS7, passo per passo

Aggiornato il 3 min di letturaBasato su standard
Risposta diretta

Consegnare un SMS mobile-terminated su SS7 richiede due passi MAP. Prima l'SMSC invia SendRoutingInfoForSM all'HLR del destinatario, che restituisce l'IMSI e l'indirizzo dell'MSC/SGSN servente. Poi l'SMSC invia MT-ForwardSM a quell'MSC, che effettua il paging del terminale e consegna il messaggio, restituendo l'esito all'SMSC.

§01

Passo 1 — ricerca dell'instradamento (SRI-SM)

L'SMSC parte con il solo MSISDN del destinatario. Invia un MAP SendRoutingInfoForSM all'HLR proprietario di quel numero, indirizzando l'HLR tramite Global Title (SSN 6). L'HLR cerca l'abbonato e, se è raggiungibile, risponde con l'IMSI più il locationInfoWithLMSI — l'indirizzo dell'MSC (o SGSN) che attualmente serve l'abbonato. Queste sono le informazioni di instradamento di cui l'SMSC ha bisogno per consegnare il messaggio.

§02

Passo 2 — consegna (MT-ForwardSM)

Munito dell'indirizzo dell'MSC servente, l'SMSC invia un MAP MT-ForwardSM a quell'MSC (SSN 8), trasportando la TPDU SMS-DELIVER — il contenuto effettivo del messaggio, l'indirizzo originante e la data-coding — all'interno del parametro MAP. L'MSC effettua il paging del terminale e, al contatto, consegna il messaggio breve sull'interfaccia radio. Un ReturnResult positivo torna indietro attraverso l'MSC fino all'SMSC.

La consegna MT-SMS in due fasitext
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 l'abbonato è irraggiungibile

Se il terminale è spento o fuori copertura, l'MSC restituisce un errore MAP come absentSubscriber, oppure l'HLR segnala l'abbonato come irraggiungibile al passo 1. L'SMSC memorizza allora il messaggio e chiede all'HLR di impostare i flag Message Waiting Data (MWD) — i flag Mobile-station-Not-Reachable e Memory-Capacity-Exceeded — tramite ReportSM-DeliveryStatus. Il messaggio resta in coda presso l'SMSC finché l'abbonato non diventa raggiungibile, fino al suo validity period.

Errori MAP MT-SMS comuni
ErroreSignificato
absentSubscriber(SM)Terminale spento / fuori copertura — imposta MWD, riprova più tardi
subscriberBusyForMT-SMSL'abbonato è occupato nella gestione di un altro MT-SMS: riprova
sm-DeliveryFailureConsegna non riuscita (memoria piena, errore di protocollo del terminale…)
unknownSubscriberMSISDN non configurato sull'HLR — errore definitivo
callBarredIl blocco dell'operatore/abbonato impedisce la consegna
§04

Il retry — Alert e ReadyForSM

Quando l'abbonato ricompare — si accende, rientra in copertura o libera la memoria del terminale — l'MSC/SGSN servente segnala ReadyForSM all'HLR, che consulta la lista MWD e invia AlertServiceCentre a ciascun SMSC in attesa. Ogni SMSC ripete poi la sequenza SRI-SM/MT-ForwardSM per consegnare il messaggio in coda. Questo meccanismo di alert è il motivo per cui un SMS inviato a un telefono spento arriva pochi istanti dopo la riaccensione.

§05

Perché questo flusso conta per la sicurezza

Ogni passo espone informazioni o fiducia che possono essere abusate. Un SRI-SM inviato da una rete estranea può estrarre l'IMSI e l'indirizzo dell'MSC servente di un abbonato — la materia prima per il tracciamento della posizione e per attacchi successivi — senza che alcun messaggio venga consegnato. Un indirizzo di MSC servente falsificato può reindirizzare gli MT-SMS, inclusi gli one-time passcode, verso un attaccante. I firewall di segnalazione perciò filtrano SRI-SM e MT-ForwardSM per origine, plausibilità e velocità.

FAQ

Domande frequenti

Quali sono i due passi principali per consegnare un SMS su SS7?

Primo, SendRoutingInfoForSM: l'SMSC chiede all'HLR del destinatario l'IMSI e l'indirizzo dell'MSC che attualmente serve l'abbonato. Secondo, MT-ForwardSM: l'SMSC invia il messaggio a quell'MSC, che effettua il paging del terminale e lo consegna.

Cosa restituisce l'HLR nella risposta SRI-SM?

Per un abbonato raggiungibile, l'HLR restituisce l'IMSI e il locationInfoWithLMSI — l'indirizzo dell'MSC o SGSN servente. L'SMSC usa quell'indirizzo per indirizzare il successivo MT-ForwardSM. Se l'abbonato è irraggiungibile, l'HLR restituisce invece un errore.

Cosa succede quando scrivo a un telefono spento?

La consegna fallisce con absentSubscriber e l'SMSC mette in coda il messaggio, chiedendo all'HLR di impostare i flag Message Waiting Data. Quando il telefono torna online l'MSC invia ReadyForSM, l'HLR emette AlertServiceCentre e l'SMSC ritenta la consegna.

Che cos'è il Message Waiting Data (MWD)?

L'MWD è una lista che l'HLR mantiene degli SMSC con messaggi in attesa per un abbonato irraggiungibile, insieme ai flag MNRF e MCEF. Guida le notifiche AlertServiceCentre che innescano il retry una volta che l'abbonato torna raggiungibile.

Come può essere abusato questo flusso per intercettare un OTP?

Un attaccante che falsifica un UpdateLocation, o fornisce un falso indirizzo di MSC servente, può indurre la rete a instradare gli MT-SMS — inclusi gli one-time passcode — verso un nodo che controlla. Filtrare l'origine di SRI-SM/MT-ForwardSM e applicare controlli di velocità è la difesa standard.

Riferimenti

Specifiche della fonte

Gli standard pubblicati su cui si basa questa pagina. Si apre in una nuova scheda.

BNGestito dal team di ingegneri BroadNet·Servizi di messaggistica di livello carrier dal 2003
Mettilo sul filo

Realizzato con un vero binding SMPP e un'API REST.

Richiedi l'accesso di prova con chiavi di test reali: invia prima al tuo numero verificato, poi passa alla produzione in oltre 200 paesi una volta approvata l'identità del mittente e i percorsi.