Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Reticulum — La pile réseau basée sur la cryptographie pour construire des réseaux imparables avec LoRa, Packet Radio, WiFi et tout ce qui se trouve entre les deux. | Kitploit
Outils/GitHubGitHub/markqvist/reticulum
Outils de Chiffrement/DéchiffrementSécurité RéseauSécurité Sans FilCryptographieProtection de la Vie PrivéeUtilitaires et FrameworksAuthentification
GitHubmarkqvist/reticulum

Reticulum

La pile réseau basée sur la cryptographie pour construire des réseaux imparables avec LoRa, Packet Radio, WiFi et tout ce qui se trouve entre les deux.

Voir le dépôt
6.7k4901il y a 25 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Reticulum Network Stack

Ce dépôt est un miroir public. Tout le développement se fait ailleurs.

Pour comprendre la philosophie fondamentale et les objectifs de ce système, lisez le Zen de Reticulum.

Reticulum est la pile réseau basée sur la cryptographie pour construire des réseaux locaux et étendus avec du matériel facilement disponible. Il peut fonctionner même avec une latence très élevée et une bande passante extrêmement faible. Reticulum vous permet de construire des réseaux étendus avec des outils du commerce, et offre un chiffrement de bout en bout et une connectivité, l'anonymat de l'initiateur, un transport multi-sauts auto-configurant et cryptographiquement garanti, un adressage efficace, des accusés de réception infalsifiables et plus encore.

La vision de Reticulum est de permettre à chacun d'être son propre opérateur de réseau, et de rendre peu coûteux et facile de couvrir de vastes zones avec une myriade de réseaux indépendants, interconnectables et autonomes. Reticulum n'est pas un réseau. C'est un outil pour construire des milliers de réseaux. Des réseaux sans interrupteurs d'arrêt, surveillance, censure et contrôle. Des réseaux qui peuvent librement interopérer, s'associer et se dissocier les uns des autres, et ne nécessitent aucune supervision centrale. Des réseaux pour les êtres humains. Des réseaux pour le peuple.

Reticulum est une pile réseau complète, et ne repose pas sur IP ou des couches supérieures, mais il est possible d'utiliser IP comme support sous-jacent pour Reticulum. Il est donc trivial de tunnelliser Reticulum sur Internet ou des réseaux IP privés.

N'ayant aucune dépendance vis-à-vis des piles réseau traditionnelles, cela libère des frais généraux qui ont été utilisés pour implémenter une pile réseau construite directement sur des principes cryptographiques, permettant une résilience et une fonctionnalité stable, même dans des réseaux ouverts et sans confiance.

Aucun module noyau ou pilote n'est requis. Reticulum fonctionne entièrement en espace utilisateur, et peut fonctionner sur pratiquement tout système exécutant Python 3.

Lisez le manuel

La documentation complète de Reticulum est disponible sur markqvist.github.io/Reticulum/manual/.

Vous pouvez également télécharger le manuel Reticulum au format PDF ou au format e-book EPUB.

Pour plus d'informations, consultez reticulum.network et la section FAQ du wiki.

