Le Bluetooth MESH

Crédit photo : Bluetooth.com

 

Le Bluetooth MESH est un protocole de réseau maillé normalisé par le Bluetooth SIG dont les spécifications ont été rendues publiques en juillet 2017. Depuis, une majorité de fondeurs concepteurs de SoC ont proposé une implémentation officielle et un SDK. C’est notamment le cas de Nordic Semiconductor, Silicon Labs ou Texas Instruments.

 

Une nouvelle topologie réseau

Contrairement au BLE classique qui impose une topologie en étoile (star network), Bluetooth MESH permet de créer un réseau maillé. Il permet ainsi de connecter et faire dialoguer un grand nombre d’équipements (jusqu’à 50) et d’étendre la portée des communication grâce au multi-sauts et des techniques de diffusion de type Flooding. Un très bon exemple de cas d’usage est la maison connectée.

star network bluetooth network

Protocole de Diffusion : Managed Flooding

La spécification initiale Bluetooth MESH est basée sur un maillage de type Managed Floodig. Les canaux de diffusion sont utilisés pour transmettre des messages. Les messages sont reçus par d’autres nœuds et relayés. Cela permet d’étendre le réseau et d’intégrer de nombreux nœuds (environ une cinquantaine).

Les réseaux maillés sont le plus souvent de type partiel, c’est à dire que les messages sont relayés de noeud en noeud jusqu’à ce que tous les noeuds aient reçu le message d’origine. Les réseaux maillés basés sur le Flooding sont jugés plus faciles à mettre en œuvre et plus résilients par rapport aux réseaux maillés basés sur le routage, et offrent également une meilleure évolutivité.

 

Architecture de la Pile Protocolaire : Comparaison avec le BLE

 

application pile protocolaire

Compatibilité avec le BLE « standard »

Les périphériques BLE « standards » utilisant le GATT et qui sont actuellement utilisés, ne sont pas en mesure d’envoyer des messages Bluetooth MESH, ni capables de les interpréter.

Bluetooth SIG a donc fourni une compatibilité descendante en incluant les fonctionnalités du GATT aux nœuds Bluetooth MESH permettant la connectivité avec tout appareil prenant en charge le GATT, tant que le périphérique est compatible avec le Bluetooth 4.0 ou une version ultérieure.

 

Différents Types de Nœuds

En plus de leur capacité à émettre et recevoir des messages, Bluetooth MESH introduit différentes Features additionnelles qui peuvent se cumuler sur chaque nœud :

  • Relay: recevoir et retransmettre des messages,
  • Proxy : recevoir et retransmettre des messages MESH entre équipements BLE « standards » (GATT) et MESH (Publish/Subscribe),
  • Low Power : pour les équipements disposant de ressources énergétiques limitées. Ils ne peuvent recevoir et émettre des messages qu’aux nœuds disposant de la Feature Friend,
  • Friend : permet de recevoir et relayer des messages aux nœuds Low Power.

topologie - noeuds réseau Bluetooth

La topologie et les différents types de noeuds d’un résueau Bluetooth MESH

Paramètres du Réseau : Ressources

Les nœuds sont configurés avec 4 Ressources qui définissent un réseau Bluetooth MESH et permettent de le rejoindre :

  • Address : les adresses réseau sont nécessaires pour identifier les sources et les destinations des messages,
  • NetKey : la clé de réseau sert à sécuriser et authentifier les messages au niveau de la couche réseau,
  • Appkey : les clés d’application sont utilisées à des fins similaires mais sur la couche applicative,
  • IV Index : cet index correspond au Time To Live (TTL) utilisé pour prolonger ou limiter la durée de vie du réseau.

Les clés de réseau et les clés d’application sont générées à l’aide d’un générateur de nombres aléatoires, tel que défini dans la spécification Bluetooth. Ces deux clés sont partagées entre tous les nœuds de l’ensemble du réseau pour la NetKey ou d’un sous-ensemble à isoler pour l’AppKey.

La communication n’est possible que si elle est réalisée avec la clé de réseau appropriée.

 

Publish/Subscribe

Les périphériques d’un réseau Bluetooth MESH peuvent envoyer des informations à plusieurs périphériques du réseau. Le terme à utiliser est Publish. Les périphériques peuvent également être configurés pour suivre les informations d’une ou de plusieurs sources ou d’un Group. Ceci s’appelle Subscribe.

Une fonctionnalité appelée Periodic Publish permet d’envoyer des messages périodiquement.

Exemple : dans le cas d’une une maison possédant une cuisine avec 1 interrupteur et 2 lumières. Chaque lumière doit être contrôlée par cet interrupteur. Dans ce cas, l’interrupteur publie son état sur le topic “cuisine” et chacune des lampes s’abonne à ce topic. Chaque pièce de la maison est gérée de la même manière.  Une lampe peut également s’abonner à plusieurs topics.

Vous souhaitez en savoir plus sur Rtone ?

Provisioning

Les périphériques qui ne font pas encore partie d’un réseau Bluetooth MESH sont appelés des périphériques non approvisionnés. Ces  périphériques annoncent leur présence et peuvent être ajoutés au MESH pour devenir des nœuds du réseau par un processus appelé Provisioning. Lors du Provisioning, le Provisioner, qui est généralement un smartphone, fournit au nœud la NetKey, l’Index IV actuel et une adresse unicast pour chaque élément du nœud.

provisioning-bluetooth

Le cycle de provisioning des périphériques Bluetooth MESH

Format des Messages

Toutes les communications dans un réseau Bluetooth MESH sont basées sur l’envoi de messages.

