- Nomad Network ist ein Off-Grid-Mesh-Kommunikationstool zum Aufbau einer privaten, resilienten Kommunikationsplattform, die Nutzer direkt selbst besitzen und kontrollieren – ohne Anmeldung, Nutzungsbedingungen, Datenübermittlung oder Autorisierungsinstanzen
- Die Grundlage bilden LXMF und Reticulum; sie bieten Funktionen für verschlüsselte Messaging-Netzwerke und P2P-Nachrichtenrouting, sodass das System auf sehr unterschiedlichen Kommunikationsmedien von Packet Radio bis Glasfaser läuft
- Es kann auch ohne öffentliches Internet, IP oder Ethernet genutzt werden und auf packet radio, LoRa und serial line betrieben werden; dank Reticulum wurde es sogar schon erfolgreich über einen 300bps-Funklink eingesetzt
- Zu den Funktionen gehören verschlüsseltes Messaging, Zero-Config-Mesh-Kommunikation, ein verteilter verschlüsselter Nachrichtenspeicher für Offline-Nutzer, Nodes zum Hosten von Seiten und Dateien sowie ein textbasierter Browser mit Seiten-Caching
- Derzeit ist es Beta-Software; obwohl es mit Blick auf bewährte kryptografische Verfahren entwickelt wurde, gab es kein externes Sicherheitsaudit, und es können Bugs vorhanden sein, die die Privatsphäre beeinträchtigen
Kommunikationsmodell von Nomad Network
- Nomad Network ermöglicht den Aufbau einer privaten, resilienten Kommunikationsplattform, die vollständig von den Nutzern kontrolliert und besessen wird
- Es sind keine Anmeldung, Zustimmung zu Nutzungsbedingungen, Datenübermittlung, Autorisierungsinstanzen oder Gatekeeper erforderlich
- Das Repository ist ein öffentlicher Mirror; die eigentliche Entwicklung findet an anderer Stelle statt
- Wer einen LXMF-Client mit grafischer Benutzeroberfläche möchte, kann Sideband für Linux, Android und macOS verwenden
Basistechnologien und Netzwerkmedien
- Nomad Network ist auf LXMF und Reticulum aufgebaut
- Beide Projekte liefern die verschlüsselten Messaging-Netzwerkfunktionen und das P2P-Nachrichtenrouting, von denen Nomad Network abhängt
- Diese Grundlage ermöglicht die Nutzung des Programms über sehr unterschiedliche Kommunikationsmedien – von Packet Radio bis Glasfaser
- Es funktioniert auch ohne öffentliche Internetverbindung; IP- oder Ethernet-Netzwerke sind keine Voraussetzung
- Es kann allein über packet radio, LoRa oder serial line verwendet werden
- Bei Bedarf lassen sich getrennte Netzwerke mit dem Internet oder privatem Ethernet bridgen
- Es lässt sich auch ein vollständig über das Internet laufendes Netzwerk aufbauen
- Durch Reticulum ist es auch auf Medien mit sehr geringer Bandbreite effizient und wurde bereits erfolgreich über einen 300bps-Funklink verwendet
Hauptfunktionen
- Bietet verschlüsseltes Messaging über packet radio, LoRa, WiFi und mehr, das von Reticulum unterstützt wird
- Unterstützt Zero-Config-Mesh-Kommunikation mit minimaler Infrastruktur
- Verfügt über einen verteilten verschlüsselten Nachrichtenspeicher, der Nachrichten für Offline-Nutzer vorhält
- Verbindbare Nodes können Seiten und Dateien hosten
- Seiten können node-seitig mit PHP, Python, bash usw. erzeugt werden
- Ein integrierter textbasierter Browser dient zur Interaktion mit den Inhalten eines Nodes
- Es bietet eine einfach nutzbare, bandbreiteneffiziente Markup-Sprache zum Erstellen von Seiten
- Unterstützt Seiten-Caching im Browser
Installation und Ausführung
- Die einfachste Installationsmethode ist die Nutzung von
pip
pip install nomadnet
nomadnet
nomadnet --daemon
nomadnet --help
- Auf Betriebssystemen, die die Installation von Benutzerpaketen generell blockieren, kann das Verhalten von
pip wiederhergestellt werden, indem im Abschnitt [global] von ~/.config/pip/pip.conf folgende Einstellung ergänzt wird
[global]
break-system-packages = true
- Für die Installation in einer isolierten Umgebung kann
pipx verwendet werden
pipx install nomadnet
pipx install rns
pipx install lxmf
nomadnet
nomadnet --daemon
nomadnet --help
- Wenn auf dem System zum ersten Mal ein Programm mit
pip installiert wurde, kann es sein, dass nach einem Neustart die Ausführungsbefehle erst korrekt erkannt werden
- Beim ersten Start zeigt das Programm einen Guide section mit den Informationen an, die für den Einstieg nötig sind
Nutzung mit packet radio, LoRa und Testnet
- Um Nomad Network über packet radio oder LoRa zu verwenden, muss die Reticulum-Installation so konfiguriert sein, dass sie das entsprechende packet radio-TNC oder LoRa-Gerät nutzt
- Wer testen möchte, ohne selbst ein physisches Netzwerk aufzubauen, kann sich über das Internet mit dem Unsigned.io RNS Testnet verbinden
- Im Testnet gibt es bereits etwas Aktivität von Nomad Network und LXMF
- Nach der Verbindung kann
nomadnet eine Zeit lang laufen, um Announcements anderer Nodes zu empfangen, die Seiten oder Dienste hosten
- Testnet-Nodes, mit denen direkte Verbindungen versucht werden können:
abb3ebcd03cb2388a838e70c001291f9: Dublin Hub Testnet Node
ea6a715f814bdc37e56f80c34da6ad51: Frankfurt Hub Testnet Node
- Um Seiten unbekannter Nodes zu durchsuchen, kann im Abschnitt
Network des Programms mit Ctrl+U der URL-Dialog geöffnet, eine Adresse eingegeben und anschließend Go gewählt oder Enter gedrückt werden
- NomadNet versucht dann, den angeforderten Node zu finden und eine Verbindung herzustellen
Android und Docker
- Unter Android kann Nomad Network mit Termux installiert werden, erfordert aber mehr Befehle als eine typische Ein-Zeilen-Installation
- Der Ablauf ist im Abschnitt Android Installation des Reticulum Manual dokumentiert
- Nach der Installation von Reticulum kann Nomad Network per
pip installiert werden
- Wer eine native grafische Android-App benötigt, kann Sideband verwenden
- Nomad Network wird automatisch als Docker-Image in GitHub Packages veröffentlicht
- Die Image-Tags sind entweder
master für den neuesten Commit oder eine konkrete Release-Versionsnummer
- Ein Beispiel für ein Versions-Tag ist
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
Tools, Erweiterungen und Roadmap
- Nomad Network ist eine flexible und erweiterbare Plattform, für die es Community-Tools und node-seitige Erweiterungen gibt
- Hilfeanfragen, Diskussionen und Ideenaustausch sind auf den Nomad Network discussions pages möglich
- Zu den neuen Hauptfunktionen auf der Entwicklungs-Roadmap gehören netzwerkweit verbreitete Bulletins und Discussion Threads, kollaborative Karten und das Teilen georäumlicher Informationen
- Zu den geplanten Verbesserungen und Korrekturen zählen Anzeigen für Link-Status, Tastenkürzel zur Menünavigation, Node-Sharing, Fehlerbehebungen für den internen Editor auf einigen Betriebssystemen und ein Wiederholungsmechanismus für fehlgeschlagene Nachrichten
Sicherheitsstatus und Hinweise
- Nomad Network sollte als Beta-Software betrachtet werden
- Es wurde mit sehr hoher Priorität auf bewährte kryptografische Verfahren entwickelt, hat aber kein externes Sicherheitsaudit durchlaufen
- Es kann Bugs geben, die die Privatsphäre beeinträchtigen
- Es gibt einen Hinweis, Kontakt aufzunehmen, wenn man bei Audits helfen oder diese sponsern möchte
1 Kommentare
Meinungen auf Hacker News
Das könnte anders aussehen, wenn NextNav einen großen Teil des 900-MHz-ISM-Bands bekommt: https://news.ycombinator.com/item?id=41226802
https://en.wikipedia.org/wiki/ISM_radio_band
Hier kann man eine Stellungnahme einreichen: https://www.fcc.gov/ecfs/search/docket-detail/24-240
Dazu gibt es einen laufenden Thread:
Private, Secure and Uncensorable Messaging over a LoRa Mesh (2022) - https://news.ycombinator.com/item?id=41256623 - August 2024, 21 Kommentare
Das zugrunde liegende Reticulum-Netzwerk, das hier verwendet wird, ist ziemlich interessant, weil es viele Übertragungsmedien wie Packet Radio unterstützt
Reticulum kann über jedes Medium laufen, solange es einen Durchsatz von mehr als 5 Bit pro Sekunde und eine MDU von 500 Byte bietet. Es läuft nicht nur über Hunderte Carrier wie LoRa, BLE, Packet Radio und Overlay-Netzwerke wie Tor oder I2P; diese Carrier können auch Teil desselben Netzwerks sein
Ich habe einen schnellen Proof of Concept gebaut, der über HF-Funk läuft. Ich habe zwei Knoten in etwa 144 km Entfernung eingerichtet; beide nutzten einen ICOM-7300 und einen Raspberry Pi 5, um ein Software-Modem zu betreiben, das Reticulum-Pakete entgegennimmt und per Funk sendet: https://www.youtube.com/watch?v=blwNVumLujc
Knoten 1 war draußen, Knoten 2 bei mir zu Hause. Auf Knoten 2 hatte ich ein Interface für das HF-Modem und ein weiteres Interface zum TCP-Testnet konfiguriert, sodass Knoten 1 alle Peers im TCP-Testnet erreichen konnte
Es gibt auch ein kurzes Einführungsvideo, das die Grundkonzepte von Reticulum erklärt: https://www.youtube.com/watch?v=q8ltLt5SK6A
Nachtrag: War es doch nicht. Es scheint nicht pro Link, sondern global konfiguriert zu werden
Das Konzept ist interessant, aber die Kommunikation mit Leuten, die iOS/iPadOS-Geräte verwenden, ist ein Problem. Wegen der Betriebssystembeschränkungen kann man solche Apps normalerweise nicht nutzen[1], und durch den Netzwerkeffekt wird es für die meisten Menschen sehr schwierig, sie zu verwenden
[1] https://forums.developer.apple.com/forums/thread/685525
Natürlich gibt es Probleme mit der Ausführung im Hintergrund, aber es gibt mögliche Lösungen, etwa Reticulum vollständig auf einem RNode laufen zu lassen, und daran wird einigermaßen aktiv gearbeitet
Ich verstehe nicht, wie man sich beim Tippen auf einer Touchscreen-Tastatur eines Android- oder iOS-Geräts sicher fühlen kann, dass die Privatsphäre gewahrt bleibt
Wenn man echte Privatsphäre will, sollte man für Texterfassung und -anzeige, Verschlüsselung und die Übertragung verschlüsselter Pakete eine Tastatur/ein Terminal verwenden, das mit Bare-Metal-Code läuft und verschlüsselte Blobs über einen Reticulum-Client sendet
Das könnte zum Beispiel seriell per Kabel oder über Bluetooth sein; ein separater MCU könnte auch Networking und Protokoll übernehmen. Der Kernpunkt ist, verifizierten Code ohne binäre Blobs bare metal auszuführen und nur verschlüsselte Payloads an den Netzwerkknoten zu senden. Wenn möglich, wäre zwischen Terminal-Controller und Netzwerk-Controller ein TTL-Serial-Link gut
Ich frage mich, wie NomadNet/Reticulum im Vergleich zu Yggdrasil, IPFS, Nostr, Scuttlebutt abschneidet
Scuttlebutt: Reticulum ist ein Netzwerk-Stack, der Daten in Echtzeit routet, kein dezentrales soziales Netzwerk
Nostr: wie Scuttlebutt
IPFS: Reticulum überträgt Daten, speichert sie aber nicht. Einige Protokolle, die auf Reticulum laufen, etwa LXMF, bieten allerdings optional eine temporäre Nachrichtenspeicherung
Yggdrasil ist von den genannten Beispielen Reticulum am ähnlichsten, aber bei einer groben Suche habe ich keine Details zur Funktionsweise gefunden. Derzeit scheint es nur über IPv6 zu funktionieren, wobei es in gewissem Umfang IPv4-Tunnel nutzt; Reticulum unterscheidet sich dadurch, dass es über praktisch allem laufen kann
Wer interessiert ist, dem empfehle ich mindestens http://reticulum.network/manual/understanding.html zu lesen, um zu verstehen, wie Reticulum funktioniert
Ein kurzer, vielleicht nicht besonders fundierter Hinweis zur Usability
Dass die als Identität verwendete Zahl dem Nutzer vorn in einer verständlichen Form angezeigt wird, ist besser als bei den meisten anderen Ansätzen. Auch die Art, wie diese Identität und Vertrauen im Dialog zusammen behandelt werden, wirkt relativ nachvollziehbar. Dass es neben vertrauenswürdig/nicht vertrauenswürdig (unbekannt) weitere Kategorien gibt, ist eine gute Idee, aber nicht sofort verständlich. Nutzer müssen darüber aufgeklärt werden, was „trust“ in diesem Kontext genau bedeutet
Nutzer müssen nicht wissen, dass Curve25519 verwendet wird; es reicht, wenn sie wissen, dass irgendeine Form von Verschlüsselung zustande gekommen ist
Identitätsnummern hexadezimal anzuzeigen, ist unter den möglichen Zahlensystemen die schlechteste Wahl. Für Identifikation ist das vertrautere Dezimalsystem oder das kürzere base32 besser, und Identitätsnummern sollten konsistent in einer hilfreichen Gruppierung angezeigt werden, zum Beispiel in 4 Gruppen zu je 5 Zeichen
Das zu lesen macht mich ziemlich begeistert. Der Aufbau von Off-Grid-Mesh-Netzwerken ist die zentrale Prämisse meines SF-Romans „Mesh“: https://inkican.com/mesh-middle-grade-scifi-thriller/
Das erinnert mich an Meshtastic, aber Nomad scheint für PCs gedacht zu sein und Meshtastic für Mikrocontroller
https://meshtastic.org/
Ich habe gesucht, aber nichts gefunden. Wurde das schon einmal auditiert?