Fonctionnalités notables

  • Adressage et identification globalement uniques sans coordination
  • Routage multi-sauts entièrement auto-configurant sur des supports hétérogènes
  • Évolutivité flexible sur des topologies hétérogènes
    • Reticulum peut transporter des données sur n'importe quel mélange de supports physiques et de topologies
    • Les réseaux à faible bande passante peuvent coexister et interopérer avec des réseaux larges et à haute bande passante
  • Anonymat de l'initiateur, communiquez sans révéler votre identité
    • Reticulum n'inclut pas d'adresses source sur les paquets
  • Chiffrement asymétrique X25519 et signatures Ed25519 comme base pour toutes les communications
    • Les clés d'identité fondamentales de Reticulum sont des jeux de clés de courbe elliptique de 512 bits
  • La confidentialité persistante (Forward Secrecy) est disponible pour tous les types de communication, à la fois pour les paquets individuels et sur les liaisons
  • Reticulum utilise le format suivant pour les jetons chiffrés :
    • Clés éphémères par paquet et de liaison dérivées d'un échange de clés ECDH sur Curve25519
    • AES-256 en mode CBC avec padding PKCS7
    • HMAC utilisant SHA256 pour l'authentification
    • Les IV sont générés via os.urandom()
  • Confirmations de livraison de paquets infalsifiables
  • Système d'interface flexible et extensible
    • Reticulum inclut une grande variété de types d'interface intégrés
    • Capacité de charger et d'utiliser des types d'interface personnalisés fournis par l'utilisateur ou la communauté
    • Créez facilement vos propres interfaces personnalisées pour communiquer sur n'importe quoi
  • Authentification et segmentation de réseau virtuel sur tous les types d'interface pris en charge
  • Une API intuitive et facile à utiliser
    • Plus simple et plus facile à utiliser que les API sockets, mais plus puissante
    • Rend la construction d'applications distribuées et décentralisées beaucoup plus simple
  • Transfert fiable et efficace de quantités arbitraires de données
    • Reticulum peut gérer quelques octets de données ou des fichiers de plusieurs gigaoctets
    • Le séquençage, la compression, la coordination du transfert et le calcul de sommes de contrôle sont automatiques
    • L'API est très facile à utiliser et fournit la progression du transfert
  • Mécanisme de demande/réponse léger, flexible et extensible
  • Établissement de liaison efficace
    • Le coût total de mise en place d'une liaison chiffrée et vérifiée est de seulement 3 paquets, totalisant 297 octets

Implémentation de référence

Le code Python dans ce dépôt est l'implémentation de référence de Reticulum. Le protocole Reticulum est défini entièrement et de manière autoritaire par cette implémentation de référence, et son manuel associé. Il est maintenu par Mark Qvist, identifié par l'identité Reticulum <bc7291552be7a58f361522990465165c>.

Aucun dérivé de spécification de protocole de second ordre n'existe actuellement, ni n'existera jamais. Vous ne pouvez pas obtenir une meilleure spécification qu'une spécification exécutable, fonctionnelle, testable, déployée et fonctionnant 24h/24 et 7j/7 à travers la planète.

Il n'y a pas, et il n'y aura jamais de "spécification formelle", "RFC" ou quoi que ce soit de similaire dérivé et séparé pour Reticulum :

L'implémentation de référence est la spécification finale et autoritaire.

La compatibilité avec le protocole Reticulum est définie comme ayant une interopérabilité complète et une parité fonctionnelle suffisante avec cette implémentation de référence. Toute implémentation de protocole spécifique qui y parvient est Reticulum. Celle qui n'y parvient pas n'est pas Reticulum.

L'implémentation de référence est sous licence Reticulum License.

Le protocole Reticulum a été dédié au domaine public en 2016.

Exemples d'applications Reticulum

Si vous voulez rapidement avoir une idée de ce que Reticulum peut faire, jetez un œil à la section Programmes utilisant Reticulum du manuel, ou aux ressources suivantes :

  • LXMF est un protocole de transfert de messages distribué, tolérant aux délais et aux perturbations construit sur Reticulum
  • Le protocole et framework LXST fournit un transport audio et de signaux en temps réel sur Reticulum. Il inclut des primitives et utilitaires pour construire des applications et périphériques basés sur la voix, comme le programme rnphone, qui peut être utilisé pour construire des téléphones matériels.
  • Pour une plateforme de communications maillées hors réseau, chiffrée et résiliente, consultez Nomad Network
  • L'application Sideband (Android, Linux, macOS et Windows) a une interface graphique et de nombreuses fonctionnalités avancées, telles que les transferts de fichiers, les messages image et vocaux, les appels vocaux en temps réel, un système de télémétrie distribué, des capacités de cartographie et une extensibilité totale par plugins.
  • MeshChatX est un client LXMF complet avec de nombreux outils et fonctionnalités intégrés, qui prend également en charge les messages image et vocaux, les transferts de fichiers et les appels vocaux. Il inclut également un navigateur de pages intégré pour naviguer sur les nœuds Nomad Network.
  • Vous pouvez utiliser le programme inclus rnsh pour établir des sessions shell distantes sur Reticulum.

