fieldtester.io

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

DispositivoGatewayNetworkserverApplicationserverApplicazionefieldtester.ioPayload cifrato con l’AppSKey, end to endfirmato con la chiave di rete, verificato dalla retevede solobyte cifratiqui il payloadviene decifrato
Il payload resta cifrato dal dispositivo fino all’application server. Gateway e network server vedono solo byte cifrati.

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ì.