Un nodo per accedere alla rete LoRaWAN deve essere attivato, con un meccanismo che lo identifica in modo univoco qualora opportunamente registrato nella rete. Si può pensare a questo meccanismo come una autenticazione. Ci sono due metodi di accesso: OTAA e ABP (Over The Air Activaction e Activation by Personalization) di seguito descritti. In funzione del meccanismo vengono negoziate o fornite in modo statico opportune chiavi usate per criptare il traffico di dati in rete.
Indirizzamento.
Il gateway e i nodi devono essere noti al network server e identificati in modo univoco attraverso identificativi di 64 bit denominati rispettivamente GatewayEUI e DevEUI (Extended Unique Identifier, EUI). Nei dispositivi commerciali questi identificatori sono definiti dal costruttore e scritti in qualche forma, non modificabile, nel dispositivo (in memoria ROM). In ambienti di sviluppo e prototipizzazione, l’identificativo è fornito generalmente dallo sviluppatore, il quale deve avere cura di evitare duplicazioni, almeno nell’ambito della rete nella quale è inserito il dispositivo. Ad esempio, per i gateway che dispongono di una interfaccia di rete ethernet, si può utilizzare il MAC address per generare il GatewayEUI inserendo 2 byte 0xffff a metà MAC address, come suggerito in ‘Mapping an EUI-48 to an EUI-64’ del citato documento IEEE. Esistono altri identificativi usati nella gestione del nodo e dell’applicativo (riferito all’Application Server).
DevAddr è l’indirizzo usato nei messaggi del nodo di 32 bit. Il suo uso al posto di un identificativo EUI-64, permette un messaggio corto, ma non è garantisce unicità del nodo nella rete. Per discriminare univocamente il nodo, nei casi di DevAddr duplicato, si fa riferimento alla crittografia del pacchetto: ogni nodo ha una chiave AES differente.
AppEUI è un identificativo usato per abbinare il nodo all’Application Server, indicativamente può essere paragonato al concetto di port number del protocollo TCP.
Attivazione
Il nodo, alla sua attivazione, deve essere riconosciuto e identificato dalla rete con un meccanismo appropriato. Esistono due modalità di autenticazione e attivazione dei nodi:
- OTAA, Over The Air Activation.
- ABP, Activation by Personalization.
OTAA prevede una fase iniziale di join alla rete durante la quale vengono negoziati i principali parametri di connessione quali indirizzi (DevAddr), chiavi AES per la crittografia (NwkSKey e AppSKey). Nella fase di attivazione, per gestire l’integrità e la riservatezza, viene utilizzato l’identificativo AppKey, noto al nodo e al network server, usato per firmare (MIC Message Integrity Code) e criptare i primi messaggi scambiati per l’attivazione. Nello scambio viene utilizzato un valore di nonce, generato casualmente, utile a limitare attacchi di tipo replay. In figura è presentata la sequenza dei messaggi nella procedura OTAA.
Nella fase iniziale i dati sono protetti dalla chiave denominata AppKey, nota al nodo e al Network Server, tramite una firma MIC (Message Integrity Code). In seguito vengono generate e ascambiate le chiavi utilizzate per il normale traffico da e per il Nework server (NwkSKey) e l'application server (AppSKey).
Ad ogni riconnessione del nodo, ad esempio dopo uno spegnimento e successiva accensione, le chiavi e il DevAddr sono nuovamente negoziate e cambiate. Questo è il motivo per cui il meccanismo OTAA, rispetto a ABP, è ritenuto più sicuro. Il network server (o chi per esso) genera le chiavi di sessione, valide per lo specifico join: NwkSKey e AppSKey. La prima chiave è usata per criptare il pacchetto destinato al Network Server, la seconda per cifrare il payload destinato all’Application Server.
Nella attivazione ABP non esiste la fase di join. Le chiavi di crittografa e il DevAddr sono statiche e note a priori a tutti i rispettivi elementi della rete. ABP è un modo più snello, non richiede negoziazione. Le chiavi di crittografia restano immutate nel tempo (di solito scritte nel firmware) e consentendo più spazio ad attacchi malevoli, per questo è bene proteggere l’hardware per evitare la lettura delle chiavi agendo direttamente sul dispositivo. La figura riassume i parametri coinvolti in ABP.
Commenti recenti