Connexion et sécurité
OTAA et ABP, les clés d’un appareil et pourquoi une passerelle ne peut pas lire vos données.
OTAA et ABP
OTAA (over-the-air activation, activation par radio) : l’appareil rejoint le réseau avec une requête de join (join request). Il a besoin de trois valeurs :
- DevEUI : le numéro unique au monde de l’appareil (16 caractères hexadécimaux),
- JoinEUI (anciennement AppEUI) : identifie le serveur de join,
- AppKey : la clé secrète (32 caractères hexadécimaux).
À partir de ces valeurs, de nouvelles clés de session sont dérivées à chaque join. OTAA est la méthode recommandée.
ABP (activation by personalization, activation par personnalisation) : les clés de session et l’adresse de l’appareil sont fixes. L’appareil ne fait jamais de join. C’est plus simple, mais moins sûr et source d’erreurs quand les compteurs de trames se désynchronisent.
Chiffrement
LoRaWAN utilise AES-128 à deux niveaux :
- NwkSKey (plusieurs clés de réseau dans LoRaWAN 1.1) : protège le message contre les modifications ; le réseau l’utilise pour vérifier qu’un message est authentique.
- AppSKey : chiffre la charge utile de bout en bout. La passerelle et l’opérateur du réseau ne voient que des octets chiffrés ; seul le serveur d’application les déchiffre.
Compteur de trames
Chaque message porte un compteur incrémental (FCnt). Le réseau rejette les messages dont il a déjà vu le compteur. Cela empêche quiconque de rejouer d’anciens paquets.
Si un appareil ABP redémarre et recommence à 0, le réseau rejette ses messages. Avec OTAA, le compteur repart de zéro après chaque join, ce qui est correct dans ce cas.