Progettazione e sviluppo di un prototipo per la

Transcript

Progettazione e sviluppo di un prototipo per la
•
UNIVERSITÀ POLITECNICA DELLE MARCHE
FACOLTÀ DI INGEGNERIA
Corso di Laurea Specialistica in Ingegneria Informatica
Progettazione e sviluppo di un prototipo per la
comunicazione sicura attraverso il canale GSM-Voce
TESI DI LAUREA
Relatore:
Tesi di Laurea di:
Chiar.mo Prof. Aldo Franco Dragoni
Anno Accademico 2010-2011
Gianluigi Biancucci
Indice
1. Il Progetto
1.1 Introduzione
1.2 Obbiettivi
1.3 Descrizione preliminare
2. Environment tecnologico del progetto di ricerca
2.1 Il canale GSM
2.1.1 Codifica vocale GSM
2.1.2 Adaptive Multi Rate
2.1.3 Linear Predictive Coding
2.1.4 Codifica ACELP
2.1.5 ACELP in dettaglio
2.2 Bluetooth
2.2.1 Bluetooth Hands Free Profile
2.3 Crittografia
2.3.1 Scambio di chiavi ed autenticazione
2.4 Modulazione digitale
2.4.1 Amplitude-shift Keying (ASK)
2.4.2 Frequency-shift Keying (FSK)
2.4.3 Phase-shift Keying (PSK)
3. Le soluzioni attualmente presenti nel mercato
3.1 La situazione attuale
3.2 Un esempio: TopSec Mobile
3.2.1 Autenticazione
2
3.2.2 Osservazioni
4. Il lavoro svolto
4.1 Tutela del segreto aziendale
4.2 La codifica della voce
4.3 Cifratura ed Autenticazione
4.4 La comunicazione con il cellulare
4.5 Modulazione e Demodulazione
5. Il prototipo realizzato: implementazione
5.1 Sviluppo Bluetooth: il punto della situazione
5.1.1 Gnu/Linux e BlueTooth Hands-Free Profile
5.1.2 Configurazione e Test
5.2 La piattaforma di sviluppo
5.3 L'implementazione software sviluppata
6.Test Effettuati
6.1 Banda di frequenze garantita dall'encoder GSM
6.1.1 Metodologia di Test
6.1.2 Risultati
6.2 Il test del prototipo sviluppato
6.2.1 Metodologia di Test
6.2.2 Risultati
7. Conclusioni e sviluppi futuri
Appendice A
Bibliografia
Ringraziamenti
3
4
“No, la nostra scienza non è un’illusione.
Sarebbe invece un’illusione credere di poter ottenere da altre fonti ciò che essa non è
in grado di darci.”
(S. Freud)
5
Capitolo 1
Il Progetto
1. Il Progetto
1.1
Introduzione
La rete di comunicazione più utilizzata a livello globale è sicuramente il
canale GSM-Voce. Sfortunatamente queste reti sono affette da seri problemi di
vulnerabilità agli attacchi “hardware-based” rendendo quindi la comunicazione
facile da intercettare in determinati scenari1.
Sebbene sia stata provata l'efficacia degli algoritmi di cifratura utilizzati nel
canale GSM-Voce2 , la confidenzialità del traffico è assicurata solamente
attraverso il canale radio:
il traffico vocale infatti è trasmesso in chiaro
attraverso le “core networks” (ovvero la sottorete della struttura GSM, posta a
terra, che permette l'instradamento delle chiamate da dispositivi mobile verso la
1 M. Toorani, A. A. Beheshti Shirazi, (2008), “Solutions to the GSM Security Weaknesses”, The Second
International Conference on Next Generation Mobile Applications, Services and Technologies
2 C. Lo, Y. Chen, (1999), “Secure communication mechanisms for GSM networks”, IEEE
Transactions on Consumer Electronics, Vol 45.
6
Capitolo 1
Il Progetto
rete PSTN classica od in roaming).
Ovviamente questa problematica potrebbe portare alla possibilità di accessi non
autorizzati a conversazioni GSM-GSM nel qual caso la confidenzialità della
comunicazione non è controllata dall'utente ma dall'operatore di rete.
Uno scenario in cui la sicurezza della comunicazione è delegata all'utente
è preferibile in molte applicazioni (militare, spionaggio industriale, etc...): per
realizzare ciò è necessario che la trasmissione sia cifrata prima di essere
trasmessa nella rete GSM-Voce. [Figura 1.1].
Voice
Encryption
Gsm
Compression
GSM
Communication Network
Voice
Decryption
Gsm
Decompression
Figura 1.1: Cifratura lato utente
Anche il canale GSM-Dati può essere utilizzato per instaurare una conversazione
cifrata, (e ne esistono alcuni esempi di dispositivi in commercio) ma questo
approccio soffre di alcuni svantaggi3:
•
Il canale GSM-Dati soffre di alcuni evidenti problemi di interoperabilità
attraverso le reti internazionali4
3 N.N. Katugampala, K.T.Al-Naimi, S. Villeie, A. Kondoz, (2004), “Real time data transmission
over GSM voice channel for secure voice and data applications”, IEE Secure Mobile Communications
Forum: Exploring the technical Challenges in Secure GSM and WLAN
4 Michael Street, (2003), “Interoperability and international operation: An introduction to endto-end mobile security”, IEEE Secure GSM and Beyond: End to End Security for Mobile
Communications.
7
Capitolo 1
Il Progetto
•
Il canale GSM-Dati richiede in media il doppio del tempo per instaurare
una comunicazione rispetto alla linea voce.
Risulta quindi evidente come lo sviluppo di un dispositivo con tali
caratteristiche possa portare dei vantaggi tangibili e colmare le lacune principali
di cui soffrono gli attuali dispositivi che operano all'interno dello stesso
contesto.
8
Capitolo 1
Il Progetto
1.2 Obbiettivi
L'obbiettivo finale del progetto, all'interno del quale il mio lavoro di
tirocinio si colloca, è quello di sviluppare un dispositivo che agisca da interfaccia
tra l'utente ed un qualsiasi cellulare instaurando così una comunicazione cifrata
attraverso il canale GSM-Voce. Il dispositivo dovrà quindi essere in grado di
interfacciarsi correttamente con il telefono,
gestire
in maniera ideale la
cifratura e l'autenticazione tra i due dispositivi, garantendo al tempo stesso una
comunicazione fluida e priva di errori [Figura 1.2].
INPUT
SPEECH
DEVICE A
GSM
Communication Network
OUTPUT
SPEECH
DEVICE B
Figura 1.2: Il dispositivo oggetto di ricerca
La realizzazione di un tale obbiettivo obbliga uno studio interdisciplinare
del problema, spaziando da argomenti di informatica ad argomenti di
telecomunicazioni e passando per argomenti tipici dell'elettronica; risulta quindi
chiaro come un progetto di tale portata non possa essere iniziato e concluso
nell'ambito di un tirocinio universitario ma richiede maggior tempo e sforzi di
9
Capitolo 1
Il Progetto
ricerca.
In particolare, il lavoro da me svolto ( di cui questa tesi ne è il resoconto e
la conclusione ) si colloca nella fase di avvio del progetto: l'obbiettivo è stato
quello di discernere le problematiche principali relativamente a differenti ambiti
di studio interdisciplinari, per poi passare in un secondo momento allo sviluppo
di un prototipo utile come “proof-of-concept” delle soluzioni prospettate.
10
Capitolo 1
Il Progetto
1.3 Descrizione preliminare
Vediamo ora di descrivere ad un primo livello di dettaglio il dispositivo in
questione; mostrando quali sono i contesti tecnologici e di ricerca che uno
studio di questo tipo va a toccare.
Come detto in precedenza, il dispositivo dovrà fungere da interfaccia tra
l'utente ed il cellulare instaurando una comunicazione cifrata fluida e priva di
errori.
Un primo vincolo che caratterizzerà lo studio è il canale dove verrà instaurata la
comunicazione: si è scelto l'utilizzo del canale GSM-Voce invece di quello dati a
causa dei problemi già documentati di cui una comunicazione su questo canale
soffre.
Oltre a ciò, il telefono cellulare connesso al nostro dispositivo è visto dallo stesso
come una black-box nella quale non possiamo intervenire ma unicamente
interfacciarci in modo corretto.
Per raggiungere un tale risultato si è scelto inoltre di effettuare il cifraggio
in maniera digitale: ciò ci permette di avere una robustezza maggiore rispetto ai
classici scrambler5 analogici e di riutilizzare il know-how e la letteratura esistente
in diversi ambiti. D'altro canto, questa strada comporta scelte più onerose a
livello computazionale e di conversione dei segnali come vedremo in seguito.
Ad una prima analisi, si può evidenziare come per instaurare la
comunicazione il dispositivo deve svolgere le seguenti attività [Figura 1.3]:
•
Conversione della voce in un segnale digitale tramite un codec low-rate
•
Suddivisione in pacchetti e cifratura dello stream vocale
5 Advances in Digital Speech Transmission (Martin, Ulrich)
11
Capitolo 1
Il Progetto
•
Modulazione e conversione D/A dei singoli pacchetti cifrati in una forma
d'onda analogica.
•
Invio del segnale analogico al telefono tramite una interfaccia universale
(wired o wireless)
DEVICE A
Speech
Encoder
INPUT
SPEECH
1011000...
Data
Encryption
1101001...
Data
Modulation
GSM
Communication Network
DEVICE B
Data
Demodulation
1101001...
Data
Decryption
1011000...
Speech
Decoder
OUTPUT
SPEECH
Figura 1.3: Blocchi funzionali del dispositivo quando agisce come
mittente o ricevente
Quanto appena detto è valido relativamente ad un dispositivo che agisce da
mittente: ovviamente la logica funzionale dello stesso dispositivo quando agisce
da ricevente è, come si può notare in figura, esattamente inversa.
Per comprendere appieno le scelte effettuate durante lo sviluppo del
primo prototipo è necessario innanzitutto introdurre l'environment tecnologico
in cui la ricerca si colloca, al fine di valutare le tecnologie da utilizzare ed i vincoli
da superare.
12
Capitolo 2
Environment tecnologico del progetto di ricerca
2. Environment tecnologico del progetto di ricerca
2.1 Il canale GSM
Il GSM (Global System for Mobile Communications) è uno standard
sviluppato dall'Istituto Europeo per le Telecomunicazioni (ETSI) per descrivere le
tecnologia di seconda generazione delle reti cellulari. Sviluppato inizialmente
come rimpiazzo delle reti di prima generazione analogiche, lo standard GSM
definisce una linea digitale, a commutazione di circuito, ottimizzata per
comunicazioni vocali full-duplex. Lo standard è stato esteso nel tempo
aggiungendo dapprima una linea per lo scambio di dati che funzionasse sopra
l'infrastruttura a commutazione di circuito della rete GSM (CSD), in seguito la
possibilità di una connessione a commutazione di pacchetto per lo scambio di
dati e l'accesso ad internet (GPRS) con velocità sempre crescenti (EDGE).
13
Capitolo 2
Environment tecnologico del progetto di ricerca
Lo scambio di dati tramite protocollo GSM-CSD è oggigiorno ormai in disuso.
Il GSM è una rete cellulare, questo significa che i telefoni si connettono
alla rete cercando delle celle nelle immediate vicinanze. Il diametro e la
distribuzione di queste celle cambia a seconda della conformazione geografica e
della densità di abitanti del luogo. La trasmissione tra il telefono è limitata ad un
massimo di 2 watt di potenza ed a quattro bande di frequenza 850/900 Mhz e
1800/1900 Mhz.
La struttura tipica di una rete GSM è quella mostrata in figura 2.1.
Figura 2.1 : Infrastruttura GSM
Si possono evidenziare le seguenti sottosezioni della rete:
•
Mobile Stations (MS): coincide con i dispositivi terminali con cui si
interfacciano le utenze
•
Base Station Subsystem: é la componente che caratterizza la rete
cellulare rispetto alle reti cablate ed implementa la comunicazione tra il
14
Capitolo 2
Environment tecnologico del progetto di ricerca
terminale mobile e la rete di trasporto interna. Questa comprende la BTS
(Base Transceiver Station ) che funge da interfaccia radio tra i terminali
mobili ed il BSC (Base Station Controller) che rappresenta il “cervello”
della rete GSM gestendo tutti gli aspetti del protocollo e la
comunicazione tra interfaccia radio e rete fissa
•
Core Network: rappresenta la componente di rete fissa che si interfaccia
con la rete cellulare. Questa è suddivisa in NSS (Network Subsystem) che
è la sottorete che instrada i dati verso la rete di telefonia PSTN classica, e
nella GPRS Core network , ovvero la parte di rete opzionale che
implementa la commutazione di pacchetto per l'accesso ad internet.
Come già sottolineato in precedenza (Vedi Sez. 1.1), la sicurezza della
comunicazione è garantita tra la stazione mobile e la BSS, mentre tra la BSS ed il
resto della rete la comunicazione viaggia in chiaro.
Risulta evidente l'esigenza di cifrare la comunicazione lato utente al fine di
evitare attacchi di tipo man-in-the-middle1 che accedono ai dati in chiaro.
Essendo la linea GSM una linea digitale, Il vincolo principale affinchè il
nostro stream vocale cifrato venga inviato e ricevuto correttamente attraverso il
canale GSM-Voce, è posto nell'algoritmo di codifica e compressione della voce
presente nelle mobile stations. Analizziamo ora in dettaglio questo aspetto.
1 http://en.wikipedia.org/wiki/Man-in-the-middle_attack
15
Capitolo 2
Environment tecnologico del progetto di ricerca
2.1.1 Codifica vocale GSM
La voce, intesa come suono generato dalla vibrazione delle corde vocali,
viene convertita in un segnale elettrico dal trasduttore presente nel telefono
(microfono). Questo segnale elettrico (analogico) viene successivamente
convertito e campionanto in digitale dall'Analog-Digital
Converter (ADC)
integrato nel telefono per poi essere compresso dal codec vocale GSM ed inviato
sulla linea GSM-Voce [Figura 2.2].
INPUT
SPEECH
ADC
Audio Converter
PCM Audio
Stream
8Khz Sampling rate
13 bit per Sample
GSM Codec
Compression
GSM
Communication Network
Figura 2.2: Flusso vocale all'intero di un cellulare
Il segnale in uscita dall'ADC utilizza la codifica Pulse Code Modulation
(PCM). Attraverso questa codifica viene rappresentato il parlato in un numero
fisso di campioni al secondo. Poichè il campionamento avviene ad 8 Khz è
necessario rispettare il teorema del campionamento di nyquist-shannon:
f c >2f s
dove fc è la frequenza di campionamento e fs è la più alta frequenza del segnale.
Affinchè ciò avvenga, viene applicato nello stadio pre-campionamento un filtro
anti-aliasing passa banda 200-3400Hz secondo le ultime specifiche GSM 06.90
16
Capitolo 2
Environment tecnologico del progetto di ricerca
( 1998 ) e viene codificato ogni sample con 13 bit.
Figura 2.3: Codifica PCM del segnale vocale
Il segnale risultante, con un bit-rate di 104 kbps, viene poi compresso
attraverso il codec vocale GSM [Figura 2.2]. Lo standard GSM, evolutosi nel corso
del tempo, includeva inizialmente 2 codec vocali: Full-Rate (FR) (GSM 06.10) e
Half-Rate (HR) (GSM 06.20). E' stato poi aggiunto il codec Enhanced Full Rate
(EFR) e con lo standard GSM 06.90 sono state incluse le codifiche Adaptive Multi
Rate (AMR) che consentono di ottenere un bit-rate variabile, anche inferiore
rispetto agli standard precedenti e con una qualità audio migliore [Tabella 2.4].
Codec
Bit Rate (Kbit/s)
Codec Type
Full Rate
13
RTE-LTP
Half Rate
5.6
VSELP
Enhanced Full Rate
12.2
ACELP
AMR 12.2
12.2
ACELP
AMR 10.2
10.2
ACELP
AMR 7.95
7.95
ACELP
AMR 7.4
7.4
ACELP
AMR 6.7
6.7
ACELP
AMR 5.9
5.9
ACELP
AMR 5.15
5.15
ACELP
AMR 4.75
4.75
ACELP
Tabella 2.4: Codec supportati dallo standard GSM 06.90 e successivi
Poiché dallo standard GSM 06.90 del 1998 tutti i telefoni cellulari utilizzano la
codifica AMR, analizzeremo qui di seguito questo tipo di codec, sapendo che
17
Capitolo 2
Environment tecnologico del progetto di ricerca
sarà proprio questo codec l'incaricato di comprimere lo stream audio criptato in
uscita dal nostro dispositivo.
18
Capitolo 2
Environment tecnologico del progetto di ricerca
2.1.2 Adaptive Multi Rate
Il codec AMR (chiamato anche AMR Narrow Band, AMR-NB) rappresenta
lo stato dell'arte in fatto di codificatori vocali per reti radiomobili, è stato
introdotto come standard per le reti di terza generazione per poi diventare uno
standard anche per le reti GSM (GSM 06.90). L'Adaptive Multi Rate è un sistema
di codifica di tipo multimodale, offrendo otto diverse frequenze di cifra possibili
(12.2 Kbit/s , 10.2 Kbit/s , 7.95 Kbit/s , 7.40 Kbit/s , 6.70 Kbit/s , 5.90 Kbit/s ,
5.15 Kbit/s , 4.75 Kbit/s ), con la possibilità, durante la trasmissione di cambiare
da un rate a un altro agendo sulla codifica di canale.
Questa caratteristica è chiamata Discontinuous Transmission (DTX) 2.
Per risparmiare bandwith, durante i periodi di silenzio, questo tipo di codifica
utilizza tecniche di Voice Detection2 e Confort Noise Generation2 per sostituire ai
periodi di silenzio del rumore artificiale che risulta più confortevole all'orecchio
umano evitando così agli utenti di confondere un periodo di silenzio con
l'assenza della comunicazione.
L' Adaptive Multi Rate è un codec ibrido ( questo significa che lavora sia nel
dominio della frequenza che nel dominio del tempo come vedremo in seguito)
ed utilizza il codificatore Algebraic Code Excited Linear Prediction (ACELP) per
comprimere il segnale vocale PCM 8KHz/13bit filtrato tra 200-3400Hz di cui
abbiamo parlato in precedenza.
Prima di presentare il codificatore ACELP, è necessario introdurre lo
schema di analisi Linear Predictive Coding sul quale questo si basa, ovvero la
codifica della voce basata sulla predizione lineare.
2 GSM, GPRS and edge performance: evolution towards 3G/UMTS, Halonen, Romero
19
Capitolo 2
Environment tecnologico del progetto di ricerca
2.1.3 Linear Predictive Coding
L'idea alla base dell'analisi predittiva è che un campione di parlato è
rappresentabile come combinazione lineare dei campioni ad esso precedenti:
p
s( n)≃̂s (n)=a1 s( n−1)+a 2 s (n−2)+...+a p s( n− p)=∑ a k s(n−k )
k =1
dove
s( n) rappresenta l'n-esimo campione,
̂s (n) rappresenta invece la sua
stima, come combinazione lineare dei coefficienti precedenti. Definiamo invece
con e (n) l'errore di predizione dato da:
e (n)=s (n)−̂s ( n)
Il calcolo dei singoli coefficienti
a k (determinati in maniera ottima)
contengono l'informazione spettrale del segnale in ingresso e permettono la
ricostruzione del segnale attraverso un Filtro Infinite Impulse Response3.
L’ipotesi principale per applicare l’analisi LPC al parlato è il fatto che questo si
mantenga ,all’incirca stazionario per un periodo di tempo; si può dimostrare che
avendo in ingresso un segnale campionato a 8 KHz , la stazionarietà sarà
mantenuta per circa 80-130 campioni, ovvero 10-16 ms. Quindi, una volta
segmentato il segnale in intervalli (lo standard GSM-AMR utilizza intervalli di 160
campioni, 20 ms), verrà applicata a ciascun vettore un’analisi di predizione
lineare, con un numero di coefficienti k solitamente variabile tra 8 e 14, (lo
standard LPC-10 ne utilizza 10 così come il codec AMR).
3 http://it.wikipedia.org/wiki/Infinite_impulse_response
20
Capitolo 2
Environment tecnologico del progetto di ricerca
2.1.4 Codifica ACELP
La codifica ACELP rappresenta lo stato dell'arte in fatto di codificatori
vocali, permettendo di creare segnali di buona qualità con bit-rate nell'ordine
dei 4 Kbit/s. L'Algebraic Code Exicited Linear Prediction è basato, come si può
intuire dal nome, su algoritmi di predizione lineare.
La particolarità di questo metodo sta nel come viene trattato il residuo di
predizione o errore di predizione
e (n) . Nella codifica predittiva infatti, se
l'errore residuo fosse usato come eccitazione del filtro in ricezione, si otterrebbe
un segnale identico all'originale. Di conseguenza se l'eccitazione si avvicinasse di
molto al residuo di predizione, allora il segnale ricostruito avrebbe comunque
una qualità molto elevata.
L'innovazione della codifica ACELP è avere già a disposizione delle possibili
eccitazioni ed inviare quella che più si avvicina al residue del segnale predetto al
mittente.
In questo caso quindi non sarà più necessario spedire il residuo ma solo un
indirizzo ad una parola in un elenco o codebook, ovviamente noto anche al
ricevitore.
La codifica ACELP si pone in un panorama più ampio di codificatori Analysis-bySynthesis, questi codificatori si appoggiano tutti sullo schema LPC, tuttavia in
essi si pone il problema di una buona qualità del parlato, quindi useranno alcune
operazioni per trattare anche il residuo di predizione. A questo proposito, i
codificatori Analysis-by-Synthesis usano due filtri di predizione, uno a breve
termine, per eliminare la prima ridondanza tra campioni vicini, generata dalle
tipiche variazioni dello spettro del segnale vocale (le formanti), e uno a lungo
termine per trovare una possibile ridondanza tra campioni lontani.
21
Capitolo 2
Environment tecnologico del progetto di ricerca
Figura 2.4: predittori LPC in cascata nello schema Analysis by Synthesis
L’azione combinata dei due predittori permette di avere come risultato un
residuo di predizione che può essere rappresentato e trasmesso in modo
efficiente. In figura (2.5) si mostra un esempio del codificatore Analysis-bySynthesis. Si noti che la pesatura dell’errore viene effettuata per
motivi
psicoacustici, infatti, si cercherà di distribuire l’errore dove è meno percettibile
per l’udito umano.
Figura 2.5: Esempio di codificatore Analysis by Synthesis
22
Capitolo 2
Environment tecnologico del progetto di ricerca
2.1.5 ACELP nel dettaglio
Il codificatore ACELP si basa su uno schema di funzionamento CELP, code
Excited Linear Prediction, e differisce da quest'ultimo solo nel modo in cui viene
scelta l'eccitazione relativa al segnale uscente dai due blocchi di analisi
predittiva (LPC, Short Term predictor).
Figura 2.6: codificatore ACELP (AMR GSM 09.60 )
Il sistema riceve in ingresso il segnale PCM descritto in precedenza suddiviso in
segmenti temporali di 160 campioni (20ms) suddivisi in di 40 campioni.
Il primo passo sarà l'analisi LPC in sottofinestre da 40 campioni sulle quali
verranno calcolati i coefficienti
a k , successivamente verrà effettuata l'analisi
LTP che prenderà in input i 40 campioni attuali ed i precedenti per generare il
filtro di predizione a lungo termine sulla finestra da 160 campioni.
23
Capitolo 2
Environment tecnologico del progetto di ricerca
Verrà quindi calcolato l'errore residuo
e ' (n) decorrelato da dal segnale di
pitch (ma dipendente dall'eccitazione di pitch precedente).
L'ultimo passo della codifica ACELP è la ricerca nel codebook del errore residuo
da inviare che sia più simile al residuo attuale minimizzato ( tramite il filtro
W (z ) ).
Concludendo, quanto detto fino ad ora, mostra a livello generale lo
studio effettuato sulle codifiche GSM che, nel corso del progetto di ricerca, è
state dettagliato, approfondito e focalizzato a raggiungere specifici obbiettivi di
sviluppo.
24
Capitolo 2
Environment tecnologico del progetto di ricerca
2.2 Bluetooth
L'idea alla base del progetto è quella di interfacciare il dispositivo in fase
di studio con il telefono cellulare tramite una connessione Bluetooth4.
Analizziamo brevemente le caratteristiche fondamentali del protocollo.
Il Bluetooth (BT) è uno standard per la comunicazione wireless a corta distanza
per reti personali senza fili (Wireless Personal Area Network – WPAN) con alti
livelli di sicurezza. E' un protocollo open, ma proprietario poiché richiede
l'acquisto di licenze per poter essere implementato.
Il Bluetooth usa il Frequency-Hopping spread spectrum5 per inviare i dati tramite
il modulo radio: il dato da inviare viene suddiviso e trasmesso su 79 bande da 1
mhz ognuna compresa tra i 2402 ed i 2480 -Mhz.
Il protocollo è basato sullo scambio di pacchetto con un data-rate massimo nella
versione 3.0 di 24 Mbit/s ed un raggio di copertura massimo di 10 metri.
L'infrastruttura di una rete Bluetooth non è omogenea, ma ha un architettura di
tipo master-slave, dove ogni master può essere connesso con un massimo di 7
slave definendo così una piconet. Lo scambio di pacchetti è basato sul clock
definito dal master, che tutti i device connessi nella piconet condividono.
Il ruolo master-slave in una piconet non è immutabile ma un dispositivo può
decidere di passare da master a slave per ragioni specifiche.
Lo scheduling della comunicazione all'interno del master, è effettuato attraverso
algoritmi similial round-robin6 per evitare la starvation6.
Il Bluetooth utilizza un algoritmo basato sul SAFER+7 per autenticare i dispositivi
e generare la chiave simmetrica di comunicazione. La generazione della chiave è
4
5
6
7
Http://www.bluetooth.org
Spread Spectrum Signals for Digital Communications, Proakis
I moderni sistemi operativi, tenenbaum
http://en.wikipedia.org/wiki/SAFER
25
Capitolo 2
Environment tecnologico del progetto di ricerca
basata sul PIN , codice che deve essere inserito in entrambi i telefoni prima di
avviare la comunicazione. Durante questo meccanisco di pairing, viene generata
la master Key usata per la comunicazione simmetrica.
Dallo standard 2.1 la sicurezza è garantita anche laddove in precedenza vi
erano evidenti lacune (es. un attacco XOR portanto per un sufficente periodo di
tempo poteva facilmente trovare la chiave in quanto la validità della stessa è
limitata nel tempo.)
Una caratteristica fondamentale dello stack Bluetooth sono i profili: per usare la
tecnologia Bluetooth infatti, un dispositivo, deve essere in grado di interpretare
correttamente specifici profili Bluetooth. Questi sono definizioni di possibili
applicazioni e specifici comportamenti che il dispositivo usa per comunicare con
gli altri dispositivi Bluetooth.
L'aderenza a determinati profili permette di risparmiare tempo per trasmettere i
parametri della comunicazione ed aiutano gli sviluppatori di applicazioni che
fanno uso di dispositivi Bluetooth a lavorare con standard già definiti e
circoscritti.
I profili sono definiti nel livello application dello stack Bluetooth mentre i layer
PHY e MAC sono standardizzati nell' IEEE 802.15, che si pone l'obbiettivo di
definire uno standard per le reti PAN .
26
Capitolo 2
Environment tecnologico del progetto di ricerca
Figura 2.7 : Bluetooth stack
L'utilizzo dei profili permette di definire una lista dettagliata delle applicazioni
per cui sono impiegati i dispositivi Bluetooth; vediamo in breve le più
importanti:
•
Utilizzo di un auricolare Bluetooth collegato ad un telefono per gestire la
comunicazione GSM (HFP)
•
Controllo e comunicazione wireless di un cellulare attraverso un
Bluetooth car stero system
•
Streaming dell'audio da un dispositivo BT-Compliant ad un auricolare
Bluetooth (AD2P)
•
Comunicazione di rete wireless tra PC in uno spazio ristretto.
•
E molti altri...
Il primo profilo, in particolare, è sicuramente adatto all'utilizzo nel dispositivo
oggetto di ricerca. HFP, Hands Free Profile, espone tutte le primitive necessarie
per controllare e gestire la chiamata sulla rete GSM-Voce, e garantisce grazie agli
27
Capitolo 2
Environment tecnologico del progetto di ricerca
standard Bluetooth sicurezza ed affidabilità.
28
Capitolo 2
Environment tecnologico del progetto di ricerca
2.2.1 Bluetooth Hands Free Profile
E' interessante ai fini della ricerca, vedere più in dettaglio il
funzionamento del profilo HFP, quali funzioni espone e quali garanzie ci porta.
Il profilo HFP, nelle sue specifiche 1.6, definisce il set minimo di funzioni affinchè
un telefono cellulare possa essere usato insieme ad un dispositivo hands-free
attraverso un collegamento Bluetooth che fornisce gli strumenti sia per il
controllo del cellulare che per la gestione della connessione vocale tra i due
dispositivi. Questo prevede infatti un collegamento full-duplex tra il dispositivo
ed il telefono, con il supporto ai comandi basilari AT Commands GSM 07.07 .
L'utilizzo tipico di una configurazione HFP è mostrato dalla seguente
figura:
Figura 2.8: Scenario di utilizzo tipico dell'HFP
I seguenti ruoli sono definiti in questo profilo:
•
Audio Gateway (AG) – il dispositivo che funge da audio gateway sia per
l'input che per l'output (es. Celullare)
•
Hands-Free unit (HF) – il dispositovo che funge da input ed output audio
remoto e da meccanismo remoto di controllo dell'audio gateway.
Possiamo vedere in figura 2.9 i layer dello stack Bluetooth da cui il profilo HFP
29
Capitolo 2
Environment tecnologico del progetto di ricerca
dipende.
Figura 2.9: Dipendenze del profilo HFP
Come indicato nella figura, il profilo HFP utilizza gli AT-Commands esposti dal
Serial Port Profile8 che integra tutte le funzioni di una porta seriale.
Gli AT-Commands (o Hayes command set) sono
uno specifico insieme di
comandi sviluppato originariamente per il modem “Hayes Smartmodem” che,
all'atto pratico, consentono di controllare la comunicazione attraverso delle
primitive per rispondere, chiudere la chiamata, alzare il volume, selezionare
numeri dalla rubrica, ed altro ancora.
In particolare, la seguente figura mostra le entità utilizzate nel profilo in
entrambi i lati.
8 BLUETOOTH SPECIFICATION- Serial Port Profile
30
Capitolo 2
Environment tecnologico del progetto di ricerca
Figura 2.10: HFP protocol stack, entità utilizzate in entrambi i dispositivi
I livelli Baseband, LMP, L2CAP fanno parte dell'OSI layer 1 e 29, RFCOMM è
l'entitià di emulazione della porta seriale Bluetooth. SDP implementa il Service
Discovery Protocol10.
L' Audio Port Emulation layer è l'entità preposta all'emulazione audio nel
gateway (il telefono cellulare); l'audio driver è invece il driver software nell'unità
hands-free (l'auricolare).
Entrambi gli stack si basano sulle funzionalità comuni esposte dal Serial Port
Profile.
Il profilo gestisce un audio mono, fornendo al telefono attraverso il layer
SCO11 (Synchronous Connection Oriented) il segnale audio PCM al GSM
Baseband processor che poi si occuperà di covertirlo ed inviarlo attraverso la
rete.
A livello di progetto, l'utilizzo di tale tecnologia non comporta quindi ulteriori
9 http://en.wikipedia.org/wiki/OSI_model
10 BLUETOOTH SPECIFICATION- Service Discovery Protocol
11 BLUETOOTH SPECIFICATION- Synchronous Connection Oriented Protocol
31
Capitolo 2
Environment tecnologico del progetto di ricerca
problematiche implementative in quanto il link Bluetooth può essere
considerato come un collegamento diretto, senza perdite e totalmente
trasparente lato telefono [Figura 2.11].
INPUT
SPEECH
BT
ADC
Audio Converter
PCM Audio
Stream
GSM Codec
Compression
PCM Audio
From Bluetooth
Device
Device
GSM
Communication Network
Figura 2.11: Il flusso audio non subisce modifica durante il collegamento Bluetooth
32
Capitolo 2
Environment tecnologico del progetto di ricerca
2.3 Crittografia
I classici voice scramblers offrono una minima sicurezza contro ogni
attacco aggressivo.
I classici metodi di scrambling sono:
•
Time Domain Scrambling : manipolazione di blocchi di tempo delimitati
del segnale trasmesso con un ritardo della trasmissione proporzionale
alla dimensione del blocco.
•
Frequency Domanin Scrambling: inversione delle alte e basse frequenze
senza alterare le caratteristiche della voce
Entrambe le tecniche possono essere rotte con uno sforzo relativamente basso.
Si è scelto quindi un approccio di tipo digitale, verso la cifratura dei dati,
evitando scrambler analogici di qualsiasi tipo.
Risulta semplice la scelta dell'algoritmo di crittografia visto l'ampio numero di
algoritmi a disposizione. In questo caso, (almeno in questa fase di avvio del
progetto) si è scelto di puntare su di un algoritmo AES (Advanced Encryption
Standard)
12
con chiave di crittografia a 256 bit, che garantisce un alto livello di
sicurezza in quanto non presenta, ad oggi, vulnerabilità intrinseche
nell'algoritmo.
La scelta di una crittografia digitale però, comporta una doppia
conversione del segnale come mostranto in figura:
12 http://www.aes.org/standards/
33
Capitolo 2
Environment tecnologico del progetto di ricerca
DEVICE A
A/D
Conversion
INPUT
SPEECH
1011000...
Data
Encryption
11001...
Modulation
+
D/A Conversion
GSM
Communication Network
Figura 2.12 : conversione Analogico/Digitale in ingresso ed in uscita
Questo complica inevitabilmente lo sviluppo del progetto, introducendo
necessità di politiche di key-agreement, di codifica della voce in entrata e di
modulazione del segnale digitale in uscita verso il telefono. Sono queste
problematiche
che
in
parte
abbiamo
affrontato
e
approfondiremo
successivamente.
34
Capitolo 2
Environment tecnologico del progetto di ricerca
2.3.1 Scambio di chiavi ed autenticazione
Lo studio di un sistema di autenticazione e di un algoritmo di scambio di
chiavi efficace per instaurare una comunicazione criptata e fluida tra i due
dispositivi è sicuramente un argomento che presuppone che i precedenti step, in
particolare la corretta ricezione dei dati attraverso il canale GSM-Voce, siano già
ampiamente sviluppati e collaudati con risultati positivi. Risulta quindi evidente
che questo sottoinsieme del progetto di ricerca non possa essere approfondito e
discusso in maniera adeguata a questo livello di sviluppo.
Mostriamo comunque qui di seguito l'algoritmo di scambio delle chiavi che si
pensa di poter utilizzare, ovvero il Diffie-Hellmann.
Lo scambio di chiavi Diffie-Hellman è un protocollo crittografico che
consente a due entità di stabilire una chiave condivisa e segreta utilizzando un
canale di comunicazione insicuro (pubblico) senza la necessità che le due parti si
siano scambiate informazioni o si siano incontrate in precedenza. La chiave
ottenuta mediante questo protocollo può essere successivamente impiegata per
criptare le comunicazioni successive tramite uno schema di crittografia
simmetrica.
35
Capitolo 2
Environment tecnologico del progetto di ricerca
Figura 2.13 : Algoritmo per lo scambio di chiavi Diffie Hellman
Nell'implementazione originale
del protocollo si considera inizialmente un
numero g, generatore del gruppo moltiplicativo degli interi modulo p, dove p è
un numero primo. Uno dei due interlocutori, ad esempio Alice, sceglie un
numero casuale a e calcola il valore A = ga mod p (dove mod indica l'operazione
modulo, ovvero il resto della divisione intera) e lo invia attraverso il canale
pubblico a Bob (l'altro interlocutore), assieme ai valori g e p. Bob da parte sua
sceglie un numero casuale b, calcola B = gb mod p e lo invia ad Alice. A questo
a
punto Alice calcola KA = B mod p, mentre Bob calcola KB = Ab mod p.
a
I valori calcolati sono gli stessi, in quanto B = gba e Ab = gab .
A questo punto i due interlocutori sono entrambi in possesso della chiave
segreta e possono cominciare ad usarla per cifrare le comunicazioni successive.
Un attaccante può benissimo ascoltare tutto lo scambio, ma per calcolare i valori
a e b avrebbe bisogno di risolvere l'operazione del logaritmo discreto, che è
computazionalmente onerosa e richiede parecchio tempo (sicuramente molto
36
Capitolo 2
Environment tecnologico del progetto di ricerca
più del tempo di conversazione tra i 2 interlocutori).
Per migliorare l'affidabilità dell'algoritmo Diffie Hellman è necessario scegliere
accuratamente
il
numero
casuale
privato,
ed
è
importante
inoltre
l'autenticazione delle due parti che vogliono comunicare.
Questi argomenti non saranno approfonditi in questo trattato.
37
Capitolo 2
Environment tecnologico del progetto di ricerca
2.4 Modulazione digitale
Con il termine di modulazione digitale (o numerica) si indica una tecnica
di modulazione utilizzata nelle trasmissioni digitali da un particolare
sottosistema di modulazione/demodulazione in cui il segnale modulante
rappresenta un'informazione in formato binario, cioè tale da assumere solo due
possibili valori (esempio 0 o 1, -1 o +1) o una stringa di questi.
I principi della modulazione numerica sono diversi da quelli della
modulazione analogica anche se i risultati sono simili: di fatto questo tipo di
modulazione realizza una conversione dati da digitale ad analogico per la
trasmissione sul canale. Tale conversione è ottenuta, in prima approssimazione,
attraverso una mappatura biunivoca tra sequenze di bit in ingresso al
modulatore numerico (segnale modulante) e un insieme di forme d'onda
analogiche di energia (segnale portante), scelte secondo opportuni criteri, in
uscita sul canale dette simboli e che definiscono il cosiddetto alfabeto di simboli.
La cardinalità dell'alfabeto, cioè il numero totale di simboli o forme d'onda,
dipende dal numero di bit trasmessi in una sequenza o periodo di simbolo
,ovvero dalla lunghezza L di questa: sono cioè possibili 2^L sequenze di bit e
quindi M=2^L forme d'onda o simboli per codificarle in analogico.
Figura 2.14 : esempio di modulazione numerica
38
Capitolo 2
Environment tecnologico del progetto di ricerca
In trasmissione sul canale si avrà quindi una concatenazione o sequenza di
simboli cioè di forme d'onda analogiche trasmesse con tempo di simbolo pari a
Ts ovvero una banda approssimativamente pari a 1/Ts, tasso di emissione dei
simboli (symbol rate) pari a 1/Ts e dunque tasso complessivo di emissione di bit
(bit-rate) pari a L*1/Ts.
In ricezione il demodulatore/decisore opererà come al solito in maniera inversa:
dopo un'operazione di decisione in cui dal simbolo ricevuto (che è affetto da
errore in virtù della presenza di rumore additivo di tipo aleatorio sul canale)
deciderà quale simbolo dell'alfabeto è stato trasmesso attraverso criteri di
decisione specifici partire dalla forma d'onda analogica decodificata verrà
ripristinata l'originaria sequenza di bit tramite un mappaggio inverso. A generare
potenziali errori in ricezione concorre anche il fenomeno dell'interferenza
intersimbolica.
I principali tipi di modulazione digitale sono:
•
Amplitude-shift keying (ASK): modulazione digitale di ampiezza;
•
Frequency-shift keying (FSK): modulazione digitale di frequenza;
•
Phase-shift keying (PSK): modulazione digitale di fase.
39
Capitolo 2
Environment tecnologico del progetto di ricerca
2.4.1 Amplitude-shift Keying
L'Amplitude-shift keying è un metodo di modulazione che rappresenta i
dati digitali come variazione in ampiezza dell'onda portante. Ogni schema di
modulazione usa un numero finito di segnali distinti per rappresentare il dato
digitale. L'ASK usa un numero finito di ampiezze , ognuna assegnata ad un
pattern unico di bits. Solitamente ogni ampiezza codifica un ugual numero di
bits. Ogni pattern definisce un simbolo che è rappresentato da una particolare
ampiezza. Il demodulatore, che è sviluppato specificatamente sopra il set di
simboli specificato nel modulatore, effettua un re-mapping nell'alfabeto dei
simboli valutando l'ampiezza del segnale ricevuto. Frequenza e fase del segnale
modulato sono mantenute costanti.
Figura 2.15: Modulazione ASK
Questo tipo di modulazione è particolarmente sensibile al rumore atmosferico,
alle distorsioni, ed a specifiche condizioni di propagazione. Un aspetto positivo è
che invece sono tecniche solitamente computazionalmente poco onerose.
Inoltre, si ha che:
40
Capitolo 2
Environment tecnologico del progetto di ricerca
fc >> fm
Ovvero la frequenza del segnale portante fc deve essere molto maggiore del
segnale modulante fm : ciò è necessario per avere una risoluzione adeguata del
segnale modulato. Poichè il segnale modulante è uno stream digitale, possiamo
intuitivamente sovrapporre la nozione di frequenza modulante con quella di bitrate del segnale modulante (supponendo che si sta lavorando con stream
continuo). Questa condizione implica un bit-rate del segnale modulante molto
inferiore alla frequenza del segnale modulato. In questo caso il symbol-rate del
segnale modulato può essere incrementato aumentando i livelli discreti di
ampiezza, ma in questo caso aumenta anche la sovrapposizione dell'errore.
41
Capitolo 2
Environment tecnologico del progetto di ricerca
2.4.2 Frequency-shift keying
Frequenzy-shift keying (FSK) è uno schema di modulazione in frequenza
nel quale le informazioni sono trasmesse attraverso cambiamenti discreti di
frequenza di un segnale portante. La tipologia di modulazione più semplice è
quella binaria (BFSK). BFSK usa una coppia di frequenze discrete per trasmettere
informazioni binarie. Con questo schema, l'uno è chiamato “mark frequency” e
lo 0 è chiamato “space frequency”. Ampiezza e fase del segnale modulato
restano costanti per tutto il tempo.
Figura 2.16: Modulazione FSK
Questo tipo di modulazione è più robusto rispetto alla modulazione in ampiezza
al rumore ed alle distorsioni, anche se computazionalmente più oneroso da
implementare.
Anche in questo caso le frequenze scelte come set di simboli delle portanti
devono essere maggiori a quella del segnale modulante, anche se periodo e
numero di simboli scelti dipendono principalmente dal mezzo trasmissivo e dalla
risoluzione a cui il demodulatore può lavorare.
42
Capitolo 2
Environment tecnologico del progetto di ricerca
Solitamente Inoltre :
f1 > fm
la mark frequency f1 viene scelta maggiore rispetto a quella del segnale
modulante (con le altre frequenze scelte in accordo). Anche in questo caso
sostituendo il concetto di frequenza del segnale modulante con quella di bit-rate
in ingresso del segnale digitale, risulta ovvio che si avrà un bit-rate gestibile del
segnale modulante inferiore alla frequenza della portante. In questo caso però
l'utilizzo di diverse frequenze può sopperire all'eventualmente basso symbolrate poiché questo tipo di modulazione è meno soggetta a disturbi e distorsioni.
43
Capitolo 2
Environment tecnologico del progetto di ricerca
2.4.3 Phase Shift Keying
Questo tipo di modulazione, trasmette i dati digitali modificando la fase
della portante. Ogni schema di modulazione digitale usa un numero finito di
segnali distinti per rappresentare il dato digitale. PSK usa un numero finito di fasi
ognuna assegnata ad uno specifico pattern di bit. Solitamente ogni fase codifica
uno stesso numero di bit. E come in precedenza ogni pattern rappresenta un
simbolo caratterizzato da una particolare fase. Il demodulatore, anche qui
sviluppato specificatamente per un particolare symbol-set definito dal
modulatore, determinando lafase del segnale ricevuto mappa il simbolo che
rappresenta in uno specifico pattern di bit.
Una corretta demodulazione implica che il ricevitore sia capace di comparare la
fase del segnale ricevuto a quella di un segnale di riferimento.
Figura 2.17: Modulazione PSK
In questo caso ampiezza e frequenza del segnale portante sono mantenute
costanti e solitamente richiede apparati riceventi più onerosi rispetto alle altre
due modulazioni per ricevere e demodulare correttamente il segnale. La
44
Capitolo 2
Environment tecnologico del progetto di ricerca
demodulazione si complica ulteriormente se vengono sovrapposti disturbi a
frequenza simile a quella della portante.
45
Capitolo 3
Le soluzioni attualmente presenti nel mercato
3. Le soluzioni attualmente presenti nel mercato
3.1 La situazione attuale
Lo scenario attuale di mercato, per la comunicazione criptata su rete
cellulare, si divide in due macro categorie:
•
Criptofonini
•
Dispositivi esterni
La prima soluzione, quella dei criptofonini, consiste in un telefono cellulare, al
cui interno sono integrati i meccanismi di cifratura ed autenticazione dele
utenze.
La seconda invece, è quella in cui rientra il nostro caso di studio, con però una
differenza sostanziale: attualmente i dispositivi in vendita sfruttano tutti la
connessione GSM-Dati, al posto della linea voce. E questo, come abbiamo visto
nel primo capitolo, può comportare problemi di interoperabilità tra le reti
46
Capitolo 3
Le soluzioni attualmente presenti nel mercato
internazionali oltre che un tempo superiore di instradamento della chiamata.
Questa implementazione d'altronde, è stata la prima a raggiungere il mercato
anche grazie al fatto che appoggiandosi alla classica rete dati, è possibile il
riutilizzo di tecnologie e di una letteratura già approfondita da tempo (cosa
impossibile nel nostro caso). Il funzionamento di questo tipo di dispositivi si può
accomunare ad applicazioni che permettono di telefonare tramite internet (es.
Skype).
Vediamo ora un esempio di un tale dispositivo.
47
Capitolo 3
Le soluzioni attualmente presenti nel mercato
3.2 Un esempio: TopSec Mobile
L'oggetto in questione, prodotto dalla Rohde & Schwarz, ha delle
caratteristiche
di
funzionamento
del
tutto
simili
alle
nostre,
come
precedentemente accennato.
Figura 3.1: TopSec Mobile
Dalla documentazione reperibile online, è interessante evidenziare le seguenti
caratteristiche principali:
•
Algoritmo di cifraggio AES-256bit Hardware
•
Connessione Bluetooth 2.0 tra il dispositivo ed il telefono
•
Sistema di autenticazione: Diffie-Hellman key agreement protocol
•
Utilizzo della connessione dati GSM-CSD a 9.6Kbps ( circuit switched data:
connessione continua e timeslot riservati ) con i protocolli ITU-T V.110 o
V.32 per la comunicazione e l'handshake di sicurezza tra i due dispositivi.
48
Capitolo 3
Le soluzioni attualmente presenti nel mercato
Figura 3.2: Il dispositvo della
Rohde & Schwarz
Per iniziare una chiamata deve essere selezionato un numero telefonico
nella rubrica del dispositivo (inserito in precedenza). Fatto ciò l'utente deve
aspettare che l'handshake con il dispositivo destinatario sia terminato (indicato
da delle icone in movimento sul display); quando i due dispositivi sono
accoppiati sul display appare un codice di sicurezza a 4 cifre e la comunicazione
puo' iniziare.
Quando si riceve una chiamata il funzionamento è speculare.
Più specificatamente:
•
Quando viene selezionato un numero dalla rubrica il dispositivo A, che
deve comunicare con B, avvia una connessione dati (GSM-CSD) codificata
con il protocollo ITU-T V.110 o V.32.
•
Tramite il Diffie-Hellman key agreement protocol viene generata una
chiave simmetrica K (valida solo per la chiamata attuale) a partire da due
49
Capitolo 3
Le soluzioni attualmente presenti nel mercato
numeri P e G presenti in ogni gruppo di dispositivi che vogliono
comunicare: questi due valori sono inseriti al momento della costruzione
del dispositivo e non possono essere letti in alcun modo.
•
Una volta che l'handshake è completato, su entrambi i display dei
dispositivi comunicanti, appare un codice di 4 cifre che altro non è che
l'hash della chiave K.
•
La comunicazione viene criptata con la chiave simmetrica K che viene
distrutta al termine.
50
Capitolo 3
Le soluzioni attualmente presenti nel mercato
3.2.1 Autenticazione
I dispositivi TopSec Mobile si affidano ad un approccio ibrido per la
crittografia che combina algoritmi asimmetrici per lo scambio chiavi ed
autenticazione ad algoritmi simmetrici per la cifratura delle informazioni.
Lo scambio chiavi è effettuato tramite l'algoritmo Diffie Hellman già dettagliato
in precedenza [Figura 3.3].
Figura 3.3: Implementazione del Diffie Hellman
Come accennato in precedenza, l'algoritmo Diffie Hellman potrebbe essere
suscettibile ad attacchi di tipo man-in-the-middle. Questi attacchi, comunque,
implicano importanti sforzi e richiedono, per esempio, che l'attaccante abbia
accesso al link di comunicazione tra i due device partner. Per ovviare a questo
problema viene utilizzato un ulteriore sistema di certificazione: viene generato
un hash-code a 4 cifre a partire dalla chiave simmetrica privata. Questo codice
51
Capitolo 3
Le soluzioni attualmente presenti nel mercato
sarà identico in entrambi i device solo se, presumibilmente, non è presente
nessun malintenzionato nel mezzo. Questo perchè, nel caso di un attacco manin-the-middle, i due device comunicano con l'entità intrusa, generando due
chiavi K1 e K2 differenti tra loro. Il codice di hash a 4 cifre di due chiavi differenti
sarà anch'esso differente e permetterà di controllare che non ci siano problemi
di affidabilità.
Un ulteriore misura implementata per evitare attacchi di questo tipo, è la
creazione si sistemi crittografici protetti, ovvero un gruppo di utenze con un
numero ristretto e ben definito di partecipanti. Questo necessita di un'entità di
certificazione centralizzata ed esterna: relativamente a questo prodotto della
Rohde & Schwarz, il ruolo è assunto da un dispositivo “TopSec Administrator”.
Tutti i dispositivi TopSec che appartengono ad un gruppo, ricevono un certificato
dall'amministratore che li identifica come membri di un sistema chiuso.
L'informazione più importante che contiene il certificato è l'ID del dispositivo e
la sua chiave di autenticazione pubblica associata [figura sottostante].
52
Capitolo 3
Le soluzioni attualmente presenti nel mercato
Figura 3.4: verifica del certificato
Il certificato contiene inoltre una firma digitale. Per creare una firma digitale,
l'amministratore genera una coppia di chiavi, una pubblica ed una privata. La
chiave privata STC è usata per aggiungere la firma digitale al valore di hash del
certificato. STC rimane nel dispositivo amministratore: è la componente più
confidenziale in un sistema chiuso. La firma digitale ed il certificato possono
essere autenticati attraverso la chiave pubblica PTC .
Durante il processo di inizializzazione, i dispositivi TopSec che appartengono ad
un sistema chiuso generano un ulteriore coppia di chiavi usata per
l'autenticazione. La chiave di autenticazione privata S-1U rimane nel device
53
Capitolo 3
Le soluzioni attualmente presenti nel mercato
TopSec. La chiave di autenticazione pubblica PU è parte del certificato. Oltre al
certificato stesso, i dispositivi ricevono la chiave pubblica Ptc per verificare i
certificati.
I dispositivi che sono membri di un gruppo chiuso possono ricevere
aggiornamenti di certificati e chiavi pubbliche associate “over-the-air”.
Inoltre i dispositivi che appartengono allo stesso sistema possono
automaticamente autenticare gli altri.
Come primo passo viene verificato il certificato del dispositivo “partner”. A
questo fa seguito un algoritmo combinato di scambio chiavi e autenticazione
[Figura 3.5]
Figura 3.5: Algoritmo combinato di scambio chiavi ed autenticazione
Sarà quindi stabilita una connessione cifrata solo se la procedura ha avuto
successo.I due partner possono inoltre autenticarsi a vicenda usando il codice di
54
Capitolo 3
Le soluzioni attualmente presenti nel mercato
sicurezza a 4 cifre.
Se uno di questi dispositivi viene perso sono state adottate alcune misure
per prevenire l'utilizzo non autorizzato.
In questo caso il dispositivo smarrito viene inserito in una black-list dal TopSec
Administrator. La lista viene inviata agli altri dispositivi dello stesso gruppo
attraverso un canale di comunicazione sicuro. All'atto dell'autenticazione il
dispositivo controlla se il partner è presente o meno nella black list e, se così
fosse, chiude la comunicazione.
55
Capitolo 3
Le soluzioni attualmente presenti nel mercato
3.2.2 Osservazioni
L'analisi di questo dispositivo ci offre sicuramente degli spunti interessanti
per quanto riguarda i sistemi di autenticazione adottati ed un eventuale riutilizzo delle tecnologie.
In primo luogo, il protocollo di scambio chiavi è lo stesso che si era ipotizzato
inizialmente nell'ambito del progetto di ricerca. A questo protocollo è stato
aggiunto un, prevedibile, sistema si certificazione fondamentale nel caso si
voglia garantire la sicurezza delle utenze sopratutto in scenari mission-critical
come possono essere quelli militari o di spionaggio industriale.
Una differenza sostanziale è l'utilizzo della linea dati della rete GSM-CSD, a
commutazione di circuito, che differisce dalla classica rete a commutazione di
pacchetto (es. GPRS, internet) , ma semplifica, rispetto alla linea voce, tutte le
operazioni di formattazione ed invio dello stream audio digitale criptato, in
quanto è “sufficiente” renderlo conforme agli standard ITU-T ed inviarlo al
modem GSM.
Nel nostro caso invece, come accennato in precedenza, la differenza sostanziale
sta nel fatto che non abbiamo a disposizione la linea dati, ma la linea voce la
quale riceve uno stream analogico grezzo, senza standard che ci aiutano a
gestire la sincronia o la comunicazione tra i dispositivi.
Un ulteriore similitudine col nostro progetto sta nella connessione di
interfaccia al telefono: in entrambi i casi si è puntato sull'utilizzo dell' Hands Free
Profile Bluetooth che si rivela una scelta obbligata in questo contesto.
In conclusione l'analisi di questo dispositivo ( preso come esempio visto
che sul mercato ce ne sono altri del tutto simili) permette di sottolineare sia gli
56
Capitolo 3
Le soluzioni attualmente presenti nel mercato
aspetti del progetto sui cui è già presente una buona letteratura, sia aspetti che
ad ora non sono stati affrontati o sviluppati.
57
Capitolo 4
Il lavoro svolto
4. Il lavoro svolto
A partire dalle problematiche e dall'environment tecnologico in cui il
progetto si pone, in questo capitolo verranno descritte le scelte effettuate ed
alcune soluzioni utilizzate per aggirare i principali problemi che abbiamo
incontrato durante il dettaglio dell'intero processo.
DEVICE A
Speech
Encoder
INPUT
SPEECH
1011000...
Data
Encryption
1101001...
Data
Modulation
GSM
Communication Network
DEVICE B
Data
Demodulation
1101001...
Data
Decryption
1011000...
Speech
Decoder
OUTPUT
SPEECH
Figura 4.1: processo di comunicazione tra i due dispositivi
58
Capitolo 4
Il lavoro svolto
4.1 Tutela del segreto aziendale
Le scelte effettuate e le soluzione che verranno prospettate, a cui si
accennava in precedenza, saranno riportate senza approfondimenti tecnici
specifici in questi e nei prossimi capitoli. Questo in quanto le soluzioni sviluppate
rispetto ai problemi elencati nei capitoli predenti non possono essere
completamente dettagliate in questa sede al fine di mantenere il riserbo
necessario per tutelare il segreto aziendale
59
Capitolo 4
Il lavoro svolto
4.2 La codifica della voce
Nel prototipo realizzato (dettagliato nel capitolo successivo) si è
implementato un algoritmo di codifica della voce che permette di ottenere un
buona qualità ad un bit-rate relativamente basso.
60
Capitolo 4
Il lavoro svolto
4.3 Cifratura ed Autenticazione
Per quanto riguarda la cifratura si è utilizzato lo standard AES-256
accennato in precedenza con il quale è stata cifrato lo stream digitale
contenente la voce in chiaro. Questo è stato suddiviso in pacchetti di
dimensione fissa e viene cifrato ogni pacchetto.
Per il momento, e per i motivi accennati nel capitolo 2.3.1, non sono state
implementate politiche di autenticazione e scambio di chiavi nel prototipo
realizzato.
61
Capitolo 4
Il lavoro svolto
4.4 Comunicazione tra il prototipo ed il cellulare
L'obbiettivo finale del progetto sarà quello di avere il nostro dispositivo
che si interfaccia con il telefono via Bluetooth. All'atto dello sviluppo però
abbiamo due possibilità:
•
Utilizzare una connessione analogica diretta (un cavo jack da 3.5mm tra il
prototipo ed il telefono)
•
Utilizzare una connessione Bluetooth.
Abbiamo visto che dal punto di vista teorico della manipolazione del segnale,
entrambe le alternative non comportano problematiche particolari.
Per quanto riguarda la scelta realativamente alla piattaforma di sviluppo
rimandiamo al prossimo capitolo.
62
Capitolo 4
Il lavoro svolto
4.5 Modulazione e demodulazione
Per quanto visto in precedenza, emerge chiaramente la necessità di
convertire lo stream digitale criptato in un segnale analogico che abbia le
caratteristiche fondamentali viste nel capitolo 2.1:
DEVICE A
INPUT
SPEECH
Speech
Encoder
1011000...
ADC
Audio Converter
Data
Encryption
1101001...
PCM Audio
Stream
Data
Modulation
GSM Codec
Compression
PCM Audio
From Bluetooth
Device
GSM
Communication Network
Figura 4.2 : Rappresentazione di tutti i passaggi A/D del segnale vocale
Un attento reverse engineering dei processi che compongono la codifica AMR
infatti è fondamentale affinché il dato che vogliamo inviare passi il più possibile
inalterato attraverso il processo di compressione ed invio sulla rete GSM-Voce.
Ecco quindi la necessità di generare un segnale analogico modulato con alcune
specifiche caratteristiche affinchè possa essere ricevuto correttamente
attraverso la rete.
63
Capitolo 4
Il lavoro svolto
La necessità di questo passaggio è indipendente dall'utilizzo o meno di una
connessione Bluetooth: come abbiamo visto infatti sia che il segnale analogico
modulato venga campionato dall'encoder GSM o dal protocollo di comunizione
Bluetooth, si otterrà uno stesso segnale risultante (o con differenze trascurabili).
Questa fase dello sviluppo è sicuramente il nocciolo del progetto: una corretta
modulazione del segnale pone le basi per una compressione senza perdite di
informazione permettendo quindi di ottenere un canale comunicazione
sufficientemente solido sopra il GSM-Voce.
Nello sviluppo del prototipo è stata questa una fase cruciale, molte soluzioni
sono state provate, e infine, la soluzione migliore è risultata essere una
modulazione basata su di un set di simboli che differiscono in frequenza
secondo determinati criteri e pattern, che per i motivi di riservatezza
precedentemente accennati non saranno specificati in questa sede.
Per quanto riguarda la modulazione in ampiezza, questa non è stata adottata per
molteplici motivi:
•
Come evidenziato nel capitolo 2, la modulazione in ampiezza è
sicuramente la meno adatta per quanto riguarda i disturbi e le
interferenze che sovrapponendosi rendono inservibile , al ricevitore, il
segnale.
•
A causa delle caratteristiche del coder ACELP, il guadagno viene
normalizzato così come la potenza media che viene mantenuta costante,
motivo questo che rende completamente inefficace la modulazione in
ampiezza.
•
Un ulteriore motivo per cui la modulazione in ampiezza non è stata
impiegata è data dal basso symbol-rate garantito (vd capitolo 2.4.1).
64
Capitolo 4
Il lavoro svolto
Figura 4.3: Un esempio di come un segnale modulato in ampiezza (sopra)
venga ricevuto completamente normalizzato al destinario (sotto)
Per quanto riguarda invece la modulazione PSK, questa non è stata utilizzata
poiché, sempre a causa del particolare coder ACELP dello standard GSM-AMR
06.90, i cambi repentini del segnale vengono eliminati, rendendo impossibile ,
lato ricevitore, distinguere gli instanti in cui avviene un cambio di fase.
Vedremo nel capitolo successivo i risultati pratici che sono stati raggiunti.
65
Capitolo 5
Il prototipo realizzato: implementazione
5. Il prototipo realizzato: implementazione
L'obbiettivo è quello di costruire una piattaforma di sviluppo e test
composta da 2 PC x86 (in virtù della flessibilità che questa architettura ci
garantisce) su cui sviluppare tutti i blocchi funzionali precedentemente descritti
(encoding, crittografia, ...).
Questi, inoltre, utilizzando un servizio Bluetooth basato sul profilo HFP (in
particolare il servizio di Audio Gateway ) dovranno connettersi a due telefoni
attraverso i quali verrà inviato e ricevuto lo stream vocale criptato nel canale
GSM-Voce.
Il sistema operativo dei due PC è consigliabile essere basato su Gnu/Linux, in
particolare una distribuzione Debian vista l'immediata portabilità su piattaforma
ARM. Allo stesso modo l'utilizzo del servizio di Audio Gateway è il modo più
immediato per utilizzare il PC come un ipotetico auricolare Bluetooth, attraverso
66
Capitolo 5
Il prototipo realizzato: implementazione
lo stesso profilo HFP che poi con tutta probabilità sarà utilizzato nel dispositivo
finale.
Il primo passo per stabilire la piattaforma di sviluppo è quello di capire come
interfacciarsi con i telefoni: vediamo a questo proposito la situazione attuale per
lo sviluppo di applicazioni ed utilizzo di servizi Bluetooth.
67
Capitolo 5
Il prototipo realizzato: implementazione
5.1 Sviluppo Bluetooth: il punto della situazione
Verrà esposto qui di seguito un breve riassunto delle carettistiche e
possibilità di sviluppo utilizzando le funzioni esposte dallo stack bluetooth su
varie piattaforme.
Windows:
•
Microsoft Bluetooth API. Disponibili da WinXP SP1 in poi.
•
Sviluppo possibile utilizzando le socket o accedendo direttamente
all'hardware
•
Possibilità di sviluppare in C/C++ o anche .NET
Pro: Buona documentazione, Profilo Audio gateway già implementato e
funzionante
Contro: librerie chiuse, impossibile frapporsi tra microfono e applicazione che
gestisce l'audio gateway per crittare lo stream audio (re-implementare tutto),
piattaforma finale linux-based
Linux:
•
Bluez implementa le API per lo sviluppo sotto linux.
•
Sviluppo in C/C++
Pro: Free software, accesso diretto alle librerie di sistema, Controllo
approfondito di tutte le parti dell'hardware
Contro: Documentazione praticamente assente, servizio di audio-gateway non
implementato in maniera nativa, sviluppo più verboso e prolungato rispetto ad
68
Capitolo 5
Il prototipo realizzato: implementazione
altri linguaggi (C/C++)
Java (Cross-platform):
•
API JSR-82 rappresentano ambiente di sviluppo ufficiale per il BlueTooth.
Pro: Multipiattaforma, Buona Documentazione
Contro: Fornisce un controllo limitato sull'hardware rispetto alle altre alternative
di sviluppo, prestazioni inferiori
Per le sue caratteristiche e la facile portabilità su architetture ARM, si è deciso di
utilizzare GNU/Linux come S.O. su cui implementare le varie funzionalità del
prototipo.
Vediamo in particolare se è possibile utilizzare il profilo Bluetooth HFP in questo
sistema operativo.
69
Capitolo 5
Il prototipo realizzato: implementazione
5.1.1 Gnu/Linux e BlueTooth Hands-Free Profile
Bluez, lo stack Bluetooth free del kernel linux, non ha una propria
implementazione del servizio HSP o dell' Audio Service Gateway Profile: fino al
2010 non vi era possibilità di utilizzare una Linux-box come Gateway Audio, solo
successivamente è stata introdotta questa possibilità attraverso l'introduzione
del supporto in Bluez e tramite l'utilizzo di oFono (www.ofono.org): un tool per
la gestione di modem remoti GSM/CDMA.
Entrando più nel dettaglio, è stato creata una nuova API di Bluez (Appendice A)
che sfrutta la fd-passing feature del DBUS 1.3+ (File-Descriptor passing).
Questa nuova API sfrutta il concetto di Agenti: in questo caso è oFono a giocare
il ruolo di Agente.
Relativamente al servizio HFP il ruolo dell' Agente è quello di gestire gli ATCommands mentre Bluez si occuperà solamente di gestire le connessione
RFCOMM e SCO.
La socket per l'accesso all'RFCOMM è passata all'agente in oFono tramite DBUS:
questa è utilizzata da oFono per mandare e ricevere gli AT-Commands per
stabilire una Service Level Connection (ad esempio completare la procedura di
handshake). Se la procedura ha successo, sarà possibile effettuare e rispondere
alle chiamate tramite oFono: il telefono sarà visto come un qualsiasi altro
modem gestito da oFono.
70
Capitolo 5
Il prototipo realizzato: implementazione
5.1.2 Configurazione e Test
-Installazione pacchetti
Per configurare un sistema Gnu/Linux a questo scopo è necessario avere
installato:
1-Pulseaudio 0.9.2+
2-DBus 1.3+
3-oFono 0.27+
4-Blueman (o tool equivalente)
-Configurare Bluez
E' necessario abilitare la modalità gateway in Bluez, per fare questo è sufficente
editare il file:
sudo nano /etc/bluetooth/audio.conf
inserendo nella sezione [General]:
Enable=Gateway
-Accoppiare i Dispositivi
Assicurarsi di avere accoppiato ed autorizzato il telefono al pc tramite blueman.
-Stabilire la connessione
Utilizzare lo script list-modems presente nella release di oFono per elencare i
dispositivi bluetooth accoppiati con il pc:
./list-modems
[ /hfp/000272AF710E_9BBEADE9E9D9 ]
Name = LG-P990
Powered = 0
Lockdown = 0
Interfaces =
Online = 0
71
Capitolo 5
Il prototipo realizzato: implementazione
Features =
Successivamente è necessario abilitare e collegarsi al modem del relativo
telefono sempre attraverso un script in python di oFono:
./enable-modem
Connecting modem /hfp/000272AF710E_9BBEADE9E9D9...
-Configurare un Loopback Audio tramite Pulseaudio:
Prima di effettuare la chiamata, è necessario instaurare un loopback audio tra i
moduli bluetooh ed alsa affinchè sia possibile ascoltare le chiamata negli
speaker e parlare attraverso il microfono del pc.
Innanzitutto bisogna trovare i device che espongono le funzionalità di Source e
Sink audio:
pacmd list-sources
pacmd list-sink
l'output di questi due comandi ci fornirà gli ID dei device di Source e Sink Audio
da collegare in loopback; saranno del tipo:
bluez_source.00_02_42_4F_71_01
alsa_output.pci-0000_00_1b.0.analog-stereo
bluez_sink.00_02_42_4F_71_01
alsa_input.pci-0000_00_1b.0.analog-stereo
Effettuiamo il loopback tramite modules-loopback:
pactl load-module module-loopback sink=alsa_output.pci0000_00_1b.0.analog-stereo source=bluez_source.00_02_72_AF_71_0E &&
pactl load-module module-loopback source=alsa_input.pci0000_00_1b.0.analog-stereo sink=bluez_sink.00_02_72_AF_71_0E
-Instradiamo la chiamata
Utilizzando un ulteriore python script di oFono, effettuiamo la chiamata di test :
72
Capitolo 5
Il prototipo realizzato: implementazione
./dial-number [number-to-dial]
Se tutto è andato per il verso giusto, saremmo in grado di utilizzare il nostro pc
alla stregua di un auricolare bluetooth.
Dai test effettuati emerge in maniera evidente che lo stato di questo supporto è
ancora embrionale e presenta alcune problematiche.
La chiamata infatti viene instradata correttamente, il telefono rileva il pc come
fosse un auricolare Bluetooth ma non si riesce nè a sentire nè ad inviare alcuno
stream audio: la soluzione per questo problema è nota (basterebbe instaurare
un loopback audio specifico) ed in teoria, risolvibile anche se da approfondire.
73
Capitolo 5
Il prototipo realizzato: implementazione
5.2 La piattaforma di sviluppo
La piattaforma di sviluppo del prototipo, utile come proof-of-concept
delle soluzioni prospettate sino ad ora, è stata creata effettuando alcune
semplificazioni iniziali che permettono di concentrarsi unicamente sui moduli
che costituiscono il core del progetto di ricerca:
HALF DUPLEX COMMUNICATION
PC1 - SENDER
INPUT
SPEECH
LINE IN
1011000...
Speech
Encoder
Data
Encryption
1101001...
Data
Modulation
MIC IN
AUDIO OUT
3,5mm jack
GSM
Communication Network
PC2 - RECEIVER
LINE IN
HEADPHONES OUT
Data
Demodulation
1101001...
Data
Decryption
1011000...
Speech
Decoder
AUDIO OUT
OUTPUT
SPEECH
3,5mm jack
Figura 5.1: ambiente di test
•
Utilizzo di due PC che attuano una comunicazione Half-duplex che
permetta di testare direttamente la codifica - decodifica del segnale
cifrato senza preoccuparci inizialmente delle politiche di autenticazione,
sincronizzazione della comunicazione, e di altri aspetti che verrano
valutati solo in seguito nello sviluppo del progetto.
74
Capitolo 5
Il prototipo realizzato: implementazione
•
Sviluppo di tutti i blocchi funzionali evidenziati in figura via software. In
particolare è scelto il C++ come linguaggio di programmazione vista la
quantità di librerie e di documentazione presente.
•
Entrambe sono macchine Gnu/linux che garantiscono una più semplice
portabilità del codice nel dispositivo finale Avere un buon esisto con
questa piattaforma di test significa, a mio avviso, aver già completato la
gran parte del progetto.
•
Per quanto detto nel paragrafo precedente, si è preferito evitare di
utilizzare la connessione Bluetooth tra i pc ed i telefoni, in favore di di due
cavi adattatori jack da 3.5mm. Questa scelta, come spiegato, non
comporta alcun tipo di modifica nello sviluppo delle altre componenti.
75
Capitolo 5
Il prototipo realizzato: implementazione
5.3 L'implementazione software sviluppata
Il software sviluppato implementa le funzionalità precedentemente
descritte in maggiore dettaglio nel capitolo 4, con le ipotesi di semplificazione
stilate all'atto della definizione della piattaforma di sviluppo.
Figura 5.2: Interfaccia del software sviluppato
Nello specifico [figura 5.2] il testing del prototipo è molto semplice da attuare. In
entrambi i PC è presente una copia del software sviluppato, che implementa le
funzionalità sia del mittente che del ricevitore.
Come si può facilmente intuire dalla figura precedente, molto
banalmente ogni tasto rappresenta una funzione implementata nel mittente o
nel ricevitore, in particolare:
76
Capitolo 5
Il prototipo realizzato: implementazione
Lato mittente:
• Record: viene registrato attraverso il codec low-rate descritto nel capitolo
4.2 un file audio raw contente una frase di test.
• Encrypt: prendendo l'audio appena registrato in input viene suddiviso in
pacchetti ed ogni singolo pacchetto viene criptato in AES-256. La chiave
attualmente utilizzata nella cifratura viene mostrata nella linea di testo in
alto e generata in maniera random ad ogni avvio dell'applicazione. E'
inoltre possibile impostare tramite il tasto “SET” una chiave a propria
scelta.
• Modulate: prendendo il file audio suddiviso in pacchetti e criptato, viene
modulato secondo le specifiche descritte nel capitolo 4.5 e ripodotto
nella linea audio-out del pc mittente.
• Add Sync Header: prima della modulazione, è possibile (e consigliabile)
aggiungere un header di sincronia: questo permette al PC simulante il
dispositivo ricevente di capire dove inizia in maniera più precisa il dato da
demodulare.
• One Click Sender Test: tutte queste operazioni possono essere eseguite
atomicamente o in sequenza in maniera automatica utilizzando questa
funzione.
Il segnale modulato, in uscita dal PC mittente, verrà così inviato dal telefono
connesso alla sua uscita audio verso la rete GSM passando attraverso il codec di
compressione GSM-AMR. Il telefono in ascolto, con il quale era stata
precedentemente avviata una chiamata, attraverso l'audio out dello stesso
invierà il segnale ricevuto dalla rete GSM al PC ricevente tramite l'ingresso linea.
77
Capitolo 5
Il prototipo realizzato: implementazione
Nel pc ricevente, allo stesso modo, sono state implementate le seguenti
funzionalità:
• Record: il segnale in uscita dal telefono viene registrato stavolta con un
codec ad elevata qualità per cercare di ottimizzare il processo di
demodulazione.
• Remove Sync Header: prima della demodulazione, è necessario
sincronizzare il segnale registrato al fine di capire in maniera più precisa
dove inizia il dato da demodulare.
• Demodulate: prendendo il file audio così registrato e sincronizzato viene
demodulato secondo le specifiche descritte nel capitolo 4.5.
• Decrypt: prendendo lo stream digitale appena demodulato, questo viene
suddiviso in pacchetti ed ogni singolo pacchetto viene decriptato in AES256 settando manualmente la chiave simmetrica generata dal mittente.
• One Click Receiver Test: tutte queste operazioni possono essere eseguite
atomicamente o in sequenza in maniera automatica utilizzando questa
funzione.
Vediamo ora nel capitolo seguente i risultati di alcuni test.
78
Capitolo 6
Test Effettuati
6. Test Effettuati
6.1 Rilevazione della banda di frequenze garantita dall'encoder
GSM-Voce
Dopo aver stabilito una piattaforma di sviluppo funzionale ai nostri scopi
risulta utile verificare che la banda di frequenze garantita dall'encoder GSMAMR sia effettivamente quella che ci aspettiamo.
79
Capitolo 6
Test Effettuati
6.1.1 Metodologia di Test
Per verificare che la banda di frequenze garantita dall'encoder GSM-AMR
sia effettivamente quella che ci aspettiamo dal capitolo 2.1 (200-3400hz) si è
utilizzata la prima piattaforma di sviluppo descritta in precedenza, attraverso la
quale viene inviato un segnale di test. Successivamente tramite un confronto tra
lo spettro del segnale originale e quello ricevuto dal destinatario, vengono
valutati eventuali tagli in frequenza.
HALF DUPLEX COMMUNICATION
PC1 - SENDER
INPUT
SPEECH
LINE IN
1011000...
Speech
Encoder
Data
Encryption
1101001...
Data
Modulation
MIC IN
AUDIO OUT
3,5mm jack
GSM
Communication Network
PC2 - RECEIVER
LINE IN
HEADPHONES OUT
Data
Demodulation
1101001...
Data
Decryption
1011000...
Speech
Decoder
AUDIO OUT
OUTPUT
SPEECH
3,5mm jack
Figura 6.1: piattaforma di test
Oltre all'analisi spettrale del segnale originale e di quello ricevuto viene anche
analizzato lo spettro del segnale una volta acquisito dal telefono chiamante per
80
Capitolo 6
Test Effettuati
verificare la qualità del collegamento analogico tra PC e Telefono attraverso il
cavo jack da 3,5 mm.
Nel test sono stati utilizzati un telefono Android ed un Iphone 4 entrambi
forzati ad utilizzare unicamente la linea GSM.
Il S.O. Utilizzato su entrambi i PC è Debian Stable 64 bit, con scheda audio
realtek hd.
Come segnale di test, si è utilizzato un file audio Wav con compressione
lossless campionato a 44Khz e 16 bit, che spazza tutte le frequenze dell'udibile
(da 20 hz ai 20 Khz) in maniera lineare.
Qui di seguito possiamo vedere lo spettro del segnale in scala logaritmica:
Figura 6.2: segnale di test
Un segnale di questo tipo ci permette di visualizzare in maniera chiara a
81
Capitolo 6
Test Effettuati
quale frequenza vengono effettuati i tagli dall'encoder GSM.
Confrontiamo quindi lo spettro del segnale originale con quello acquisito
dal telefono chiamante tramite collegamento analogico con jack da 3.5 mm.
In basso possiamo vedere il segnale acquisito dal telefono mentre in alto il
segnale originale:
Figura 6.3: Confronto tra il segnale originale e quelle
ricevuto dal telefono mittente
82
Capitolo 6
Test Effettuati
Possiamo facilmente vedere che, tranne per un leggero rumore di fondo, tutto il
segnale viene acquisito correttamente dal telefono chiamante.
Vediamo adesso lo spettro del segnale ricevuto dal secondo telefono
attraverso la rete GSM, confrontato con lo spettro del segnale origianale:
Figura 6.4: Spettro del segnale originale (Sopra), Spettro del
segnale ricevuto tramite GSM (sotto).
83
Capitolo 6
Test Effettuati
Risulta evidente il taglio effettuato dall'enconder GSM (segnale in basso)
se confrontato con il segnale originale ( in alto).
Solo una porzione della banda di frequenze viene trasmessa. In particolare:
84
Capitolo 6
Test Effettuati
Figura 6.5: verifica della banda del segnale ricevuto
85
Capitolo 6
Test Effettuati
Vengono infatti tagliate tutte le frequenze inferiori a 200 Hz e superiori ai
3400hz che è esattamente quello che ci aspettavamo.
86
Capitolo 6
Test Effettuati
6.2 Il Test del prototipo effettuato
Si riporta qui di seguito, il test del prototipo sviluppato. La piattaforma di
test è quella ampiamente descritta in precedenza.
87
Capitolo 6
Test Effettuati
6.2.1 Metodologia di Test
HALF DUPLEX COMMUNICATION
PC1 - SENDER
INPUT
SPEECH
Speech
Encoder
LINE IN
1011000...
Data
Encryption
1101001...
A
Data
Modulation
MIC IN
AUDIO OUT
A'
3,5mm jack
GSM
Communication Network
PC2 - RECEIVER
LINE IN
HEADPHONES OUT
Data
Demodulation
3,5mm jack
1101001...
Data
Decryption
1011000...
B
Speech
Decoder
AUDIO OUT
OUTPUT
SPEECH
C
Figura 6.6: piattaforma di test con evidenziati i punti di confronto dei segnali
Gli stage A,B,C rappresentano i punti di rilevazione e confronto del segnale
all'interno di questo test: attraverso l'applicazione sviluppata, oggetto del
capitolo 5.3, si registra lato mittente lo stream vocale, che verra codificato
attraverso un codec low-rate. Il file così generato contenente la voce in chiaro
( stage A) ed una volta cifrato (stage A') verrà confrontato con i corrispettivi file
ricevuti e registrati lato mittente (stage B e C).
Dovrà risultare quindi che A è il più possibile uguale a C e che A' sia il più
possibile uguale a B.
88
Capitolo 6
Test Effettuati
6.2.2 Risultati del test
Nella figura seguente possiamo vedere il confronto tra la rappresentazione
temporale in ampiezza de:
•
Il segnale vocale registrato in chiaro (stage A, Figura 6.x in alto)
•
Lo stesso segnale inviato e ricevuto in chiaro in una classica chiamata
GSM (Figura 6.x in mezzo)
•
Lo stesso segnale ricevuto dal prototipo destinatario dopo aver
attraversato tutti i processi di codifica, cifraggio, modulazione, invio sulla
rete GSM, demodulazione, decifraggio (stage C, figura 6.x in basso).
Figura 6.7: (sopra)Il segnale vocale in chiaro
(in mezzo)lo stesso segnale ricevuto tramite GSM
(sotto) Il segnale vocale rilevato allo stage C
Si nota chiaramente come il segnale originale, un piccolo sample vocale di
brevissima durata, venga ricevuto dal prototipo destinatario in maniera quasi
89
Capitolo 6
Test Effettuati
identifica all'originale.
In corrispondenza delle rette di colore rosso sono evidenziati alcuni tratti in cui il
segnale ricevuto differisce da quello originale: ciò significa che uno o più bit di
quei pacchetti sono stati demodulati in maniera sbagliata producendo così una
decrittazione erronea di quel pacchetto.
Verifichiamo ora il Bit Error Rate misurato:
Signals
Confronto segnali
Stage A'-B
Confronto segnali
Stage A-C
Total Bits
Error Bits
23296
16
23296
1664
BER
6.8*104
7.1*102
Risulta evidente che confrontando i segnali A'-B (a valle del cifraggio lato
mittente e a monte del decifraggio lato ricevitore) il BER è molto inferiore
rispetto al confronto tra i segnali A-C (a monte del cifraggio lato mittente ed a
valle del decifraggio lato ricevitore) poiché un numero sufficiente ma limitato di
bit interpretati male dal demodulatore comporta, dopo il decifraggio lato
ricevente, la perdita di tutti i bit che compongono il pacchetto.
90
Conclusioni
Conclusioni
91
Conclusioni
Sebbene sia stato raggiunto un risultato incoraggiante in questa fase di
avvio del progetto di ricerca, questo prototipo non vuole porsi come qualcosa di
definitivo bensìha avuto lo scopo di validare alcune teorie e testare alcune
soluzioni prospettate.
Molto lavoro c'è ancora da fare, in quanto il modulatore attuale non garantisce
un bit-rate tale da sostenere una comunicazione fluida e senza lag. Tutte la
politiche di certificazione, scambio chiavi ed autorizzazione non sono state
implementate e dovranno essere valutate in seguito.
La sfida più imminente da affrontare rimane la stessa che si è affrontata
sino ad ora: l'ottimizzazione del modulatore al fine di renderlo sempre più
robusto ed efficace, che inoltre implementi meccanismi auto-sincronizzanti
garantendo un rate di errore sempre più basso per streaming di durata sempre
maggiore.
91
Conclusioni
Appendice A
- Bluez HandsfreeGateway API -
1 Gateway hierarchy
2 ========================
3
4 Service
org.bluez
5 Interface
org.bluez.HandsfreeGateway
6 Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
7
8 This interface is available for remote devices which can function in the Audio
9 Gateway role of the HFP profiles. It is intended to be used with external
10 telephony stacks / handlers of the HFP protocol.
11
12 Methods
void Connect()
13
14
Connect to the AG service on the remote device.
15
16
void Disconnect()
17
18
Disconnect from the AG service on the remote device
19
20
dict GetProperties()
21
22
Returns all properties for the interface. See the
23
properties section for available properties.
24
25
void RegisterAgent(object path)
26
27
The object path defines the path the of the agent
28
that will be called when a new Handsfree connection
29
is established.
30
31
If an application disconnects from the bus all of its
32
registered agents will be removed.
33
34
void UnregisterAgent(object path)
35
36
This unregisters the agent that has been previously
37
registered. The object path parameter must match the
38
same value that has been used on registration.
92
Conclusioni
39
40 Signals
PropertyChanged(string name, variant value)
41
42
This signal indicates a changed value of the given
43
property.
44
45 Properties
string State [readonly]
46
47
Indicates the state of the connection. Possible
48
values are:
49
"disconnected"
50
"connecting"
51
"connected"
52
"playing"
53
54 HandsfreeAgent hierarchy
55 ===============
56
57 Service
unique name
58 Interface
org.bluez.HandsfreeAgent
59 Object path freely definable
60
61 Methods
void NewConnection(filedescriptor fd)
62
63
This method gets called whenever a new handsfree
64
connection has been established. The objectpath
65
contains the object path of the remote device. This
66
method assumes that DBus daemon with file descriptor
67
passing capability is being used.
68
69
The agent should only return successfully once the
70
establishment of the service level connection (SLC)
71
has been completed. In the case of Handsfree this
72
means that BRSF exchange has been performed and
73
necessary initialization has been done.
74
75
Possible Errors: org.bluez.Error.InvalidArguments
76
org.bluez.Error.Failed
77
78
void Release()
79
80
This method gets called whenever the service daemon
81
unregisters the agent or whenever the Adapter where
82
the HandsfreeAgent registers itself is removed.
92
Conclusioni
93
Conclusioni
Bibliografia e Webgrafia
1. Advances in Digital Speech Transmission (Martin, Ulrich)
2. Voice and Audio Compression for Wireless Communications (Hanzo,
Claire)
3. GSM, GPRS and edge performance (Halonen, Romero)
4. Wireless communications and networking - Vijay Kumar Garg
5. Sistemi di cifratura. Storia, principi, algoritmi e tecniche (De Rosa)
6. Cryptographic engineering (Koc)
7. http://www.bluetooth.org
8. http://www.eetimes.com/electronics-news/4139026/Sorting-ThroughGSM-Codecs-A-Tutorial
9. http://www.telecomabc.com
10. http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec
11. http://www.vocal.com/data_sheets/gsmamr.pdf
12. http://www.etsi.org/deliver/etsi_en/301700_301799/301704/07.01.00_
40/en_301704v070100o.pdf
94
Conclusioni
Ringraziamenti
In primo luogo, un doveroso ringraziamento va al relatore di questo lavoro di
tesi, il Professor Aldo Franco Dragoni, per l’aiuto e la grande libertà concessami,
ma soprattutto per la cordialità e la stima mostrata nei miei confronti.
Un grazie di cuore va alla mia ragazza, per aver sempre creduto in me ed avermi
aiutato ad affrontare con serenità questa grande cavalcata.
Il mio debito di riconoscenza verso la mia famiglia è più grande che mai, non
potrò mai ringraziare adeguatamente i miei genitori o mio fratello: i primi, per
avermi sempre supportato durante il corso degli studi e per avermi dato la
possibilità di realizzare tutti gli obbiettivi che mi sono posto; mio fratello, per
aver sempre appoggiato ogni mia scelta ed aver fatto di tutto per aiutarmi in
ogni occasione in cui ne avevo bisogno.
95