
Reticulum ist der kryptographische Networking-Stack für den Aufbau lokaler und weitreichender Netzwerke mit leicht verfügbarer Hardware. Es kann auch mit sehr hoher Latenz und extrem niedriger Bandbreite funktionieren. Mit RETICULUM können Sie Weithäfen-Netzwerke mit off-the-Shelf-Tools erstellen und End-to-End-Verschlüsselung und Konnektivität, Initiatoranonymität, automatisch konfigurierende kryptografisch unterstützte Multi-HOP-Transport, effiziente Adressierung, unvergessliche Anerkennung von Lieferungen und mehr anbieten.
Die Vision von Reticulum besteht darin, jedem zu ermöglichen, sein eigener Netzwerkbetreiber zu sein und es billig und einfach zu machen, riesige Gebiete mit einer Vielzahl von unabhängigen, inter-konnektierbaren und autonomen Netzwerken abzudecken. Reticulum ist kein Netzwerk . Es ist ein Werkzeug zum Aufbau von Tausenden von Netzwerken . Netzwerke ohne Tötungsschalter, Überwachung, Zensur und Kontrolle. Netzwerke, die sich frei unterscheiden, miteinander verbinden und zerstören können und keine zentrale Aufsicht erfordern. Netzwerke für Menschen. Netzwerke für die Menschen .
Reticulum ist ein vollständiger Netzwerkstapel und stützt sich nicht auf IP- oder höhere Schichten. Es ist jedoch möglich, IP als zugrunde liegende Träger für Reticulum zu verwenden. Es ist daher trivial, Reticulum über das Internet oder private IP -Netzwerke zu tun.
Wenn Sie keine Abhängigkeiten von herkömmlichen Netzwerkstapeln haben, werden Sie Overhead befreit, die zur Implementierung eines Netzwerkstacks verwendet wurden, der direkt auf kryptografischen Prinzipien aufgebaut ist und die Widerstandsfähigkeit und stabile Funktionalität auch in offenen und vertrauenslosen Netzwerken ermöglicht.
Es sind keine Kernelmodule oder Treiber erforderlich. Reticulum läuft vollständig in Userland und kann praktisch jedes System ausführen, das Python 3 ausführt.
Die vollständige Dokumentation für Reticulum finden Sie unter markqvist.github.io/reticulum/manual/.
Sie können das Reticulum-Handbuch auch als PDF oder als E-Book im EPUB-Format herunterladen.
Weitere Informationen finden Sie unter Reticulum.network und im FAQ -Abschnitt des Wiki.
Während Reticulum bereits ein vollständig vorgestellter und funktionaler Networking -Stack ist, werden viele Verbesserungen und Ergänzungen aktiv bearbeitet und für die Zukunft geplant.
Weitere Informationen zur Richtung und Zukunft des Retikulums finden Sie in der Roadmap.
Wenn Sie schnell eine Vorstellung davon bekommen möchten, was Reticulum tun kann, sehen Sie sich die folgenden Ressourcen an.
Über praktisch jedes Medium, das mindestens einen halben Duplexkanal mit einem größeren Durchsatz als 5 Bit pro Sekunde und einer MTU von 500 Bytes unterstützen kann. Datenradios, Modems, Lora-Radios, serielle Linien, AX.25-TNCs, Digitalmodi für Amateur-Funk, WLAN- und Ethernet-Geräte, optische Links von Freiraum und ähnliche Systeme sind Beispiele für die Arten von physikalischen Geräten, die Reticulum verwenden können.
Eine Open-Source-Lora-basierte Schnittstelle namens RNODE wurde speziell für die Verwendung mit Reticulum entwickelt. Es ist möglich, sich selbst zu bauen, oder es kann als vollständiger Transceiver gekauft werden, der nur eine USB -Verbindung zum Host benötigt.
Reticulum kann auch über vorhandene IP -Netzwerke eingekapselt werden. Daher hindert Sie nichts daran, es über kabelgebundenes Ethernet, Ihr lokales WLAN -Netzwerk oder das Internet zu verwenden, wo es genauso gut funktioniert. Tatsächlich ist eine der Stärken des Retikulums, wie leicht Sie verschiedene Medien in ein selbstkonfigurierendes, belastbares und verschlüsseltes Netz anhand einer beliebigen Mischung aus verfügbarer Infrastruktur anschließen können.
Zum Beispiel ist es möglich, einen Himbeer -Pi einzurichten, der sowohl mit einem Lora -Radio, einem Paket -Radio -TNC als auch einem WLAN -Netzwerk verbunden ist. Sobald die Schnittstellen konfiguriert sind, kümmert sich Reticulum um den Rest, und jedes Gerät im WLAN -Netzwerk kann mit Knoten auf der Lora- und Paket -Funkseite des Netzwerks kommunizieren und umgekehrt.
Der beste Weg, um mit dem Reticulum Network Stack zu beginnen, hängt davon ab, was Sie tun möchten. Ausführliche Informationen und Beispiele finden Sie im Retikulumhandbuch.
Um einfach Reticulum und verwandte Versorgungsunternehmen in Ihrem System zu installieren, ist der einfachste Weg über pip . Sie können dann jedes Programm starten, das Reticulum verwendet, oder Reticulum als Systemdienst mit dem RNSD -Dienstprogramm starten.
pip install rns Wenn Sie ein Betriebssystem verwenden, das die normale Benutzerpaketinstallation über pip blockiert, können Sie pip zum normalen Verhalten zurückgeben, indem Sie die Datei ~/.config/pip/pip.conf bearbeiten und die folgende Anweisung im Abschnitt [global] hinzufügen:
[global]
break-system-packages = true
Alternativ können Sie das pipx -Tool verwenden, um Reticulum in einer isolierten Umgebung zu installieren:
pipx install rnsBei der ersten Start wird Reticulum eine Standardkonfigurationsdatei erstellt, die eine grundlegende Konnektivität zu anderen Reticulum -Kollegen bietet, die möglicherweise lokal erreichbar sind. Die Standardkonfigurationsdatei enthält einige Beispiele und Referenzen zum Erstellen einer komplexeren Konfiguration.
Wenn Sie eine alte pip -Version in Ihrem System haben, müssen Sie sie möglicherweise zuerst mit pip install pip --upgrade aktualisieren. Wenn Sie pip nicht noch nicht installiert haben, können Sie es über den Paketmanager Ihres Systems installieren, wobei sudo apt install python3-pip .
Detailliertere Beispiele dafür, wie die Kommunikation über viele Medien wie Paket -Radio oder LORA, serielle Anschlüsse oder über schnelle IP -Links und das Internet mithilfe der UDP- und TCP -Schnittstellen erweitert werden, schauen Sie sich den unterstützten Schnittstellenabschnitt des Reticulum -Handbuchs an.
Reticulum enthält eine Reihe nützlicher Versorgungsunternehmen für die Verwaltung Ihrer Netzwerke, den Anzeigen von Status und Informationen sowie andere Aufgaben. Weitere Informationen zu diesen Programmen finden Sie im Abschnitt mit den enthaltenen Dienstprogrammen des Reticulum -Handbuchs.
rnsd zum Ausführen von Reticulum als immer verfügbaren Servicernstatus , in dem Informationen zu Schnittstellen angezeigt werdenrnpath dem Pfad -Lookup- und -management -Tool können Sie Pfadtabellen anzeigen und ändernrnprobe zur Überprüfung der Konnektivität zu Zielenrncp sodass es einfach ist, Dateien zwischen Systemen zu übertragenrnid dem Identitätsmanagement- und Verschlüsselungsdienstprogramm können Sie Identitäten verwalten und Dateien verschlüsseln/entschlüsselnrnx können Sie Befehle und Programme ausführen und die Ausgabe von Remote -Systemen abrufen Alle Tools, einschließlich rnx und rncp , arbeiten zuverlässig und gut, auch über sehr niedrige Bandbreitenverbindungen wie Lora oder Packet-Radio. Schauen Sie sich auch das RNSH-Programm an, um sich für Reticulum mit vollem Funktionsumfang über Reticulum zu befassen.
Reticulum implementiert eine Reihe verallgemeinerter Schnittstellentypen, die den größten Teil der Kommunikationshardware abdecken, die Reticulum durchführen kann. Wenn Ihre Hardware nicht unterstützt wird, ist es einfach, ein benutzerdefiniertes Schnittstellenmodul zu implementieren.
Pull-Anfragen für benutzerdefinierte Schnittstellen werden dankbar angenommen, vorausgesetzt, sie sind im Allgemeinen nützlich und in der realen Nutzung gut getestet.
Derzeit werden die folgenden integrierten Schnittstellen unterstützt:
Reticulum zielt auf eine sehr weit verbreitete Leistungshülle ab, priorisiert jedoch die Funktionalität und Leistung auf Medien mit niedriger Bandbreite. Ziel ist es, einen dynamischen Leistungsumschlag von 250 Bit pro Sekunde auf 1 Gigabit pro Sekunde auf normale Hardware zu liefern.
Derzeit beträgt der nutzbare Leistungsumschlag ungefähr 150 Bit pro Sekunde bis 40 Megabit pro Sekunde, wobei die physischen Medien schneller als die nicht gesättigten. Die Leistung, die über das aktuelle Niveau hinausgeht, ist für zukünftige Upgrades vorgesehen, aber zu diesem Zeitpunkt nicht hoch priorisiert.
Reticulum sollte derzeit als Beta -Software angesehen werden. Alle Kernprotokollfunktionen werden implementiert und funktionieren, aber wahrscheinlich werden Ergänzungen auftreten, wenn die Verwendung der realen Welt untersucht wird. Es wird Fehler geben. Die API und das Drahtformat können im Moment als relativ stabil angesehen werden, können sich jedoch bei der gerechtfertigten Verfügung ändern.
Für die Installation des Standard rns -Pakets sind die unten aufgeführten Abhängigkeiten erforderlich. Fast alle Systeme und Verteilungen verfügen über leicht verfügbare Pakete für diese Abhängigkeiten. Wenn das rns -Paket mit pip installiert ist, werden sie ebenfalls heruntergeladen und installiert.
Bei ungewöhnlicheren Systemen und in einigen seltenen Fällen ist es möglicherweise nicht möglich, einen oder mehrere der oben genannten Module zu installieren oder sogar zu kompilieren. In solchen Situationen können Sie stattdessen das rnspure -Paket verwenden, für das keine externen Abhängigkeiten für die Installation erforderlich sind. Bitte beachten Sie, dass der Inhalt der rns und rnspure -Pakete identisch ist. Der einzige Unterschied besteht darin, dass das rnspure -Paket keine Abhängigkeiten auflistet, die für die Installation erforderlich sind.
Unabhängig davon, wie Retikulum installiert und begonnen wird, lädt es externe Abhängigkeiten nur, wenn sie benötigt und verfügbar sind. Wenn Sie beispielsweise Reticulum für ein System verwenden möchten, das Pyserial nicht unterstützen kann, ist es durchaus möglich, dies mit dem rnspure -Paket zu tun. Reticulum kann jedoch keine seriellbasierten Schnittstellen verwenden. Alle anderen verfügbaren Module werden bei Bedarf weiterhin geladen.
Bitte beachten Sie! Wenn Sie das rnspure -Paket verwenden, um Reticulum für Systeme auszuführen, die Pyca/Cryptography nicht unterstützen, ist es wichtig, dass Sie den Abschnitt Kryptografischer Primitiven dieses Dokuments lesen und verstehen.
Wenn Sie nur mit dem Experimentieren beginnen möchten, ohne physische Netzwerke aufzubauen, können Sie sich dem RNS -Entwicklungstest beischließen.
Das TestNet ist genau das, ein informelles Netzwerk zum Testen und Experimentieren. Es wird die meiste Zeit verfügbar sein, und jeder kann beitreten, aber es bedeutet auch, dass es keine Garantien für die Verfügbarkeit von Dienstleistungen gibt.
Es ist wahrscheinlich selbstverständlich, aber verwenden Sie die TestNet-Einstiegspunkte nicht als festcodierte oder Standardschnittstellen in Anwendungen, die Sie an Benutzer versenden . Bei Versand von Anwendungen besteht die beste Praxis darin, bei Bedarf und in den meisten Fällen Ihre eigenen Standard -Konnektivitätslösungen bereitzustellen, und überlassen Sie es einfach dem Benutzer, mit welchen Netzwerken eine Verbindung hergestellt werden soll und wie.
Das TestNet führt die neueste Version von Reticulum aus (oft sogar kurz, bevor es öffentlich veröffentlicht wird). Manchmal können experimentelle Versionen von Reticulum an Knoten im Testnet eingesetzt werden, was bedeutet, dass ein seltsames Verhalten auftreten kann. Wenn Sie nichts davon erschrecken, können Sie dem TestNet entweder über TCP oder I2P beitreten. Fügen Sie einfach eine der folgenden Schnittstellen zu Ihrer Reticulum -Konfigurationsdatei hinzu:
# TCP/IP interface to the RNS Amsterdam Hub
[[RNS Testnet Amsterdam]]
type = TCPClientInterface
enabled = yes
target_host = amsterdam.connect.reticulum.network
target_port = 4965
# TCP/IP interface to the BetweenTheBorders Hub (community-provided)
[[RNS Testnet BetweenTheBorders]]
type = TCPClientInterface
enabled = yes
target_host = reticulum.betweentheborders.com
target_port = 4242
# Interface to Testnet I2P Hub
[[RNS Testnet I2P Hub]]
type = I2PInterface
enabled = yes
peers = g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq.b32.i2p
Das TestNet enthält auch eine Reihe von NOMAD -Netzwerkknoten und LXMF -Ausbreitungsknoten.
Sie können die fortgesetzte Entwicklung offener, kostenloser und privater Kommunikationssysteme unterstützen, indem Sie über einen der folgenden Kanäle spenden:
84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
0xFDabC71AC4c0C78C95aDDDe3B4FA19d6273c5E73
35G9uWVzrpJJibzUwpNUQGQNFzLirhrYAH
Sind bestimmte Merkmale in der Entwicklungs -Roadmap für Sie oder Ihre Organisation wichtig? Machen Sie sie schnell Realität, indem Sie ihre Implementierung sponsern.
Reticulum verwendet eine einfache Reihe effizienter, starker und gut getesteter kryptografischer Primitiven mit weit verbreiteten Implementierungen, die sowohl für CPUs im Allgemeinen als auch für Mikrocontroller verwendet werden können. Die verwendeten Primitiven sind:
In der Standardinstallationskonfiguration werden die Primitiven X25519 , Ed25519 und AES-128-CBC von OpenSSL (über das PYCA/Cryptography-Paket) bereitgestellt. Die Hashing-Funktionen SHA-256 und SHA-512 werden vom Standard-Python-Hashlib bereitgestellt. Die HKDF , HMAC , Token -Primitive und die PKCS7 -Padding -Funktion werden immer durch die folgenden internen Implementierungen bereitgestellt:
Reticulum enthält auch eine vollständige Umsetzung aller notwendigen Primitiven in reinem Python. Wenn OpenSSL & PYCA beim Start von Retikulum nicht verfügbar sind, verwendet Reticulum stattdessen die internen reinen Python-Primitiven. Eine triviale Folge davon ist die Leistung, wobei das OpenSSL -Backend viel schneller ist. Die wichtigste Folge ist jedoch der potenzielle Sicherheitsverlust durch die Verwendung von Primitiven, bei denen nicht die gleiche Menge an Prüfung, Testen und Überprüfung wie die von OpenSSL festgestellt wurde.
Wenn Sie die internen Pure-Python-Primitiven verwenden möchten, ist es sehr ratsam , dass Sie ein gutes Verständnis für die Risiken haben, die diese Pose erstellen, und eine fundierte Entscheidung darüber treffen, ob diese Risiken für Sie akzeptabel sind.
Reticulum ist eine relativ junge Software und sollte als solche betrachtet werden. Während es sehr wichtige Kryptographie-Best-Practices entwickelt hat, wurde es nicht externe Sicherheits-geprüft, und es könnte sehr gut Privatsphäre oder Sicherheitsbruchfehler geben. Wenn Sie helfen möchten oder beim Sponsor eines Audits helfen möchten, setzen Sie sich bitte mit uns in Verbindung.
Reticulum kann nur aufgrund des Berges der Open -Source -Arbeiten existieren, auf denen es aufgebaut wurde, die Beiträge aller Beteiligten und alle, die das Projekt im Laufe der Jahre unterstützt haben. Vielen Dank an alle, die geholfen haben, vielen Dank.
Eine Reihe anderer Module und Projekte sind entweder Teil oder von Reticulum verwendet. Aufrichtig an die Autoren und Mitwirkenden der folgenden Projekte: