SMS su
reti GSM e criticità delle Open-Functionality
Abstract
Ad oggi l’apertura delle reti di telefonia mobile ad applicazioni basate su Internet ha notevolmente arricchito i servizi erogabili. L’introduzione di nuove funzionalità ha di fatto rilevato debolezze delle reti GSM al cospetto di possibili attacchi.
Questo lavoro presenta una panoramica sul sistema globale per la comunicazione mobile (GSM) con particolare interesse ai messaggi di testo alfanumerici SMS. Saranno analizzati architettura e protocolli usati da una rete GSM per l’invio di messaggi di testo SMS. Dopo una panoramica sull’architettura, verranno analizzate le criticità di queste reti per la comunicazione mobile nello scenario attuale.
Il lavoro si divide in due capitoli: il primo riguardante l'architettura di una rete GSM, ponendo una attenzione particolare ai messaggi di testo, verranno quindi evidenziati gli attori principali ed i protocolli usati; il secondo capitolo analizza le vulnerabilità del sistema di messaggi di testo all'interno di una rete GSM, configurando la presentazione di alcuni scenari di attacco alla rete attraverso messaggi di testo inviati da Internet.
Capitolo
I: SMS nelle reti GSM
SMS nelle reti GSM: introduzione
La maggioranza degli utenti di telefonia mobile hanno
la possibilità di effettuare trasmissioni vocali e alfanumeriche attraverso Short Messaging Service (SMS). I messaggi di testo permettono
all’utente di comunicare in situazioni in cui le chiamate vocali non sono
appropriate o possibili. Un’idea di quanto sia diffusa questa pratica di
comunicazione la si può avere esaminando i dati di paesi come l’Inghilterra,
che ha un volume di 69 milioni di messaggi al giorno [1].
Questo servizio ha presto preso piede e si è integrato nella cultura della
comunicazione. L’utilizzo degli SMS è diventato popolare anche nella
comunicazione industriale, diventando così una componente critica
dell’infrastruttura sociale ed economica in cui viviamo. Una forte spinta a
tale diffusione è stata data dall’apertura delle reti per telefonia cellulare
per la creazione di servizi a valore aggiunto. Tramite siti web, e-mail e una
vasta gamma di altre applicazioni, gli utenti attraverso Internet possono
contattare un utente della rete mobile senza usare il cellulare. Questa
prerogativa, assieme ad altre, permettono di offrire servizi a valore aggiunto
agli utenti della rete GSM. Tale apertura alle molteplici funzionalità e a
nuovi servizi, mette in evidenza alcune criticità delle reti GSM. La
connessione tra Internet e le reti telefoniche apre un dibattito riguardo la
sicurezza e l’attendibilità dei provider di telefonia mobile. Le reti di
telefonia mobile aperte alla connessione con Internet, presentano
fondamentalmente la stessa vulnerabilità dei sistemi connessi alla rete.
Prima di affrontare gli aspetti critici della
sicurezza delle reti GSM, è giusto fare una panoramica sull’architettura, i
protocolli usati e il modo in cui viene gestita l’interazione tra i vari attori
presenti nello scenario della comunicazione mobile.
·
1982:
·
1984: istituzione di 3 Working Parties (WP1-3) per la definizione di servizi da offrire in GSM: l’interfaccia
radio, i formati
di trasmissione ed i protocolli di segnalazione, le interfacce e l’architettura di rete.
·
1985: definizione della lista di raccomandazioni che il
GSM deve produrre (finiranno per essere circa 130: 1500 pagine in 12 volumi, più tutti quelli relativi all’evoluzione, cioè le fasi 2+ e 3 di GSM).
·
1986: viene istituito il cosiddetto nucleo permanente con
lo scopo di coordinare il lavoro del GSM, soprattutto visto l’interesse da
parte dell’industria.
·
1987: viene firmato un primo Memorandum of Understanding
(MoU) tra operatori Telecom in rappresentanza di 12 Nazioni (europee) con i
seguenti obiettivi:
o coordinare lo sviluppo temporale delle reti;
o GSM europee e verificarne lo standard;
o pianificare l’introduzione dei servizi;
o concordare politiche di instradamento e la
tariffazione (modalità e prezzi).
·
1988: con l’istituzione di ETSI (European
Telecommunication Standards Institute) il lavoro su GSM viene “spostato” in
questo forum di lavoro.
·
1990: viene deciso di applicare le specifiche GSM anche al
sistema DCS1800 (Digital Cellular System on 1800 MHz), un sistema di tipo PCN
(Personal Communication Networks) inizialmente sviluppato in U.K.
·
1991: (luglio) il lancio commerciale del GSM, pianificato
per questa data, viene rimandato al 1992 per la mancanza di terminali mobili
conformi allo standard.
1.2 Global System for
L'origine dell'acronimo GSM deriva dal nome del gruppo
francese che ne ha iniziato lo sviluppo (Groupe Spécial Mobile). In seguito
si decise di mantenere la stessa sigla cambiandone però il significato. Dalla
costruzione della prima rete GSM, partita nel 1991, più di 1 miliardo di
persone in almeno 200 paesi hanno adottato questo standard. I provider di reti
GSM ora offrono una vasta copertura del pianeta, garantendo qualità della
conversazione e servizi a valore aggiunto. Questi servizi includono voice-mail,
facilità di chiamata vocale, identificazione del chiamante e Short Message Service (SMS).
Sono ad oggi disponibili numerose applicazioni che
permettono l’invio e la ricezione di messaggi di testo usando un computer.
Questo pone al centro dell’attenzione il servizio di SMS. Il Global
System for Mobile Communications (GSM) è attualmente lo
standard di telefonia mobile più diffuso del mondo. La diffusione universale
dello standard GSM ha fatto sì che la maggior parte degli operatori
internazionali di telefonia mobile stipulassero fra di loro accordi per
l'effettuazione del cosiddetto roaming (commutazione automatica fra diverse reti).
La tecnologia alla base del GSM è significativamente diversa da quelle che la
hanno preceduta, soprattutto per il fatto che sia il canale di identificazione
che quello di conversazione sono digitali. Per questo motivo il nuovo standard
è stato lanciato sul mercato come sistema di telefonia mobile di seconda
generazione o più sinteticamente 2G.
La caratteristica di questa evoluzione supporta lo scambio dati oltre alle
conversazioni. Il maggior punto di forza del sistema GSM è stata la
possibilità, da parte degli utenti, di accedere a tutta una serie di nuovi
servizi a costi molto contenuti. Un esempio può essere lo scambio di messaggi
testuali (SMS) che è stato
sviluppato per la prima volta in assoluto in ambito GSM. Uno dei principali
vantaggi per gli operatori è rappresentato dalla possibilità di acquistare
infrastrutture ed attrezzature a costi resi bassi dalla concorrenza fra i
produttori. Il GSM è di gran lunga il sistema di telefonia mobile più diffuso
al mondo, con una quota di mercato del 70%. Il suo principale concorrente, il
sistema CDMA2000, è usato
soprattutto negli Stati Uniti.
1.3 Short Message Service (SMS)
Il termine SMS, acronimo dell'inglese Short Message Service,
è comunemente usato per indicare un breve messaggio di testo inviato da un
telefono cellulare ad un altro, ad un costo esiguo. È possibile inviare SMS
anche da un computer ad un telefono cellulare tramite Internet. Recentemente è
stata introdotta la possibilità di usare il servizio anche da telefoni della
rete fissa, tuttavia con scarsa diffusione. Tra i principali vantaggi dell'SMS
sono il basso costo rispetto ad una telefonata e la possibilità di ricevere o
leggere il messaggio in un momento successivo rispetto all'invio.
A volte i telefoni cellulari permettono l'invio di
messaggi concatenati di dimensioni maggiori, in realtà formati da più SMS
spediti indipendentemente e ricomposti alla ricezione: il costo del servizio
per l'utente però sale, in quanto un messaggio formato per esempio da 2 SMS viene
conteggiato e pagato come 2 SMS. Inoltre il numero di caratteri disponibili non
raddoppia, perché alcuni byte vengono impiegati per le informazioni necessarie
alla concatenazione; in pratica il numero di caratteri utili per messaggio
viene ridotto a 153, sui 160 solitamente disponibili. Il servizio SMS è stato
sviluppato nella “Fase
Possiamo
classificare gli SMS in due tipi principali:
·
cell broadcast
[1];
·
point-to-point
[2].
Prima di entrare nello specifico è utile sottolineare
che una rete cellulare opera sulla base di una suddivisione in celle del territorio ed è progettata per
fornire il servizio di comunicazione a un elevato numero di clienti. Tale
suddivisione è resa necessaria poiché l’utente di una rete GSM ha natura
mobile, quindi ha la necessità di avere punti mobili d’accesso.
Ritornando ai messaggi SMS, avremo nel caso di cell broadcast un messaggio che viene
trasmesso a tutte le stazioni mobili Mobile
Station (MS) presenti in una
cella. Tutte le utenze che avranno sottoscritto il servizio e saranno presenti
nella cella, potranno ricevere il messaggio cell
broadcast. Questo servizio è di tipo one-way, non attende una conferma di
ricezione da parte dei riceventi. Di solito è usato per trasmettere
informazioni sulle condizioni di traffico, previsioni del tempo, marketing,
etc.
Nel servizio point-to-point,
un messaggio può essere inviato da un dispositivo mobile ad un altro, oppure da
un PC ad un dispositivo mobile e vice versa.
I messaggi sono memorizzati e trasmessi da un centro
messaggi detto SMS-Center (SMSC). Il centro messaggi è l’equivalente
elettronico del servizio di posta ordinaria, poiché memorizza e inoltra i
messaggi appena questi possono essere instradati. Ogni rete GSM può supportare
uno o più centri messaggi per ordinare e instradare i messaggi. Ogni SMSC
controlla, organizza e invia il messaggio all’operatore; inoltre riceve e passa
ogni messaggio di conferma a qualsiasi dispositivo GSM di qualsiasi rete. In
pratica un SMS può attraversare reti diverse senza alcun ostacolo.
Esistono vari modi in cui un SMS può essere inviato,
ciò dipende dall’interfaccia supportata dal centro messaggi della rete GSM. Un
utente potrebbe avere la necessità di chiamare un operatore per inviare il
messaggio, piuttosto che direttamente crearlo attraverso la tastiera del
proprio dispositivo cellulare.
Alcuni centri messaggi unitamente ad alcune compagnie,
hanno sviluppato propri protocolli per l’invio di SMS. Di conseguenza molte
reti GSM ora offrono l’accesso ai propri centri messaggi usando tali protocolli
su differenti interfacce hardware: modem dialup, X25 ed ancora Internet.
1.4
Architettura di una rete GSM
Lo schema di base di una rete GSM con le sue varie
entità funzionali è illustrato in Figura 1. L’architettura definisce tre
componenti principali:
·
Mobile Station;
·
Base Station Subsystem;
·
Network Subsystem.
Figura 1: schema di base dell’architettura di una rete
GSM.
·
Mobile Termination (MT);
·
Subscriber Identity Module (SIM).
Figura 2: Struttura di una stazione mobile MS.
Per identificare in modo univoco il terminale mobile
usato per connettersi alla rete viene usato un International Mobile Equipment Identity (IMEI). Tale codice permette di identificare in modo univoco un
terminale in una rete GSM unitamente all’International
Mobile Subscriber Identity (IMSI)
contenuto nella SIM. Per conferire maggiore sicurezza ad un componente molto
importante come
Le componenti Mobile
Station e Base Station Subsystem,
interagiscono attraverso una interfaccia detta Um, meglio conosciuta come collegamento
radio (oppure interfaccia air).
In definitiva
L’idea che sta alla
base delle reti mobili è che si ha una stazione base, fissa, denominata Base Station (BS) che
comunica con la stazione mobile. Per assecondare la natura mobile dell’utente,
il territorio da coprire è suddiviso il celle.
Una cella è una porzione di
territorio servita da una stazione base BS.
La componente Base
Station Subsystem (BSS) è la parte della rete GSM che ha più
somiglianze con la rete di telefonia fissa. Spesso è anche denominata core
network. Questa è divisa in due parti:
·
Base Transceiver Station (BTS);
·
Base Station Controller (BSC).
Queste due parti comunicano tra loro attraverso una
interfaccia specifica detta Abis. In
tal modo si permette agli operatori di rete di usare componenti sviluppate da
produttori differenti (Figura 3).
Figura 3: struttura di un Base Station Subsystem.
In pratica
La componente
BTS ospita il radio transceiver e manipola il protocollo del collegamento radio
nella comunicazione con l’unità mobile MS. A seconda della densità dell’area da
coprire, è possibile disporre un numero adeguato di BTS, necessarie a fornire
una adeguata capacità alla cella.
In una
rete radio-mobile ogni utente è libero di spostarsi in qualunque punto della
rete, la quale deve essere in grado di identificare i terminali mobili, di
stabilire, controllare e terminare le connessioni, e aggiornare i dati di
gestione. Il funzionamento di questo sistema di basa sulla suddivisione dell’
area di servizio in zone confinanti, celle, ognuna delle quali fa riferimento
alla stazione radio base BTS.
La componente BSC
controlla le risorse radio per una o più componenti BTS attraverso
l’interfaccia standardizzata Abis. In
particolare si occupa di effettuare il setup del canale radio, frequency hopping, e l’operazione di handover, operazione con la quale un
telefono cellulare può spostarsi da una cella all’altra senza interrompere la
comunicazione. Questa componente è di raccordo tra l’unità mobile MS e il
centro di smistamento Mobile Switching
Center (MSC) presente nel Network Subsystem.
La componente che funge da centro di smistamento
denominata MSC è il cuore del
Network Subsystem.
In pratica MSC ha in carico una certa area del
territorio (controlla quindi tutte le BSC in quella zona) e deve servire tutte
le MS che transitano in quell'area.
Le funzioni di roaming
internazionale e la capacità di rounting
delle chiamate in una rete GSM, sono espletate da due componenti Home Location Register (HLR)
e Visitor
Location Register (VLR)
unitamente alla componente MSC. La componente HLR è un database contenente
tutte le informazioni di tipo amministrativo, relative ad ogni utente di una
rete GSM ed anche alla localizzazione corrente del dispositivo mobile MS. La
localizzazione corrente del dispositivo mobile MS è espressa nella forma di un Mobile Station Roaming Number (MSRN), tipicamente un numero SS7 (Signalling System 7), protocollo usato per trasportare segnali di
controllo e pacchetti SMS. Tale rappresentazione SS7, esprime i nodi MSC
visitati per raggiungere un determinato dispositivo mobile MS. L’informazione
così ottenuta è usata per effettuare il routing di una chiamata al dispositivo
MSC dove è attualmente localizzato il dispositivo mobile.
Solitamente la componente VLR è posta assieme alla
componente MSC al fine di accelerare l’accesso alle informazioni richieste
durante una chiamata e semplificare la segnalazione. Il contenuto della VLR è
un sottoinsieme di informazioni prelevate dal HRL. Di base tale sottoinsieme è
formata da tutti i dati necessarie per il controllo della chiamata e i servizi
allocati, di ogni singolo dispositivo mobile MS, attualmente localizzato
nell’area geografica controllata dal VRL.
In definitiva per gestire la mobilità degli utenti la
componente MSC deve scambiare continuamente informazioni con un database, detto
Visitor Location Register (VLR), che memorizza, temporaneamente,
le informazioni relative alle MS che si trovano in quell'area (identità
dell'utente IMEI, numero telefonico MSISDN, parametri di autenticazione, ecc.).
Le MS in questione sono semplicemente "in visita" nell'area servita
dal VLR. Esse, infatti, si possono spostare in qualsiasi momento entro l'area
servita da un altro VLR. Nonostante quest'ultimo, come entità funzionale, possa
essere implementata in maniera indipendente dall'MSC, tutti i costruttori
preferiscono integrarli assieme (l'interfaccia tra i due elementi può essere
proprietaria) ed il tutto viene usualmente definito MSC/VLR. In questo caso entrambi servono la stessa area geografica,
detta MSC/VLR area.
Il Network Subsystem usa altri due tipi di database
per l’autenticazione e per la sicurezza. Nello specifico troviamo:
·
Equipment Identity Register (EIR):
contiene una lista di ogni IMEI dei dispositivi mobili MS, per cercare di
risolvere il problema del possibile utilizzo di apparati mobili ME rubati,
difettosi o non omologati;
·
Autentication Center (AuC): l'HLR è semplicemente un database e quindi
memorizza i parametri di sicurezza, ma non provvede alla loro generazione. Il
compito di calcolare, tramite degli appositi algoritmi, questi parametri è
demandato all’AuC.
Proviamo a schematizzare meglio chi sono gli attori
principali e le funzionalità del Network Subsystem.
·
MSC Mobile-service Switching Centre: è un
normale nodo di commutazione, che svolge funzioni di commutazione e
segnalazione a supporto di tutti i terminali mobili che si trovano nell’area
geografica servita, denominata area MSC. Inoltre il dispositivo MSC tiene conto
dell’allocazione di risorse radio e della natura mobile dell’utente. In tal
modo collaborando con altri Network
Subsystem, provvede ad aggiornare la localizzazione di un dispositivo mobile
MS, quindi a gestirne l’handover.
·
HLR Home Location Register: è un database (unico o distribuito) in cui il
gestore della rete memorizza i dati dei propri utenti. Per ogni utente contiene
due tipologie di informazioni:
-
dati relativi al
contratto;
-
dati sulla
localizzazione del terminale ai fini della contabilizzazione e
dell’instradamento delle chiamate verso altri MSC nella cui area si trova il
dispositivo mobile MS.
I principali compiti di un HRL sono:
-
sicurezza/autenticazione
(dialogo con AuC);
-
gestione della
localizzazione;
-
informazione
sull’instradamento;
-
gestione dati
utente e costi chiamate;
-
gestione
(attivazione/disattivazione) dei servizi supplementari.
·
VLR Visitor Location Register: database contenente informazioni temporanee relative
ai terminali mobili allocati in una determinata area MSC. Quando un terminale
entra nell’area coperta da un nuovo MSC, i dati relativi al dispositivo mobile
MS sono inseriti nel VLR associato al nuovo MSC. Allo stesso tempo, l’indirizzo
del VLR viene annotato nel record del HRL relativo al dispositivo mobile.
·
AuC Authentication Centre: ad ogni HRL è associato un AuC in cui sono
memorizzate le chiavi primarie utilizzate nella procedura di identificazione e
autenticazione del dispositivo mobile e di cifratura dei flussi di informazioni
nella tratta radio. Tali chiavi primarie sono usate per generare i parametri
temporanei impiegati nelle procedure di sicurezza d’accesso alla SIM.
·
EIR Equipment Identity Register: contiene uno o più database in cui sono memorizzati
i codici IMEI. Tale codice può non essere valido quando un dispositivo mobile è
rubato, pertanto i dati relativi al codice IEMEI sono memorizzati in tre
distinte liste: White List (IMEI
autorizzati), Grey List (IMEI di
apparecchi non omologati), Black List
(IMEI bloccati). Un EIR deve contenere almeno una White List.
1.8 Protocollo di segnalazione di una rete GSM
Perché una rete di telecomunicazioni possa funzionare
correttamente è necessario che le varie unità funzionali coinvolte (compreso
l'utente) si scambino delle informazioni. Queste ultime sono dette segnalazioni di controllo e possono
essere realizzate secondo due tecniche differenti: segnalazione associata al
circuito e segnalazione a canale comune. La prima tecnica, utilizzata nella
linea telefonica fissa tradizionale su doppino, associa le segnalazioni sullo
stesso canale usato per trasportare la fonia. La seconda tecnica, utilizzata
nella fonia moderna (ad es. GSM e ISDN), separa nettamente la fonia dalle
segnalazioni, assegnando a queste ultime dei canali trasmissivi dedicati. In
una rete di telecomunicazioni moderna vi sono quindi due sottoreti: una per la
fonia e una per le segnalazioni di controllo.
Il sistema di segnalazione utilizzato nello standard
GSM è il Common Channel Signaling System
7 (CCSS7 o più brevemente SS7), ratificato dall'ITU
(International Telecommunication Union). I canali trasmissivi di SS7 sono a 64
kbps.
Lo scambio di messaggi di segnalazione riguardanti la
mobilità, le risorse radio e la gestione della connessione tra entità
differenti di una rete GSM, è realizzato attraverso l’architettura protocollare
mostrata in Figura 4.
Figura 4:
struttura di protocollo GSM.
L’architettura è composta da tre strati:
·
Phisycal;
·
Data Link;
·
Message.
Nello strato Phisycal
si trovano le specifiche delle caratteristiche del mezzo fisico di trasporto.
Le caratteristiche di questo strato e della struttura del canale [4] non sono di interesse primario di questo capitolo.
Maggiori dettagli verranno illustrati nel Capitolo II.
Il secondo strato implementa il Data Link, usando una modifica del protocollo di Link Access Protocol (LAPD – Link Access Proceduere for D channel) definito per le reti ISDN,
adatto alle restrizioni presentate dal canale radio. Questo livello ha il
compito di assicurare il trasferimento affidabile sulla tratta radio delle
informazioni provenienti dal livello Message.
Il livello
Message si occupa della gestione dei canali radio e della segnalazione di
utente. Le caratteristiche dello strato Message
vanno studiate sia dal punto di vista della stazione mobile MS, che da quello
della componente MSC. Scendiamo nei dettagli.
Dal punto di vista della MS, lo strato Message è formato da tre sottostrati
(Figura 4):
·
Connection Management (CM);
·
Mobility Management (MM);
·
Resurce Management (RM).
Il sottostrato CM
controlla i servizi supplementari relativi alla chiamata, gli SMS, ed i servizi
supplementari indipendenti dalla chiamata.
Il sottostrato MM
realizza le funzioni che permettono di stabilire, mantenere e rilasciare, una
connessione tra una stazione mobile MS e il dispositivo MSC, nel momento in cui
una istanza del sottostrato CM può scambiare informazioni con il suo “peer” (elemento equivalente col quale
comunica allo stesso livello). Inoltre, tale sottostrato si occupa
dell’aggiornamento della localizzazione, della gestione del IMSI e
dell’identificazione, autenticazione e riallocazione del Temporary Mobile Subscriber Identity (TMSI), che rappresenta l’indentificativo del dispositivo
destinatario di un servizio.
Il sottostrato RM
stabilisce una connessione fisica attraverso il collegamento radio, allo scopo
di trasmettere informazioni di segnalazione legate alla chiamata, ad esempio
come la realizzazione di un canale di traffico tra MS e BSS.
Dal punto di vista del dispositivo MSC, lo strato
Message si divide in quattro sottostrati come mostrato in Figura 4:
·
Connection Management (CM);
·
Mobility Management (MM);
·
Base Subsystem
Substation Aplication Part (BSSAP);
·
Signaling
Connection Control Part (SCCP);
I primi due strati (CM e MM) risultano essere comuni
alla MS.
Lo strato Base
Subsystem Substation Aplication Part (BSSAP)
realizza la funzione di switch del canale, la gestione delle risorse radio e le
funzioni di internet-working.
Lo strato Message
Transfer Part (MTP) unitamente
al protocollo Signaling Connection
Control Part (SCCP), sono usati
per implementare lo strato Data Link
(Figura 4). Inoltre realizzano anche le funzioni di trasporto dello strato Message, utili al controllo della
chiamata e alla gestione di segnalazioni circa la mobilità attraverso
l’interfaccia A (Figura 4). I
pacchetti SCCP sono usati anche per trasportare messaggi per il servizio SMS.
Analizziamo nello specifico gli strati MTP e SCCP.
Il sottostrato SCCP
supporta sia servizi di tipo connection-less
che connection-oriented. Tali servizi
sono del tipo trasferimento dati e Global
Title Transaction (GTT) sul livello 3 MTP per
voce, dati, ISDN e servizi GSM.
Il trasferimento dati è affidabile,
indipendente dall’hardware sottostante e trasparente all’utente. Il protocollo
usa connessione di segnali logici all’interno di reti che usano SS7 per
assicurare l’affidabilità e l’integrità del trasferimento dati.
Figura 5: sottostrati SCCP e MTP.
MTP si divide in tre livelli:
·
MTP livello 1:
definisce le caratteristiche di un link di segnalazione digitale, equivalente
allo strato Fisico dello schema OSI;
·
MTP livello 2:
equivale allo strato Data Link dello
schema OSI e realizza la consegna affidabile di sequenze di pacchetti di dati
attraverso il livello 1;
·
MTP livello 3:
effettua il controllo della congestione e gestione della segnalazione; inoltre
effettua la selezione, distribuzione e routing dei messaggi, come lo strato di Rete del modello OSI.
Vale la pena ora entrare più nei dettagli del protocollo di segnalazione SS7.
La segnalazione tra le diverse entità è effettuata
usando lo standard International
Telecomunication Union (ITU)
chiamato SS7. Il protocollo SS7 è
largamente usato sia nelle reti ISDN che PSTN. Attualmente tale protocollo è
l’unico elemento dell’infrastruttura GSM capace di effettuare l’instradamento
dei pacchetti come avviene in una rete di tipo circuit-switching. SS7 è usato per trasportare segnali di controllo
e pacchetti SMS.
Osserviamo meglio dalla Figura 6 come è strutturato il
protocollo SS7.
Distinguiamo le seguenti componenti:
·
Mobile Application Part (MAP);
·
Transaction
Capability Application Part (TCAP);
·
SCCP;
·
MTP;
·
ISDN-User Part (ISUP) oppure Telephone User Part (TUP).
Figura
6: struttura stack del protocollo
SS7.
La componente ISUP
realizza le funzioni di segnalazione necessarie per supportare lo switch vocale
e applicazioni di dati in ambiente ISDN.
TCAP è un protocollo allo strato di applicazione, che
permette ad una applicazione su un nodo di invocare l’esecuzione di una
procedura residente su un nodo diverso, quindi scambiarsi il risultato di tale
operazione. Praticamente è una sorta di “CGI”.
Tale protocollo permette di isolare l’applicazione dai
dettagli dello strato di transizione, ponendola ad un livello d’astrazione
maggiore.
Il MAP usa i
servizi TCAP per gestire la capacità di segnalazione richiesta a supporto della
mobilità.
Dopo una panoramica sulle architetture ed i protocolli
usati in un rete GSM, è possibile immaginare uno scenario reale nel quale
operare.
Il sistema di SMS usa il protocollo di segnalazione
SS7 per trasmettere pacchetti di dati [5],
permettendo così ad un messaggio di testo di essere ricevuto quando un utente
sta effettuando una chiamata vocale o dati. Una unità MS attiva può inviare e ricevere
messaggi denominati Transport Protocol
Data Unit (TPDU) in ogni momento
anche se c’è una chiamata in corso. Solitamente sarà restituita una conferma al
centro messaggi SMSC indicando se la stazione mobile MS ha ricevuto o meno il
messaggio SMS. Inoltre la stazione mobile MS può ricevere una conferma dal
centro messaggi SMSC indicando che
E’ possibile distinguere l’azione di inviare messaggi
SMS ad un centro messaggi SMSC, detta SMS-Mobile Originated (SMS-MO),
dall’azione di ricevere messaggi SMS provenienti da un SMSC, detta SMS-Mobile Terminated (SMS-MT).
I messaggi possono anche essere memorizzati nella SIM
in modo da poter essere ricercati successivamente. Nel caso in cui un telefono
cellulare non è sotto copertura oppure
1.11
Architettura di base degli SMS
Le componenti principali di una architettura di un
rete di SMS sono illustrate in Figura 7.
Figura
7: architettura di rete SMS.
Quando occorre instradare un SMS generato da un
dispositivo mobile, il centro messaggi SMSC inoltra tale messaggio al SMS-GatewayMSC (SMS-GMSC), il quale interroga il database HLR per avere informazioni sul il routing, ed invia il messaggio
SMS ad un MSC appropriato. La componente MSC che riceve il messaggio lo
consegna alla stazione mobile MS.
Considerando l’altro verso, nel caso in cui deve
essere consegnato un messaggio a una MS, gli indirizzi della stazione mobile MS
di destinazione sono ricavati da informazioni globali dal centro messaggi SMSC.
Se il routing avviene fuori la rete pubblica, per esempio su Internet, il
messaggio verrà instradato attraverso un appropriato Short Message Service – InternetWorking MSC (SMS-IWMSC).
- Short
Messaging Entity: SME è l'entita attraverso la quale è
possibile inviare e ricevere un messaggio SMS (per esempio un telefono
cellulare o un Gateway SMS).
-
Short Message
Service Center: SMSC è
responsabile della trasmissione, della memorizzazione e della consegna di un
messaggio SMS fra un SME e un'altro telefono cellulare (o altro SMSC);
-
SMS-Gateway
MSC: si tratta di
un Mobile Switching Center capace di ricevere un SMS da un SMSC, di interrogare
l'HLR per le informazioni di routing, e quindi di inviare il messaggio ad un
altro MSC per la ricezione da parte del telefono cellulare destinatario;
- Home
Location Register: HLR è la banca dati utilitizzata per la
memorizzazione permanente dei dati degli abbonati con i relativi profili dei
servizi assegnati. Interrogando l'HLR, l'SMSC ottiene le informazioni di
routing necessarie alla spedizione del messaggio SMS all'abbonato;
- Mobile
Switching Center: MSC ha la funzione di commutare il
traffico vocale e dati verso la rete GSM;
- Visitor
Location Register: VLR è un database che contiene le
informazioni degli utenti che temporaneamente sono assegnati all'operatore
grazie alle funzioni di roaming.
Figura 8: architettura di rete SMS
Il centro messaggi SMSC identifica
univocamente ogni SMS aggiungendovi un time-stamp
(marcatura temporale del messaggio) nel campo SMS-DELIVER TP-SCTS. La precisione del time-stamp è al secondo, in
relazione all’arrivo del messaggio. Nel caso in cui arrivino due SMS nello
sesso tempo, il centro messaggi SMSC ha cura di settare un time-stamp
differente per i due messaggi concorrenti, al fine di evitare collisioni.
La stazione mobile MS è abilitata a
inviare e ricevere messaggi TPDU, eventualmente ricevere un messaggio di
conferma per la corretta ricezione. Inoltre
1.12 Architettura protocollare degli SMS
Gli strati del protocollo per gli SMS sono
illustrati in Figura 9.
Figura
9: architettura protocollare dello scambio di SMS point-to-point.
Lo strato Short Message-Transfer Layer (SM-TL)
serve lo strato Short Message-Application
Layer (SM-AL) , permettendo lo
scambio di SMS con un “peer”, in modo
da poter ricevere conferme di ricezione. Lo strato SM-TL scambia TPDU con le entità “peer”.
Lo strato Short Message-Relay Layer (SM-RL)
trasporta le TPDU attraverso lo strato Short
Message-Link Layer (SM-LL) [2].
1.13
Tipologie di TPDU per SMS
Ci sono 6 tipi di TPDU che sono trattate
dallo strato SM-TL elencate nella
Tabella 1:
· SMS-Deliver: trasporto di un messaggio da un centro
messaggi SMSC a una stazione mobile MS;
·
SMS-Deliver-Report: trasporto di informazione circa la causa
di un errore;
· SMS-Submit: trasporto di un messaggio da una
stazione mobile MS a un centro messaggi SMSC;
·
SMS-Submit-Report: trasporto di informazioni circa la causa
di un errore;
·
SMS-Status-Report: trasporto del rapporto sullo stato tra
SMSC e MS;
·
SMS-Command: trasporto di un comando tra MS e SMSC.
Tabella 1:
tipi di TPDU
Gli elementi di SMS-Deliver e SMS-Submit di
una TPDU sono mostrati in Figura 10.
Figura
10: elementi SMS-Deliver e SMS-Submit di
una TPDU.
Saranno trattati i campi principali, per
maggiori dettagli si rimanda al GSM 03.40 [2].Vediamo
in dettaglio alcuni elementi che vale la pena approfondire:
· TP-data-coding-scheme: l’elemento dello schema di codifica
dei dati (TP-DCS) è usato per
identificare lo schema di codifica usato dai dati di un utente. Questo schema
può essere di 7-8 bit oppure Unicode (16 bit) [6]
come definito nella specifica GSM 03.38 [7];
· TP-valid-period: l’elemento
TP-VP contiene informazioni che
permettono ad una stazione mobile MS di specificare il periodo di validità
relativo all’invio di SMS. Tale valore specifica per quanto tempo il centro
messaggi SMSC deve mantenere un messaggio “in vita” prima di poterlo eliminare;
· TP-more-message-to-send: il
centro messaggi SMSC usa l’elemento TP-MMTS
per informare la stazione mobile MS che uno o più messaggi sono in attesa di
essere recapitati;
· TP-user-data-header-indicator: il
primo bit dell’elemento TP-UDHI indica
quando
· TP-protocol-ID: l’elemento TP-pID è usato sia dalla stazione mobile MS che dal centro messaggi
SMSC per identificare il protocollo usato dallo strato superiore, per il
networking con alcuni tipi di dispositivi telematici come il Telefax (gruppo 3
o 4), Ermes, etc;
· TP-user-data: questo
elemento è utilizzato per trasportare il messaggio SMS. Esso può immagazzinare
fino a 160 ottetti di dati per messaggi SMS point-to-point. Inoltre trasporta
anche un header, seguendo le indicazioni del campo TP-UDHI. In tal caso lo
spazio preso dall’inserimento di un header, riduce lo spazio dei dati che
Figura
11: formati di una SMS-TPDU con 7 bit (sopra) e con 8 bit (in basso).
Esaminiamo
· il
campo User Data Lenght (UDL) fornisce la lunghezza del campo
dati dell’utente;
· il
campo User Data Header Lenght (UDHL) fornisce la lunghezza
dell’header;
· i
campi Information Element Identifier
(IEIx) forniscono identificatori di
elementi di informazione, usati per individuare SMS concatenati;
· i
campi Information Element Lenght (IELx) forniscono la lunghezza dei dati
utente che seguono (IED);
· i
campi Information Element Data (IEDx) contengono i dati.
Ogni campo è composto da 1 ottetto.
Nell’ultimo campo, quello destinato ai dati utente, è contenuto il messaggio
vero e proprio che può essere di 7 bit, 8 bit o 16 bit. Nel caso in cui sia di
7 bit e l’header non copre tutti i bit fino all’inizio del campo contenente il
messaggio vero e proprio, viene effettuato un “padding” per riempire i vuoti. Tale accorgimento ci permette di
avere una compatibilità verso il basso; vale a dire che anche i vecchi telefoni
cellulari che non supportano TP-UD possono visualizzare correttamente il
messaggio.
Il campo IEI è quello che permette di gestire messaggi concatenati. Questo
campo contiene tutte le informazioni necessarie affinché l’entità ricevente
possa riassemblare correttamente il messaggio concatenato. Vediamo nello
specifico come è strutturato:
· Primo ottetto: numero di riferimento del messaggio che
identifica il messaggio all’interno della stessa transazione;
· Secondo ottetto: specifica il numero di messaggi
costituenti il messaggio concatenato; questo numero non può essere superiore a
255;
· Terzo ottetto: identifica il numero di sequenza nel
caso in cui un messaggio faccia parte di un messaggio concatenato.
1.14
Considerazioni sul routing degli SMS
Nella Figura 12, un utente “A” di un rete
sta inviando un messaggio all’utente “B” di un’altra rete, effettuando il
roaming internazionale. L’utente “A” userà il centro messaggi SMSC della “rete
Figura
12: esempio di routing internazionale di
SMS in una rete GSM.
Il dispositivo mobile interagisce con la
rete locale, il messaggio SMS viene incapsulato in un pacchetto SCCP, di
concerto con il centro messaggi SMSC [9]. Il
pacchetto SCCP viene inoltrato e scambiato fino a quando non giunge al centro
messaggi destinatario (percorso 1). Il pacchetto SCCP viene inoltrato e
scambiato fino a quando non giunge al centro messaggi destinatario (percorso
1).
Il routing del pacchetto deve essere
attuato in ogni punto di smistamento dei pacchetti SCCP presente sul percorso
fino a destinazione. Appena il pacchetto SCCP consegna il messaggio alla sua
destinazione, viene inviato un messaggio di conferma di ricezione usando un
altro messaggio SCCP (percorso 2). Per consegnare il messaggio all’utente “B”,
il centro messaggi SMSC deve accedere al database HRL della sua rete locale.
Viene inviata una richiesta di localizzazione attraverso il centro messaggi
tramite un pacchetto SCCP, basata sul numero mobile dell’utente “B” (percorso
3). Quindi il protocollo internazionale SCCP provvede ad instradare il
pacchetto di richiesta ad un appropriato database HRL (percorso 4). Dopo ciò,
il centro messaggi invia il messaggio al VisitorMSC (VMSC)
dell’utente B in base alle informazioni ricevute dal HRL (percorso 5). Ora il
dispositivo VMSC può interrogare il
database VRL (percorsi 6 e 7) quindi consegnare il messaggio all’utente “B” (percorso
8). A conferma della corretta ricezione, il centro messaggi invia un pacchetto
SCCP di avvenuta consegna (percorso 9).
1.15
Gestione della perdita di pacchetti SCCP
Il protocollo di routing SCCP è basato su global title (informazioni di routing
globali) usate per effettuare lo switch dei pacchetti. Tali informazioni vanno
anche a beneficio dei centri messaggi SMSC. Le informazioni di routing sono
poste negli switch internazionali che usano
SCCP, i quali provvedono all’instradamento a livello internazionale dei
pacchetti. Alcuni switch internazionali controllano soltanto il prefisso
internazionale (es. 39 per l’Italia) e inoltrano il pacchetto al prossimo “hop”. Altri invece controllano anche il
prefisso di rete. Se nella tavola di routing di uno switch non è presente il
prefisso di in messaggio, questo viene rifiutato. Un altro motivo di rifiuto di
un SMS può derivare da una implementazione del centro servizi non compatibile.
La perdita di pacchetti può essere
schematizzata come segue:
· ricezione
da parte del mittente di un messaggio di “message
failed” nonostante il messaggio raggiunga la sua destinazione (in Figura
12, perdita del pacchetto 1) ;
· ricezione
da parte del destinatario (Figura 12, utente “B”) di un duplicato del messaggio
(Figura 12, perdita dei pacchetti 5 e 9); potrebbe essere causata da un
settaggio troppo basso del timeout da parte di un centro messaggi;
· nel
caso peggiore nessun messaggio sarà consegnato a nessuno (Figura 12, perdita
dei pacchetti 1, 3, 4 e 5).
1.16 Protocolli per l’invio di SMS
L’istituto European Telecommunications Standard Institute (ETSI) ha sviluppato
un protocollo per l’invio di messaggi SMS come parte dello standard GSM [10]. Queste specifiche individuato tre protocolli
di interfaccia Block Mode, Text Mode e PDU Mode, per il trasferimento degli SMS tra stazioni mobili MS,
attraverso una interfaccia asincrona.
Block Mode
Il Block
Mode è un protocollo binario che incapsula
Nel momento in cui una applicazione adotta
tale protocollo, ha acceso ad un insieme di funzionalità:
·
invio
di un messaggio;
·
cancellazione
di un messaggio dal telefono;
·
visione
dei messaggi nel telefono;
·
trasferimento
dei messaggi dal telefono all’applicazione;
· settare
il telefono in modo che ci sia una notifica all’applicazione ogni volta che
arriva un messaggio.
Ognuno di questi comandi contiene un
numero predefinito di elementi come descritto nella specifica, ad esempio: il
formato del comando Insert Message
usato per inviare un SMS è illustrato nella Tabella 2.
Tabella 2:
invio di un SMS usando Block Mode.
Text Mode
Questo è un protocollo basato su
caratteri, nello specifico basato sui comandi AT modificati per GSM. I comandi AT sono stringhe alfanumeriche; un
uso noto a molti è quello orientato alla configurazione di modem. Text Mode è particolarmente adatto a
terminali intelligenti o emulatori di terminali, piuttosto che ad applicazioni
software basate su una struttura a comandi. L’applicazione passa il messaggio
in chiaro al telefono che costruisce
Tabella
3: invio di un SMS usando Text Mode.
PDU Mode
Il protocollo PDU Mode è molto simile al Text
Mode, con la differenza che il primo delega all’applicazione la
responsabilità di costruire
Altri protocolli: Text-Based
Solitamente questo tipo di protocolli è
proprietario, vale a dire sviluppato come interfaccia tra un centro messaggi
SMSC ed un operatore di rete cellulare digitale. Il vantaggio dei protocolli
basati su testo è che l’utente non ha bisogno di un client speciale per inviare messaggi; è possibile dialogare con
centri messaggi appropriati usando qualsiasi software di emulazione terminale.
Figura 13:
invio di un SMS usando Telenote.
Come sempre esistono anche degli
svantaggi: i protocolli basati sul testo offrono un supporto limitato per un insieme di caratteri esteso. L’utente
è abilitato solamente ad inviare messaggi e ricevere conferme di invio. Il
centro messaggi SMSC non è abilitato a notificare se il messaggio è stato
ricevuto correttamente dal destinatario.
Altri protoccolli: Telocator Alphanumeric
Protocol (TAP)
Sviluppato da Telecom Securicor Cellular
Radio Limited, Telocator Alphanumeric
Protocol (TAP) [12] contiene molte più features rispetto ai
protocolli basati su testo, mostrando una maggiore flessibilità.
Figura 14: invio di un SMS usando TAP.
Nella sua implementazione completa, il
protocollo permette all’utente di eseguire le seguenti operazioni:
1. inviare un messaggio e riceverne la conferma
di accettazione;
2. inviare un messaggio e ricevere lo
informazioni sul primo tentativo di consegna;
3. interrogare lo stato corrente del
messaggio inviato secondo la modalità 1 o
2;
4. cancellare il messaggio inviato con la
modalità 1 o 2;
5. sostituire il messaggio inviato con la 1 o
6. aggiornare il messaggio inviato con la 1 o
2. Se il messaggio è ancora nel centro messaggi SMSC viene aggiornato,
altrimenti viene inviato un nuovo messaggio al dispositivo mobile.
TAP è un protocollo session-based. Ogni sessione prevede un log-on, un numero di
transazioni e un log-off, come mostrato in Figura 14.