Accesso alla rete e sicurezza
OTAA e ABP, le chiavi di un dispositivo e perché un gateway non può leggere i vostri dati.
OTAA e ABP
OTAA (over-the-air activation): il dispositivo accede alla rete con una join request. Gli servono tre valori:
- DevEUI: il numero univoco a livello mondiale del dispositivo (16 caratteri esadecimali),
- JoinEUI (in precedenza AppEUI): identifica il join server,
- AppKey: la chiave segreta (32 caratteri esadecimali).
Da questi valori, a ogni join vengono derivate nuove chiavi di sessione. OTAA è il metodo raccomandato.
ABP (activation by personalization): le chiavi di sessione e l’indirizzo del dispositivo sono fissi. Il dispositivo non esegue mai un join. Più semplice, ma meno sicuro e soggetto a errori quando i contatori di frame non sono più allineati.
Cifratura
LoRaWAN usa AES-128 su due livelli:
- NwkSKey (più chiavi di rete in LoRaWAN 1.1): protegge il messaggio da modifiche; la rete la usa per verificare che un messaggio sia autentico.
- AppSKey: cifra il payload end to end. Gateway e operatore di rete vedono solo byte cifrati; solo l’application server li decifra.
Contatore di frame
Ogni messaggio contiene un contatore progressivo (FCnt). La rete scarta i messaggi con un contatore che ha già visto. Questo impedisce a chiunque di reinviare vecchi pacchetti.
Se un dispositivo ABP si riavvia e ricomincia da 0, la rete scarta i suoi messaggi. Con OTAA il contatore riparte dopo ogni join, ed è corretto così.