Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Reticulum — Der kryptografiebasierte Netzwerk-Stack zum Aufbau unaufhaltsamer Netzwerke mit LoRa, Packet Radio, WiFi und allem dazwischen. | Kitploit
Tools/GitHubGitHub/markqvist/reticulum
Verschlüsselungs-/EntschlüsselungstoolsNetzwerksicherheitDrahtlose SicherheitKryptographiePrivatsphäreDienstprogramme & FrameworksAuthentifizierung
GitHubmarkqvist/reticulum

Reticulum

Der kryptografiebasierte Netzwerk-Stack zum Aufbau unaufhaltsamer Netzwerke mit LoRa, Packet Radio, WiFi und allem dazwischen.

Repository anzeigen
6.7k4901vor 24 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Reticulum Network Stack

Dieses Repository ist ein öffentlicher Spiegel. Die gesamte Entwicklung findet woanders statt.

Um die grundlegende Philosophie und Ziele dieses Systems zu verstehen, lesen Sie den Zen of Reticulum.

Reticulum ist der kryptografiebasierte Netzwerk-Stack zum Aufbau lokaler und überregionaler Netzwerke mit handelsüblicher Hardware. Es kann selbst bei sehr hohen Latenzen und extrem niedriger Bandbreite betrieben werden. Reticulum ermöglicht es Ihnen, mit handelsüblichen Tools überregionale Netzwerke aufzubauen und bietet Ende-zu-Ende-Verschlüsselung und Konnektivität, Anonymität des Initiators, selbstkonfigurierenden kryptografisch abgesicherten Multi-Hop-Transport, effiziente Adressierung, fälschungssichere Zustellbestätigungen und mehr.

Die Vision von Reticulum ist es, jedem zu ermöglichen, sein eigener Netzbetreiber zu sein, und es billig und einfach zu machen, weite Gebiete mit einer Vielzahl von unabhängigen, miteinander verbindbaren und autonomen Netzwerken abzudecken. Reticulum ist nicht ein Netzwerk. Es ist ein Werkzeug zum Aufbau tausender Netzwerke. Netzwerke ohne Abschaltmechanismen, Überwachung, Zensur und Kontrolle. Netzwerke, die frei miteinander interagieren, sich verbinden und trennen können und keine zentrale Aufsicht benötigen. Netzwerke für Menschen. Netzwerke für das Volk.

Reticulum ist ein vollständiger Netzwerk-Stack und verlässt sich nicht auf IP oder höhere Schichten, aber es ist möglich, IP als zugrunde liegenden Träger für Reticulum zu verwenden. Daher ist es trivial, Reticulum über das Internet oder private IP-Netzwerke zu tunneln.

Da keine Abhängigkeiten von traditionellen Netzwerk-Stacks bestehen, wird Overhead freigesetzt, der genutzt wurde, um einen direkt auf kryptografischen Prinzipien aufbauenden Netzwerk-Stack zu implementieren, der 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 im Userspace und kann auf praktisch jedem System ausgeführt werden, das Python 3 ausführt.

Lesen Sie das Handbuch

Die vollständige Dokumentation für Reticulum ist verfügbar unter markqvist.github.io/Reticulum/manual/.

Sie können auch das Reticulum-Handbuch als PDF oder als E-Book im EPUB-Format herunterladen.

Weitere Informationen finden Sie unter reticulum.network und im FAQ-Bereich des Wikis.

