Introduction au LoRaWAN
Si vous êtes pas ou peu familier avec le protocole LoRaWAN, je vous conseille vivement de regarder cette vidéo de Sylvain Montagny, professeur à l'Université Savoie Mont Blanc.
🦷
-
LoRa : pour "Long Range" est le protocole de couche 1 (couche physique du modèle OSI) utilisé.
-
LoRaWAN : pour "Long Range Wide Area Network" désigne la totalité du protocole de transmission
Résumé
Le protocole LoRaWAN est donc un protocole de communication par voie hertzienne longue distance, basse consommation et sécurisé destiné à des applications lièes à l'Internet des Objets (IOT) ayant des contraintes fortes notamment sur l'autonomie des systèmes embarqués. En contrepartie de ces qualités, peu de données peuvent être transmises par seconde; en moyenne, en fonction de la configuration, on observe un débit moyen de 1300bps soit 0,1625Ko/s.
Composition
End device
Un "End device" est un capteur ou un appareil connecté par voie hertzienne au réseau LoRaWAN. Dans notre cas ce sont des cartes de dévellopement réalisées par Didalab.
Ces End devices échangent des données avec les gateways.
Gateway
Une "Gateway" (ou passerelle) est connecté au réseau LoRaWAN pour l'écoute des communications faites par les End devices ainsi que l'envoi d'informations à ceux-ci par voie hertzienne et les transmettre au Network Server, le plus souvent par Wifi ou ethernet. C'est le point de contact, la passerelle, entre le réseau LoRaWAN et le Network Server.
Network Server
Un "Network Server" est un serveur (ici avec le logiciel ChirpStack), qui traite toutes les communications en provenance des End devices relayées par les gateways connectées.
Le plus souvent, ce serveur va ensuite transmettre ces communications à des Application servers ayant fait une "subscribtion" à une liste de diffusion via un protocole tel que MQTT.
Application Server
Un "Application server" est un serveur (par exemple avec le logiciel Node-Red) qui va prendre le rôle de serveur de visualisation pour l'utilisateur final. (Dans le projet "Suivi de posture", l'application de visualisation est un .exe qui est faite avec des technologies du web)
Sécurité du protocole LoRaWAN
La sécurité des transmissions avec le protocole LoRaWAN repose sur 4 principes :
-
confidentialité : l'information ne peut pas lue par une personne non autorisée (chiffrement)
-
authenticité : l'information est attribuée à son auteur légitime. un attaquant ne peut pas prétendre être un membre du réseau LoRaWAN.
-
intégrité : l’information envoyée ne peut être modifiée par une personne non autorisée. Un attaquant ne peut pas prétendre être un membre du réseau en interceptant une communication authentique, en modifier le contenu, pour la renvoyer sur le réseau (Attaque de l'homme du milieu)
-
non-répudiation : Impossibilité, pour une entité engagée dans une communication, de nier avoir reçu ou émis un message. Principe de fiabilité de la communication. (fiabilité)
Configuration
Configuration modulation
Channels
Le protocole LoRaWAN a une bande réservée en 868Mhz qui peut être découpé au minimum en 3 canaux uniques où autant de End devices que de canaux peuvent discuter en simultané avec la gateway à condition que celle-ci en soit capable.
Spreading Factor
Le Spreading factor (ou facteur de redondance) est un nombre sans dimmension compris entre 7 et 12. Qui va être le nombre de fois que l'information va être transmise.
Concrétement, plus le spreading factor est grand plus les erreurs de transmission dû à l'atténuation du signal vont être corrigées et plus le End device transmettra loin. Cependant plus le spreading factor est grand plus la transmission sera longue et consommera de l'énergie
Configuration chiffrement et identification
Méthodes ABP et OTAA
La méthode ABP (Activation By Personalization) est une méthode négociation et d'activisation entre les End devices et le Network Server se reposant sur les NWSKEY et APPSKEY (ainsi que du DEVADDR) stockés "en dur" dans la programmation du End device.
Cette méthode permet d'assurer la sécurité du protocole LoRaWAN.
Quelques uns de ces défauts :
- 🟥 La sécurité se repose sur les NWSKEY et APPSKEY qui ne seront jamais changées automatiquement.
- 🟥 Le End device n'a pas la notion du nombre de canaux disponibles, ni du Spreading Factor de downlink (qui est fixé par le Network Server)
La méthode OTAA (Over The Air Activation) est une méthode de négociation et d'activisation avec le Network Server. Dans ce cas là, le NWSKEY et APPSKEY ne sont pas stockés "en dur" sur le End device mais demandés lors d'une "join request" du End device au Network Server grâce aux DEVEUI et APPEUI.
Au quel le Network Server répond par un "join accept" avec une NWSKEY, une APPSKEY (ainsi que du DEVADDR) et toutes les paramètres du protocole LoRaWAN utilisé par le Network Server.
NWSKEY et APPSKEY
La NWSKEY *(pour Network Session Key)*est une clé sur 16 octets permettant de garantir l'authenticité et l'intégrité du message.
La APPSKEY (pour Application Session Key) est une clé de chiffrement symètrique stocké sur le End device et l'application server sur 16 octets permettant au End device de communiquer avec l'application server.
DEVEUI et APPEUI
La DEVEUI (pour Device Extended Unique Identifier) est un identifiant unique de 8 octets stocké sur le End device utilisé dans le cadre de l'activation OTAA pour s'authentifier auprès du Network Server.
C'est une clé public de chiffrement asymétrique lié à sa clé privé APPEUI.
La APPEUI (pour Application Extended Unique Identifier) est un identifiant unique de 8 octets stocké sur le End device utilisé dans le cadre de l'activation OTAA pour s'authentifier auprès de l'Application Server.
C'est une clé privé de chiffrement asymétrique lié à sa clé public DEVEUI.
DEVADDR
Le DEVADDR (pour Device Adress) est un UID (identifiant unique) stocké sur le End device et le Network Server sur 8 octets permettant d'identifier chaque End device

