docs: security section + fix MAX_DEVICES doc

- 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 <noreply@anthropic.com>
This commit is contained in:
2026-07-03 17:30:59 +02:00
parent ff648fa9b2
commit 66db42b362
+59 -5
View File
@@ -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 :