La couche transport du protocole gère la fragmentation des messages lorsque la taille maximale de la charge utile est atteinte. Par ailleurs, les messages peuvent imposer un acquittement ou non.

 

format-message-bluetooth

 Le format des paquets (PDU) Bluetooth MESH

 

Adressage

Une multitude de cas d’usage IoT nécessitent que l’utilisateur soit capable de contrôler un seul nœud, un groupe de nœuds ou tous les nœuds simultanément. Cette fonctionnalité est fournie dans le Bluetooth MESH en utilisant l’adressage Unicast, Virtuel et de Group

Les adresses de Group sont également utilisées pour le multicast et peuvent représenter plusieurs éléments dans un ou plusieurs nœuds.

Il est important de noter que le Bluetooth MESH permet un regroupement flexible de tous les types d’appareils .

 

Sécurité

Le Bluetooth SIG a pris les préoccupations de sécurité au sérieux et a fait de la sécurité une fonctionnalité obligatoire du Bluetooth MESH. Tout le trafic est chiffré et l’envoi de messages non chiffrés est impossible. Le modèle de sécurité utilisé dans le Bluetooth MESH est donc plus fort qu’avec le Bluetooth Classic ou le BLE.

L’obtention d’un niveau de sécurité élevé repose sur le chiffrement et l’authentification au niveau des couches réseau et de transport. Un Message Integrity Check (MIC) est utilisé sur ces 2 couches.

Par ailleurs, tous les messages sont chiffrés et authentifiés au niveau réseau et applicatif en utilisant 2 clés différentes avec l’algorithme AES-128-CCM.

 

DevKey

La clé de périphérique est utilisée pour authentifier et chiffrer les communications entre le Provisionner et un nœud. Les autres nœuds n’ont aucun moyen d’interpréter la communication entre ces deux dispositifs.

La DevKey est la clé la plus critique dans le réseau maillé.

 

NetKey

La flexibilité du réseau maillé est fournie par le fait que tout nœud peut être configuré pour n’utiliser qu’un ou plusieurs réseaux simultanément. Cela permet d’utiliser un ou plusieurs sous-réseaux via la définition de NetKeys de sous-réseau.Les sous-réseaux sont des groupes de nœuds capables de communiquer entre eux au niveau de la couche réseau.

Alternativement, un nœud peut appartenir à deux ou plusieurs réseaux maillés totalement séparés. Un bon exemple d’un tel cas serait un téléphone portable qui pourrait faire partie d’un réseau maillé domestique, d’un réseau Bluetooth MESH de bureau et d’un réseau Bluetooth MESH de véhicule.

Le nombre maximal de clés de réseau différentes dans une installation est de 4096, ce qui permet de créer des compartiments à l’intérieur d’un réseau en cas de besoin.

La NetKey est utilisée pour dériver d’autres clés en utilisant le hash cryptographique AES-CMAC.

 

AppKey

Un réseau maillé peut contenir un ou plusieurs domaines d’application, chacun avec une AppKey unique. Les nœuds qui sont configurés avec une AppKey particulière peuvent recevoir et transmettre des messages liés à ladite application tout en relayant les messages provenant de nœuds appartenant à différents domaines d’application. Cela permet le compartimentage des applications, ce qui augmente la sécurité.

 

Chiffrement du PDU réseau

Les seules parties en clair du PDU Bluetooth MESH sont l’Index VI et l’identificateur de réseau (NID). Le reste du PDU est chiffré à l’aide d’AES-CCM. Ceci rend impossible l’écoute passive de la structure du réseau puisque l’en-tête, le TTL, le numéro de séquence, la source, etc. ne sont pas envoyés en clair.

Les Nonces sont générés à partir de numéros de séquence et d’autres en-têtes réseau.

L’intégrité du message est protégée par un MIC 32 ou 64 bits.

Le message a un numéro de séquence unique de 24 bits. La protection contre les attaques par rejeu est assurée en utilisant un numéro de séquence dont les nœuds gardent trace en fonction de l’adresse source.

 

Conclusion et Références

Cet article a présenté les spécifications du Bluetooth MESH, un protocole qui permet de déployer un réseau maillé d’objets connectés disposant d’un module radio Bluetooth Low Energy. Bluetooth MESH permet ainsi d’interconnecter un grand nombre d’équipements, et d’étendre la portée du réseau. Il propose une sécurité “par défaut” qui inclut la distribution des clés, le chiffrement et l’authentification des équipements.

De nombreux cas d’usage peuvent être envisagés, notamment pour la maison connectée (domotique), l’industrie 4.0 ou la Smart City.

  1. « Bluetooth® mesh networking, An Introduction for Developers », Martin Woolley, Sarah Schmidt, Bluetooth SIG.
  2. « Mesh Model Specification 1.0 », 2017, Bluetooth SIG.
  3. « Mesh Peripheral Properties 1.0 », 2017, Bluetooth SIG.
  4. Adomnicai et al. (2018). Hardware Security Threats Against Bluetooth Mesh Networks, 2018 IEEE Conference on Communications and Network Security.
  5. Baert, J. Rossey, A. Shahid, and J. Hoebeke, “The Bluetooth Mesh Standard: An Overview and Experimental Evaluation,” Sensors, vol. 18, no. 8, p. 2409, Jul. 2018.
  6. Murillo, B. Reynders, A. Chiumento, and S. Pollin, “A Multiprotocol Low-Cost Automated Testbed for BLE Mesh,” IEEE Commun. Mag., vol. 57, no. 3, pp. 76–83, Mar. 2019.
X