From 66db42b3621e913bd0d7861ca9738f0d9ba0f38f Mon Sep 17 00:00:00 2001 From: gitomarcourt Date: Fri, 3 Jul 2026 17:30:59 +0200 Subject: [PATCH] docs: security section + fix MAX_DEVICES doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add "Sécurité, vie privée & aspects légaux" section covering: - What the SDR dongle actually captures (RF broadcast) - What SNEK exposes by default (nothing for unregistered devices) - Theoretical interception attack scenario - Legal aspects (Article 226-15, RGPD) - Best practices to mitigate - Fix MAX_DEVICES doc: 5 is the hard limit (JS frontend hardcoded) Removed misleading claim that config change to 10 works Co-Authored-By: Claude Opus 4.7 --- README.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cf45d13..8d2cbc7 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,10 @@ Une stack complète pour émuler un réseau Sigfox depuis n'importe quel cluster 6. [Réception de messages (uplink)](#réception-de-messages-uplink) 7. [Décodage des payloads](#décodage-des-payloads) 8. [Callbacks HTTP (intégration avec autres services)](#callbacks-http-intégration-avec-autres-services) -9. [Downlink (messages serveur → device)](#downlink-messages-serveur--device) -10. [Persistance & backups](#persistance--backups) -11. [Dépannage](#dépannage) +9. [Sécurité, vie privée & aspects légaux](#sécurité-vie-privée--aspects-légaux) ⚠️ +10. [Downlink (messages serveur → device)](#downlink-messages-serveur--device) +11. [Persistance & backups](#persistance--backups) +12. [Dépannage](#dépannage) --- @@ -157,9 +158,9 @@ Tu le trouves : - Ou dans le backend Sigfox → Device details - Ou sur les Sens'it via l'app mobile -Dans SNEK → onglet **Configuration** → Devices → ajoute jusqu'à 5 devices (10 avec la modif `MAX_DEVICES` du fichier `/root/Snek/snek.conf`). +Dans SNEK → onglet **Configuration** → Devices → ajoute jusqu'à **5 devices** (limite hardcodée dans le frontend JS de SNEK 2.3.4). Pour plus, lancer plusieurs instances de SNEK. -**Important** : SNEK décode les messages **seulement des devices enregistrés**. Un message d'un ID inconnu apparaît dans les logs mais n'est pas persisté. +**Important** : SNEK ne décode que les messages des devices enregistrés dont l'auth passe. Un message d'un ID non enregistré est simplement logué comme `Receiving message with bad authentication (not public key)` sans détail sur l'ID ni le payload. --- @@ -262,6 +263,59 @@ Variables disponibles : --- +## Sécurité, vie privée & aspects légaux + +⚠️ **À lire attentivement avant tout déploiement en production ou test avancé.** + +### Ce que capte physiquement le dongle + +Le dongle SDR est un **récepteur RF broadcast** sur 868 MHz (RC1). Il capte **tous les messages Sigfox** dans sa portée physique : +- ~1-5 km en zone urbaine dense +- ~10-40 km en zone dégagée avec bonne antenne + +Cela inclut les émissions **de tes voisins, entreprises locales, capteurs de ville, alarmes, trackers…** — pas seulement les tiens. + +### Ce que SNEK expose + +Par défaut (auth activée, device non enregistré) : +- Message logué comme `bad authentication` +- **Aucun** ID, **aucun** payload, **aucun** RSSI accessible +- Bonne protection par défaut + +Attaque théoriquement possible : +1. Enregistrer l'ID d'un device tiers dans SNEK (ID trouvé sur l'étiquette, dans une doc leakée, en OSINT) +2. Désactiver globalement l'authentification (option UI) +3. Recevoir les payloads bruts en clair du device cible tant qu'il est à portée radio + +**Limites de l'attaque** : +- Nécessite la proximité physique (pas d'attaque via internet) +- Le format des 12 bytes de payload est propriétaire à chaque vendor — inutile sans reverse engineering +- Certains devices utilisent le chiffrement AES-128 optionnel de Sigfox → payload chiffré + +### Aspect légal (France) + +- ✅ **Réception passive du spectre RF public** : légal +- ✅ **Analyse de tes propres devices** : légal +- ✅ **Recherche sécurité en labo perso** : légal +- ❌ **Interception intentionnelle de communications tierces** : **délit pénal** + - Article 226-15 du Code Pénal → 1 an prison + 45 000 € d'amende +- ❌ **Collecte / redistribution / monétisation** des données captées : illégal (RGPD si données identifiantes, concurrence déloyale si usage commercial) + +### Bonnes pratiques + +- **Ne configure QUE tes propres devices** dans SNEK +- **Laisse l'auth activée** (paramètre par défaut) +- **Baisse le log level à WARNING** pour ne pas garder de trace des messages non-authentifiés : + ```json + "root": {"level": "WARNING", ...} + ``` +- **Purge régulièrement** `/root/Snek/snek.log` +- Pour tes propres devices sensibles → utilise l'**AES-128 optionnel** de Sigfox + +Sigfox est conçu pour l'**authenticité** (HMAC empêche l'usurpation), pas la **confidentialité par défaut**. C'est une limitation connue du protocole, à prendre en compte pour tout use case impliquant des données sensibles. + +--- + ## Downlink (messages serveur → device) Sigfox permet 4 downlinks max par device par jour. Envoi depuis SNEK :