fieldtester.io

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

DispositivoGatewayServidorde redeServidor deaplicaçãoAplicaçãofieldtester.ioPayload cifrado com a AppSKey, de ponta a pontaassinado com a chave de rede, verificado pela redesó vêbytes cifradoso payload édecifrado aqui
O payload permanece cifrado desde o dispositivo até ao servidor de aplicação. O gateway e o servidor de rede veem apenas bytes cifrados.

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.