Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Reticulum — A pilha de rede baseada em criptografia para a construção de redes imparáveis com LoRa, Packet Radio, WiFi e tudo o que está entre eles. | Kitploit
Ferramentas/GitHubGitHub/markqvist/reticulum
Ferramentas de Criptografia/DescriptografiaSegurança de RedeSegurança Sem FioCriptografiaPrivacidadeUtilitários e FrameworksAutenticação
GitHubmarkqvist/reticulum

Reticulum

A pilha de rede baseada em criptografia para a construção de redes imparáveis com LoRa, Packet Radio, WiFi e tudo o que está entre eles.

Ver Repositório
6.7k49054há 20 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site
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]  
> Um número significativo de falsificações de implementações do Reticulum, "documentação", "guias" e aplicações de utilizador lançadas apressadamente, incorretas, duvidosas, diretamente prejudiciais e, na maioria dos casos, inteiramente geradas por LLM, estão atualmente a ser comercializadas sob alegações polidas, mas em última análise enganosas ou francamente enganadoras.
>
> Para informações mais detalhadas, consulte as secções relevantes do capítulo [Brandolini's Reference](https://reticulum.network/manual/brandolinis.html) do manual. As implementações comunitárias reconhecidas como boas estão listadas na secção [Community Implementations](#community-implementations) deste readme. Para software e projetos reconhecidos pela comunidade Reticulum, consulte o capítulo [Programs Using Reticulum](https://reticulum.network/manual/software.html) do manual.
>
> Conteúdo gerado por máquina derivado do código-fonte ou da documentação do RNS (como "implementações", "guias" para venda, etc.), estão em vários casos bem documentados a violar as licenças de código aberto que concederam direitos de cópia e distribuição.
>
> Qualquer alegada afirmação de direitos de autor ou concessão de licença (Apache, GPL, etc.) que tais projetos estejam a fazer são [concessões nulas](https://reticulum.network/manual/brandolinis.html#void-grants-legal-foundations-of-machine-generated-code). Tanto os próprios infratores, como todos os projetos a jusante que utilizem os derivados infratores, são **diretamente** e pessoalmente responsáveis pelas consequências legais.
>
> **Não** utilize estes "projetos", são um perigo para todo o ecossistema que temos vindo a construir cuidadosamente ao longo dos últimos dez anos.

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

*Este repositório é [um espelho público](https://github.com/markqvist/reticulum/blob/master/MIRROR.md). Todo o desenvolvimento acontece noutro local.*

Para compreender a filosofia fundacional e os objetivos deste sistema, leia o [Zen of Reticulum](https://github.com/markqvist/reticulum/blob/master/Zen%20of%20Reticulum.md).

Reticulum é a stack de rede baseada em criptografia para construir redes locais e de área ampla com hardware prontamente disponível. Pode operar mesmo com latência muito elevada e largura de banda extremamente baixa. Reticulum permite-lhe construir redes de área ampla com ferramentas prontas a usar, e oferece encriptação e conectividade ponta-a-ponta, anonimato do iniciador, transporte multi-salto autoconfigurável com suporte criptográfico, endereçamento eficiente, confirmações de entrega infalsificáveis e muito mais.

A visão do Reticulum é permitir que qualquer pessoa seja o seu próprio operador de rede, e tornar barato e fácil cobrir vastas áreas com uma miríade de redes independentes, interconectáveis e autónomas. Reticulum **não é** *uma* rede. É **uma ferramenta** para construir *milhares de redes*. Redes sem interruptores de emergência, vigilância, censura e controlo. Redes que podem interoperar livremente, associar-se e dissociar-se umas das outras, e que não requerem supervisão central. Redes para seres humanos. *Redes para o povo*.

Reticulum é uma stack de rede completa, e não depende de IP ou camadas superiores, mas é possível usar IP como portador subjacente para o Reticulum. É, portanto, trivial fazer túnel de Reticulum sobre a Internet ou redes IP privadas.

Não ter dependências de stacks de rede tradicionais liberta a sobrecarga que tem sido usada para implementar uma stack de rede construída diretamente sobre princípios criptográficos, permitindo resiliência e funcionalidade estável, mesmo em redes abertas e sem confiança.

Não são necessários módulos de kernel ou drivers. Reticulum corre completamente em espaço de utilizador, e pode correr em praticamente qualquer sistema que execute Python 3.

## Leia o Manual
A documentação completa do Reticulum está disponível em [markqvist.github.io/Reticulum/manual/](https://markqvist.github.io/Reticulum/manual/).

Também pode descarregar o [manual do Reticulum em PDF](https://github.com/markqvist/Reticulum/releases/latest/download/Reticulum.Manual.pdf) ou [como e-book em formato EPUB](https://github.com/markqvist/Reticulum/releases/latest/download/Reticulum.Manual.epub).

Para mais informações, consulte [reticulum.network](https://reticulum.network/) e [a secção de FAQ da wiki](https://github.com/markqvist/Reticulum/wiki/Frequently-Asked-Questions).

## Funcionalidades Notáveis
- Endereçamento e identificação globalmente únicos sem coordenação
- Encaminhamento multi-salto totalmente autoconfigurável sobre portadores heterogéneos
- Escalabilidade flexível sobre topologias heterogéneas
  - Reticulum pode transportar dados sobre qualquer mistura de meios físicos e topologias
  - Redes de baixa largura de banda podem coexistir e interoperar com redes grandes e de alta largura de banda
- Anonimato do iniciador, comunique sem revelar a sua identidade
  - Reticulum não inclui endereços de origem em nenhum pacote
- Encriptação assimétrica X25519 e assinaturas Ed25519 como base para toda a comunicação
  - As Chaves de Identidade fundamentais do Reticulum são conjuntos de chaves de Curva Elíptica de 512 bits
- Forward Secrecy está disponível para todos os tipos de comunicação, tanto para pacotes individuais como sobre ligações
- Reticulum usa o seguinte formato para tokens encriptados:
  - Chaves efémeras por pacote e por ligação, derivadas de uma troca de chaves ECDH em Curve25519
  - AES-256 em modo CBC com padding PKCS7
  - HMAC usando SHA256 para autenticação
  - Os IVs são gerados através de os.urandom()
- Confirmações de entrega de pacotes infalsificáveis
- Sistema de interfaces flexível e extensível
  - Reticulum inclui uma grande variedade de tipos de interface incorporados
  - Capacidade de carregar e utilizar tipos de interface personalizados fornecidos pelo utilizador ou pela comunidade
  - Crie facilmente as suas próprias interfaces personalizadas para comunicar sobre qualquer coisa
- Autenticação e segmentação de rede virtual em todos os tipos de interface suportados
- Uma API intuitiva e fácil de usar
  - Mais simples e fácil de usar do que APIs de sockets, mas mais poderosa
  - Torna a construção de aplicações distribuídas e descentralizadas muito mais simples
- Transferência fiável e eficiente de quantidades arbitrárias de dados
  - Reticulum pode lidar com alguns bytes de dados ou ficheiros de muitos gigabytes
  - Sequenciação, compressão, coordenação de transferência e verificação de checksum são automáticas
  - A API é muito fácil de usar, e fornece progresso da transferência
- Mecanismo de Pedido/Resposta leve, flexível e expansível
- Estabelecimento eficiente de ligações
  - O custo total de estabelecer uma ligação encriptada e verificada é de apenas 3 pacotes, totalizando 297 bytes
  - Custo baixo de manter ligações abertas, de apenas 0,44 bits por segundo
- Entrega sequencial fiável com mecanismos de Channel e Buffer

## Recursos da Comunidade

As referências listadas aqui não são geridas, administradas ou moderadas pelo projeto Reticulum ou pelo seu mantenedor. São fornecidas por voluntários dedicados e independentes da comunidade, para benefício de qualquer pessoa interessada em saber mais sobre o 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 encontrar algo que já não seja preciso, incorreto ou simplesmente não esteja totalmente atualizado, não exija nem se queixe aos mantenedores destes recursos. Em vez disso, assuma a tarefa de ajudar e melhorar as coisas, trabalhando e oferecendo as contribuições que gostaria de ver, tal como os criadores dos recursos acima fizeram eles próprios.

## Implementação de Referência

O código Python neste repositório é a Implementação de Referência do Reticulum. O Protocolo Reticulum é definido de forma totalmente e autoritária por esta implementação de referência, e pelo seu manual associado. É mantido por Mark Qvist, identificado pela Identidade Reticulum `<bc7291552be7a58f361522990465165c>`.

Nenhum derivado de especificação de protocolo de segunda ordem existe atualmente, nem existirá alguma vez. Não se pode obter uma especificação melhor do que uma que é executável, funcional, testável, implementada e a operar 24/7 em todo o planeta.

Não existe, e nunca existirá, uma "especificação formal", "RFC" ou algo semelhante separado e derivado para o Reticulum:

**A implementação de referência *é* a especificação final e autoritária.**

A compatibilidade com o Protocolo Reticulum é definida como tendo interoperabilidade total, e paridade funcional suficiente com esta implementação de referência. Qualquer implementação específica do protocolo que o consiga é Reticulum. Qualquer que não o consiga não é Reticulum.

A implementação de referência está licenciada sob a Reticulum License.

O Protocolo Reticulum foi dedicado ao Domínio Público em 2016.

## Implementações da Comunidade

As implementações listadas aqui demonstraram compatibilidade de rede, paridade de funcionalidades suficiente, práticas sensatas de segurança e desenvolvimento, compromisso a longo prazo e cuidado com a qualidade da implementação. Além disso, têm um historial de pelo menos 18 meses de desenvolvimento ativo.

Mais importante ainda, os seus programadores e mantenedores são reconhecidos pela comunidade como sabendo realmente o que estão a fazer, e como tendo um compromisso com a melhoria do ecossistema Reticulum como um todo.

- A [microReticulum](https://github.com/attermann/microReticulum/) de [Chad Atterman](https://github.com/attermann) é uma implementação em C++ direcionada a microcontroladores de 32 bits.
- O [Reticulum-Go](https://reticulum-go.quad4.io/) da [Quad4](https://quad4.io/) é uma implementação em Go direcionada tanto a sistemas de secretária, móveis como embebidos.

*Se é o mantenedor de uma implementação não listada acima, e acredita que merece inclusão seguindo os mesmos padrões de rigor e compromisso, a sua proposta será bem-vinda.*

---

**Aviso!** Um número significativo de falsificações de implementações do Reticulum (e aplicações de utilizador) lançadas apressadamente, incorretas, duvidosas, diretamente prejudiciais e, na maioria dos casos, inteiramente geradas por LLM, estão atualmente a ser comercializadas e promovidas sob alegações polidas, mas em última análise enganosas ou francamente enganadoras. A maioria destas são ou tentativas rápidas de chamar a atenção ou de obter dinheiro, completamente não revistas, incompatíveis, sem manutenção ou supervisão humana, a tentar ativamente fragmentar a comunidade, ou uma combinação destas.

---

Para informações mais extensas sobre este tópico, leia o capítulo [Brandolini's Reference](https://reticulum.network/manual/brandolinis.html) do manual (para os fundamentos legais, veja especificamente [Void Grants](https://reticulum.network/manual/brandolinis.html#void-grants-legal-foundations-of-machine-generated-code)). O capítulo é muito longo, muito detalhado, e é a análise educada e ponderada, destinada a ser uma referência evolutiva e seccionada sobre estas questões.

Se preferir apenas a versão curta, sem filtros e bastante zangada, que consiste numa resposta encenada a uma manifestação particular do fenómeno como um todo, usada como exemplo, pode ler [Yes, I am Angry](https://github.com/markqvist/reticulum/blob/master/docs/history/2026_09_18_Yes_I_am_Angry.md). Transmite a mesma mensagem, numa linguagem muito diferente, se conseguir lidar com esse tipo de comunicação.

Os principais mantenedores e programadores do Reticulum **desaconselham fortemente a utilização de qualquer dessas "implementações"**. O [comportamento enganador e egoísta](https://reticulum.network/manual/brandolinis.html#a-persistent-but-fragile-triad) de um pequeno número de indivíduos mal-intencionados, ávidos de atenção ou incompetentes causou [danos significativos e desperdício de tempo e recursos](https://reticulum.network/manual/brandolinis.html#intent-consequence) tanto para programadores, operadores de nós, utilizadores e a comunidade e o projeto Reticulum em geral.

Pedimos gentilmente, mas com urgência, a todos os utilizadores que exerçam cautela, bom senso e ceticismo saudável ao [avaliar](https://reticulum.network/manual/brandolinis.html#evaluating-a-reticulum-implementation) o potencial uso de qualquer implementação não listada acima; e que aceitem que **escolher fazê-lo independentemente transfere a responsabilidade por potenciais danos de um indivíduo irresponsável ou malicioso para si próprio**.

## Exemplos de Aplicações Reticulum
Se quiser rapidamente ter uma ideia do que o Reticulum pode fazer, dê uma olhada na secção [Programs Using Reticulum](https://reticulum.network/manual/software.html) do manual, ou nos seguintes recursos:

- [LXMF](https://github.com/markqvist/lxmf) é um protocolo de transferência de mensagens distribuído, tolerante a atrasos e interrupções, construído sobre Reticulum
- O protocolo e framework [LXST](https://github.com/markqvist/lxst) fornece transporte de áudio e sinais em tempo real sobre Reticulum. Inclui primitivas e utilitários para construir aplicações baseadas em voz e dispositivos de hardware, como o programa `rnphone`, que pode ser usado para construir telefones de hardware.
- Para uma plataforma de comunicações em malha fora da rede, encriptada e resiliente, veja [Nomad Network](https://github.com/markqvist/NomadNet)
- A aplicação para Android, Linux, macOS e Windows [Sideband](https://github.com/markqvist/Sideband) tem uma interface gráfica e muitas funcionalidades avançadas, como transferências de ficheiros, mensagens de imagem e voz, chamadas de voz em tempo real, um sistema de telemetria distribuído, capacidades de mapeamento e extensibilidade total por plugins.
- [MeshChatX](https://git.quad4.io/RNS-Things/MeshChatX) é um cliente LXMF completo com muitas ferramentas e funcionalidades incorporadas, que também suporta mensagens de imagem e voz, transferências de ficheiros e chamadas de voz. Inclui também um navegador de páginas incorporado para navegar em nós Nomad Network.
- Pode usar o programa incluído [rnsh](https://reticulum.network/manual/using.html#the-rnsh-utility) para estabelecer sessões de shell remoto sobre Reticulum.
- O sistema incluído [rngit](https://reticulum.network/manual/git.html) fornece uma solução completa para gerir, alojar, colaborar e interagir com repositórios Git sobre Reticulum.

## Onde pode o Reticulum ser usado?
Sobre praticamente qualquer meio que consiga suportar pelo menos um canal half-duplex com um débito superior a 5 bits por segundo, e uma MTU de 500 bytes. Rádios de dados, modems, rádios LoRa, linhas série, TNCs AX.25, modos digitais de rádio amador, dispositivos WiFi e Ethernet, ligações óticas de espaço livre, e sistemas semelhantes são todos exemplos dos tipos de dispositivos físicos que o Reticulum pode usar.

Uma interface de código aberto baseada em LoRa chamada [RNode](https://markqvist.github.io/Reticulum/manual/hardware.html#rnode) foi concebida especificamente para uso com Reticulum. É possível construí-la você mesmo, ou pode ser adquirida como um transceptor completo que só precisa de uma ligação USB, WiFi ou Bluetooth ao anfitrião.

Reticulum também pode ser encapsulado sobre redes IP existentes, por isso não há nada que o impeça de o usar sobre Ethernet com fios, a sua rede WiFi local ou a Internet, onde funcionará igualmente bem. De facto, uma das forças do Reticulum é a facilidade com que lhe permite ligar diferentes meios numa malha autoconfigurável, resiliente e encriptada, usando qualquer mistura disponível de infraestrutura disponível.

Como exemplo, é possível configurar um Raspberry Pi ligado simultaneamente a um rádio LoRa, um TNC de rádio de pacotes e uma rede WiFi. Uma vez configuradas as interfaces, o Reticulum tratará do resto, e qualquer dispositivo na rede WiFi pode comunicar com nós nos lados LoRa e rádio de pacotes da rede, e vice-versa.

## Como começo?
A melhor forma de começar com a Reticulum Network Stack depende do que quer fazer. Para detalhes completos e exemplos, dê uma olhada na secção [Getting Started Fast](https://markqvist.github.io/Reticulum/manual/gettingstartedfast.html) do [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/).

Para simplesmente instalar o Reticulum e utilitários relacionados no seu sistema, a forma mais fácil é via `pip`. Pode depois iniciar qualquer programa que use Reticulum, ou iniciar o Reticulum como serviço de sistema com [o utilitário rnsd](https://markqvist.github.io/Reticulum/manual/using.html#the-rnsd-utility).```bash
pip install rns
```
Se você estiver usando um sistema operacional que bloqueia a instalação normal de pacotes de usuário via `pip`, você pode restaurar o comportamento normal do `pip` editando o arquivo `~/.config/pip/pip.conf` e adicionando a seguinte diretiva na seção `[global]`:```text
[global]
break-system-packages = true
```
Como alternativa, você pode usar a ferramenta `pipx` para instalar o Reticulum em um ambiente isolado:```bash
pipx install rns
```
Quando iniciado pela primeira vez, o Reticulum criará um arquivo de configuração padrão, fornecendo conectividade básica a outros pares Reticulum que possam estar acessíveis localmente. O arquivo de configuração padrão contém alguns exemplos e referências para criar uma configuração mais complexa.

Se você tiver uma versão antiga do `pip` em seu sistema, talvez seja necessário atualizá-la primeiro com `pip install pip --upgrade`. Se você ainda não tem o `pip` instalado, pode instalá-lo usando o gerenciador de pacotes do seu sistema com `sudo apt install python3-pip` ou similar.

Para exemplos mais detalhados sobre como expandir a comunicação por diversos meios, como packet radio ou LoRa, portas seriais, ou por links IP rápidos e pela Internet usando as interfaces UDP e TCP, dê uma olhada na seção [Supported Interfaces](https://markqvist.github.io/Reticulum/manual/interfaces.html) do [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/).

## Utilitários Incluídos
O Reticulum inclui uma variedade de utilitários úteis para gerenciar suas redes, visualizar status e informações, e outras tarefas. Você pode ler mais sobre esses programas na seção [Included Utility Programs](https://markqvist.github.io/Reticulum/manual/using.html#included-utility-programs) do [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/).

- O daemon de sistema `rnsd` para executar o Reticulum como um serviço sempre disponível
- Um utilitário de status de interface chamado `rnstatus`, que exibe informações sobre as interfaces
- A ferramenta de consulta e gerenciamento de caminhos `rnpath`, permitindo visualizar e modificar tabelas de caminhos
- Uma ferramenta de diagnóstico chamada `rnprobe` para verificar a conectividade com destinos
- Um programa simples de transferência de arquivos chamado `rncp`, facilitando a transferência de arquivos entre sistemas
- O utilitário de gerenciamento de identidade e criptografia `rnid`, que permite gerenciar Identidades e criptografar/descriptografar arquivos
- O programa `rnsh` permite estabelecer uma sessão de shell totalmente interativa com sistemas remotos
- O programa de execução remota de comandos `rnx` permite executar comandos e programas simples e recuperar a saída de sistemas remotos
- O programa `rngit` fornece um nó Git completo com múltiplos repositórios para servir repositórios pelo Reticulum
- O auxiliar incluído `git-remote-rns` permite interagir com repositórios Git pelo Reticulum

Todas as ferramentas, incluindo `rnx` e `rncp`, funcionam de forma confiável e bem mesmo em links de largura de banda muito baixa, como LoRa ou Packet Radio. Para shells remotos completos pelo Reticulum, dê também uma olhada no programa [rnsh](https://github.com/acehoss/rnsh).

## Tipos de interface e dispositivos suportados

O Reticulum implementa uma variedade de tipos de interface generalizados que cobrem a maior parte do hardware de comunicação sobre o qual o Reticulum pode operar. Se o seu hardware não for suportado, é [simples implementar um módulo de interface personalizado](https://markqvist.github.io/Reticulum/manual/interfaces.html#custom-interfaces).

Contribuições de interfaces personalizadas são aceitas com gratidão, desde que sejam geralmente úteis e bem testadas em uso no mundo real.

Atualmente, as seguintes interfaces integradas são suportadas:

- Qualquer dispositivo Ethernet
- LoRa usando [RNode](https://unsigned.io/rnode/)
- TNCs de Packet Radio (com ou sem AX.25)
- Hardware e modems de software compatíveis com KISS
- Qualquer dispositivo com porta serial
- TCP sobre redes IP
- UDP sobre redes IP
- Programas externos via stdio ou pipes
- Hardware personalizado via stdio ou pipes

## Desempenho
*Todos os números de desempenho aqui assumem o `rnsd` em execução no modo Python totalmente interpretado, limitado a um único núcleo de CPU.*

O Reticulum tem como alvo um envelope de desempenho utilizável *muito* amplo, mas prioriza funcionalidade e desempenho em meios de baixa largura de banda. O objetivo é fornecer um envelope de desempenho dinâmico de 100 bits por segundo a 10 gigabits por segundo em hardware normal.

Atualmente, o envelope de desempenho utilizável em rede é de aproximadamente 150 bits por segundo a 1 gigabit por segundo em hardware modesto. O desempenho no mundo real variará amplamente com a velocidade do seu sistema, disponibilidade de aceleração criptográfica por hardware e outros fatores.

A taxa de transferência bruta de roteamento para um nó de transporte hospedado em um Raspberry Pi 5 é de aproximadamente 5 gigabits por segundo. Sistemas com aceleração criptográfica por hardware moderna podem atingir taxa de transferência de transporte de 15 gigabits por segundo e mais.

Embora a implementação de referência seja perfeitamente capaz de atingir 100+ Gbps, utilizando múltiplos núcleos de CPU e transporte vetorizado, o desempenho além do nível atual não é altamente priorizado, já que o RNS já é capaz de saturar a largura de banda disponível do meio físico em quase todas as situações do mundo real.

Os objetivos principais do RNS são *confiabilidade*, *correção*, *segurança*, *gerenciamento adequado de tráfego* e *desempenho realmente prático*, não "benchmarks" vazios no papel com pouca ou nenhuma relevância para a usabilidade no mundo real.

Todos os mantenedores de implementações alternativas são *fortemente* encorajados a adotar uma abordagem semelhante, e especialmente a focar em fazer suas implementações funcionarem de forma adequada e confiável antes de publicar alegações de desempenho empiricamente duvidosas ou factualmente incorretas.

## Status Atual
Todos os recursos principais do protocolo estão implementados e funcionando, mas adições provavelmente ocorrerão à medida que o uso no mundo real for explorado e compreendido. A API e o formato de transmissão podem ser considerados estáveis.

## Dependências
A instalação do pacote padrão `rns` requer apenas duas dependências externas, listadas abaixo. Quase todos os sistemas e distribuições têm pacotes prontamente disponíveis para essas dependências, e quando o pacote `rns` é instalado com `pip`, elas também serão baixadas e instaladas.

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

Em sistemas mais incomuns, e em alguns casos raros, pode não ser possível instalar ou até mesmo compilar um ou mais dos módulos acima. Em tais situações, você pode usar o pacote `rnspure` em vez disso, que não requer dependências externas para instalação. Observe que o conteúdo dos pacotes `rns` e `rnspure` é *idêntico*. A única diferença é que o pacote `rnspure` não lista nenhuma dependência necessária para instalação.

Independentemente de como o Reticulum é instalado e iniciado, ele carregará dependências externas apenas se elas forem *necessárias* e *estiverem disponíveis*. Se, por exemplo, você quiser usar o Reticulum em um sistema que não suporta [pyserial](https://github.com/pyserial/pyserial), é perfeitamente possível fazê-lo usando o pacote `rnspure`, mas o Reticulum não poderá usar interfaces baseadas em serial. Todos os outros módulos disponíveis ainda serão carregados quando necessário.

**Atenção!** Se você usar o pacote `rnspure` para executar o Reticulum em sistemas que não suportam [PyCA/cryptography](https://github.com/pyca/cryptography), é importante que você leia e entenda a seção [Cryptographic Primitives](#cryptographic-primitives) deste documento.

## Inicializando a Conectividade

O Reticulum não é um serviço ao qual você se inscreve, nem é uma única rede global à qual você "se junta". O Reticulum fornece funcionalidade para descobrir interfaces públicas disponíveis pela própria rede, e a comunidade mais ampla forneceu vários diretórios de pontos de entrada disponíveis publicamente para inicializar a conectividade.

Para aprender como estabelecer conectividade inicial pelo Reticulum, leia a seção [Bootstrapping Connectivity](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) do manual.

Se você já tem uma ideia geral de como isso funciona, pode usar sites mantidos pela comunidade, como [directory.rns.recipes](https://directory.rns.recipes/) e [rmap.world](https://rmap.world), para encontrar definições de interface para conectividade inicial com o backbone distribuído global do Reticulum.

## Testnet Pública
***Importante!** Historicamente, uma testnet voltada para desenvolvedores foi disponibilizada pelo próprio projeto Reticulum. À medida que a quantidade de nós e pontos de entrada globais do Reticulum cresceu para uma quantidade substancial, esta testnet pública, incluindo o ponto de entrada Amsterdam Testnet, foi agora desativada. Se você ainda tem instâncias que dependiam deste ponto de entrada para conectividade, faça a transição para usar o backbone distribuído em vez disso. O Reticulum agora inclui um sistema completo de descoberta de interfaces em rede e inicialização de conectividade. Leia a seção [Bootstrapping Connectivity](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) do manual para orientações.*

## Apoie o Reticulum
Para que isso seja possível, preciso da sua ajuda. Por favor, apoie o desenvolvimento contínuo de sistemas de comunicação abertos, livres e privados doando por um dos seguintes canais:

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

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

## Primitivas Criptográficas
O Reticulum utiliza um conjunto simples de primitivas criptográficas eficientes, fortes e bem testadas, com implementações amplamente disponíveis que podem ser usadas tanto em CPUs de uso geral quanto em microcontroladores.

Uma das principais considerações para escolher este conjunto específico de primitivas é que elas podem ser implementadas *com segurança* com relativamente poucas armadilhas, em praticamente todas as plataformas de computação atuais.

As primitivas listadas aqui **são autoritativas**. Qualquer coisa que afirme ser Reticulum, mas que não use estas primitivas exatas **não é** Reticulum, e possivelmente um clone intencionalmente comprometido ou enfraquecido. As primitivas utilizadas são:

- As Chaves de Identidade do Reticulum são conjuntos de chaves Curve25519 de 512 bits
  - Uma chave Ed25519 de 256 bits para assinaturas
  - Uma chave X22519 de 256 bits para trocas de chaves ECDH
- HKDF para derivação de chaves
- Os tokens criptografados são baseados na [especificação Fernet](https://github.com/fernet/spec/)
  - Chaves efêmeras derivadas de uma troca de chaves ECDH em Curve25519
  - HMAC usando SHA256 para autenticação de mensagens
  - Os IVs devem ser gerados através de `os.urandom()` ou melhor
  - AES-256 em modo CBC com preenchimento PKCS7
  - Sem campos de metadados de versão e timestamp do Fernet
- SHA-256
- SHA-512

Na configuração de instalação padrão, as primitivas `X25519`, `Ed25519` e `AES-256-CBC` são fornecidas pelo [OpenSSL](https://www.openssl.org/) (através do pacote [PyCA/cryptography](https://github.com/pyca/cryptography)). As funções de hash `SHA-256` e `SHA-512` são fornecidas pelo [hashlib](https://docs.python.org/3/library/hashlib.html) padrão do Python. As primitivas `HKDF`, `HMAC`, `Token` e a função de preenchimento `PKCS7` são sempre fornecidas pelas seguintes implementações internas:

- [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)


O Reticulum também inclui uma implementação completa de todas as primitivas necessárias em Python puro. Se o OpenSSL e o PyCA não estiverem disponíveis no sistema quando o Reticulum for iniciado, o Reticulum usará as primitivas internas em Python puro. Uma consequência trivial disso é o desempenho, sendo o backend OpenSSL *muito* mais rápido. A consequência mais importante, no entanto, é a potencial perda de segurança ao usar primitivas que não passaram pelo mesmo nível de escrutínio, testes e revisão que as do OpenSSL.

Observe que, por padrão, instalar o Reticulum **exigirá** que o OpenSSL e o PyCA também sejam instalados automaticamente, caso ainda não estejam disponíveis. Só é possível usar as primitivas em Python puro se este requisito for especificamente substituído pelo usuário, por exemplo, instalando o pacote `rnspure` em vez do pacote normal `rns`, ou executando diretamente a partir do código-fonte local.

Se você quiser usar as primitivas internas em Python puro, é **altamente aconselhável** que você tenha um bom entendimento dos riscos que isso representa e tome uma decisão informada sobre se esses riscos são aceitáveis para você.

Tendo estado em desenvolvimento por dez anos e em implantação mais ampla por cerca de cinco anos, o Reticulum é um software relativamente jovem e deve ser considerado como tal. Embora tenha sido cuidadosamente construído com as melhores práticas de criptografia em primeiro lugar, ainda pode haver bugs que comprometam a privacidade ou a segurança.

## Agradecimentos e Créditos
O Reticulum só pode existir por causa da montanha de trabalho Open Source sobre a qual foi construído, das contribuições de todos os envolvidos e de todos que apoiaram o projeto ao longo dos anos. A todos que ajudaram, muito obrigado.

Vários outros módulos e projetos fazem parte do Reticulum ou são usados por ele. Agradecimentos sinceros aos autores e contribuidores dos seguintes projetos:

- [PyCA/cryptography](https://github.com/pyca/cryptography), *Licença BSD*
- [Pure-25519](https://github.com/warner/python-pure25519) por [Brian Warner](https://github.com/warner), *Licença MIT*
- [Pysha2](https://github.com/thomdixon/pysha2) por [Thom Dixon](https://github.com/thomdixon), *Licença MIT*

---

[Read more](https://github.com/markqvist/reticulum)
Baixar ferramenta