Où Reticulum peut-il être utilisé ?

Sur pratiquement tout support pouvant supporter au moins un canal semi-duplex avec un débit supérieur à 5 bits par seconde, et une MTU de 500 octets. Les radios de données, modems, radios LoRa, lignes série, TNC AX.25, modes numériques radioamateurs, appareils WiFi et Ethernet, liaisons optiques en espace libre, et systèmes similaires sont tous des exemples des types de dispositifs physiques que Reticulum peut utiliser.

Une interface open-source basée sur LoRa appelée RNode a été conçue spécifiquement pour une utilisation avec Reticulum. Il est possible de la construire soi-même, ou elle peut être achetée comme un émetteur-récepteur complet qui nécessite simplement une connexion USB à l'hôte.

Reticulum peut également être encapsulé sur des réseaux IP existants, donc rien ne vous empêche de l'utiliser sur Ethernet câblé, votre réseau WiFi local ou Internet, où il fonctionnera tout aussi bien. En fait, l'une des forces de Reticulum est la facilité avec laquelle il vous permet de connecter différents supports en un maillage auto-configurant, résilient et chiffré, en utilisant n'importe quel mélange disponible d'infrastructure.

Par exemple, il est possible de configurer un Raspberry Pi connecté à la fois à une radio LoRa, un TNC radio packet et un réseau WiFi. Une fois les interfaces configurées, Reticulum s'occupe du reste, et tout appareil sur le réseau WiFi peut communiquer avec les nœuds du côté LoRa et packet radio du réseau, et vice versa.

Comment démarrer ?

La meilleure façon de démarrer avec la pile réseau Reticulum dépend de ce que vous voulez faire. Pour tous les détails et exemples, jetez un œil à la section Démarrage rapide du manuel Reticulum.

Pour simplement installer Reticulum et les utilitaires associés sur votre système, le moyen le plus simple est via pip. Vous pouvez ensuite démarrer tout programme utilisant Reticulum, ou démarrer Reticulum comme un service système avec l'utilitaire rnsd.```bash pip install rns

root@kitploit:~
Si vous utilisez un système d'exploitation qui bloque l'installation normale de paquets via `pip`, vous pouvez rétablir le comportement normal de `pip` en modifiant le fichier `~/.config/pip/pip.conf` et en ajoutant la directive suivante dans la section `[global]` :```text
[global]
break-system-packages = true

Alternativement, vous pouvez utiliser l'outil pipx pour installer Reticulum dans un environnement isolé :```bash pipx install rns

root@kitploit:~
Quand Reticulum est démarré pour la première fois, il crée un fichier de configuration par défaut, offrant une connectivité de base avec d’autres pairs Reticulum qui pourraient être accessibles localement. Le fichier de configuration par défaut contient quelques exemples et références pour créer une configuration plus complexe.

Si vous avez une ancienne version de `pip` sur votre système, vous devrez peut-être d’abord la mettre à jour avec `pip install pip --upgrade`. Si vous n’avez pas déjà `pip` installé, vous pouvez l’installer à l’aide du gestionnaire de paquets de votre système avec `sudo apt install python3-pip` ou similaire.

