IoT : Le réseau LoRaWAN In a nutshell #2

Dans notre premier post LoRaWAN qui es-tu ?, nous abordions les différents types de périphériques et leur classification (classes A,B et C) en fonction de leurs usages. Nous poursuivons notre étude du protocole “LoRaWAN in a nutshell“. Dans ce second post nous abordons plus en détails les principes de jonction au réseau et leur mise en œuvre (authentification, inventaire, chiffrement des communications).

Dans notre premier post LoRaWAN qui es-tu ?, nous abordions les différents types de périphériques et leur classification (classes A,B et C) en fonction de leurs usages. Dans ce second billet “LoRaWAN In a nutshell“ nous abordons les principes de jonction au réseau. Deux modes de jonction existent qui se distinguent par leur sécurité et leur facilité de mise en œuvre :

  1. ABP : Activation By Personnalization
  2. OTAA : Over The Air Activation


L’ABP

  • Avantage : Raccordement au réseau simplifié ; l’objet est rapidement opérationnel.
  • Inconvénient : Les clés de chiffrement permettant la communication avec le réseau, sont préconfigurées dans l’objet : sécurité affaiblie.

ATTENTION : Cette stratégie de simplicité dans la procédure de jonction se fait au détriment de la sécurité .
S’il y a intrusion physique dans l’objet, le vol des clés est possible et peut conduire à l’usurpation de l’identité de l’objet, entrainant une corruption des données collectées
Exemple : Un compteur d’eau pourrait envoyer une indication de consommation d’eau erronée pouvant entrainer des nuisances (inondation, surfacturation…).

Afin d’établir la jonction au réseau et d’identifier l’objet, il est nécessaire de connaitre plusieurs informations :

  • AppEUI : C’est un identifiant unique d’application qui permet de regrouper les objets. Cette adresse, sur 64 bits, permet de classer les périphériques par application. Ce paramètre est modifiable.
  • DevEUI : c’est un identifiant qui rend unique chaque objet, programmé en usine.
    Ce paramètre n’est théoriquement pas modifiable.
  • AppKey : Il s’agit d’un secret partagé entre le périphérique et le réseau, utilisé pour dériver les clefs de session. Ce paramètre peut être modifié.

Les clefs de chiffrements sont préprogrammées dans le périphérique :

  • DevAddr : il s’agit d’une adresse logique pour identifier l’objet dans le réseau.
  • NetSKey (Network Session Key) : Clé de chiffrement entre l’objet et l’opérateur utilisée pour les transmissions et valider l’intégrité des messages.
  • AppSKey (Application Session Key) : Clé de chiffrement entre l’objet et l’utilisateur (via l’application) utilisée pour les transmissions et valider l’intégrité des messages.

L’OTAA

  • Avantage : Le réseau génère et envoie les clés de chiffrement ; la sécurité est renforcée.
    C’est la méthode la plus utilisée dans le monde de l’IoT/LoRaWAN, car la plus sécurisée.
  • Inconvénient : L’objet doit implémenter ce mécanisme de jonction ce qui introduit une complexité supplémentaire.

Afin d’établir la jonction au réseau et d’identifier l’objet, il est nécessaire de connaitre plusieurs informations.

  • AppEUI : C’est un identifiant unique d’application qui permet de regrouper les objets. Cette adresse, sur 64 bits, permet de classer les périphériques par application. Ce paramètre est modifiable.
  • DevEUI : c’est un identifiant qui rend unique chaque objet, programmé en usine.
    Ce paramètre n’est théoriquement pas modifiable.
  • AppKey : Il s’agit d’un secret partagé entre le périphérique et le réseau, utilisé pour dériver les clefs de session.
    Ce paramètre peut être modifié.

Zoom sur l’OTAA

Le composant logiciel en charge d’établir le raccordement avec les objets et d’animer le cœur de réseau, est le “Network Server“.
Lors d’une jonction de type OTAA, si l’objet est autorisé à rejoindre le réseau, celui-ci va échanger des clés de chiffrement propres à cette session avec le cœur de réseau. Le Network Server va alors attribuer des informations propres à la session et les communiquer au périphérique :

  • DevAddr : adresse logique (équivalent d’une adresse IP) qui sera utilisé pour toutes les communications ultérieures.
  • NetSKey (Network Session Key) : Clé de chiffrement entre l’objet et l’opérateur utilisée pour les transmissions et valider l’intégrité des messages.
  • AppSKey (Application Session Key) : Clé de chiffrement entre l’objet et l’utilisateur (via l’application)
    utilisée pour les transmissions et valider l’intégrité des messages.