Introduzione a Bluetooth Bluetooth è uno standard di comunicazione radio a corto raggio tramite il quale si possono connettere dispositivi elettronici in modalità wireless (senza fili). La tecnologia Bluetooth opera nella banda di frequenze tra 2,4 e 2,5 GHz, che è denominata ISM (Industrial Scientific Medical) ed è libera da ogni licenza di utilizzo. Bluetooth usa una tecnica trasmissiva di tipo FHSS (Frequency Hopping Spread Spectrum – a spettro diffuso con salti di frequenza), in cui la frequenza non è fissata ma varia saltellando tra 79 frequenze diverse (hopping) ad intervalli regolari, secondo una sequenza pseudocasuale. Ciò consente di contrastare meglio l'interferenza e il fading.1 I dati possono essere trasmessi su canali sincroni (SCO, Synchronous Connection-Oriented) o asincroni (ACL, Asynchronous ConnectionLess). I primi sono tipicamente usati per il traffico audio, in cui è necessario mantenere la coerenza temporale, mentre i secondi sono utilizzati per i dati. Il data rate lordo (comprensivo, cioè, dei campi dei pacchetti di dati che non costituiscono carico utile per le applicazioni) è di 1 Mbps in modalità Basic Rate (che adotta uno schema di modulazione GFSK – Gaussian Frequency Shift Keying) e di 2 oppure 3 Mbps in modalità Enhanced Data Rate (che adotta una combinazione di GFSK e PSK – Phase Shift Keying). Il data rate netto per connessioni ACL unidirezionali può giungere fino a 723 Kbps in modalità Basic Rate e parimenti raddoppia o triplica in modalità Enhanced Data Rate. Il raggio di trasmissione è di circa 10 m, una distanza limitata dall'esigenza di contenere la potenza di trasmissione e, di conseguenza, il consumo di energia. Questo fatto risulta particolarmente importante se si pensa di usare la tecnologia Bluetooth per la connessione di dispositivi alimentati da batteria – quali telefoni cellulari, laptop o palmari – per i quali l'autonomia è un requisito critico. Altre caratteristiche importanti sono l'ingombro ridotto, la sicurezza delle connessioni ed il basso costo. Tutte queste caratteristiche rendono la tecnologia Bluetooth particolarmente adatta alle reti mobili ad hoc. 1 Le reti Bluetooth Le reti topologicamente più semplici che possono essere formate usando dispositivi Bluetooth vengono dette piconet. Esse sono composte al massimo da otto elementi e sono caratterizzate dalla 1 Il fading è un affievolimento del segnale causato dalla disomogeneità dell'atmosfera e da ostacoli riflettenti interposti tra trasmettitore e ricevitore. In queste condizioni, infatti, la radiazione emessa si propaga e raggiunge l'antenna ricevente seguendo cammini diversi, che producono attenuazioni differenti e sfasamenti casuali. La ricomposizione di questi contributi all'antenna ricevente genera un segnale la cui ampiezza può fluttuare anche molto fortemente. 1 - Introduzione a Bluetooth Floriano Scioscia - SisInfLab sincronizzazione temporale tra i partecipanti e dalla sequenza delle frequenze di salto seguita dai suoi membri. In ogni piconet si distingue un nodo, detto master, mentre gli altri sono detti slave. Ogni membro della piconet calcola la sequenza di frequenze di salto applicando un particolare algoritmo all'indirizzo fisico ed al clock Bluetooth del master. L'indirizzo fisico, detto Bluetooth address, è un identificativo lungo 48 bit univoco per ogni dispositivo. Il Bluetooth clock è invece una specie di orologio di sistema, implementato con un contatore a 28 bit, che compie un ciclo completo approssimativamente in un giorno. Affinché un dispositivo possa connettersi ad un altro, è indispensabile che ne rilevi la presenza e ne recuperi l'indirizzo fisico. Questa procedura, preliminare alla creazione di una piconet, nella terminologia delle specifiche Bluetooth è detta device discovery (scoperta di dispositivi) ed è asimmetrica, nel senso che un dispositivo si pone in cerca degli apparati presenti all'interno dell'area coperta dalla radio (procedura detta inquiry), mentre gli altri si renderanno individuabili – discoverable – ponendosi in una modalità di attesa (che prende il nome di inquiry scanning). La successiva procedura, mediante la quale un dispositivo si connette effettivamente ad un altro, di cui conosca l'indirizzo, viene detta paging. Affinché la connessione possa andare a buon fine, l'altro dispositivo dovrà porsi nella modalità di page scanning. Il dispositivo che ha effettuato il paging assume il ruolo di master, l'altro quello di slave. Fermi restando i limiti complessivi di banda, all'interno di una stessa piconet può essere presente un collegamento dati punto-multipunto ACL dal master verso al più sette slave, più un massimo di tre connessioni punto-punto SCO. Non possono essere instaurate connessioni SCO senza aver preliminarmente stabilito un collegamento ACL, che è indispensabile per rendere possibili le operazioni di controllo della connessione. Solo il master può dare avvio alla procedura volta a stabilire una connessione e all'interno di una stessa piconet non possono esistere collegamenti se non fra il master e gli slave, per cui questi ultimi non possono comunicare direttamente, a meno di creare essi stessi una nuova piconet. Due piconet possono comunicare fra loro per mezzo di nodi ponte che partecipano ad entrambe in multiplazione a divisione di tempo. Si forma così una scatternet, ossia una rete composta da più piconet, fino ad un massimo di dieci in un ambiente ristretto. Questa limitazione è dovuta al fatto che le frequenze di salto disponibili sono solo 79: aumentando il numero di piconet in un ambiente dalle ridotte dimensioni, la probabilità di collisioni cresce fino a cessare di essere trascurabile. 2 - Introduzione a Bluetooth Floriano Scioscia - SisInfLab piconet 1 piconet 2 A B C E D F G H piconet 3 Figura 1: Esempi di topologie di reti Bluetooth La Figura 1 mostra esempi di diverse topologie di reti Bluetooth. Gli archi orientati rappresentano connessioni da un master a uno slave. Il nodo A è master della piconet 1, di cui B, C e D sono slave. Il nodo E è master della piconet 2, in cui sono slave D ed F. Poiché D partecipa ad entrambe le piconet, si configura una scatternet. Analogo discorso vale per il nodo C, che è slave di A e contemporaneamente master della piconet 3, in cui il nodo G assume il ruolo di slave. Il dispositivo H, infine, è in prossimità degli altri nodi, ma non partecipa ad alcuna piconet; è nella modalità inquiry scan in attesa di un inquiry da parte di un altro dispositivo. 2 Sicurezza Lo standard Bluetooth prevede la possibilità di attuare l'autenticazione tra dispositivi e la crittografia della trasmissione. L'autenticazione è ottenuta usando una chiave segreta condivisa fra due apparati, detta link key, e avviene secondo un meccanismo a sfida e risposta (challengeresponse) tra un dispositivo richiedente e un verificatore dell'autenticazione. Se ha successo, la procedura viene ripetuta a ruoli invertiti, permettendo l'autenticazione reciproca. La link key viene stabilita durante una particolare sessione di comunicazione chiamata pairing, che può richiedere l'inserimento di un PIN (Personal Identification Number) da parte dell'utente. Si dice che i due dispositivi sono accoppiati (paired) quando condividono una link key precedentemente negoziata. La crittografia è basata su una chiave a 128 bit, diversa dalla link key e ricavata da quest'ultima, dall'indirizzo fisico del dispositivo e da un numero casuale. Essendo la sicurezza delle 3 - Introduzione a Bluetooth Floriano Scioscia - SisInfLab trasmissioni basata essenzialmente sulla segretezza delle chiavi, eventuali malintenzionati tenteranno di entrare in possesso della link key o almeno di una sua parte. Il momento più opportuno per cercare di carpirla è durante il pairing. Per questo è una buona norma di sicurezza eseguire questa procedura in privato, fuori dalla portata d'ascolto – e dallo sguardo – di eventuali malintenzionati, che corrisponde alla portata del sistema di circa 10 metri. 3 Risparmio energetico Si è già accennato che lo standard Bluetooth propone alcune modalità per il risparmio di energia durante una connessione. Esse sono note con i nomi di sniff, hold e park, e corrispondono a tre gradi diversi di riduzione dell'attività del dispositivo rispetto alla modalità connected assunta normalmente durante una connessione. Nella modalità sniff viene ridotta la cadenza con la quale uno slave impegnato in un link ACL ascolta le trasmissioni del master. Il master allora può iniziare una trasmissione verso un particolare slave solo ad intervalli di tempo regolari, dal valore tipico di 1 s. Un dispositivo impegnato in un collegamento SCO non può entrare nella modalità sniff. La modalità hold riguarda solo la trasmissione di pacchetti asincroni. Un link ACL con uno slave viene messo in hold quando si desidera che esso non supporti, per una durata di tempo fissata, la trasmissione di pacchetti ACL sul canale. In questa modalità possono continuare a sussistere eventuali collegamenti SCO. Quando, invece, un dispositivo non necessita di partecipare attivamente alla piconet ma desidera rimanere sincronizzato, può essere messo in modalità park. Essa è caratterizzata da un'attività, e quindi da un consumo, estremamente ridotti, con l'inconveniente, però, del tempo relativamente lungo occorrente a “risvegliare” il dispositivo. Anche la modalità Enhanced Data Rate (EDR), introdotta nella più recente specifica dello standard, contribuisce a migliorare l'efficienza energetica degli apparati Bluetooth, attraverso l'aumento di throughput dei dati e la conseguente riduzione dei tempi di attività della trasmittente. Ciò si ottiene impiegando due schemi di modulazione più sofisticati, capaci di codificare 2 o 3 bit per simbolo, anziché 1 come nello schema GFSK di base. Una volta abilitato l'EDR su una connessione tra dispositivi che lo supportano, alcuni bit dell'intestazione dei pacchetti di dati, che normalmente denotano la tipologia di pacchetto, vengono interpretati in modo diverso permettendo di indicare il tipo di modulazione utilizzata per la restante parte del pacchetto. In tal modo si preserva la compatibilità tra i dispositivi che supportano la nuova specifica 2.0 e quelli che supportano solo le versioni precedenti. 4 - Introduzione a Bluetooth Floriano Scioscia - SisInfLab 4 Lo stack di protocollo Per garantire l'interoperabilità fra dispositivi costruiti da produttori diversi, la specifica non definisce soltanto i requisiti del sistema radio, ma anche il protocollo di comunicazione. Esso è organizzato in una pila (stack), in cui ogni strato (layer), interagendo con i layer adiacenti usa i servizi dei layer più in basso offrendone a sua volta a quelli superiori. In una comunicazione fra dispositivi Bluetooth ogni layer comunica col suo omologo presente su un altro dispositivo mediante il relativo protocollo, definito dalla specifica. Sono quindi presenti tante connessioni logiche quanti sono i layer utilizzati. La Figura 2 rappresenta graficamente la struttura dello stack di protocollo Bluetooth. Sono Audio TCS UDP/TCP OBEX Comandi AT Applicazioni IP PPP RFCOMM SDP L2CAP HCI Link Manager Baseband Bluetooth Radio Figura 2: Lo stack di protocollo Bluetooth omessi alcuni layer di alto livello, utili soltanto per particolari applicazioni. Il livello applicativo può essere pensato come appoggiato al di sopra dei livelli più alti dello stack, cioè L2CAP, TCS, SDP, RFCOMM, HCI, di cui l'applicazione utente può usare i servizi. Segue una breve descrizione delle principali funzioni espletate dai diversi strati: 5 - Introduzione a Bluetooth Floriano Scioscia - SisInfLab ● Baseband e Bluetooth Radio: sono gli strati più bassi e servono ad effettuare le procedure relative alla connessione fisica fra i dispositivi. In particolare stabiliscono la sequenza delle frequenze di salto e controllano il canale fisico, formano i pacchetti dati che verranno effettivamente trasmessi, implementano la correzione degli errori di trasmissione e l'eventuale cifratura dei dati. ● Link Manager: questo protocollo viene adoperato per il setup, il controllo e la sicurezza del collegamento; i segnali scambiati a questo livello tra due dispositivi non si propagano ai layer superiori. Il Link Manager è responsabile delle operazioni di paging e page scanning (quindi anche dello stabilimento di connessioni ACL e SCO), inquiry ed inquiry scanning e delle modalità di basso consumo; esso, inoltre, gestisce le operazioni di pairing. ● Host Controller Interface (HCI): non è un layer vero e proprio poiché non eroga servizi per i livelli superiori né comunica col suo omologo presente su un altro dispositivo. Serve piuttosto a fornire un'interfaccia uniforme di comandi per accedere al Link Manager e alle potenzialità del sistema radio. Offre, inoltre, accesso allo stato dell'hardware e ai registri di controllo. ● Logical Link Control and Adaptation Protocol (L2CAP): il layer L2CAP ha la funzione di fornire servizi per l'invio dei dati ai livelli superiori. A tale scopo, supporta: ○ multiplexing dei livelli più alti di protocollo; ○ segmentazione e riassemblaggio dei pacchetti di dimensioni elevate; ○ gestione delle connessioni logiche con i layer superiori; Grazie a L2CAP, è consentito l'invio di pacchetti dati più grandi di quelli permessi dalla semplice trasmissione radio e l'invio di informazioni sulla qualità del servizio. Non è prevista la segmentazione di pacchetti audio sincroni ma soltanto di dati asincroni. ● Service Discovery Protocol (SDP): questo strato permette ad un dispositivo di individuare i servizi di cui potrebbe usufruire connettendosi ad altri dispositivi Bluetooth a portata di comunicazione e di notificare i servizi che possono essere forniti. ● Telephony Control - Binary (TCS Bin): è un protocollo orientato ai bit, che fornisce funzionalità per il supporto di telefonia senza fili. ● RFCOMM: permette di emulare porte seriali attraverso il layer L2CAP, con i relativi segnali. Per esempio, RFCOMM può emulare una porta con lo standard RS-232. 6 - Introduzione a Bluetooth Floriano Scioscia - SisInfLab 5 I profili Bluetooth Nell'ottica della interoperabilità, in aggiunta ai requisiti del sistema radio ed ai protocolli, la specifica Bluetooth descrive quelli che vengono chiamati profili. Un profilo è un insieme di definizioni, raccomandazioni e requisiti comuni per la corretta implementazione di un particolare scenario applicativo. Per requisiti si intendono i servizi che devono essere supportati e le procedure atte ad implementare le varie funzioni, ognuna riferita ad un particolare layer dello stack. Ogni profilo, pertanto, può esser visto come una sezione verticale dello stack di protocolli Bluetooth. Figura 3: Profili Bluetooth Tra i vari profili esistono delle relazioni di dipendenza, nel senso che alcuni di essi usano gerarchicamente altri. Le relazioni fra diversi profili definiti nella versione della specifica Bluetooth 2.0 sono rappresentate in Figura 3: un profilo dipendente è rappresentato come contenuto in quello da cui dipende. Si vede perciò piuttosto chiaramente che tutti i profili dipendono direttamente o indirettamente dal Generic Access Profile. Esso definisce le procedure atte ad assicurare l'interoperabilità più elementare, essenzialmente garantendo la capacità di un dispositivo di individuare altri apparecchi nelle vicinanze ed eventualmente connettervisi, o di essere a sua volta individuato e connesso. Tale profilo definisce inoltre i requisiti per le procedure di autenticazione e cifratura delle connessioni. La maggior parte, se non la totalità, degli apparati Bluetooth oggi esistenti si appoggia ai 7 - Introduzione a Bluetooth Floriano Scioscia - SisInfLab profili già definiti. Ricordiamo, ad esempio, gli auricolari per telefoni cellulari (Headset Profile), l'accesso wireless ad una rete di calcolatori (Personal Area Networking Profile), mouse e tastiere senza cavi (Serial Port Profile, Generic Object Exchange Profile) e l'uso di telefoni cellulari come modem senza fili (Dial-up Networking Profile). Tuttavia, sebbene il Bluetooth SIG (Special Interest Group, il consorzio di aziende direttamente interessate allo sviluppo della tecnologia Bluetooth) si adoperi per aggiungere alla specifica sempre nuovi profili, accade spesso di immaginare e voler realizzare un'applicazione per cui non sia stato previsto alcun profilo specifico. In questo caso, l'unico profilo che occorre rispettare è il Generic Access Profile. 8 - Introduzione a Bluetooth Floriano Scioscia - SisInfLab