Veröffentlichung von NNCP 8.8.0, Dienstprogrammen zum Übertragen von Dateien/Befehlen im Store-and-Forward-Modus

Die Veröffentlichung von Node-to-Node CoPy (NNCP), einem Satz von Dienstprogrammen für die sichere Übertragung von Dateien, E-Mails und Befehlen im Store-and-Forward-Modus, fand statt. Die Nutzung auf POSIX-kompatiblen Betriebssystemen wird unterstützt. Die Dienstprogramme sind in Go geschrieben und unter der GPLv3-Lizenz erhältlich.

Die Dienstprogramme sind darauf ausgelegt, beim Aufbau kleiner Peer-to-Peer Friend-to-Friend-Netzwerke (Dutzende von Knoten) mit statischer Routing für die sichere Übertragung von Dateien im Fire-and-Forget-Modus, Dateianforderungen, E-Mails und Kommandoausführungsanfragen zu helfen. Alle übertragenen Pakete sind verschlüsselt (Ende-zu-Ende) und werden ausdrücklich nach bekannten öffentlichen Schlüsseln von Bekannten authentifiziert. Onion-Verschlüsselung (wie bei Tor) wird für alle Zwischenschritte angewendet. Jeder Knoten kann sowohl als Client als auch Server als auch die Push- und Poll-Modellverhalten verwenden.

Im Gegensatz zu den Lösungen UUCP und FTN (FidoNet Technology Network) bietet NNCP, neben der oben erwähnten Verschlüsselung und Authentifizierung, sofortige Unterstützung für Floppynet-Netzwerke und physisch von unsicheren lokalen und öffentlichen Netzwerken isolierte Computer (air-gapped). Ein weiteres Merkmal von NNCP ist die einfache Integration (neben UUCP) mit bestehenden Mailservern Servern, wie Postfix und Exim.

Zu den möglichen Anwendungsbereichen von NNCP gehört die Organisation des Sendens/Empfangens von E-Mails auf Geräten ohne ständige Internetverbindung, die Übertragung von Dateien in Situationen mit instabiler Netzwerkverbindung, die sichere Übertragung sehr großer Datenmengen auf physischen Medien, der Aufbau geschützter, gegen MitM-Angriffe isolierter Datenübertragungsnetzwerke, die Umgehung von Netzwerkzensur und Überwachung. Da der Schlüssel zur Entschlüsselung nur beim Empfänger liegt, kann eine dritte Partei den Inhalt nicht lesen, selbst wenn sie die Übertragung abfängt, unabhängig von den Wegen, auf denen das Paket über das Netzwerk oder durch physische Medien zugestellt wird. Die Authentifizierung über digitale Signaturen verhindert zudem die Bildung einer gefälschten Übertragung im Namen eines anderen Absenders.

