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.

 

 

 

1.1   Cronologia progetto GSM

 

·        1982: la CEPT (Conférence Européenne des Administrations des Postes et des Télécommunications) istituisce un gruppo speciale per lo studio di un insieme uniforme di regole per lo sviluppo di una futura rete cellulare pan-europea: il Groupe Spécial Mobile da cui GSM.

 

·        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 Mobile Communications (GSM)

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 2” dello sviluppo di reti GSM, basandosi sulla capacità di un terminale cellulare digitale di inviare e ricevere messaggi alfanumerici. La lunghezza di un SMS tipicamente può essere al più di 160 bytes ed è consegnato al destinatario in pochi secondi, laddove sia presente la copertura del servizio GSM. La consegna di un messaggio di testo è garantita anche quando il terminale ricevente non è disponibile, perché fuori copertura oppure spento. In tal caso la rete si fa carico di memorizzare il messaggio e consegnarlo appena il terminale ricevente diventa disponibile. Il fatto che il servizio SMS supporti il Roaming Internazionale (capacità di veicolare il traffico attraverso reti distinte a livello internazionale) con tempi di latenza trascurabili, rende tale servizio estremamente popolare nell’industria della comunicazione e adattabile ad applicazioni quali paging, e-mail e voice-mail notification.

 

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.

 

 

1.5  Mobile Station

La Mobile Station (MS) è il terminale che connette l`utente con la rete. Nel sistema GSM per la prima volta è stato introdotto un nuovo concetto, viene fatta una distinzione tra il cliente radiomobile e il terminale in uso. Per consentire questa distinzione la stazione mobile MS è composta da due componenti:

·        Mobile Termination (MT);

·        Subscriber Identity Module (SIM).

 

Figura 2: Struttura di una stazione mobile MS.

 

 

La SIM card è una scheda di memoria estraibile su cui sono memorizzati i dati descrittivi dell'abbonato, compreso il numero di telefono. La SIM dà la possibilità a un utente di accedere ai servizi sottoscritti in relazione al terminale d’accesso usato. L’inserimento di una SIM in un qualsiasi cellulare GSM permette all’utente di accedere alla rete, ricevere ed effettuare chiamate ed usare tutti i servizi abilitati dall’utente possessore della SIM.

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 la SIM, questa può essere protetta contro un uso non autorizzato tramite un codice personale (PIN).

Le componenti Mobile Station e Base Station Subsystem, interagiscono attraverso una interfaccia detta Um, meglio conosciuta come collegamento radio (oppure interfaccia air).

 

In definitiva la MS è un modulo costituito da apparecchiature fisiche utilizzate dall’utente mobile, per connettersi alla rete ed usufruire dei servizi GSM. Tale apparecchiatura è costituita dalla SIM, che è una smart card intelligente e dal terminale mobile detto Mobile Equipment (ME).

    

 

 

1.6  Base Station Subsystem

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 BSS è l’entità responsabile della comunicazione con la stazione mobile MS. Un dispositivo mobile che si trova in una cella comunica con la stazione base di quella cella; quando passa in una cella adiacente comunica con la stazione base della nuova cella.

 

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 BSC inoltre cura la conversione del canale voce usato sul collegamento radio a 13 kb/s, al canale standardizzato a 64 kb/s usato dalle reti telefoniche pubbliche Public Switched Telephone Network (PSTN).

 

 

1.7  Network Subsystem

La componente che funge da centro di smistamento denominata MSC è il cuore del Network Subsystem. La MSC effettua le stesse funzioni di un nodo in una rete telefonica pubblica o in una ISDN. Inoltre assolve a tutte le funzionalità necessarie ad un utente mobile, quali la registrazione, autenticazione, aggiornamento della localizzazione, handover e il routing di un cliente che ha richiesto un servizio di roaming. La componente MSC agisce anche come un gateway tra reti di telefonia pubblica PSTN o reti ISDN e funge da interfaccia verso il centro messaggi SMSC.

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.

 

La Figura 5 dà una visione più accurata dei sottostrati di SCCP e MTP secondo il modello Open System Interconnection (OSI).

 

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.


1.9  Protocollo 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.

 

La TUP realizza le funzioni base per il controllo di una chiamata per reti telefoniche ordinarie nazionali e internazionali.

 

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à.

 

 

 

1.10  Implementazione pratica

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 la TDPU è stata ricevuta con successo. Il software della stazione mobile deve essere in grado di decodificare e immagazzinare i messaggi.

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 la SIM è piena, il centro messaggi SMSC memorizza i messaggi. Appena il telefono sarà sotto copertura o lo spazio sulla SIM diverrà disponibile, il centro messaggi effettuerà la consegna dei messaggi.

Scopriamo ora quale può essere l'architettura di base e l'architettura protocollare di una rete di SMS. In seguito verrà focalizzata l'attenzione sulle tipologie di TPDU.

 

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).

 

La Figura 8 illustra in maniera più chiara e dettagliata quanto descritto:

-        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). La SME può essere presente all'interno di una rete fissa;

-         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 la MS ha la responsabilità di notificare alla rete quando ha spazio disponibile per ricevere messaggi.

 

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 la TP-UD include un header addizionale come SMS;

 

·       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 la TPDU può trasportare.

 

 

La Figura 11 illustra una rappresentazione dello schema di un elemento TP-UD con uno schema di codifica dati di 7 o 8 bit.

 

                                                                                   Figura 11: formati di una SMS-TPDU con 7 bit (sopra) e con 8 bit (in basso).

 

 

Esaminiamo la Figura 11 in particolare:

 

·       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 1” per inviare il suo SMS [8].

 

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. Inoltre saranno analizzati altri protocolli proprietari quali Text-Based e TAP.

 

Block Mode

Il Block Mode è un protocollo binario che incapsula la TPDU di un SMS, usata per veicolare il messaggio tra stazioni mobili MS e centro messaggi SMSC definiti nella specifica GSM 03.40 [2]. Questo protocollo prevede la capacità di trovare errori, quindi è molto utile nelle applicazioni in cui il collegamento non è affidabile. Block Mode  si presta bene al controllo remoto, poiché l’applicazione costruisce una stringa binaria costituita da un header  e dalla TPDU relativa al messaggio (SMS-TPDU).

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 la TPDU relativa (Tabella 3). Questo significa che questo protocollo offre molte meno funzionalità rispetto agli altri due protocolli per invio di SMS. Il protoccolo Text Mode supporta soltanto la notifica di un nuovo messaggio.

 

 

                                             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 la TPDU del messaggio. Oltre ai vantaggi d’uso dei comandi AT, questo protocollo permette di costruire delle TPDU più complicate; vale a dire che può trasmettere dati binari e non solo caratteri.

 

 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. La Figura 13 descrive l’invio di un messaggio usando un protocollo basato su Telenote-text.

 

                                                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 2, a meno che non sia stato già consegnato al dispositivo mobile;

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.

 

 

 

 

 

» vai al Capitolo II «