1 Punkte von GN⁺ 2024-08-16 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
GN⁺ 2024-08-16
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

    • Wie man diese Stellungnahme abgibt, ist nicht direkt ersichtlich. Wenn ich es nicht finde, könnte es anderen genauso gehen; es wäre hilfreich zu wissen, wohin man gehen muss
    • Ich finde den Kommentarbereich nicht. Ich bin zwar älter und meine Augen sind auch nicht mehr die besten, aber ich sehe ihn nicht, und auch der Agent findet keinen Link
    • Da LoRaWAN-WiFi im 900-MHz-Band liegt, als Teil von WiFi 6 oder 7, hoffe ich, dass es selbst im schlimmsten Fall als Ausnahme behandelt wird
  • 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 ist extrem flexibel, und es gibt auch ein Ökosystem an Tools in Entwicklung. NomadNet ist nur einer der Messenger; außerdem gibt es Sideband, einen mobilen App-Client (https://github.com/markqvist/Sideband), sowie Reticulum MeshChat, einen browserbasierten Client von Liam Cottle (https://github.com/liamcottle/reticulum-meshchat)
      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
    • Lustig, dass es das wirklich gibt. Ich dachte, das sei ein Witz über das fiktive Reticulum-Computernetzwerk aus Neal Stephensons Roman Anathem
    • Ich schaue mir gerade den Teil des Protokolls zur Verzögerungstoleranz an; wenn es sogar Sneakernet als Transportweg unterstützen würde, wäre es perfekt
      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

  • 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

    • Es ist schwer, so unterschiedliche Dinge zu vergleichen, aber ich versuche es
      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?

    • „Nomad Network ist Beta-Software und sollte auch so behandelt werden. Es wurde mit kryptografischen Best Practices als oberster Priorität entwickelt, hat aber kein externes Sicherheits-Audit durchlaufen und kann durchaus Bugs enthalten, die die Privatsphäre kompromittieren. Wenn Sie helfen oder ein Audit sponsern möchten, melden Sie sich bitte.“
    • In diesem Stadium halte ich es nicht für realistisch, bei einem nichtkommerziellen Produkt ein formales Audit zu erwarten, sofern man nicht selbst dafür bezahlt oder die Finanzierung organisiert