
Reticulum est la pile de réseautage basée sur la cryptographie pour la construction de réseaux locaux et larges 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. Le réticulum vous permet de construire des réseaux larges avec des outils standard et propose un chiffrement et une connectivité de bout en bout, l'anonymat des initiateurs, le transport multi-HOP soutenu par l'autoconfiguration, les reconnaissances de livraison imprévoyables et plus encore.
La vision du réticulum est de permettre à quiconque d'être son propre opérateur de réseau et de le rendre bon marché et facile de couvrir de vastes zones avec une myriade de réseaux indépendants, interconnexables et autonomes. Le réticulum n'est pas un réseau. Il s'agit d'un outil pour construire des milliers de réseaux . Réseaux sans interruptions, surveillance, censure et contrôle. Les réseaux qui peuvent interopérer librement, s'associer et se dissocier entre eux et ne nécessitent aucune surveillance centrale. Réseaux pour les êtres humains. Réseaux pour les gens .
Le réticulum est une pile de réseautage complète et ne s'appuie pas sur IP ou les couches supérieures, mais il est possible d'utiliser IP comme transporteur sous-jacent pour le réticulum. Il est donc trivial de tunnel le réticulum sur Internet ou les réseaux IP privés.
N'ayant aucune dépendance sur les piles de réseautage traditionnelles libère des frais généraux qui ont été utilisés pour implémenter une pile de réseautage construite directement sur des principes cryptographiques, permettant la résilience et les fonctionnalités stables, même dans les réseaux ouverts et sans confiance.
Aucun module ou conducteur du noyau n'est requis. Le réticulum fonctionne complètement dans Userland et peut fonctionner sur pratiquement n'importe quel système qui exécute Python 3.
La documentation complète pour le réticulum est disponible sur markqvist.github.io/reticulum/manual/.
Vous pouvez également télécharger le manuel du réticulum en tant que PDF ou comme un livre électronique au format EPUB.
Pour plus d'informations, voir Reticulum.network et la section FAQ du Wiki.
Alors que le réticulum est déjà une pile de réseautage pleinement en vedette et fonctionnelle, de nombreuses améliorations et ajouts sont activement travaillées et prévues pour l'avenir.
Pour en savoir plus sur la direction et l'avenir du réticulum, veuillez consulter la feuille de route de développement.
Si vous souhaitez avoir une idée rapidement de ce que le réticulum peut faire, jetez un œil aux ressources suivantes.
Sur pratiquement n'importe quel milieu qui peut supporter au moins un canal demi-duplex avec un débit plus élevé de 5 bits par seconde, et un MTU de 500 octets. Les radios de données, les modems, les radios LORA, les lignes de série, les TNC AX.25, les modes numériques radio amateurs, les appareils WiFi et Ethernet, les liens optiques en espace libre et les systèmes similaires sont tous des exemples des types de périphériques physiques que le réticulum peut utiliser.
Une interface basée sur LORA open source appelée RNODE a été conçue spécifiquement pour une utilisation avec le réticulum. Il est possible de vous construire, ou il peut être acheté en tant que rédacteur complet qui a juste besoin d'une connexion USB à l'hôte.
Le réticulum peut également être encapsulé sur les réseaux IP existants, donc rien ne vous empêche de l'utiliser sur Wiredthernet, votre réseau WiFi local ou Internet, où il fonctionnera aussi bien. En fait, l'une des forces du réticulum est la facilité avec laquelle il vous permet de connecter différents supports dans un maillage auto-configurant, résilient et crypté, en utilisant tout mélange disponible d'infrastructure disponible.
Par exemple, il est possible de configurer un Raspberry Pi connecté à la fois à une radio LORA, à une radio Packet TNC et à un réseau WiFi. Une fois les interfaces configurées, le réticulum s'occupera du reste, et tout appareil sur le réseau WiFi peut communiquer avec les nœuds sur les côtés radio LORA et Packet du réseau, et vice versa.
La meilleure façon de commencer avec la pile de réseau réticulum dépend de ce que vous voulez faire. Pour plus de détails et des exemples, jetez un œil à la section rapide rapide du manuel du réticulum.
Pour installer simplement le réticulum et les utilitaires connexes sur votre système, le moyen le plus simple est via pip . Vous pouvez ensuite démarrer n'importe quel programme qui utilise le réticulum ou démarrer le réticulum en tant que service système avec l'utilitaire RNSD.
pip install rns Si vous utilisez un système d'exploitation qui bloque l'installation normale du package utilisateur via pip , vous pouvez retourner pip à un comportement normal en modifiant le fichier ~/.config/pip/pip.conf et en ajoutant la directive suivante dans la section [global] :
[global]
break-system-packages = true
Alternativement, vous pouvez utiliser l'outil pipx pour installer le réticulum dans un environnement isolé:
pipx install rnsLors du début pour la première fois, Reticulum créera un fichier de configuration par défaut, fournissant une connectivité de base à d'autres pairs du réticulum qui pourraient être localement accessibles. Le fichier de configuration par défaut contient quelques exemples et des 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 la mettre à niveau d'abord avec pip install pip --upgrade . Si vous n'avez pas déjà installé pip , vous pouvez l'installer en utilisant le gestionnaire de package de votre système avec sudo apt install python3-pip ou similaire.
Pour des exemples plus détaillés sur la façon d'élargir la communication sur de nombreux supports tels que la radio de paquets ou LORA, les ports en série ou les liens IP rapides et Internet à l'aide des interfaces UDP et TCP, jetez un œil à la section interfaces prise en charge du manuel du réticulum.
Le réticulum comprend une gamme d'utilitaires utiles pour gérer vos réseaux, la visualisation de l'état et des informations et d'autres tâches. Vous pouvez en savoir plus sur ces programmes dans la section des programmes d'utilité inclus du manuel du réticulum.
rnsd pour l'exécution du réticulum en tant que service toujours disponiblernstatus , qui affiche des informations sur les interfacesrnpath vous permettant de visualiser et de modifier les tables de cheminrnprobe pour vérifier la connectivité aux destinationsrncp facilite le transfert de fichiers entre les systèmesrnid vous permet de gérer les identités et les fichiers de crypte / décryptrnx vous permet d'exécuter des commandes et des programmes et récupérer la sortie des systèmes distants Tous les outils, y compris rnx et rncp , travaillent de manière fiable et bien même sur des liens très basses comme Lora ou Radio Packet. Pour les coquilles distantes complètes sur le réticulum, jetez également un œil au programme RNSH.
Le réticulum implémente une gamme de types d'interface généralisés qui couvrent la plupart du matériel de communication que le réticulum peut exécuter. Si votre matériel n'est pas pris en charge, il est simple d'implémenter un module d'interface personnalisé.
Les demandes de traction d'interfaces personnalisées sont acceptées avec gratitude, à condition qu'elles soient généralement utiles et bien testées dans une utilisation réelle.
Actuellement, les interfaces intégrées suivantes sont prises en charge:
Le réticulum cible une enveloppe de performance très large utilisable, mais privilégie la fonctionnalité et les performances sur les supports à faible bande passante. L'objectif est de fournir une enveloppe de performance dynamique de 250 bits par seconde, à 1 gigabit par seconde sur du matériel normal.
Actuellement, l'enveloppe de performance utilisable est d'environ 150 bits par seconde à 40 mégabits par seconde, avec des supports physiques plus rapides que celui qui n'est pas saturé. Les performances au-delà du niveau actuel sont destinées aux futures mises à niveau, mais pas très prioritaires à ce stade.
Le réticulum doit actuellement être considéré comme un logiciel bêta. Toutes les fonctionnalités de protocole de base sont implémentées et fonctionnantes, mais les ajouts se produiront probablement à mesure que l'utilisation du monde réel est explorée. Il y aura des bogues. L'API et le format métallique peuvent être considérés comme relativement stables pour le moment, mais peuvent changer s'ils sont justifiés.
L'installation du package rns par défaut nécessite les dépendances répertoriées ci-dessous. Presque tous les systèmes et distributions ont des packages facilement disponibles pour ces dépendances, et lorsque le package rns est installé avec pip , ils seront également téléchargés et installés.
Sur les systèmes plus inhabituels, et dans certains cas rares, il pourrait 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 package rnspure à la place, qui ne nécessite aucune dépendance externe pour l'installation. Veuillez noter que le contenu des packages rns et rnspure est identique . La seule différence est que le package rnspure répertorie aucune dépendance requise pour l'installation.
Peu importe comment le réticulum 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 le réticulum sur un système qui ne peut pas prendre en charge Pyserial, il est parfaitement possible de le faire en utilisant le package rnspure , mais le réticulum ne pourra pas utiliser les interfaces en série. Tous les autres modules disponibles seront toujours chargés en cas de besoin.
Veuillez noter! Si vous utilisez le package rnspure pour exécuter le réticulum sur des systèmes qui ne prennent pas en charge PYCA / Cryptographie, il est important que vous lisiez et compreniez la section primitives cryptographiques de ce document.
Si vous voulez juste commencer à expérimenter sans créer de réseaux physiques, vous êtes invités à rejoindre le RNS Development TestNet.
Le testnet n'est que cela, un réseau informel pour tester et expérimenter. Ce sera la plupart du temps, et n'importe qui peut se joindre, mais cela signifie également qu'il n'y a aucune garantie de disponibilité des services.
Il va probablement sans dire, mais n'utilisez pas les points d'entrée TestNet comme des interfaces codées en dur ou par défaut dans toutes les applications que vous expédiez aux utilisateurs . Lors de l'expédition des applications, la meilleure pratique consiste à fournir vos propres solutions de connectivité par défaut, si nécessaire et applicables, ou dans la plupart des cas, laissez simplement à l'utilisateur à quels réseaux se connecter et comment.
Le testnet exécute la toute dernière version de Reticulum (souvent même peu de temps avant sa libération publique). Parfois, des versions expérimentales du réticulum peuvent être déployées sur les nœuds sur le testt, ce qui signifie que des comportements étranges pourraient se produire. Si rien de tout cela ne vous fait peur, vous pouvez rejoindre le testNet via TCP ou I2P. Ajoutez simplement l'une des interfaces suivantes à votre fichier de configuration du réticulum:
# 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
Le testnet contient également un certain nombre de nœuds de réseau NOMAD et des nœuds de propagation LXMF.
Vous pouvez aider à soutenir le développement continu de systèmes de communication ouverts, gratuits et privés en faisant un don via l'un des canaux suivants:
84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
0xFDabC71AC4c0C78C95aDDDe3B4FA19d6273c5E73
35G9uWVzrpJJibzUwpNUQGQNFzLirhrYAH
Certaines fonctionnalités de la feuille de route de développement sont-elles importantes pour vous ou votre organisation? Faites-en une réalité rapidement en parrainant leur mise en œuvre.
Le réticulum utilise une suite simple de primitives cryptographiques efficaces, fortes et bien testées, avec des implémentations largement disponibles qui peuvent être utilisées à la fois sur des processeurs à usage général et sur les microcontrôleurs. Les primitives utilisées sont:
Dans la configuration d'installation par défaut, les primitives X25519 , Ed25519 et AES-128-CBC sont fournies par OpenSSL (via le package PYCA / Cryptographie). Les fonctions de hachage SHA-256 et SHA-512 sont fournies par le hashlib standard Python. Les primitives HKDF , HMAC , Token et la fonction de rembourrage PKCS7 sont toujours fournies par les implémentations internes suivantes:
Le réticulum comprend également une implémentation complète de toutes les primitives nécessaires dans Pure Python. Si OpenSSL & PYCA ne sont pas disponibles sur le système lorsque le réticulum est démarré, le réticulum utilisera plutôt les primitives internes pur-python. Une conséquence insignifiante de cela est la performance, le backend OpenSSL étant beaucoup plus rapide. Cependant, la conséquence la plus importante est la perte potentielle de sécurité en utilisant des primitives qui n'ont pas vu la même quantité de contrôle, de test et d'examen que celles d'OpenSSL.
Si vous souhaitez utiliser les primitives internes pur-python, il est très conseillé que vous ayez une bonne compréhension des risques que cette pose, et que vous preniez une décision éclairée sur la question de savoir si ces risques sont acceptables pour vous.
Le réticulum est un logiciel relativement jeune et doit être considéré comme tel. Bien qu'il ait été construit avec les meilleures pratiques de cryptographie très avant tout à l'esprit, il n'a pas été audité à la sécurité externe, et il pourrait très bien y avoir des bogues de percée ou de sécurité. Si vous souhaitez aider ou aider à parrainer un audit, veuillez nous contacter.
Le réticulum ne peut exister qu'en raison de la montagne de travaux open source qu'il a été construit, des contributions de toutes les personnes impliquées et de tous ceux qui ont soutenu le projet au fil des ans. À tous ceux qui ont aidé, merci beaucoup.
Un certain nombre d'autres modules et projets font partie ou utilisé par le réticulum. Sincère remerciement aux auteurs et aux contributeurs des projets suivants: