Le projet Meshtastic transforme des radios bon marché en un réseau de messagerie décentralisé capable de fonctionner sans infrastructure. Cette solution open source relativement abordable a été pensée pour les zones blanches et les situations d'urgence.

Imaginez pouvoir envoyer des messages texte à plusieurs kilomètres de distance sans réseau mobile, sans internet, sans même avoir besoin d'une antenne centralisée. C'est précisément ce que propose Meshtastic, un projet communautaire qui exploite la technologie radio LoRa pour créer un système de communication totalement autonome et résilient.
Des radios qui parlent entre elles, sans passer par un opérateur
Le principe de Meshtastic repose sur la technologie LoRa, un protocole radio longue portée. Pour comprendre simplement : LoRa permet à des appareils peu gourmands en énergie de communiquer sur de très longues distances, parfois jusqu'à plusieurs dizaines de kilomètres en zone dégagée. Meshtastic détourne cette technologie pour créer un réseau de messagerie texte complètement décentralisé.
Concrètement, vous connectez votre smartphone en Bluetooth à une petite radio Meshtastic (un petit boîtier vendu pour quelques dizaines d'euros sur Amazon). Quand vous tapez un message sur l'application mobile, votre téléphone le transmet à la radio, qui l'envoie alors sur les ondes radio en utilisant les fréquences ISM - des bandes de fréquences gratuites et libres d'utilisation : 433 MHz en Europe, 868 MHz ou 915 MHz selon les régions.

Ce qui rend Meshtastic puissant, c'est son fonctionnement en "mesh network", ou un réseau maillé. Chaque radio Meshtastic est à la fois un émetteur et un relais. Si votre appareil capte un message qui ne vous est pas destiné, il le rediffuse automatiquement pour aider à le faire voyager plus loin. C'est comme une chaîne humaine : chaque personne passe le message à la suivante jusqu'à ce qu'il atteigne le destinataire. Plus il y a d'appareils Meshtastic dans une zone, plus le réseau s'étend et devient efficace. Le record actuel de transmission directe atteint 331 kilomètres.
Pour éviter que le réseau ne soit saturé par des messages qui tourneraient en boucle, Meshtastic utilise un système intelligent appelé "managed flooding". Chaque message comporte un compteur de "sauts" (hop limit) qui diminue à chaque fois qu'une radio le rediffuse. Quand le compteur atteint zéro, le message n'est plus relayé. De plus, avant de renvoyer un message, chaque appareil écoute quelques instants : si un autre nœud l'a déjà fait, il s'abstient pour ne pas créer de pollution radio.
Pour optimiser la portée, les radios qui reçoivent un signal faible (donc situées plus loin) ont la priorité pour relayer, ce qui permet d'étendre le réseau au maximum. Depuis la version 2.6 du logiciel embarqué, Meshtastic combine ce système de diffusion avec un mode de routage intelligent pour les messages directs : quand vous échangez régulièrement avec quelqu'un, le système mémorise le meilleur relais identifié lors des communications précédentes.
De son côté, le matériel reste accessible. On retrouve des kits comme le RAKwireless WisBlock ou l'Atlavox M1 qui intègrent tout le nécessaire et fonctionnent sur batterie pendant plusieurs semaines. Ces appareils embarquent généralement un microcontrôleur ESP32, une puce radio LoRa, une antenne et parfois un GPS pour géolocaliser les nœuds du réseau.
Des conversations de groupe ou des messages privés
Pour envoyer un message, il faut connecter l'application disponible (disponible notamment sur iOS ou Android) à la radio.
Chaque appareil Meshtastic possède un identifiant unique basé sur son adresse MAC matérielle, un numéro gravé dans le circuit électronique. Quand vous ouvrez l'application mobile, elle affiche la liste de tous les nœuds (appareils) détectés par le réseau. Il suffit alors de sélectionner le destinataire, puis de saisir et d'envoyer le message.
Le système traite différemment les messages selon leur nature. Pour un message de groupe diffusé sur un canal, le contenu est envoyé à tous les membres qui partagent la clé de ce canal. Votre message part de votre radio, transite de proche en proche par les autres radios du maillage, et tous ceux qui possèdent la bonne clé peuvent le lire.
Pour une conversation privée entre deux personnes, le mécanisme change complètement depuis la version 2.5.0 du firmware. Votre message est chiffré avec la clé publique du destinataire. Même si le paquet transite par plusieurs radios intermédiaires pour arriver jusqu'au bon appareil, seul le destinataire peut le déchiffrer grâce à sa clé privée. Les radios qui servent de relais ne peuvent pas lire le contenu.
L'en-tête du paquet radio contient l'identifiant du destinataire en clair, ce qui permet aux nœuds intermédiaires de router le message dans la bonne direction, mais le message lui-même reste hermétiquement scellé. Avant cette version 2.5.0, le système était moins sécurisé : les messages directs utilisaient la même clé que le canal, ce qui signifie que tous les membres pouvaient théoriquement lire toutes les conversations privées.
Oui, cette messagerie est chiffrée
Meshtastic met en avant sa sécurité avec un chiffrement AES256, un standard cryptographique robuste utilisé par les banques et les gouvernements. Mais il faut comprendre les nuances pour ne pas surestimer la protection offerte.
Par défaut, chaque "canal" Meshtastic (un groupe de discussion) utilise une clé de chiffrement. Le problème, c'est que cette clé par défaut ("AQ==") est publique et connue de tous. C'est comme si vous utilisiez "1234" comme code PIN : techniquement c'est un code, mais il ne protège rien. Il faut impérativement personnaliser cette clé pour obtenir une vraie confidentialité. Une fois configurés correctement, vos messages sont chiffrés avec AES256-CTR, un algorithme qui brouille le contenu pour le rendre illisible sans la bonne clé.
Précisons cependant que les en-têtes des paquets radio (les informations qui permettent d'acheminer le message) restent en clair. Cela permet aux radios intermédiaires de relayer des messages qu'elles ne peuvent pas déchiffrer. Là, disons que c'est un peu comme une enveloppe postale : l'adresse est visible pour que le facteur puisse la livrer, mais le contenu de la lettre reste scellé.
Depuis la version 2.5.0 du logiciel, les messages privés (conversation entre deux personnes) bénéficient de la cryptographie à clés publiques. À l'instar des messageries traditionnelles, chaque appareil génère automatiquement deux clés mathématiquement liées : une clé privée qu'il garde secrète, et une clé publique qu'il peut partager. Quand vous envoyez un message privé, il est chiffré avec la clé publique du destinataire (seul lui peut le déchiffrer avec sa clé privée) et signé avec votre clé privée (pour prouver que c'est bien vous). Avant cette version, tous les membres d'un canal pouvaient lire les messages directs.
Si nous saluons les efforts portés sur le chiffrement, ce dernier reste cependant à l'heure actuelle assez sommaire par rapport à nos app modernes. L'absence de Perfect Forward Secrecy (PFS) permet à un adversaire d'enregistrer tous les messages chiffrés, de les stocker pendant des mois ou des années, puis de les déchiffrer rétrospectivement s'il met la main sur une radio du réseau et en extrait la clé. Face à ce type d'attaque "Harvest now, Decrypt later", les messageries modernes comme Signal changent automatiquement les clés à chaque message. Par ailleurs, les messages de groupe ne comportent pas de vérification d'intégrité, ce qui signifie qu'un attaquant pourrait théoriquement les modifier via une attaque par texte clair connu. Enfin, puisque l'authentification repose sur l'adresse MAC matérielle, n'importe qui possédant la clé du canal peut usurper l'identité d'un autre membre.
Il n'empêche que Meshstatic reste particulièrement intéressant comme système d'urgence, quand l'infrastructure télécom est tombée, pour couvrir une zone blanche ou dans le cas d'une catastrophe naturelle. Pour de plus amples informations, rendez-vous sur la page du projet.