Adesão à rede e segurança
OTAA e ABP, as chaves de um dispositivo e porque é que um gateway não consegue ler os seus dados.
OTAA e ABP
OTAA (over-the-air activation, ativação por via rádio): o dispositivo junta-se à rede com um join request. Precisa de três valores:
- DevEUI: o número único a nível mundial do dispositivo (16 caracteres hexadecimais),
- JoinEUI (antes AppEUI): identifica o servidor de join,
- AppKey: a chave secreta (32 caracteres hexadecimais).
A partir deles, são derivadas novas chaves de sessão em cada join. O OTAA é a via recomendada.
ABP (activation by personalization, ativação por personalização): as chaves de sessão e o endereço do dispositivo são fixos. O dispositivo nunca faz join. É mais simples, mas menos seguro e sujeito a erros quando os contadores de tramas deixam de estar sincronizados.
Cifragem
O LoRaWAN usa AES-128 em dois níveis:
- NwkSKey (várias chaves de rede no LoRaWAN 1.1): protege a mensagem contra alterações; a rede usa-a para verificar se uma mensagem é autêntica.
- AppSKey: cifra o payload de ponta a ponta. O gateway e o operador da rede veem apenas bytes cifrados; só o servidor de aplicação os decifra.
Contador de tramas
Cada mensagem leva um contador sequencial (FCnt). A rede descarta mensagens com um contador que já viu. Isto impede que alguém reenvie pacotes antigos.
Se um dispositivo ABP reiniciar e recomeçar em 0, a rede descarta as suas mensagens. Com OTAA, o contador recomeça após cada join, o que nesse caso está correto.