Unter den Neuerungen von NNCP 8.8.0 im Vergleich zur vorherigen Version (5.0.0):

  • Statt des BLAKE2b-Hashes zur Überprüfung der Integrität von Dateien wird das sogenannte MTH: Merkle Tree-based Hashing verwendet, das den BLAKE3-Hash nutzt. Dies ermöglicht die Berechnung der Integrität des verschlüsselten Teils des Pakets während des Herunterladens, ohne dass eine spätere Lesung erforderlich ist. Außerdem ermöglicht es unbegrenztes Parallelisieren der Integritätsprüfung.
  • Das neue Format der verschlüsselten Pakete ist vollständig streaming-freundlich, wenn die Größe der Daten im Voraus unbekannt ist. Die Signalisierung zum Abschluss der Übertragung mit authentifizierter Größe erfolgt direkt innerhalb des verschlüsselten Streams. Früher war es notwendig, die übertragene Daten in einer temporären Datei zu speichern, um die Größe zu erfahren. Damit hat das Team von 'nncp-exec' die Option '-use-tmp' komplett abgeschafft.
  • Die Funktionen BLAKE2b KDF und XOF wurden durch BLAKE3 ersetzt, um die Anzahl der verwendeten kryptografischen Primitiven zu reduzieren und den Code zu vereinfachen.
  • Es gibt jetzt die Möglichkeit, andere Knoten im lokalen Netzwerk über Multicast auf der Adresse 'ff02::4e4e:4350' zu erkennen.
  • Es sind multicast Gruppen (analog zu Echo-Konferenzen von FidoNet oder Newsgruppen von Usenet) verfügbar, die es ermöglichen, Daten in einem Paket an eine Vielzahl von Gruppenmitgliedern zu senden, wobei jedes Mitglied das Paket auch an andere Abonnenten weiterleitet. Das Lesen eines Multicast-Pakets erfordert das Wissen um das Schlüsselpaar (man muss ausdrücklich Gruppenmitglied sein), aber die Weiterleitung kann von jedem Knoten erfolgen.
  • Es gibt jetzt eine Unterstützung für eine explizite Bestätigung des Empfangs eines Pakets. Der Sender kann das Paket nach dem Versand nicht löschen und auf den Erhalt eines speziellen ACK-Pakets vom Empfänger warten.
  • Umfassende Unterstützung für das Overlay-Netzwerk Yggdrasil: Online-Demons können als vollwertige, eigenständige Teilnehmer des Netzwerks agieren, ohne externe Implementierungen von Yggdrasil verwenden zu müssen, und sie arbeiten vollständig mit dem IP-Stack über eine virtuelle Netzwerkschnittstelle.
  • Anstelle von strukturierten Daten (RFC 3339) verwendet das Journal now recfile-Einträge, mit denen GNU Recutils verwendet werden können.
  • Optional können die Header der verschlüsselten Pakete in separaten Dateien im Unterverzeichnis 'hdr/' gespeichert werden, wodurch die Abrufoperationen für Paketlisten auf Dateisystemen mit großen Blockgrößen wie ZFS erheblich beschleunigt werden. Früher erforderte der Abruf des Paket-Headers standardmäßig das Lesen eines gesamten 128KiB-Blocks von der Festplatte.
  • Die Überprüfung auf neue Dateien kann optional die Subsysteme des Kernels kqueue und inotify nutzen, wodurch weniger Systemaufrufe erforderlich sind.
  • Die Werkzeuge halten weniger geöffnete Dateien, was dazu führt, dass sie seltener geschlossen und wieder geöffnet werden. Bei einer großen Anzahl von Paketen konnte man zuvor auf eine Begrenzung der maximalen Anzahl geöffneter Dateien stoßen.
  • Viele Befehle zeigen mittlerweile den Fortschritt und die Geschwindigkeit der ausgeführten Operationen an, wie z. B. Herunterladen/Uploads, Kopieren und Verarbeiten (Toss) von Paketen.
  • Der Befehl „nncp-file“ kann nicht nur einzelne Dateien, sondern auch Verzeichnisse senden und dabei im laufenden Betrieb ein pax-Archiv mit ihrem Inhalt erstellen.
  • Online-Werkzeuge können optional sofort den Prozess der Paketverarbeitung (Tossing) nach einem erfolgreichen Herunterladen des Pakets aufrufen, ohne einen separaten Daemon „nncp-toss“ zu starten.
  • Der Online-Abruf eines anderen Teilnehmers kann optional nicht nur bei einem Timer-Ereignis, sondern auch durch das Vorliegen eines ausgehenden Pakets im spool-Verzeichnis erfolgen.
  • Die Funktionalität wurde unter den Betriebssystemen NetBSD und OpenBSD sichergestellt, zusätzlich zu den zuvor unterstützten FreeBSD und GNU/Linux.
  • Der „nncp-daemon“ ist vollständig kompatibel mit der UCSPI-TCP-Schnittstelle. Zusammen mit der Möglichkeit, in einen angegebenen Dateideskriptor zu protokollieren (z. B. durch Setzen von „NNCPLOG=FD:4“), ist er vollständig kompatibel mit ähnlich wie daemontools gestalteten Werkzeugen.
  • Der Aufbau des Projekts wurde vollständig auf das System redo umgestellt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4