Bemerkenswerte Funktionen

  • Koordinationslose global eindeutige Adressierung und Identifizierung
  • Vollständig selbstkonfigurierendes Multi-Hop-Routing über heterogene Träger
  • Flexible Skalierbarkeit über heterogene Topologien
    • Reticulum kann Daten über jede Mischung aus physischen Medien und Topologien transportieren
    • Netzwerke mit niedriger Bandbreite können mit großen, hochbandbreitigen Netzwerken koexistieren und interoperieren
  • Anonymität des Initiators, Kommunikation ohne Preisgabe Ihrer Identität
    • Reticulum enthält keine Quelladressen in Paketen
  • Asymmetrische X25519-Verschlüsselung und Ed25519-Signaturen als Grundlage für die gesamte Kommunikation
    • Die grundlegenden Reticulum-Identitätsschlüssel sind 512-Bit-Elliptische-Kurven-Schlüsselsätze
  • Perfect Forward Secrecy ist für alle Kommunikationstypen verfügbar, sowohl für einzelne Pakete als auch über Links
  • Reticulum verwendet das folgende Format für verschlüsselte Token:
    • Ephemere Paket- und Link-Schlüssel, abgeleitet von einem ECDH-Schlüsselaustausch auf Curve25519
    • AES-256 im CBC-Modus mit PKCS7-Padding
    • HMAC unter Verwendung von SHA256 zur Authentifizierung
    • IVs werden über os.urandom() generiert
  • Fälschungssichere Paketzustellungsbestätigungen
  • Flexibles und erweiterbares Schnittstellensystem
    • Reticulum enthält eine Vielzahl integrierter Schnittstellentypen
    • Fähigkeit, benutzerdefinierte oder von der Community bereitgestellte Schnittstellentypen zu laden und zu nutzen
    • Einfaches Erstellen eigener benutzerdefinierter Schnittstellen für die Kommunikation über alles
  • Authentifizierung und virtuelle Netzwerksegmentierung auf allen unterstützten Schnittstellentypen
  • Eine intuitive und benutzerfreundliche API
    • Einfacher und benutzerfreundlicher als Socket-APIs, aber leistungsfähiger
    • Macht das Erstellen verteilter und dezentraler Anwendungen viel einfacher
  • Zuverlässige und effiziente Übertragung beliebiger Datenmengen
    • Reticulum kann einige Bytes Daten oder Dateien von vielen Gigabyte verarbeiten
    • Sequenzierung, Komprimierung, Übertragungskoordination und Prüfsummenbildung erfolgen automatisch
    • Die API ist sehr einfach zu bedienen und bietet Übertragungsfortschritt
  • Leichter, flexibler und erweiterbarer Request/Response-Mechanismus
  • Effizienter Link-Aufbau
    • Die Gesamtkosten für die Einrichtung eines verschlüsselten und verifizierten Links betragen nur 3 Pakete mit insgesamt 297 Bytes
    • Niedrige Kosten für das Offenhalten von Links bei nur 0,44 Bits pro Sekunde

Referenzimplementierung

Der Python-Code in diesem Repository ist die Referenzimplementierung von Reticulum. Das Reticulum-Protokoll wird vollständig und maßgeblich durch diese Referenzimplementierung und das dazugehörige Handbuch definiert. Es wird von Mark Qvist gewartet, identifiziert durch die Reticulum-Identität <bc7291552be7a58f361522990465165c>.

Es gibt derzeit keine und wird es nie geben, Ableitungen von Protokollspezifikationen zweiter Ordnung. Man kann keine bessere Spezifikation bekommen als eine, die ausführbar, funktionsfähig, testbar, bereitgestellt und rund um die Uhr auf dem gesamten Planeten im Betrieb ist.

Es gibt und wird nie eine separate, abgeleitete "formale Spezifikation", "RFC" oder etwas Ähnliches für Reticulum geben:

Die Referenzimplementierung ist die endgültige, maßgebliche Spezifikation.

Kompatibilität mit dem Reticulum-Protokoll ist definiert als vollständige Interoperabilität und ausreichende funktionale Gleichwertigkeit mit dieser Referenzimplementierung. Jede spezifische Protokollimplementierung, die dies erreicht, ist Reticulum. Jede, die dies nicht tut, ist nicht Reticulum.

Die Referenzimplementierung ist unter der Reticulum-Lizenz lizenziert.

Das Reticulum-Protokoll wurde 2016 der Public Domain gewidmet.

Beispiele für Reticulum-Anwendungen

