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:
@@ -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 :
|
||||
|
||||
Reference in New Issue
Block a user