35
Capitolo 4.
La specifica ZigBee
La ZigBee Alliance è un associazione no profit fondata nel 2002 composta da imprese, università ed enti pubblici di tutto il mondo che collaborano tra loro per sviluppare degli standard che offrano soluzioni flessibili e libere per lo sviluppo di reti di sensori wireless. Nei paragrafi seguenti verranno esposte le principali caratteristiche del protocollo ZigBee e saranno analizzati i livelli che questa specifica va ad inserire nello stack [3].
4.1 Introduzione a ZigBee e caratteristiche generali
La Specifica ZigBee si inserisce al disopra del livello MAC dello standard IEEE802.15.4, introducendo il livello di rete (NWK) ed il livello di applicazione (APL) come mostrato nella Figura 4.1.
36
I dispositivi ZigBee possono utilizzare le bande di frequenze libere elencate di seguito:
2,4 GHz: Internazionale, massimo data rate 250Kbps, 16 canali; 868 MHz: Europa, massimo data rate 20 Kbps, 1 canale;
915 MHz: America/Australia, massimo data rate 40 Kbps, 10 canali.
4.2 Livello Rete (NWK)
Il livello Network gestisce la formazione della rete utilizzando i servizi offerti dal livello MAC, le principali funzioni di questo layer sono:
Esecuzione dei comandi MAC come livello superiore; Individuazione dei ruoli: coordinatore, router ed end-device; Formazione della rete e gestione delle connessioni;
Supporto dei data-frame e dei command-frame;
Implementazione di un Trust Center per la gestione delle mansioni di sicurezza dell’intera rete;
Gestione delle chiavi di sicurezza create con l’algoritmo di cifratura a blocchi AES-128 (Advanced Encryption Standard con chiavi a 128 bit);
Gestione delle politiche di routing mediante assegnazione di indirizzi a 16 bit; Sincronizzazione dei vari dispositivi;
Realizzazione dell’instradamento dei pacchetti.
L’instradamento dei pacchetti può avvenire secondo due tecniche:
1. Tree Routing: I pacchetti destinati ad altri dispositivi della rete vengono inviati al device padre o figlio secondo le associazioni effettuate con le primitive IEEE 802.15.4;
2. Table Routing: basato sulla creazione di una tabella di routing mediante un ciclo di discovery.
Il frame al livello rete, chiamato NPDU (Network Protocol Data unit) e mostrato in Tabella 4.1, è formato da una intestazione (NWK Header) e dal corpo del messaggio (NWK Payload).
37
Tabella 4.1 Formato del NWK frame
L’intestazione a sua volta è composta da:
Frame Control: che contiene informazioni sul tipo di frame, sull’indirizzamento e sulla sicurezza;
Destination Address: formato da 16 bit contiene informazioni sull’indirizzo della destinazione;
Source Address: formato da 16 bit contiene informazioni sull’indirizzo della sorgente;
Radius: specifica la copertura della trasmissione radio;
Sequence Number: è un identificatore che viene incrementato di 1 ad ogni trasmissione del pacchetto.
4.3 Livello applicativo (APL)
ZigBee, a differenza di altri protocolli di comunicazione, definisce anche il livello applicativo.
L’Application Support Sublayer (APS) funge da interfaccia tra livello rete e il
livello applicazione. Inoltre L’APS ha anche il compito di inoltrare messaggi tra dispositivi nella stessa rete (messaging), di associare tra loro due o più dispositivi e di applicare o rimuovere il livello di sicurezza.
L’Application Framework (AF) contiene gli oggetti applicativi contraddistinti da
end-point. L’end-point è una porta tramite la quale è possibile raggiungere un determinato oggetto applicazione (fino a 240); di conseguenza per indirizzare univocamente un determinato oggetto di un nodo si dovrà specificare la coppia “end-point, indirizzo”.
Lo ZigBee Device Objects (ZDO) è in realtà un oggetto gestito i modo trasversale
tra i livelli e possiede l’end-point 0, fornisce un’interfaccia di servizi tra gli oggetti applicazione e l’APS. Si occupa della gestione intelligente delle primitive a livello NWK, permette di effettuare discovery (determinando quali altri dispositivi stanno operando nel Personal Operating Space) ed ha la responsabilità di determinare la natura del dispositivo
38
nella rete (coordinator, router o end-device) avviando e rispondendo a richieste di binding9.
Una peculiarità di ZigBee, che si colloca nel livello applicativo, è la definizione di un set di profili. Questi sono semplicemente una descrizione dei componenti logici e delle interfacce necessarie per creare una determinata applicazione oggetto distribuita e interoperabile. Esistono più profili ZigBee per ogni settore commerciale ed hanno lo scopo di rendere compatibili tra loro applicazioni realizzate da diversi produttori.
4.4 ZigBee e Sicurezza
I meccanismi di sicurezza di ZigBee hanno il fine di proteggere i frame a vari livelli dello stack, determinare un’associazione sicura di un dispositivo alla rete ed implementare un sistema di creazione e scambio delle chiavi di segretezza. Questi servizi compongono l’SSP, Security Services Policies. Vediamo nello specifico le varie funzioni di sicurezza:
1. Freshness Counters, meccanismo atto a verificare la “freschezza” di un messaggio;
2. Autenticazione, che avviene sia a livello rete, con l’utilizzo di una chiave di rete comune (protezione da intrusioni esterne) che a livello MAC, con l’utilizzo di chiavi specifiche per ogni collegamento tra due dispositivi (protezione da intrusioni esterne ed interne);
3. Crittografia, può essere utilizzata sia a livello rete che a livello MAC mediante l’algoritmo di cifratura a blocchi AES-128.
Prende il nome di Trust Center il nodo della rete a cui vengono affidati i seguenti compiti legati alla sicurezza: autenticazione dei nuovi dispositivi, gestione delle chiavi di rete, gestione della sicurezza end-to-end tra dispositivi. Questo dispositivo, che di solito è il coordinatore, può operare in due modalità.
Nel Modo Residenziale, il Trust Center permette l’autenticazione di nuovi dispositivi ma non stabilisce chiavi di sicurezza.
Nel Modo Commerciale, il Trust Center gestisce chiavi e contatori di freshness con tutti i dispositivi della rete permettendo un controllo e un aggiornamento centralizzato delle chiavi.
9
Il binding è un meccanismo di memorizzazione degli indirizzi che semplifica la comunicazione. Il Coordinator crea una tabella di accoppiamenti degli indirizzi a livello cluster/endpoint tra i servizi e le richieste dei dispositivi nella rete. Ogni coppia viene chiamata binding