Pour des exemples plus détaillés sur la façon d’étendre la communication sur de nombreux supports tels que la radio par paquets ou LoRa, les ports série, ou sur des liaisons IP rapides et Internet en utilisant les interfaces UDP et TCP, consultez la section [Interfaces prises en charge](https://markqvist.github.io/Reticulum/manual/interfaces.html) du [Manuel Reticulum](https://markqvist.github.io/Reticulum/manual/).

## Utilitaires inclus
Reticulum inclut une gamme d’utilitaires utiles pour gérer vos réseaux, afficher l’état et les informations, et d’autres tâches. Vous pouvez en savoir plus sur ces programmes dans la section [Programmes utilitaires inclus](https://markqvist.github.io/Reticulum/manual/using.html#included-utility-programs) du [Manuel Reticulum](https://markqvist.github.io/Reticulum/manual/).

- Le démon système `rnsd` pour exécuter Reticulum en tant que service toujours disponible
- Un utilitaire d’état des interfaces appelé `rnstatus`, qui affiche des informations sur les interfaces
- L’outil de recherche et de gestion de chemin `rnpath` qui permet de visualiser et de modifier les tables de chemins
- Un outil de diagnostic appelé `rnprobe` pour vérifier la connectivité vers des destinations
- Un simple programme de transfert de fichiers appelé `rncp` facilitant le transfert de fichiers entre systèmes
- L’utilitaire de gestion d’identité et de chiffrement `rnid` permet de gérer les identités et de chiffrer/déchiffrer des fichiers
- Le programme `rnsh` permet d’établir des sessions shell interactives complètes avec des systèmes distants
- Le programme d’exécution de commandes à distance `rnx` permet d’exécuter des commandes et programmes simples et de récupérer la sortie de systèmes distants
- Le programme `rngit` fournit un nœud Git multi-dépôts complet pour servir des dépôts via Reticulum
- L’assistant `git-remote-rns` inclus permet d’interagir avec des dépôts Git via Reticulum

Tous les outils, y compris `rnx` et `rncp`, fonctionnent de manière fiable et efficace même sur des liaisons à très faible bande passante comme LoRa ou la radio par paquets. Pour des shells distants complets via Reticulum, consultez également le programme [rnsh](https://github.com/acehoss/rnsh).

## Types d’interfaces et dispositifs pris en charge

Reticulum implémente une gamme de types d’interfaces généralisées qui couvre la plupart des matériels de communication sur lesquels Reticulum peut fonctionner. Si votre matériel n’est pas pris en charge, il est [simple d’implémenter un module d’interface personnalisé](https://markqvist.github.io/Reticulum/manual/interfaces.html#custom-interfaces).

Les demandes d’extraction (pull requests) pour des interfaces personnalisées sont acceptées avec gratitude, à condition qu’elles soient généralement utiles et bien testées en utilisation réelle.

Actuellement, les interfaces intégrées suivantes sont prises en charge :

- Tout périphérique Ethernet
- LoRa via [RNode](https://unsigned.io/rnode/)
- TNC radio par paquets (avec ou sans AX.25)
- Modems matériels et logiciels compatibles KISS
- Tout périphérique doté d’un port série
- TCP sur réseaux IP
- UDP sur réseaux IP
- Programmes externes via stdio ou pipes
- Matériel personnalisé via stdio ou pipes

## Performances
Reticulum vise une enveloppe de performances utilisables *très* large, mais privilégie la fonctionnalité et les performances sur les supports à faible bande passante. L’objectif est de fournir une enveloppe de performances dynamique allant de 250 bits par seconde à 1 gigabit par seconde sur du matériel normal.

Actuellement, l’enveloppe de performances utilisables est d’environ 150 bits par seconde à 500 mégabits par seconde, les supports physiques plus rapides n’étant pas saturés. Des performances au-delà du niveau actuel sont prévues pour des mises à niveau futures, mais ne sont pas hautement prioritaires à ce stade.

## Statut actuel
Toutes les fonctionnalités de base du protocole sont implémentées et fonctionnelles, mais des ajouts se produiront probablement à mesure que l’utilisation réelle sera explorée et comprise. L’API et le format filaire peuvent être considérés comme stables.

## Dépendances
L’installation du paquet `rns` par défaut ne nécessite que deux dépendances externes, listées ci-dessous. Presque tous les systèmes et distributions disposent de paquets facilement disponibles pour ces dépendances, et lorsque le paquet `rns` est installé avec `pip`, ils seront également téléchargés et installés.

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

Sur des systèmes plus inhabituels, et dans certains cas rares, il peut ne pas être possible d’installer ou même de compiler un ou plusieurs des modules ci-dessus. Dans de telles situations, vous pouvez utiliser le paquet `rnspure` à la place, qui ne nécessite aucune dépendance externe pour l’installation. Veuillez noter que le contenu des paquets `rns` et `rnspure` est *identique*. La seule différence est que le paquet `rnspure` ne liste aucune dépendance requise pour l’installation.

Peu importe comment Reticulum est installé et démarré, il ne chargera les dépendances externes que si elles sont *nécessaires* et *disponibles*. Si par exemple vous souhaitez utiliser Reticulum sur un système qui ne peut pas prendre en charge [pyserial](https://github.com/pyserial/pyserial), il est tout à fait possible de le faire en utilisant le paquet `rnspure`, mais Reticulum ne pourra pas utiliser les interfaces série. Tous les autres modules disponibles seront toujours chargés en cas de besoin.

**Veuillez noter !** Si vous utilisez le paquet `rnspure` pour exécuter Reticulum sur des systèmes qui ne prennent pas en charge [PyCA/cryptography](https://github.com/pyca/cryptography), il est important que vous lisiez et compreniez la section [Primitives cryptographiques](#cryptographic-primitives) de ce document.

## Amorçage de la connectivité

Reticulum n’est ni un service auquel vous vous abonnez, ni un réseau mondial unique auquel vous vous « joignez ». Reticulum fournit des fonctionnalités pour découvrir les interfaces publiques disponibles sur le réseau lui-même, et la communauté au sens large a fourni divers répertoires de points d’entrée publics pour amorcer la connectivité.

Pour apprendre comment établir une connectivité initiale via Reticulum, lisez la section [Amorçage de la connectivité](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) du manuel.

Si vous avez déjà une idée générale de son fonctionnement, vous pouvez utiliser des sites gérés par la communauté comme [directory.rns.recipes](https://directory.rns.recipes/) et [rmap.world](https://rmap.world) pour trouver des définitions d’interface pour une connectivité initiale au réseau dorsal mondial distribué de Reticulum.

## Testnet public
***Important !** Historiquement, un testnet destiné aux développeurs a été mis à disposition par le projet Reticulum lui-même. Alors que le nombre de nœuds et de points d’entrée Reticulum mondiaux a atteint une quantité substantielle, ce testnet public, y compris le point d’entrée Amsterdam Testnet, a maintenant été désaffecté. Si vous avez encore des instances qui dépendaient de ce point d’entrée pour la connectivité, passez à l’utilisation du réseau dorsal distribué à la place. Reticulum inclut désormais un système complet de découverte d’interfaces sur le réseau et d’amorçage de la connectivité. Lisez la section [Amorçage de la connectivité](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) du manuel pour des indications.*

## Soutenir Reticulum
Pour que cela soit possible, j’ai besoin de votre aide. Veuillez soutenir le développement continu de systèmes de communication ouverts, libres et privés en faisant un don via l’un des canaux suivants :

- Monero :  ```
  84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w

Bitcoin ``` bc1pgqgu8h8xvj4jtafslq396v7ju7hkgymyrzyqft4llfslz5vp99psqfk3a6

root@kitploit:~
- Ethereum  ```
0x91C421DdfB8a30a49A71d63447ddb54cEBe3465E
  • Liberapay: https://liberapay.com/Reticulum/

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

Primitives cryptographiques

Reticulum utilise une suite simple de primitives cryptographiques efficaces, robustes et bien testées, avec des implémentations largement disponibles pouvant être utilisées à la fois sur des CPU généralistes et sur des microcontrôleurs.

L'une des considérations principales pour le choix de cet ensemble particulier de primitives est qu'elles peuvent être implémentées en toute sécurité avec relativement peu d'écueils, sur pratiquement toutes les plateformes de calcul actuelles.

Les primitives listées ici font autorité. Tout ce qui prétend être Reticulum, mais n'utilise pas ces primitives exactes n'est pas Reticulum, et est probablement un clone intentionnellement compromis ou affaibli. Les primitives utilisées sont :

  • Les clés d'identité Reticulum sont des ensembles de clés Curve25519 de 512 bits
    • Une clé Ed25519 de 256 bits pour les signatures
    • Une clé X22519 de 256 bits pour les échanges de clés ECDH
  • HKDF pour la dérivation de clés
  • Les jetons cryptés sont basés sur la spécification Fernet
    • Clés éphémères dérivées d'un échange de clés ECDH sur Curve25519
    • HMAC utilisant SHA256 pour l'authentification des messages
    • Les IV doivent être générés via os.urandom() ou mieux
    • AES-256 en mode CBC avec bourrage PKCS7
    • Aucun champ de métadonnées de version et d'horodatage Fernet
  • SHA-256
  • SHA-512

Dans la configuration d'installation par défaut, les primitives X25519, Ed25519 et AES-256-CBC sont fournies par OpenSSL (via le package PyCA/cryptography). Les fonctions de hachage SHA-256 et SHA-512 sont fournies par le module standard Python hashlib. Les primitives HKDF, HMAC, Token et la fonction de bourrage PKCS7 sont toujours fournies par les implémentations internes suivantes :

  • HKDF.py
  • HMAC.py
  • Token.py
  • PKCS7.py

Reticulum inclut également une implémentation complète de toutes les primitives nécessaires en Python pur. Si OpenSSL et PyCA ne sont pas disponibles sur le système au démarrage de Reticulum, Reticulum utilisera à la place les primitives internes en Python pur. Une conséquence triviale de cela est la performance, avec le backend OpenSSL étant beaucoup plus rapide. La conséquence la plus importante cependant, est la perte potentielle de sécurité en utilisant des primitives qui n'ont pas reçu le même niveau d'examen, de test et de révision que celles d'OpenSSL.

Veuillez noter que par défaut, l'installation de Reticulum exigera l'installation automatique d'OpenSSL et de PyCA s'ils ne sont pas déjà disponibles. Il n'est possible d'utiliser les primitives Python pur que si cette exigence est spécifiquement outrepassée par l'utilisateur, par exemple en installant le package rnspure à la place du package normal rns, ou en exécutant directement à partir du code source local.

Si vous souhaitez utiliser les primitives internes en Python pur, il est fortement conseillé que vous ayez une bonne compréhension des risques que cela comporte, et que vous preniez une décision éclairée sur l'acceptabilité de ces risques pour vous.

Reticulum est un logiciel relativement jeune, et doit être considéré comme tel. Bien qu'il ait été construit avec les meilleures pratiques de cryptographie en tête, il n'a pas été audité en matière de sécurité par un tiers, et il pourrait très bien y avoir des bugs compromettant la vie privée ou la sécurité. Si vous souhaitez aider, ou aider à sponsoriser un audit, n'hésitez pas à nous contacter.

Remerciements et Crédits

Reticulum ne peut exister que grâce à la montagne de travail Open Source sur lequel il a été construit, aux contributions de tous ceux impliqués, et à tous ceux qui ont soutenu le projet au fil des ans. À tous ceux qui ont aidé, merci infiniment.

Un certain nombre d'autres modules et projets font partie de Reticulum ou sont utilisés par Reticulum. Remerciements sincères aux auteurs et contributeurs des projets suivants :

  • PyCA/cryptography, Licence BSD
  • Pure-25519 par Brian Warner, Licence MIT
  • Pysha2 par Thom Dixon, Licence MIT
  • Python AES-128 par Or Gur Arie, Licence MIT
  • Python AES-256 par BoppreH, Licence MIT
  • Curve25519.py par Nicko van Someren, Domaine Public
  • I2Plib par Viktor Villainov
  • PySerial par Chris Liechti, Licence BSD
  • Configobj par Michael Foord, Nicola Larosa, Rob Dennis & Eli Courtwright, Licence BSD
  • ifaddr par Stefan C. Mueller, Licence MIT
  • Umsgpack.py par Ivan A. Sergeev
  • rnsh par Aaron Heise
  • Python
Télécharger l’outil
  • Faible coût de maintien des liaisons ouvertes à seulement 0,44 bits par seconde
  • Livraison séquentielle fiable avec les mécanismes de canal et de tampon