- Nomad Network est un outil de communication mesh hors réseau destiné à créer une plateforme de communication privée et résiliente, possédée et contrôlée directement par l’utilisateur, sans inscription, conditions d’utilisation, soumission de données ni autorité d’approbation des accès
- Il repose sur LXMF et Reticulum, qui fournissent des fonctions de réseau mesh chiffré et de routage de messages P2P, et fonctionne sur une grande variété de supports de communication, de la radio par paquets à la fibre optique
- Il peut être utilisé sans Internet public, IP ni Ethernet, et fonctionner sur packet radio, LoRa ou liaison série ; grâce à Reticulum, il a même été utilisé sur des liaisons radio à 300 bps
- Ses fonctions incluent la messagerie chiffrée, la communication mesh sans configuration, un stockage distribué et chiffré des messages pour les utilisateurs hors ligne, des nœuds d’hébergement de pages et de fichiers, un navigateur en mode texte et la mise en cache des pages
- Il s’agit actuellement d’un logiciel bêta ; il a été conçu avec les bonnes pratiques de cryptographie à l’esprit, mais n’a pas fait l’objet d’un audit de sécurité externe et peut contenir des bugs compromettant la confidentialité
Le modèle de communication proposé par Nomad Network
- Nomad Network permet de créer une plateforme de communication privée et résiliente, entièrement contrôlée et possédée par l’utilisateur
- Aucune inscription, acceptation de conditions d’utilisation, soumission de données, autorité d’approbation des accès ni gatekeeper n’est nécessaire
- Le dépôt est un miroir public, le développement réel se faisant ailleurs
- Si vous voulez un client LXMF avec interface graphique, vous pouvez utiliser Sideband pour Linux, Android et macOS
Technologies sous-jacentes et supports réseau
- Nomad Network est construit sur LXMF et Reticulum
- Ces deux projets fournissent les fonctions de réseau mesh chiffré et le routage de messages P2P dont dépend Nomad Network
- Grâce à cette base, le programme peut être utilisé sur des supports de communication très variés, de la radio par paquets à la fibre optique
- Il fonctionne sans connexion à l’Internet public, et un réseau IP ou Ethernet n’est pas une condition indispensable
- Il peut être utilisé uniquement avec packet radio, LoRa ou une liaison série
- Si nécessaire, des réseaux isolés peuvent être reliés à Internet ou à un Ethernet privé par un pont
- Il est aussi possible de créer des réseaux fonctionnant entièrement sur Internet
- Comme il utilise Reticulum, il est efficace même sur des supports à très faible bande passante, et a déjà été utilisé avec succès sur une liaison radio à 300 bps
Fonctionnalités principales
- Fournit une messagerie chiffrée sur les supports pris en charge par Reticulum, comme packet radio, LoRa ou WiFi
- Prend en charge la communication mesh avec zéro configuration et une infrastructure minimale
- Propose un stockage distribué et chiffré des messages pour conserver les messages destinés aux utilisateurs hors ligne
- Les nœuds joignables peuvent héberger des pages et des fichiers
- Les pages peuvent être générées côté nœud avec PHP, Python, bash, etc.
- Intègre un navigateur en mode texte pour interagir avec le contenu des nœuds
- Fournit un langage de balisage facile à utiliser et économe en bande passante pour rédiger des pages
- Prend en charge la mise en cache des pages dans le navigateur
Installation et exécution
- La méthode d’installation la plus simple consiste à utiliser
pip
pip install nomadnet
nomadnet
nomadnet --daemon
nomadnet --help
- Sur les systèmes d’exploitation qui bloquent l’installation de paquets par l’utilisateur standard, vous pouvez rétablir le comportement de
pip en ajoutant le réglage suivant à la section [global] de ~/.config/pip/pip.conf
[global]
break-system-packages = true
- Pour installer dans un environnement isolé, vous pouvez utiliser
pipx
pipx install nomadnet
pipx install rns
pipx install lxmf
nomadnet
nomadnet --daemon
nomadnet --help
- Si c’est la première fois que vous installez un programme avec
pip sur le système, et que la commande d’exécution n’est pas reconnue, il peut être nécessaire de redémarrer le système puis de réessayer
- Lors du premier lancement du programme, une section Guide contenant les informations nécessaires pour commencer à l’utiliser s’affiche
Utilisation de packet radio, LoRa et du testnet
- Pour utiliser Nomad Network avec packet radio ou LoRa, l’installation de Reticulum doit être configurée pour utiliser le TNC packet radio ou l’appareil LoRa concerné
- Pour tester sans créer directement de réseau physique, vous pouvez vous connecter au testnet RNS d’Unsigned.io via Internet
- Le testnet comporte déjà une certaine activité Nomad Network et LXMF
- Après la connexion, lancez
nomadnet pendant quelque temps afin de recevoir les annonces d’autres nœuds hébergeant des pages ou des services
- Nœuds du testnet auxquels vous pouvez essayer de vous connecter directement :
abb3ebcd03cb2388a838e70c001291f9 : Dublin Hub Testnet Node
ea6a715f814bdc37e56f80c34da6ad51 : Frankfurt Hub Testnet Node
- Pour parcourir les pages d’un nœud encore inconnu, ouvrez la boîte de dialogue d’URL avec
Ctrl+U dans la section Network du programme, saisissez l’adresse, puis sélectionnez Go ou appuyez sur Entrée
- NomadNet tente alors de découvrir le nœud demandé et de s’y connecter
Android et Docker
- Sur Android, Nomad Network peut être installé avec Termux, mais la procédure nécessite davantage de commandes qu’une installation classique en une ligne
- La procédure est documentée dans Android Installation du manuel de Reticulum
- Après l’installation de Reticulum, Nomad Network peut être installé avec
pip
- Si vous avez besoin d’une application graphique Android native, vous pouvez utiliser Sideband
- Nomad Network est publié automatiquement sous forme d’image Docker sur GitHub Packages
- Les tags d’image sont
master pour le dernier commit, ou un numéro de version de release spécifique
- Un exemple de tag de version est
0.2.0
docker pull ghcr.io/markqvist/nomadnet:master
docker run -it ghcr.io/markqvist/nomadnet:master --textui
docker run -i ghcr.io/markqvist/nomadnet:master --daemon --console
Outils, extensions et feuille de route
- Nomad Network est une plateforme flexible et extensible, avec des outils fournis par la communauté et des extensions côté nœud
- Les demandes d’aide, discussions et partages d’idées peuvent se faire sur les pages de discussion de Nomad Network
- Les nouvelles fonctionnalités majeures de la feuille de route de développement incluent des bulletins et fils de discussion propagés à l’échelle du réseau, ainsi que des cartes collaboratives et le partage d’informations géospatiales
- Les améliorations et corrections incluent l’affichage de l’état des liens, des raccourcis de navigation dans les menus, le partage de nœuds, la correction de problèmes de l’éditeur interne sur certains OS, ainsi qu’un mécanisme de nouvelle tentative pour les messages en échec
État de sécurité et précautions
- Nomad Network doit être considéré comme un logiciel bêta
- Il a été conçu en accordant une très grande priorité aux bonnes pratiques de cryptographie, mais n’a pas fait l’objet d’un audit de sécurité externe
- Il peut contenir des bugs compromettant la confidentialité
- Il est indiqué de prendre contact pour contribuer à l’audit ou le financer
1 commentaires
Commentaires sur Hacker News
Cela pourrait ne plus être le cas si NextNav récupère une grande partie de la bande ISM 900MHz : https://news.ycombinator.com/item?id=41226802
https://en.wikipedia.org/wiki/ISM_radio_band
Vous pouvez déposer un avis ici : https://www.fcc.gov/ecfs/search/docket-detail/24-240
Il y a un fil en cours à ce sujet :
Private, Secure and Uncensorable Messaging over a LoRa Mesh (2022) - https://news.ycombinator.com/item?id=41256623 - août 2024, 21 commentaires
Le réseau Reticulum sur lequel cela s'appuie est assez intéressant, car il prend en charge de nombreux supports de transport, comme la radio par paquets
Reticulum peut fonctionner sur n'importe quel support dès lors qu'il offre un débit supérieur à 5 bits par seconde et une MDU de 500 octets. Il fonctionne non seulement sur des centaines de supports comme LoRa, BLE, la radio par paquets, ou des réseaux overlay comme Tor ou I2P, mais ces supports peuvent aussi faire partie du même réseau
J'ai réalisé une preuve de concept rapide fonctionnant sur radio HF. J'ai configuré deux nœuds séparés d'environ 144 km, utilisant tous deux un ICOM-7300 et un Raspberry Pi 5 pour faire tourner un modem logiciel recevant et envoyant des paquets Reticulum par radio : https://www.youtube.com/watch?v=blwNVumLujc
Le nœud 1 se trouvait en extérieur et le nœud 2 à la maison. Sur le nœud 2, j'avais configuré une interface pour le modem HF et une autre connectée à un testnet TCP, ce qui permettait au nœud 1 d'accéder à tous les pairs présents sur le testnet TCP
Il existe aussi une courte vidéo d'introduction expliquant les concepts de base de Reticulum : https://www.youtube.com/watch?v=q8ltLt5SK6A
Correction : en fait non. Cela semble se régler au niveau global, pas lien par lien
Le concept est intéressant, mais communiquer avec les personnes qui utilisent des appareils iOS/iPadOS pose problème. En général, on ne peut pas utiliser ce type d'app à cause des restrictions de l'OS[1], et l'effet de réseau rend son adoption très difficile pour la plupart des gens
[1] https://forums.developer.apple.com/forums/thread/685525
Il y a bien sûr des problèmes avec l'exécution en arrière-plan, mais il existe des pistes de solution possibles, comme faire tourner Reticulum entièrement sur un RNode, et le sujet est travaillé assez activement
J'ai du mal à comprendre comment on peut se sentir vraiment protégé sur le plan de la vie privée tout en saisissant du texte via le clavier tactile d'un appareil Android ou iOS
Si on veut une vraie confidentialité, il faudrait utiliser, pour la capture et l'affichage du texte, le chiffrement et l'envoi de paquets chiffrés, un clavier/terminal fonctionnant en bare metal et envoyant des blobs chiffrés à travers un client Reticulum
Cela pourrait par exemple passer par du série filaire ou du Bluetooth, avec éventuellement un MCU séparé pour gérer le réseau et le protocole. L'idée essentielle est d'exécuter en bare metal du code vérifié sans blobs binaires, puis de n'envoyer au nœud réseau que des payloads chiffrés. Si possible, une liaison série TTL entre le contrôleur du terminal et le contrôleur réseau serait idéale
Je me demande comment NomadNet/Reticulum se compare à Yggdrasil, IPFS, Nostr, Scuttlebutt
Scuttlebutt : Reticulum est une pile réseau qui route les données en temps réel, pas un réseau social décentralisé.
Nostr : idem que Scuttlebutt.
IPFS : Reticulum ne stocke pas les données, il les transporte. Cela dit, certains protocoles fonctionnant au-dessus de Reticulum, comme LXMF, peuvent proposer en option un stockage temporaire des messages.
Yggdrasil est l’exemple le plus proche de Reticulum parmi ceux cités, mais d’après ce que j’ai rapidement trouvé, je n’ai pas pu obtenir beaucoup de détails sur son fonctionnement. À l’heure actuelle, il semble ne fonctionner que sur IPv6, avec dans une certaine mesure des tunnels IPv4, alors que Reticulum fonctionne au-dessus de n’importe quoi.
Si cela vous intéresse et que vous voulez comprendre comment fonctionne Reticulum, je vous recommande de lire au minimum http://reticulum.network/manual/understanding.html
Quelques notes d’utilisabilité, après un survol rapide et peut-être avec une compréhension incomplète.
Le fait de montrer en préfixe, d’une manière compréhensible pour l’utilisateur, les nombres qui servent d’adresses d’identité est déjà mieux que la plupart des alternatives. La façon dont l’identité et la confiance sont traitées ensemble dans la boîte de dialogue semble aussi relativement compréhensible. Le fait d’avoir des catégories au-delà de fiable / non fiable (inconnu) est une bonne idée, mais ce n’est pas immédiatement évident. Il faut expliquer aux utilisateurs ce que signifie exactement « trust » dans ce contexte.
Les utilisateurs n’ont pas besoin de savoir que cela utilise Curve25519 ; il leur suffit de savoir qu’une forme de chiffrement est bien en place.
Afficher les numéros d’identité en hexadécimal est probablement le pire choix possible parmi les bases disponibles. Pour l’identification, un format décimal plus familier ou un base32 plus court serait préférable, et les numéros d’identité devraient être affichés de manière cohérente avec un regroupement utile, par exemple 4 groupes de 5 chiffres.
La lecture de ceci m’enthousiasme énormément. La création d’un réseau mesh off-grid est l’hypothèse centrale de mon roman de science-fiction « Mesh » : https://inkican.com/mesh-middle-grade-scifi-thriller/
Ça fait penser à Meshtastic, mais Nomad semble destiné aux PC, tandis que Meshtastic semble conçu pour les microcontrôleurs
https://meshtastic.org/
J’ai cherché, mais je n’ai pas trouvé. Est-ce que ça a déjà fait l’objet d’un audit ?