fieldtester.io

Entrada na rede e segurança

OTAA e ABP, as chaves de um dispositivo e por que um gateway não consegue ler seus dados.

OTAA e ABP

OTAA (over-the-air activation): o dispositivo entra na rede com um join request. Ele precisa de três valores:

  • DevEUI: o número globalmente único do dispositivo (16 caracteres hexadecimais),
  • JoinEUI (antes AppEUI): identifica o join server,
  • AppKey: a chave secreta (32 caracteres hexadecimais).

A partir deles, novas chaves de sessão são derivadas a cada entrada na rede. OTAA é o método recomendado.

ABP (activation by personalization): as chaves de sessão e o endereço do dispositivo são fixos. O dispositivo nunca faz o join. É mais simples, porém menos seguro e sujeito a erros quando os contadores de frames saem de sincronia.

Criptografia

DispositivoGatewayServidorde redeServidor deaplicaçãoAplicativofieldtester.ioPayload criptografado com a AppSKey, ponta a pontaassinado com a chave de rede, verificado pela redevê só bytescriptografadosaqui o payload édescriptografado
O payload permanece criptografado do dispositivo até o servidor de aplicação. Gateway e servidor de rede veem apenas bytes criptografados.

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 a usa para verificar se uma mensagem é autêntica.
  • AppSKey: criptografa o payload de ponta a ponta. Gateway e operador de rede veem apenas bytes criptografados; só o servidor de aplicação os descriptografa.

Contador de frames

Cada mensagem leva um contador sequencial (FCnt). A rede descarta mensagens com um contador que ela já viu. Isso impede que alguém reenvie pacotes antigos.

Se um dispositivo ABP reinicia e começa de novo em 0, a rede descarta suas mensagens. Com OTAA, o contador recomeça após cada join, o que nesse caso está correto.