Sécurité et chiffrement

Chiffrement MeshCore en détail

Tout sur le chiffrement MeshCore actuel : AES-128, validation MAC, secrets partagés et modèle pratique de sécurité

Comment MeshCore protège vos données

Selon le code source et la documentation actuels de MeshCore, l'implémentation en usage utilise un chiffrement par blocs AES-128 avec une MAC HMAC-SHA256 tronquée. Ce n'est pas la même chose qu'AES-256.

Le modèle de sécurité de MeshCore repose sur le chiffrement symétrique : toute personne possédant la PSK peut chiffrer et déchiffrer les messages. Simple mais efficace pour les réseaux mesh avec un groupe fermé.

Dans ce guide technique, nous expliquons le fonctionnement du chiffrement, la gestion des clés, les mesures de sécurité et les limitations. Comprenez les compromis de sécurité avant de mettre en place un réseau chiffré.

Couches de sécurité dans MeshCore

🔐

Chiffrement du payload (AES-128)

Les payloads privés sont chiffrés avant d'être envoyés par radio. Dans l'implémentation actuelle, cela utilise AES-128. Seuls les nœuds disposant du bon secret partagé peuvent lire le contenu.

🔑

Clés au niveau appareil

Chaque appareil possède une clé unique pour les fonctions admin. Cela empêche quiconque de reconfigurer votre nœud, même sur un canal public.

🛡️

Sécurité du canal admin

Les canaux admin disposent toujours d'une PSK séparée. La configuration à distance n'est possible que pour les nœuds autorisés possédant la clé admin.

Conception actuelle du chiffrement

D'après l'implémentation actuelle, le payload est chiffré avec un chiffrement par blocs AES-128. La documentation officielle mentionne aussi un zero padding et une HMAC-SHA256 tronquée pour l'intégrité.

Processus de chiffrement :
1. PSK (256 bits) + Compteur paquet (IV) → AES-CTR
2. Payload en clair XOR flux chiffré → Texte chiffré
3. Texte chiffré + Compteur envoyés par radio
4. Récepteur : déchiffrement AES-CTR avec même PSK + Compteur → Texte en clair

L'avantage du mode CTR est que le chiffrement et le déchiffrement sont la même opération (XOR). C'est extrêmement rapide sur les puces ESP32 qui disposent d'une accélération hardware AES. La clé 256 bits est extraordinairement difficile à forcer par brute-force (prendrait des milliards d'années).

Gestion des clés PSK

Génération de clés

Les PSK sont des clés aléatoires de 256 bits (32 octets). Généralement affichées en base64 ou chaîne hex. Générez les clés avec un générateur aléatoire cryptographiquement sûr, pas quelque chose comme "password123" !

Distribution des clés

Les PSK doivent être partagées de manière sécurisée avec les membres du groupe. Via code QR, configuration USB ou un canal sécurisé. N'envoyez jamais les clés par radio non chiffrée ou via internet public.

Rotation des clés

Changez périodiquement de PSK comme bonne pratique de sécurité. Surtout quand des membres quittent le groupe. MeshCore supporte plusieurs clés simultanément pour une transition en douceur.

Clés par défaut

Le canal principal n'a souvent pas de PSK (public). Les canaux secondaires utilisent généralement des PSK personnalisées. Il existe une clé standard "AQ==" mais elle n'est pas sûre car tout le monde la connaît !

Spécifications techniques

Paramètre Valeur Description
Algorithme de chiffrement AES-128 par blocs L'implémentation actuelle utilise AES128 sur des blocs de 16 octets
Longueur de clé 128 bits (16 octets) La fonction de chiffrement de paquets utilise une clé de 16 octets
IV (Vecteur d'initialisation) Compteur de paquet Valeur unique par paquet, évite les replay attacks
Accélération hardware Oui (ESP32) L'ESP32 dispose d'un AES hardware pour un chiffrement/déchiffrement rapide
Impact sur les performances <1 ms par paquet Overhead négligeable grâce au AES hardware
Confidentialité persistante Non Clé symétrique, pas de PFS comme avec TLS

Atouts du chiffrement MeshCore

🔒

Sécurité de niveau militaire

Le trafic privé MeshCore est nettement mieux protégé que la radio en clair, mais cette page ne reprend plus les anciennes affirmations sur AES-256.

Efficace sur hardware embarqué

Le AES hardware de l'ESP32 rend le chiffrement extrêmement rapide (<1 ms). Aucun impact notable sur l'autonomie ou la latence.

🔀

Clés par canal

Chaque canal dispose de sa propre PSK. Différents niveaux de sécurité : canal principal public, canaux secondaires privés. Flexible par cas d'usage.

🛠️

Simple à configurer

Configurer une PSK est simple : entrez une clé de 32 octets et c'est fait. Pas de gestion complexe de certificats comme avec TLS/HTTPS.

📡

Transparent pour l'utilisateur

Le chiffrement se fait automatiquement. L'utilisateur ne remarque rien du processus. Les messages sont simplement lisibles dans l'application.

🔐

Protection du canal admin

Les fonctions admin sont toujours chiffrées. Cela empêche les attaquants de prendre le contrôle ou de reconfigurer votre nœud via la radio.

Questions fréquentes

Tous les messages sont-ils chiffrés dans MeshCore ?

Non, seuls les messages sur les canaux avec une PSK sont chiffrés. Le canal principal est souvent public (sans PSK) pour la communication générale. Les canaux secondaires peuvent être configurés en privé avec une PSK dédiée. Vous choisissez par canal si le chiffrement est actif.

Quelqu'un peut-il intercepter et lire mes messages ?

Sur les canaux publics sans PSK : oui, tout le monde avec un nœud MeshCore peut lire. Sur les canaux chiffrés : non, seules les personnes possédant la PSK peuvent déchiffrer. La radio LoRa est en broadcast, donc le chiffrement est essentiel pour la vie privée.

À quel point le chiffrement actuel de MeshCore est-il utile ?

Il est clairement préférable à l'envoi en clair par radio, mais il ne faut pas le présenter comme un modèle moderne d'authenticated encryption de pointe. L'implémentation actuelle utilise un chiffrement par blocs AES-128 avec validation MAC et comporte des limites connues.

Et si quelqu'un découvre ma PSK ?

Alors cette personne peut lire et envoyer tous les messages sur ce canal. C'est l'inconvénient du chiffrement symétrique. Changez donc immédiatement de PSK si vous soupçonnez une fuite de clé. Ne partagez les PSK que via des canaux sécurisés (pas par radio !).

MeshCore supporte-t-il le chiffrement de bout en bout entre individus ?

MeshCore offre un chiffrement au niveau du canal, pas de bout en bout par utilisateur. Tous les nœuds sur un canal chiffré peuvent lire les messages des uns et des autres. Pour un vrai E2E, il faudrait ajouter une couche de chiffrement supplémentaire (possible via plugins).

Le chiffrement a-t-il un impact sur la portée ou l'autonomie ?

Non, impact négligeable. Le AES hardware de l'ESP32 est extrêmement rapide (<1 ms par message). Vous ne remarquerez aucune différence de portée, vitesse ou autonomie entre les canaux chiffrés et non chiffrés. Le chiffrement est gratuit en termes de performances.

Sécurisez votre communication MeshCore

Prêt à mettre en place un réseau mesh chiffré ? Choisissez votre appareil et configurez le trafic privé avec des attentes réalistes vis-à-vis du chiffrement actuel de MeshCore.