Wenn Sie sich schnell einen Eindruck davon verschaffen möchten, was Reticulum kann, werfen Sie einen Blick auf den Abschnitt Programs Using Reticulum des Handbuchs oder auf die folgenden Ressourcen:

  • LXMF ist ein verteiltes, verzögerungs- und unterbrechungstolerantes Nachrichtenübertragungsprotokoll, das auf Reticulum aufbaut
  • Das LXST-Protokoll und Framework bietet Echtzeit-Audio- und Signaltransport über Reticulum. Es enthält Primitive und Dienstprogramme zum Erstellen sprachbasierter Anwendungen und Hardwaregeräte, wie das rnphone-Programm, das zum Bau von Hardware-Telefonen verwendet werden kann.
  • Für eine netzunabhängige, verschlüsselte und widerstandsfähige Mesh-Kommunikationsplattform siehe Nomad Network
  • Die Android-, Linux-, macOS- und Windows-App Sideband verfügt über eine grafische Oberfläche und viele erweiterte Funktionen, wie Dateiübertragungen, Bild- und Sprachnachrichten, Echtzeit-Sprachanrufe, ein verteiltes Telemetriesystem, Kartierungsfähigkeiten und vollständige Plugin-Erweiterbarkeit.
  • MeshChatX ist ein voll funktionsfähiger LXMF-Client mit vielen integrierten Werkzeugen und Funktionen, der auch Bild- und Sprachnachrichten, Dateiübertragungen und Sprachanrufe unterstützt. Es enthält auch einen integrierten Seitenbrowser zum Durchsuchen von Nomad Network-Knoten.
  • Sie können das enthaltene Programm rnsh verwenden, um Remote-Shell-Sitzungen über Reticulum herzustellen.

Wo kann Reticulum eingesetzt werden?

Über praktisch jedes Medium, das mindestens einen Halbduplex-Kanal mit einem Durchsatz von mehr als 5 Bit pro Sekunde und einer MTU von 500 Bytes unterstützen kann. Datenfunkgeräte, Modems, LoRa-Funkgeräte, serielle Leitungen, AX.25-TNCs, Amateurfunk-Digitalmodi, WiFi- und Ethernet-Geräte, Freiraum-Optikverbindungen und ähnliche Systeme sind alles Beispiele für die Arten physischer Geräte, die Reticulum verwenden kann.

Eine Open-Source-LoRa-basierte Schnittstelle namens RNode wurde speziell für die Verwendung mit Reticulum entwickelt. Sie kann selbst gebaut oder als kompletter Transceiver erworben werden, der nur eine USB-Verbindung zum Host benötigt.

Reticulum kann auch über bestehende IP-Netzwerke gekapselt werden, sodass Sie es problemlos über kabelgebundenes Ethernet, Ihr lokales WiFi-Netzwerk oder das Internet verwenden können, wo es genauso gut funktioniert. Tatsächlich ist eine der Stärken von Reticulum, wie einfach es Ihnen ermöglicht, verschiedene Medien zu einem selbstkonfigurierenden, widerstandsfähigen und verschlüsselten Mesh zu verbinden, unter Verwendung jeder verfügbaren Mischung vorhandener Infrastruktur.

Als Beispiel ist es möglich, einen Raspberry Pi einzurichten, der sowohl mit einem LoRa-Funkgerät, einem Packet-Radio-TNC als auch einem WiFi-Netzwerk verbunden ist. Sobald die Schnittstellen konfiguriert sind, kümmert sich Reticulum um den Rest, und jedes Gerät im WiFi-Netzwerk kann mit Knoten auf der LoRa- und Packet-Radio-Seite des Netzwerks kommunizieren und umgekehrt.

Wie fange ich an?

Der beste Weg, um mit dem Reticulum Network Stack zu beginnen, hängt davon ab, was Sie tun möchten. Für vollständige Details und Beispiele werfen Sie einen Blick auf den Abschnitt Getting Started Fast des Reticulum Manuals.

Um Reticulum und zugehörige Dienstprogramme einfach auf 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.```bash pip install rns

root@kitploit:~
Wenn Sie ein Betriebssystem verwenden, das die normale Benutzerpaketinstallation über `pip` blockiert, können Sie `pip` wieder zum normalen Verhalten zurückbringen, indem Sie die Datei `~/.config/pip/pip.conf` bearbeiten und die folgende Anweisung im Abschnitt `[global]` hinzufügen:```text
[global]
break-system-packages = true

