Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Reticulum — Lo stack di rete basato su crittografia per costruire reti inarrestabili con LoRa, Packet Radio, WiFi e tutto il resto. | Kitploit
Strumenti/GitHubGitHub/markqvist/reticulum
Strumenti di Crittografia/DecrittografiaSicurezza di ReteSicurezza WirelessCrittografiaPrivacyUtilità e FrameworkAutenticazione
GitHubmarkqvist/reticulum

Reticulum

Lo stack di rete basato su crittografia per costruire reti inarrestabili con LoRa, Packet Radio, WiFi e tutto il resto.

Vedi Repository
6.7k4905420 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web
Reticulum Network Stack <img align="right" src="https://static.pepy.tech/personalized-badge/rns?period=month&amp;units=international_system&amp;left_color=grey&amp;right_color=blue&amp;left_text=Installs/month" style="padding-left:10px"/><a href="https://github.com/markqvist/Reticulum/actions/workflows/build.yml"><img align="right" src="https://github.com/markqvist/Reticulum/actions/workflows/build.yml/badge.svg"/></a>
==========

> [!WARNING]  
> Un numero significativo di imitazioni di implementazioni Reticulum, "documentazione", "guide" e applicazioni rivolte all'utente, lanciate frettolosamente, errate, dubbie, direttamente dannose e, nella maggior parte dei casi, interamente generate da LLM, viene attualmente commercializzato con affermazioni curate ma in ultima analisi fuorvianti o apertamente ingannevoli.
>
> Per informazioni più dettagliate, consultare le sezioni pertinenti del capitolo [Brandolini's Reference](https://reticulum.network/manual/brandolinis.html) del manuale. Le implementazioni comunitarie note come valide sono elencate nella sezione [Community Implementations](#community-implementations) di questo readme. Per software e progetti riconosciuti dalla comunità Reticulum, consultare il capitolo [Programs Using Reticulum](https://reticulum.network/manual/software.html) del manuale.
>
> I contenuti generati automaticamente derivati dal codice sorgente o dalla documentazione di RNS (come "implementazioni", "guide" in vendita, eccetera), in diversi casi ben documentati violano le licenze open source che hanno concesso i diritti di copia e distribuzione.
>
> Qualsiasi presunta affermazione di copyright o concessione di licenza (Apache, GPL, eccetera) che tali progetti avanzano sono [concessioni nulle](https://reticulum.network/manual/brandolinis.html#void-grants-legal-foundations-of-machine-generated-code). Sia i trasgressori stessi, sia tutti i progetti a valle che utilizzano i derivati illeciti, sono **direttamente** e personalmente responsabili delle conseguenze legali.
>
> **Non** usare questi "progetti", sono un pericolo per l'intero ecosistema che abbiamo costruito con cura negli ultimi dieci anni.

<p align="center"><img width="200" src="https://assets.kitploit.com/production/public/readmes/10927/035f499a1619cfb6d2da2ca99539e9e9d122bb18addf2ab83d3413592e7662f9.png"></p>

*Questo repository è [uno specchio pubblico](https://github.com/markqvist/reticulum/blob/master/MIRROR.md). Tutto lo sviluppo avviene altrove.*

Per comprendere la filosofia fondante e gli obiettivi di questo sistema, leggi lo [Zen of Reticulum](https://github.com/markqvist/reticulum/blob/master/Zen%20of%20Reticulum.md).

Reticulum è lo stack di rete basato sulla crittografia per costruire reti locali e geografiche con hardware facilmente disponibile. Può funzionare anche con latenza molto elevata e larghezza di banda estremamente ridotta. Reticulum consente di costruire reti geografiche con strumenti disponibili sul mercato, e offre crittografia end-to-end e connettività, anonimato dell'iniziatore, trasporto multi-hop autoconfigurante supportato crittograficamente, indirizzamento efficiente, conferme di consegna non falsificabili e altro ancora.

La visione di Reticulum è consentire a chiunque di essere il proprio operatore di rete, e rendere economico e semplice coprire vaste aree con una miriade di reti indipendenti, interconnesse e autonome. Reticulum **non è** *una* rete. È **uno strumento** per costruire *migliaia di reti*. Reti senza kill-switch, sorveglianza, censura e controllo. Reti che possono interoperare, associarsi e dissociarsi liberamente tra loro, e che non richiedono alcuna supervisione centrale. Reti per esseri umani. *Reti per il popolo*.

Reticulum è uno stack di rete completo, e non si basa su IP o livelli superiori, ma è possibile usare IP come vettore sottostante per Reticulum. È quindi banale incapsulare Reticulum su Internet o su reti IP private.

Non avere dipendenze da stack di rete tradizionali libera il sovraccarico che è stato utilizzato per implementare uno stack di rete costruito direttamente su principi crittografici, consentendo resilienza e funzionalità stabile, anche in reti aperte e senza fiducia.

Non sono richiesti moduli del kernel o driver. Reticulum funziona completamente in userland, e può girare praticamente su qualsiasi sistema che esegua Python 3.

## Leggi il Manuale
La documentazione completa per Reticulum è disponibile su [markqvist.github.io/Reticulum/manual/](https://markqvist.github.io/Reticulum/manual/).

Puoi anche scaricare il [manuale di Reticulum in PDF](https://github.com/markqvist/Reticulum/releases/latest/download/Reticulum.Manual.pdf) o [come e-book in formato EPUB](https://github.com/markqvist/Reticulum/releases/latest/download/Reticulum.Manual.epub).

Per maggiori informazioni, vedi [reticulum.network](https://reticulum.network/) e [la sezione FAQ del wiki](https://github.com/markqvist/Reticulum/wiki/Frequently-Asked-Questions).

## Caratteristiche notevoli
- Indirizzamento e identificazione globalmente unici senza coordinamento
- Routing multi-hop completamente autoconfigurante su vettori eterogenei
- Scalabilità flessibile su topologie eterogenee
  - Reticulum può trasportare dati su qualsiasi combinazione di mezzi fisici e topologie
  - Reti a bassa larghezza di banda possono coesistere e interoperare con reti grandi e ad alta larghezza di banda
- Anonimato dell'iniziatore, comunica senza rivelare la tua identità
  - Reticulum non include indirizzi di origine su alcun pacchetto
- Crittografia asimmetrica X25519 e firme Ed25519 come base per tutta la comunicazione
  - Le chiavi di identità fondamentali di Reticulum sono set di chiavi a curva ellittica da 512 bit
- La Forward Secrecy è disponibile per tutti i tipi di comunicazione, sia per pacchetti singoli che su link
- Reticulum usa il seguente formato per i token cifrati:
  - Chiavi effimere per pacchetto e per link derivate da uno scambio di chiavi ECDH su Curve25519
  - AES-256 in modalità CBC con padding PKCS7
  - HMAC con SHA256 per l'autenticazione
  - Gli IV sono generati tramite os.urandom()
- Conferme di consegna dei pacchetti non falsificabili
- Sistema di interfacce flessibile ed estensibile
  - Reticulum include una grande varietà di tipi di interfaccia integrati
  - Capacità di caricare e utilizzare tipi di interfaccia personalizzati forniti dall'utente o dalla comunità
  - Crea facilmente le tue interfacce personalizzate per comunicare su qualsiasi cosa
- Autenticazione e segmentazione di rete virtuale su tutti i tipi di interfaccia supportati
- Un'API intuitiva e facile da usare
  - Più semplice e facile da usare rispetto alle API socket, ma più potente
  - Rende molto più semplice costruire applicazioni distribuite e decentralizzate
- Trasferimento affidabile ed efficiente di quantità arbitrarie di dati
  - Reticulum può gestire pochi byte di dati o file di molti gigabyte
  - Sequenziamento, compressione, coordinamento del trasferimento e checksum sono automatici
  - L'API è molto facile da usare, e fornisce il progresso del trasferimento
- Meccanismo Request/Response leggero, flessibile ed espandibile
- Stabilimento efficiente dei link
  - Il costo totale per stabilire un link cifrato e verificato è di soli 3 pacchetti, per un totale di 297 byte
  - Basso costo per mantenere i link aperti, pari a soli 0,44 bit al secondo
- Consegna sequenziale affidabile con meccanismi Channel e Buffer

## Risorse della comunità

I riferimenti elencati qui non sono gestiti, amministrati o moderati dal progetto Reticulum o dal suo manutentore. Sono forniti da volontari indipendenti e dedicati della comunità, a beneficio di chiunque sia interessato a saperne di più su Reticulum.

- [Reticulum Community Wiki](https://reticulum.miraheze.org/wiki)
- [RNS Recipes](https://rns.recipes/)
- [RNS Moscow](https://rns.moscow/)
- [RMAP.world](https://rmap.world/)

Se trovi qualcosa che non è più accurato, errato o semplicemente non del tutto aggiornato, non pretendere né lamentarti con i manutentori di queste risorse. Prenditi invece l'incarico di aiutare e migliorare le cose lavorando e offrendo i contributi che vorresti vedere, come hanno fatto gli stessi creatori di quanto sopra.

## Implementazione di riferimento

Il codice Python in questo repository è l'Implementazione di Riferimento di Reticulum. Il Protocollo Reticulum è definito interamente e in modo autorevole da questa implementazione di riferimento, e dal suo manuale associato. È mantenuto da Mark Qvist, identificato dall'Identità Reticulum `<bc7291552be7a58f361522990465165c>`.

Nessun derivato di specifica di protocollo di secondo ordine esiste attualmente, né esisterà mai. Non puoi ottenere una specifica migliore di una che è eseguibile, funzionante, testabile, distribuita e operativa 24/7 in tutto il pianeta.

Non esiste, e non esisterà mai, una "specifica formale", un "RFC" o qualsiasi cosa di simile separata e derivata per Reticulum:

**L'implementazione di riferimento *è* la specifica finale e autorevole.**

La compatibilità con il Protocollo Reticulum è definita come piena interoperabilità, e sufficiente parità funzionale con questa implementazione di riferimento. Qualsiasi specifica implementazione del protocollo che raggiunga questo è Reticulum. Qualsiasi che non lo faccia non è Reticulum.

L'implementazione di riferimento è rilasciata sotto la Reticulum License.

Il Protocollo Reticulum è stato dedicato al Pubblico Dominio nel 2016.

## Implementazioni della comunità

Le implementazioni elencate qui hanno dimostrato compatibilità a livello di rete, sufficiente parità di funzionalità, pratiche di sicurezza e sviluppo ragionevoli, impegno a lungo termine e cura per la qualità dell'implementazione. Inoltre, hanno un track record di almeno 18 mesi di sviluppo attivo.

Soprattutto, i loro sviluppatori e manutentori sono riconosciuti dalla comunità come persone che sanno effettivamente cosa stanno facendo, e come aventi un impegno a migliorare l'ecosistema Reticulum nel suo complesso.

- [microReticulum](https://github.com/attermann/microReticulum/) di [Chad Atterman](https://github.com/attermann) è un'implementazione in C++ rivolta a micro-controllori a 32 bit.
- [Reticulum-Go](https://reticulum-go.quad4.io/) di [Quad4](https://quad4.io/) è un'implementazione in Go rivolta sia a desktop, che a mobile e sistemi embedded.

*Se sei il manutentore di un'implementazione non elencata sopra, e ritieni che meriti l'inclusione seguendo gli stessi standard di rigore e impegno, la tua proposta sarà ben accolta.*

---

**Attenzione!** Un numero significativo di imitazioni di implementazioni Reticulum (e applicazioni rivolte all'utente), lanciate frettolosamente, errate, dubbie, direttamente dannose e, nella maggior parte dei casi, interamente generate da LLM, viene attualmente commercializzato e promosso con affermazioni curate ma in ultima analisi fuorvianti o apertamente ingannevoli. La maggior parte di queste sono o tentativi rapidi di attirare attenzione o denaro, completamente non revisionate, incompatibili, senza manutenzione o supervisione umana, che cercano attivamente di frammentare la comunità, o una combinazione di quanto sopra.

---

Per informazioni più estese su questo argomento, leggi il capitolo [Brandolini's Reference](https://reticulum.network/manual/brandolinis.html) del manuale (per i fondamenti legali, vedi specificamente [Void Grants](https://reticulum.network/manual/brandolinis.html#void-grants-legal-foundations-of-machine-generated-code)). Il capitolo è molto lungo, molto dettagliato, ed è l'analisi educata e misurata, intesa come riferimento in evoluzione e suddiviso in sezioni su questi problemi.

Se preferisci invece solo la versione breve, senza filtri e piuttosto arrabbiata, che consiste in una risposta messa in atto a una particolare manifestazione del fenomeno nel suo complesso, usata come esempio, puoi leggere [Yes, I am Angry](https://github.com/markqvist/reticulum/blob/master/docs/history/2026_09_18_Yes_I_am_Angry.md). Trasmette lo stesso concetto, con un linguaggio molto diverso, se riesci a sopportare quel tipo di comunicazione.

I manutentori e sviluppatori principali di Reticulum **sconsigliano fermamente l'uso di qualsiasi simile "implementazione"**. Il [comportamento ingannevole e opportunistico](https://reticulum.network/manual/brandolinis.html#a-persistent-but-fragile-triad) di un piccolo numero di individui male intenzionati, in cerca di attenzione o incompetenti ha causato significativi [danni e sprechi di tempo e risorse](https://reticulum.network/manual/brandolinis.html#intent-consequence) sia per gli sviluppatori, che per gli operatori dei nodi, gli utenti e la comunità e il progetto Reticulum nel suo complesso.

Chiediamo gentilmente, ma con urgenza, a tutti gli utenti di esercitare cautela, buon senso e sano scetticismo nel [valutare](https://reticulum.network/manual/brandolinis.html#evaluating-a-reticulum-implementation) il potenziale utilizzo di qualsiasi implementazione non elencata sopra; e di accettare che **scegliere di farlo comunque trasferisce la responsabilità per potenziali danni da un individuo irresponsabile o malevolo su te stesso**.

## Esempi di applicazioni Reticulum
Se vuoi farti rapidamente un'idea di cosa può fare Reticulum, dai un'occhiata alla sezione [Programs Using Reticulum](https://reticulum.network/manual/software.html) del manuale, o alle seguenti risorse:

- [LXMF](https://github.com/markqvist/lxmf) è un protocollo di trasferimento messaggi distribuito, tollerante a ritardi e interruzioni, costruito su Reticulum
- Il protocollo e framework [LXST](https://github.com/markqvist/lxst) fornisce trasporto audio e segnali in tempo reale su Reticulum. Include primitive e utilità per costruire applicazioni basate sulla voce e dispositivi hardware, come il programma `rnphone`, che può essere usato per costruire telefoni hardware.
- Per una piattaforma di comunicazione mesh off-grid, cifrata e resiliente, vedi [Nomad Network](https://github.com/markqvist/NomadNet)
- L'app per Android, Linux, macOS e Windows [Sideband](https://github.com/markqvist/Sideband) ha un'interfaccia grafica e molte funzionalità avanzate, come trasferimenti di file, messaggi con immagini e voce, chiamate vocali in tempo reale, un sistema di telemetria distribuito, capacità di mappatura e piena estensibilità tramite plugin.
- [MeshChatX](https://git.quad4.io/RNS-Things/MeshChatX) è un client LXMF completo con molti strumenti e funzionalità integrate, che supporta anche messaggi con immagini e voce, trasferimenti di file e chiamate vocali. Include anche un browser di pagine integrato per navigare i nodi Nomad Network.
- Puoi usare il programma incluso [rnsh](https://reticulum.network/manual/using.html#the-rnsh-utility) per stabilire sessioni di shell remota su Reticulum.
- Il sistema incluso [rngit](https://reticulum.network/manual/git.html) fornisce una soluzione completa per gestire, ospitare, collaborare e interagire con repository Git su Reticulum.

## Dove può essere usato Reticulum?
Su praticamente qualsiasi mezzo che possa supportare almeno un canale half-duplex con una velocità effettiva superiore a 5 bit al secondo, e un MTU di 500 byte. Radio dati, modem, radio LoRa, linee seriali, TNC AX.25, modalità digitali radioamatoriali, dispositivi WiFi ed Ethernet, collegamenti ottici in spazio libero e sistemi simili sono tutti esempi dei tipi di dispositivi fisici che Reticulum può usare.

Un'interfaccia open source basata su LoRa chiamata [RNode](https://markqvist.github.io/Reticulum/manual/hardware.html#rnode) è stata progettata specificamente per l'uso con Reticulum. È possibile costruirla da soli, oppure può essere acquistata come ricetrasmettitore completo che necessita solo di una connessione USB, WiFi o Bluetooth all'host.

Reticulum può anche essere incapsulato su reti IP esistenti, quindi nulla ti impedisce di usarlo su Ethernet cablato, sulla tua rete WiFi locale o su Internet, dove funzionerà altrettanto bene. In effetti, uno dei punti di forza di Reticulum è la facilità con cui consente di collegare mezzi diversi in una mesh autoconfigurante, resiliente e cifrata, usando qualsiasi combinazione disponibile di infrastruttura disponibile.

Ad esempio, è possibile configurare un Raspberry Pi collegato sia a una radio LoRa, che a un TNC radio a pacchetto e a una rete WiFi. Una volta configurate le interfacce, Reticulum si occuperà del resto, e qualsiasi dispositivo sulla rete WiFi potrà comunicare con i nodi sui lati LoRa e radio a pacchetto della rete, e viceversa.

## Come posso iniziare?
Il modo migliore per iniziare con il Reticulum Network Stack dipende da cosa vuoi fare. Per dettagli completi ed esempi, dai un'occhiata alla sezione [Getting Started Fast](https://markqvist.github.io/Reticulum/manual/gettingstartedfast.html) del [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/).

Per installare semplicemente Reticulum e le utilità correlate sul tuo sistema, il modo più semplice è tramite `pip`. Puoi quindi avviare qualsiasi programma che usi Reticulum, oppure avviare Reticulum come servizio di sistema con [l'utilità rnsd](https://markqvist.github.io/Reticulum/manual/using.html#the-rnsd-utility).```bash
pip install rns
```
Se stai utilizzando un sistema operativo che blocca la normale installazione dei pacchetti utente tramite `pip`, puoi ripristinare il comportamento normale di `pip` modificando il file `~/.config/pip/pip.conf` e aggiungendo la seguente direttiva nella sezione `[global]`:```text
[global]
break-system-packages = true
```
In alternativa, puoi usare lo strumento `pipx` per installare Reticulum in un ambiente isolato:```bash
pipx install rns
```
All'avvio, Reticulum creerà un file di configurazione predefinito, fornendo la connettività di base ad altri peer Reticulum che potrebbero essere raggiungibili localmente. Il file di configurazione predefinito contiene alcuni esempi e riferimenti per creare una configurazione più complessa.

Se sul tuo sistema è presente una versione obsoleta di `pip`, potresti doverla aggiornare prima con `pip install pip --upgrade`. Se non hai già `pip` installato, puoi installarlo usando il gestore di pacchetti del tuo sistema con `sudo apt install python3-pip` o simile.

Per esempi più dettagliati su come estendere la comunicazione su molti mezzi come packet radio o LoRa, porte seriali, o su collegamenti IP veloci e Internet usando le interfacce UDP e TCP, dai un'occhiata alla sezione [Supported Interfaces](https://markqvist.github.io/Reticulum/manual/interfaces.html) del [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/).

## Utility incluse
Reticulum include una serie di utility utili per gestire le tue reti, visualizzare stato e informazioni, e altre attività. Puoi leggere di più su questi programmi nella sezione [Included Utility Programs](https://markqvist.github.io/Reticulum/manual/using.html#included-utility-programs) del [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/).

- Il daemon di sistema `rnsd` per eseguire Reticulum come servizio sempre disponibile
- Un'utility di stato delle interfacce chiamata `rnstatus`, che visualizza informazioni sulle interfacce
- Lo strumento di ricerca e gestione dei percorsi `rnpath` che ti permette di visualizzare e modificare le tabelle dei percorsi
- Uno strumento di diagnostica chiamato `rnprobe` per verificare la connettività verso le destinazioni
- Un semplice programma di trasferimento file chiamato `rncp` che rende facile trasferire file tra sistemi
- L'utility di gestione delle identità e crittografia `rnid` ti permette di gestire le Identità e cifrare/decifrare file
- Il programma `rnsh` ti permette di stabilire una sessione shell completamente interattiva con sistemi remoti
- Il programma di esecuzione remota di comandi `rnx` ti permette di eseguire semplici comandi e programmi e recuperare l'output da sistemi remoti
- Il programma `rngit` fornisce un nodo Git multi-repository completo per servire repository su Reticulum
- L'helper incluso `git-remote-rns` ti permette di interagire con repository Git su Reticulum

Tutti gli strumenti, inclusi `rnx` e `rncp`, funzionano in modo affidabile e corretto anche su collegamenti a banda molto bassa come LoRa o Packet Radio. Per shell remote complete su Reticulum, dai un'occhiata anche al programma [rnsh](https://github.com/acehoss/rnsh).

## Tipi di interfaccia e dispositivi supportati

Reticulum implementa una serie di tipi di interfaccia generalizzati che coprono la maggior parte dell'hardware di comunicazione su cui Reticulum può funzionare. Se il tuo hardware non è supportato, è [semplice implementare un modulo di interfaccia personalizzato](https://markqvist.github.io/Reticulum/manual/interfaces.html#custom-interfaces).

I contributi di interfacce personalizzate sono accolti con gratitudine, a condizione che siano generalmente utili e ben testati in uso reale.

Attualmente, sono supportate le seguenti interfacce integrate:

- Qualsiasi dispositivo Ethernet
- LoRa usando [RNode](https://unsigned.io/rnode/)
- TNC Packet Radio (con o senza AX.25)
- Modem hardware e software compatibili KISS
- Qualsiasi dispositivo con porta seriale
- TCP su reti IP
- UDP su reti IP
- Programmi esterni via stdio o pipe
- Hardware personalizzato via stdio o pipe

## Prestazioni
*Tutti i valori di prestazioni qui riportati presuppongono `rnsd` in esecuzione in modalità Python completamente interpretata, limitato a un singolo core CPU.*

Reticulum punta a un envelope di prestazioni utilizzabili *molto* ampio, ma dà priorità a funzionalità e prestazioni su mezzi a banda bassa. L'obiettivo è fornire un envelope di prestazioni dinamico da 100 bit al secondo a 10 gigabit al secondo su hardware normale.

Attualmente, l'envelope di prestazioni utilizzabili sulla rete è di circa 150 bit al secondo fino a 1 gigabit al secondo su hardware modesto. Le prestazioni nel mondo reale varieranno ampiamente con la velocità del tuo sistema, la disponibilità di accelerazione crittografica hardware e altri fattori.

Il throughput di routing grezzo per un nodo di trasporto ospitato su un Raspberry Pi 5 è di circa 5 gigabit al secondo. I sistemi con moderna accelerazione crittografica hardware possono raggiungere un throughput di trasporto di 15 gigabit al secondo e oltre.

Sebbene l'implementazione di riferimento sia perfettamente in grado di raggiungere 100+ Gbps, utilizzando più core CPU e trasporto vettorizzato, prestazioni oltre il livello attuale non sono una priorità elevata, poiché RNS è già in grado di saturare la larghezza di banda del mezzo fisico disponibile in quasi tutte le situazioni del mondo reale.

Gli obiettivi primari per RNS sono *affidabilità*, *correttezza*, *sicurezza*, *corretta gestione del traffico* e *prestazioni effettivamente pratiche*, non vuoti "benchmark" sulla carta con scarsa o nessuna rilevanza sull'usabilità nel mondo reale.

Tutti i manutentori di implementazioni alternative sono *caldamente* incoraggiati ad adottare un approccio simile, e specialmente a concentrarsi sul far funzionare correttamente e in modo affidabile le proprie implementazioni prima di pubblicare affermazioni sulle prestazioni empiricamente dubbie o fattualmente errate.

## Stato attuale
Tutte le funzionalità principali del protocollo sono implementate e funzionanti, ma probabilmente si aggiungeranno altre man mano che l'uso nel mondo reale viene esplorato e compreso. L'API e il formato di trasmissione possono essere considerati stabili.

## Dipendenze
L'installazione del pacchetto predefinito `rns` richiede solo due dipendenze esterne, elencate di seguito. Quasi tutti i sistemi e le distribuzioni hanno pacchetti prontamente disponibili per queste dipendenze, e quando il pacchetto `rns` viene installato con `pip`, verranno scaricate e installate anch'esse.

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

Su sistemi più insoliti, e in alcuni rari casi, potrebbe non essere possibile installare o persino compilare uno o più dei moduli sopra elencati. In tali situazioni, puoi usare invece il pacchetto `rnspure`, che non richiede dipendenze esterne per l'installazione. Tieni presente che i contenuti dei pacchetti `rns` e `rnspure` sono *identici*. L'unica differenza è che il pacchetto `rnspure` non elenca alcuna dipendenza richiesta per l'installazione.

Indipendentemente da come Reticulum viene installato e avviato, caricherà le dipendenze esterne solo se sono *necessarie* e *disponibili*. Se, ad esempio, vuoi usare Reticulum su un sistema che non può supportare [pyserial](https://github.com/pyserial/pyserial), è perfettamente possibile farlo usando il pacchetto `rnspure`, ma Reticulum non sarà in grado di usare interfacce basate su seriale. Tutti gli altri moduli disponibili verranno comunque caricati quando necessario.

**Nota bene!** Se usi il pacchetto `rnspure` per eseguire Reticulum su sistemi che non supportano [PyCA/cryptography](https://github.com/pyca/cryptography), è importante che tu legga e comprenda la sezione [Cryptographic Primitives](#cryptographic-primitives) di questo documento.

## Avvio della connettività

Reticulum non è un servizio a cui ci si abbona, né è una singola rete globale a cui "unirsi". Reticulum fornisce funzionalità per scoprire le interfacce pubbliche disponibili sulla rete stessa, e la comunità più ampia ha fornito varie directory di entrypoint pubblicamente disponibili per avviare la connettività.

Per imparare come stabilire la connettività iniziale su Reticulum, leggi la sezione [Bootstrapping Connectivity](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) del manuale.

Se hai già un'idea generale di come funziona, puoi usare siti gestiti dalla comunità come [directory.rns.recipes](https://directory.rns.recipes/) e [rmap.world](https://rmap.world) per trovare definizioni di interfaccia per la connettività iniziale al backbone Reticulum distribuito globale.

## Testnet pubblico
***Importante!** Storicamente, un testnet rivolto agli sviluppatori è stato reso disponibile dal progetto Reticulum stesso. Poiché la quantità di nodi ed entrypoint Reticulum globali è cresciuta fino a una quantità sostanziale, questo testnet pubblico, incluso l'entrypoint Amsterdam Testnet, è ora stato dismesso. Se hai ancora istanze che si affidavano a questo entrypoint per la connettività, passa all'uso del backbone distribuito. Reticulum ora include un sistema completo di scoperta delle interfacce sulla rete e avvio della connettività. Leggi la sezione [Bootstrapping Connectivity](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) del manuale per indicazioni.*

## Supporta Reticulum
Perché questo sia possibile, ho bisogno del tuo aiuto. Sostieni lo sviluppo continuo di sistemi di comunicazione aperti, liberi e privati donando tramite uno dei seguenti canali:

- Monero:  ```
  84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
  ```
- Bitcoin  ```
  bc1pgqgu8h8xvj4jtafslq396v7ju7hkgymyrzyqft4llfslz5vp99psqfk3a6
  ```
- Ethereum  ```
  0x91C421DdfB8a30a49A71d63447ddb54cEBe3465E
  ```
- Liberapay: https://liberapay.com/Reticulum/

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

## Primitive crittografiche
Reticulum utilizza una suite semplice di primitive crittografiche efficienti, robuste e ben collaudate, con implementazioni ampiamente disponibili che possono essere utilizzate sia su CPU general-purpose che su microcontrollori.

Una delle considerazioni principali nella scelta di questo particolare insieme di primitive è che possono essere implementate *in modo sicuro* con relativamente poche insidie, su praticamente tutte le attuali piattaforme di calcolo.

Le primitive elencate qui **sono autorevoli**. Qualsiasi cosa che pretenda di essere Reticulum, ma che non utilizzi queste esatte primitive **non è** Reticulum, e possibilmente un clone intenzionalmente compromesso o indebolito. Le primitive utilizzate sono:

- Le chiavi di identità di Reticulum sono keyset Curve25519 a 512 bit
  - Una chiave Ed25519 a 256 bit per le firme
  - Una chiave X22519 a 256 bit per gli scambi di chiavi ECDH
- HKDF per la derivazione delle chiavi
- I token cifrati si basano sulla [specifica Fernet](https://github.com/fernet/spec/)
  - Chiavi effimere derivate da uno scambio di chiavi ECDH su Curve25519
  - HMAC con SHA256 per l'autenticazione dei messaggi
  - Gli IV devono essere generati tramite `os.urandom()` o superiore
  - AES-256 in modalità CBC con padding PKCS7
  - Nessun campo di metadati di versione e timestamp Fernet
- SHA-256
- SHA-512

Nella configurazione di installazione predefinita, le primitive `X25519`, `Ed25519` e `AES-256-CBC` sono fornite da [OpenSSL](https://www.openssl.org/) (tramite il pacchetto [PyCA/cryptography](https://github.com/pyca/cryptography)). Le funzioni di hashing `SHA-256` e `SHA-512` sono fornite dal modulo standard Python [hashlib](https://docs.python.org/3/library/hashlib.html). Le primitive `HKDF`, `HMAC`, `Token` e la funzione di padding `PKCS7` sono sempre fornite dalle seguenti implementazioni interne:

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


Reticulum include anche un'implementazione completa di tutte le primitive necessarie in puro Python. Se OpenSSL e PyCA non sono disponibili sul sistema all'avvio di Reticulum, Reticulum utilizzerà invece le primitive interne in puro Python. Una conseguenza banale di ciò è la prestazione, con il backend OpenSSL che è *molto* più veloce. La conseguenza più importante tuttavia è la potenziale perdita di sicurezza derivante dall'utilizzo di primitive che non hanno ricevuto lo stesso livello di scrutinio, test e revisione di quelle di OpenSSL.

Si prega di notare che per impostazione predefinita, l'installazione di Reticulum **richiederà** che OpenSSL e PyCA siano installati automaticamente se non già disponibili. È possibile utilizzare le primitive in puro Python solo se questo requisito viene specificamente sovrascritto dall'utente, ad esempio installando il pacchetto `rnspure` invece del normale pacchetto `rns`, o eseguendo direttamente dal codice sorgente locale.

Se si desidera utilizzare le primitive interne in puro Python, è **altamente consigliabile** avere una buona comprensione dei rischi che ciò comporta e prendere una decisione informata sull'accettabilità di tali rischi.

Essendo in sviluppo da dieci anni e in distribuzione più ampia da circa cinque anni, Reticulum è un software relativamente giovane e dovrebbe essere considerato come tale. Sebbene sia stato costruito con cura tenendo in massima considerazione le migliori pratiche crittografiche, potrebbero benissimo esserci ancora bug che compromettono la privacy o la sicurezza.

## Riconoscimenti e crediti
Reticulum può esistere solo grazie alla montagna di lavoro Open Source su cui è stato costruito, ai contributi di tutti coloro che sono stati coinvolti e a tutti coloro che hanno sostenuto il progetto nel corso degli anni. A tutti coloro che hanno aiutato, grazie mille.

Numerosi altri moduli e progetti fanno parte di Reticulum o sono utilizzati da esso. Sinceri ringraziamenti agli autori e ai contributori dei seguenti progetti:

- [PyCA/cryptography](https://github.com/pyca/cryptography), *BSD License*
- [Pure-25519](https://github.com/warner/python-pure25519) di [Brian Warner](https://github.com/warner), *MIT License*
- [Pysha2](https://github.com/thomdixon/pysha2) di [Thom Dixon](https://github.com/thomdixon), *MIT License*
- [Python AES-128](https://github.com/orgurar/python-aes) di [Or Gur Arie](https://github.com/orgurar), *MIT License*
- [Python AES-256](https://github.com/boppreh/aes) di [BoppreH](https://github.com/boppreh), *MIT License*
- [Curve25519.py](https://gist.github.com/nickovs/cc3c22d15f239a2640c185035c06f8a3#file-curve25519-py) di [Nicko van Someren](https://gist.github.com/nickovs), *Public Domain*
- [I2Plib](https://github.com/l-n-s/i2plib) di [Viktor Villainov](https://github.com/l-n-s)
- [PySerial](https://github.com/pyserial/pyserial) di Chris Liechti, *BSD License*

---

[Read more](https://github.com/markqvist/reticulum)
Scarica lo strumento