Alternativ können Sie das pipx-Tool verwenden, um Reticulum in einer isolierten Umgebung zu installieren:```bash pipx install rns

root@kitploit:~
Beim ersten Start erstellt Reticulum eine Standardkonfigurationsdatei, die grundlegende Konnektivität zu anderen Reticulum-Peers bietet, die möglicherweise lokal erreichbar sind. Die Standardkonfigurationsdatei enthält einige Beispiele und Referenzen zum Erstellen einer komplexeren Konfiguration.

Wenn Sie eine alte Version von `pip` auf Ihrem System haben, müssen Sie diese möglicherweise zuerst mit `pip install pip --upgrade` aktualisieren. Wenn Sie `pip` noch nicht installiert haben, können Sie es mit dem Paketmanager Ihres Systems installieren, z.B. mit `sudo apt install python3-pip` oder ähnlich.

Ausführlichere Beispiele zur Erweiterung der Kommunikation über viele Medien wie Paketfunk oder LoRa, serielle Schnittstellen oder über schnelle IP-Verbindungen und das Internet mit UDP- und TCP-Schnittstellen finden Sie im Abschnitt [Unterstützte Schnittstellen](https://markqvist.github.io/Reticulum/manual/interfaces.html) des [Reticulum-Handbuchs](https://markqvist.github.io/Reticulum/manual/).

## Enthaltene Dienstprogramme
Reticulum enthält eine Reihe nützlicher Dienstprogramme zur Verwaltung Ihrer Netzwerke, zum Anzeigen von Status und Informationen sowie für andere Aufgaben. Weitere Informationen zu diesen Programmen finden Sie im Abschnitt [Enthaltene Dienstprogramme](https://markqvist.github.io/Reticulum/manual/using.html#included-utility-programs) des [Reticulum-Handbuchs](https://markqvist.github.io/Reticulum/manual/).

- Der Systemdaemon `rnsd` zum Ausführen von Reticulum als ständig verfügbaren Dienst
- Ein Schnittstellen-Status-Dienstprogramm namens `rnstatus`, das Informationen über Schnittstellen anzeigt
- Das Pfad-Nachschlage- und Verwaltungswerkzeug `rnpath`, mit dem Sie Pfadtabellen anzeigen und ändern können
- Ein Diagnosetool namens `rnprobe` zur Überprüfung der Konnektivität zu Zielen
- Ein einfaches Dateiübertragungsprogramm namens `rncp`, das die Übertragung von Dateien zwischen Systemen erleichtert
- Das Identitätsverwaltungs- und Verschlüsselungsdienstprogramm `rnid` ermöglicht es Ihnen, Identitäten zu verwalten und Dateien zu verschlüsseln/entschlüsseln
- Das Programm `rnsh` ermöglicht es Ihnen, vollständig interaktive Shell-Sitzungen mit entfernten Systemen herzustellen
- Das Programm zur Fernausführung von Befehlen `rnx` ermöglicht es Ihnen, einfache Befehle und Programme auszuführen und Ausgaben von entfernten Systemen abzurufen
- Das Programm `rngit` bietet einen vollständigen Multi-Repository-Git-Knoten zum Bereitstellen von Repositorys über Reticulum
- Der enthaltene Helfer `git-remote-rns` ermöglicht es Ihnen, mit Git-Repositorys über Reticulum zu interagieren

Alle Tools, einschließlich `rnx` und `rncp`, arbeiten zuverlässig und gut selbst über sehr schmalbandige Verbindungen wie LoRa oder Paketfunk. Für vollwertige entfernte Shells über Reticulum werfen Sie auch einen Blick auf das Programm [rnsh](https://github.com/acehoss/rnsh).

## Unterstützte Schnittstellentypen und Geräte

Reticulum implementiert eine Reihe von generalisierten Schnittstellentypen, die den Großteil der Kommunikationshardware abdecken, über die Reticulum ausgeführt werden kann. Wenn Ihre Hardware nicht unterstützt wird, ist es [einfach, ein benutzerdefiniertes Schnittstellenmodul zu implementieren](https://markqvist.github.io/Reticulum/manual/interfaces.html#custom-interfaces).

Pull-Requests für benutzerdefinierte Schnittstellen werden dankend angenommen, sofern sie allgemein nützlich und im realen Einsatz gut getestet sind.

Derzeit werden die folgenden integrierten Schnittstellen unterstützt:

- Jedes Ethernet-Gerät
- LoRa mit [RNode](https://unsigned.io/rnode/)
- Packet-Radio-TNCs (mit oder ohne AX.25)
- KISS-kompatible Hardware- und Software-Modems
- Jedes Gerät mit seriellem Anschluss
- TCP über IP-Netzwerke
- UDP über IP-Netzwerke
- Externe Programme über stdio oder Pipes
- Benutzerdefinierte Hardware über stdio oder Pipes

## Leistung
Reticulum zielt auf eine *sehr* breite nutzbare Leistungsspanne ab, priorisiert jedoch Funktionalität und Leistung auf schmalbandigen Medien. Das Ziel ist es, eine dynamische Leistungsspanne von 250 Bit pro Sekunde bis zu 1 Gigabit pro Sekunde auf normaler Hardware bereitzustellen.

Derzeit liegt die nutzbare Leistungsspanne bei etwa 150 Bit pro Sekunde bis 500 Megabit pro Sekunde, wobei schnellere physikalische Medien nicht ausgelastet werden. Eine Leistungssteigerung über das aktuelle Niveau hinaus ist für zukünftige Upgrades vorgesehen, wird aber zum jetzigen Zeitpunkt nicht priorisiert.

## Aktueller Status
Alle Kernprotokollfunktionen sind implementiert und funktionsfähig, es werden jedoch wahrscheinlich Ergänzungen hinzukommen, sobald die reale Nutzung erforscht und verstanden wird. Die API und das Drahtformat können als stabil angesehen werden.

## Abhängigkeiten
Die Installation des Standardpakets `rns` erfordert nur zwei externe Abhängigkeiten, die unten aufgeführt sind. Fast alle Systeme und Distributionen haben ohne weiteres verfügbare Pakete für diese Abhängigkeiten, und wenn das Paket `rns` mit `pip` installiert wird, werden sie ebenfalls heruntergeladen und installiert.

- [PyCA/cryptography](https://github.com/pyca/cryptography)
- [pyserial](https://github.com/pyserial/pyserial)

Auf ungewöhnlicheren Systemen und in einigen seltenen Fällen ist es möglicherweise nicht möglich, eines oder mehrere der oben genannten Module zu installieren oder sogar zu kompilieren. In solchen Situationen können Sie stattdessen das Paket `rnspure` verwenden, das keine externen Abhängigkeiten für die Installation erfordert. Bitte beachten Sie, dass der Inhalt der Pakete `rns` und `rnspure` *identisch* ist. Der einzige Unterschied besteht darin, dass das Paket `rnspure` keine für die Installation erforderlichen Abhängigkeiten auflistet.

Unabhängig davon, wie Reticulum installiert und gestartet wird, werden externe Abhängigkeiten nur dann geladen, wenn sie *benötigt* und *verfügbar* sind. Wenn Sie Reticulum beispielsweise auf einem System verwenden möchten, das [pyserial](https://github.com/pyserial/pyserial) nicht unterstützen kann, ist dies mit dem Paket `rnspure` durchaus möglich, aber Reticulum kann dann keine serienbasierten Schnittstellen verwenden. Alle anderen verfügbaren Module werden bei Bedarf dennoch geladen.

**Bitte beachten Sie!** Wenn Sie das Paket `rnspure` verwenden, um Reticulum auf Systemen auszuführen, die [PyCA/cryptography](https://github.com/pyca/cryptography) nicht unterstützen, ist es wichtig, dass Sie den Abschnitt [Kryptografische Primitive](#cryptographic-primitives) dieses Dokuments lesen und verstehen.

## Bootstrapping der Konnektivität

Reticulum ist kein Dienst, den Sie abonnieren, noch ist es ein einzelnes globales Netzwerk, dem Sie „beitreten". Reticulum bietet Funktionalität zur Erkennung verfügbarer öffentlicher Schnittstellen über das Netzwerk selbst, und die breitere Gemeinschaft hat verschiedene Verzeichnisse öffentlich verfügbarer Einstiegspunkte bereitgestellt, um die Konnektivität zu bootstrappen.

Um zu erfahren, wie Sie die anfängliche Konnektivität über Reticulum herstellen, lesen Sie den Abschnitt [Bootstrapping der Konnektivität](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) des Handbuchs.

Wenn Sie bereits eine allgemeine Vorstellung davon haben, wie dies funktioniert, können Sie von der Gemeinschaft betriebene Seiten wie [directory.rns.recipes](https://directory.rns.recipes/) und [rmap.world](https://rmap.world) nutzen, um Schnittstellendefinitionen für die anfängliche Konnektivität zum global verteilten Reticulum-Backbone zu finden.

## Öffentliches Testnetz
***Wichtig!** Historisch gesehen wurde ein für Entwickler bestimmtes Testnetz vom Reticulum-Projekt selbst bereitgestellt. Da die Anzahl der globalen Reticulum-Knoten und Einstiegspunkte auf eine beträchtliche Menge angewachsen ist, wurde dieses öffentliche Testnetz, einschließlich des Amsterdam-Testnetz-Einstiegspunkts, inzwischen außer Betrieb genommen. Wenn Sie noch Instanzen haben, die für die Konnektivität auf diesen Einstiegspunkt angewiesen waren, wechseln Sie stattdessen zur Nutzung des verteilten Backbones. Reticulum enthält jetzt ein vollständiges System zur Erkennung von Netzwerkschnittstellen und zum Bootstrapping der Konnektivität. Lesen Sie den Abschnitt [Bootstrapping der Konnektivität](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) des Handbuchs für Hinweise.*

## Reticulum unterstützen
Damit dies möglich ist, brauche ich Ihre Hilfe. Bitte unterstützen Sie die fortlaufende Entwicklung von offenen, freien und privaten Kommunikationssystemen, indem Sie über einen der folgenden Kanäle spenden:

- Monero:  ```
  84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
  • Bitcoin ``` bc1pgqgu8h8xvj4jtafslq396v7ju7hkgymyrzyqft4llfslz5vp99psqfk3a6
    root@kitploit:~

Ethereum ``` 0x91C421DdfB8a30a49A71d63447ddb54cEBe3465E

root@kitploit:~
Liberapay: https://liberapay.com/Reticulum/

- Ko-Fi: https://ko-fi.com/markqvist

## Kryptografische Primitiven
Reticulum verwendet eine einfache Sammlung effizienter, starker und gut getesteter kryptografischer Primitiven, mit weit verbreiteten Implementierungen, die sowohl auf Allzweck-CPUs als auch auf Mikrocontrollern verwendet werden können.

Eine der Hauptüberlegungen bei der Auswahl dieser speziellen Menge von Primitiven ist, dass sie *sicher* mit relativ wenigen Fallstricken auf praktisch allen aktuellen Computerplattformen implementiert werden können.

Die hier aufgeführten Primitiven **sind maßgeblich**. Alles, was behauptet, Reticulum zu sein, aber nicht diese exakten Primitiven verwendet, **ist nicht** Reticulum und möglicherweise ein absichtlich kompromittierter oder abgeschwächter Klon. Die verwendeten Primitiven sind:

- Reticulum-Identitätsschlüssel sind 512-Bit-Curve25519-Schlüsselsätze
- Ein 256-Bit-Ed25519-Schlüssel für Signaturen
- Ein 256-Bit-X22519-Schlüssel für ECDH-Schlüsselaustausche
- HKDF zur Schlüsselableitung
- Verschlüsselte Token basieren auf der [Fernet-Spezifikation](https://github.com/fernet/spec/)
- Ephemere Schlüssel, abgeleitet von einem ECDH-Schlüsselaustausch auf Curve25519
- HMAC mit SHA256 zur Nachrichtenauthentifizierung
- IVs müssen mittels `os.urandom()` oder besser erzeugt werden
- AES-256 im CBC-Modus mit PKCS7-Padding
- Keine Fernet-Versions- und Zeitstempel-Metadatenfelder
- SHA-256
- SHA-512

In der Standardinstallation werden die `X25519`-, `Ed25519`- und `AES-256-CBC`-Primitiven von [OpenSSL](https://www.openssl.org/) (über das [PyCA/cryptography](https://github.com/pyca/cryptography)-Paket) bereitgestellt. Die Hashfunktionen `SHA-256` und `SHA-512` werden vom standardmäßigen Python [hashlib](https://docs.python.org/3/library/hashlib.html) bereitgestellt. Die `HKDF`-, `HMAC`-, `Token`-Primitiven und die `PKCS7`-Padding-Funktion werden immer von den folgenden internen Implementierungen bereitgestellt:

- [HKDF.py](https://github.com/markqvist/reticulum/blob/HEAD/RNS/Cryptography/HKDF.py)
- [HMAC.py](https://github.com/markqvist/reticulum/blob/HEAD/RNS/Cryptography/HMAC.py)
- [Token.py](https://github.com/markqvist/reticulum/blob/HEAD/RNS/Cryptography/Token.py)
- [PKCS7.py](https://github.com/markqvist/reticulum/blob/HEAD/RNS/Cryptography/PKCS7.py)


Reticulum enthält auch eine vollständige Implementierung aller notwendigen Primitiven in reinem Python. Wenn OpenSSL und PyCA beim Start von Reticulum nicht auf dem System verfügbar sind, verwendet Reticulum stattdessen die internen Pure-Python-Primitiven. Eine triviale Konsequenz davon ist die Leistung, wobei das OpenSSL-Backend *viel* schneller ist. Die wichtigste Konsequenz ist jedoch der potenzielle Sicherheitsverlust durch die Verwendung von Primitiven, die nicht dem gleichen Maß an Prüfung, Test und Überprüfung unterzogen wurden wie die von OpenSSL.

Bitte beachten Sie, dass die Installation von Reticulum standardmäßig **erfordert**, dass OpenSSL und PyCA automatisch mitinstalliert werden, falls sie nicht bereits verfügbar sind. Es ist nur möglich, die Pure-Python-Primitiven zu verwenden, wenn diese Anforderung vom Benutzer speziell überschrieben wird, z. B. durch die Installation des `rnspure`-Pakets anstelle des normalen `rns`-Pakets oder durch direktes Ausführen aus dem lokalen Quellcode.

Wenn Sie die internen Pure-Python-Primitiven verwenden möchten, ist es **dringend anzuraten**, dass Sie ein gutes Verständnis der damit verbundenen Risiken haben und eine fundierte Entscheidung treffen, ob diese Risiken für Sie akzeptabel sind.

Reticulum ist relativ junge Software und sollte als solche betrachtet werden. Obwohl es unter besonderer Berücksichtigung der Best Practices der Kryptographie entwickelt wurde, wurde es _nicht_ extern sicherheitsgeprüft, und es könnte sehr wohl Datenschutz- oder Sicherheitslücken geben. Wenn Sie helfen oder ein Audit sponsern möchten, nehmen Sie bitte Kontakt auf.

## Danksagungen & Credits
Reticulum kann nur existieren wegen der enormen Menge an Open-Source-Arbeit, auf der es aufbaut, der Beiträge aller Beteiligten und all jener, die das Projekt im Laufe der Jahre unterstützt haben. Allen, die geholfen haben, vielen herzlichen Dank.

Eine Reihe anderer Module und Projekte sind entweder Teil von Reticulum oder werden von ihm verwendet. Aufrichtiger Dank gilt den Autoren und Mitwirkenden der folgenden Projekte:

- [PyCA/cryptography](https://github.com/pyca/cryptography), *BSD License*
- [Pure-25519](https://github.com/warner/python-pure25519) by [Brian Warner](https://github.com/warner), *MIT License*
- [Pysha2](https://github.com/thomdixon/pysha2) by [Thom Dixon](https://github.com/thomdixon), *MIT License*
- [Python AES-128](https://github.com/orgurar/python-aes) by [Or Gur Arie](https://github.com/orgurar), *MIT License*
- [Python AES-256](https://github.com/boppreh/aes) by [BoppreH](https://github.com/boppreh), *MIT License*
- [Curve25519.py](https://gist.github.com/nickovs/cc3c22d15f239a2640c185035c06f8a3#file-curve25519-py) by [Nicko van Someren](https://gist.github.com/nickovs), *Public Domain*
- [I2Plib](https://github.com/l-n-s/i2plib) by [Viktor Villainov](https://github.com/l-n-s)
- [PySerial](https://github.com/pyserial/pyserial) by Chris Liechti, *BSD License*
- [Configobj](https://github.com/DiffSK/configobj) by Michael Foord, Nicola Larosa, Rob Dennis & Eli Courtwright, *BSD License*
- [ifaddr](https://github.com/pydron/ifaddr) by Stefan C. Mueller, *MIT License*
- [Umsgpack.py](https://github.com/vsergeev/u-msgpack-python) by [Ivan A. Sergeev](https://github.com/vsergeev)
- [rnsh](https://github.com/acehoss/rnsh) by [Aaron Heise](https://github.com/acehoss)
- [Python](https://www.python.org)
Tool herunterladen
  • Zuverlässige sequenzielle Zustellung mit Kanal- und Puffermechanismen