- Nomad Network é uma ferramenta de comunicação mesh off-grid para criar uma plataforma de comunicação privada e resiliente que os próprios usuários possuem e controlam, sem cadastro, termos de uso, envio de dados ou autorizadores
- Ela é baseada em LXMF e Reticulum, oferecendo recursos de rede de mensagens criptografadas e roteamento de mensagens P2P, funcionando em diversos meios de comunicação, de packet radio a fibra óptica
- Pode ser usada sem internet pública, IP ou Ethernet, e operar sobre packet radio, LoRa e serial line; graças ao Reticulum, já houve uso comprovado até em links de rádio de 300bps
- Os recursos incluem mensagens criptografadas, comunicação mesh com configuração zero, armazenamento distribuído de mensagens criptografadas para usuários offline, nós de hospedagem de páginas e arquivos, navegador baseado em texto e cache de páginas
- Atualmente é um software beta e, embora tenha sido criado com foco em boas práticas criptográficas, não passou por auditoria externa de segurança e pode conter bugs que comprometam a privacidade
O modelo de comunicação oferecido pelo Nomad Network
- Nomad Network permite construir uma plataforma de comunicação privada e resiliente totalmente controlada e possuída pelos usuários
- Não exige cadastro, aceitação de termos, envio de dados, autorizadores ou gatekeepers
- O repositório é um espelho público, enquanto o desenvolvimento real está acontecendo em outro lugar
- Se você quiser um cliente LXMF com interface gráfica, pode usar o Sideband para Linux, Android e macOS
Tecnologias de base e meios de rede
- O Nomad Network é construído sobre LXMF e Reticulum
- Os dois projetos fornecem os recursos de rede de mensagens criptografadas e o roteamento de mensagens P2P dos quais o Nomad Network depende
- Essa base permite usar o programa em uma grande variedade de meios de comunicação, de packet radio a fibra óptica
- Funciona mesmo sem conexão com a internet pública, e redes IP ou Ethernet também não são requisitos
- Pode ser usado apenas com packet radio, LoRa e serial line
- Se necessário, redes isoladas podem ser conectadas por bridge à internet ou a Ethernet privada
- Também é possível criar uma rede que funcione inteiramente sobre a internet
- Como usa Reticulum, é eficiente mesmo em meios de largura de banda muito baixa, e já foi usado com sucesso em um link de rádio de 300bps
Principais recursos
- Fornece mensagens criptografadas em packet radio, LoRa, WiFi e outros meios suportados pelo Reticulum
- Suporta comunicação mesh com configuração zero e infraestrutura mínima
- Possui um armazenamento distribuído de mensagens criptografadas para guardar mensagens de usuários offline
- Nós conectáveis podem hospedar páginas e arquivos
- As páginas podem ser geradas no lado do nó com PHP, Python, bash etc.
- Inclui um navegador baseado em texto para interagir com o conteúdo dos nós
- Oferece uma linguagem de marcação fácil de usar e eficiente em largura de banda para criação de páginas
- Suporta cache de páginas no navegador
Instalação e execução
- A forma mais fácil de instalar é usando
pip
pip install nomadnet
nomadnet
nomadnet --daemon
nomadnet --help
- Em sistemas operacionais que bloqueiam a instalação de pacotes para usuários comuns, você pode restaurar o funcionamento do
pip adicionando a seguinte configuração à seção [global] de ~/.config/pip/pip.conf
[global]
break-system-packages = true
- Para instalar em um ambiente isolado, é possível usar
pipx
pipx install nomadnet
pipx install rns
pipx install lxmf
nomadnet
nomadnet --daemon
nomadnet --help
- Se esta for a primeira vez que você instala um programa com
pip no sistema, talvez seja necessário reiniciar o sistema e tentar novamente caso o comando de execução não seja reconhecido
- Ao executar o programa pela primeira vez, será exibida a Guide section com as informações necessárias para começar a usá-lo
Uso com packet radio, LoRa e testnet
- Para usar o Nomad Network em packet radio ou LoRa, a instalação do Reticulum precisa estar configurada para usar o TNC de packet radio ou o dispositivo LoRa correspondente
- Se quiser testar sem montar sua própria rede física, você pode se conectar pela internet à Unsigned.io RNS Testnet
- A testnet já tem alguma atividade de Nomad Network e LXMF
- Depois de conectar, deixe o
nomadnet em execução por um tempo para receber anúncios de outros nós que hospedam páginas ou serviços
- Nós da testnet aos quais você pode tentar se conectar diretamente:
abb3ebcd03cb2388a838e70c001291f9: Dublin Hub Testnet Node
ea6a715f814bdc37e56f80c34da6ad51: Frankfurt Hub Testnet Node
- Para explorar páginas de nós ainda desconhecidos, abra a caixa de diálogo de URL com
Ctrl+U na seção Network do programa, digite o endereço e depois selecione Go ou pressione Enter
- O NomadNet tentará descobrir e se conectar ao nó solicitado
Android e Docker
- No Android, é possível instalar o Nomad Network usando Termux, mas são necessários mais comandos do que em uma instalação comum de uma linha
- O procedimento está documentado em Android Installation no manual do Reticulum
- Depois de instalar o Reticulum, é possível instalar o Nomad Network com
pip
- Se você precisar de um app gráfico nativo para Android, pode usar o Sideband
- O Nomad Network é publicado automaticamente como imagem Docker no GitHub Packages
- As tags da imagem usam
master para o commit mais recente ou o número de uma versão específica
- Um exemplo de tag de versão é
0.2.0
docker pull ghcr.io/markqvist/nomadnet:master
docker run -it ghcr.io/markqvist/nomadnet:master --textui
docker run -i ghcr.io/markqvist/nomadnet:master --daemon --console
Ferramentas, extensões e roadmap
- O Nomad Network é uma plataforma flexível e extensível, com ferramentas fornecidas pela comunidade e extensões do lado do nó
- Solicitações de suporte, discussões e compartilhamento de ideias podem ser feitos nas páginas de discussões do Nomad Network
- Novos recursos importantes no roadmap de desenvolvimento incluem bulletins e discussion threads propagados por toda a rede, além de mapas colaborativos e compartilhamento de informações geoespaciais
- Itens de melhoria e correção incluem indicador de estado do link, atalhos para navegação em menus, compartilhamento de nós, correção de problemas com o editor interno em alguns sistemas operacionais e mecanismo de nova tentativa para mensagens com falha
Estado de segurança e pontos de atenção
- O Nomad Network deve ser considerado um software beta
- Embora tenha sido criado dando alta prioridade às boas práticas criptográficas, não passou por auditoria externa de segurança
- Pode conter bugs que comprometam a privacidade
- Há uma orientação para entrar em contato caso você queira ajudar com auditorias ou patrocinar esse trabalho
1 comentários
Opiniões no Hacker News
Talvez não seja o caso se a NextNav ficar com uma grande parte da faixa ISM de 900 MHz: https://news.ycombinator.com/item?id=41226802
https://en.wikipedia.org/wiki/ISM_radio_band
É possível registrar comentários aqui: https://www.fcc.gov/ecfs/search/docket-detail/24-240
Há uma thread relacionada em andamento:
Mensagens privadas, seguras e incensuráveis por uma malha LoRa (2022) - https://news.ycombinator.com/item?id=41256623 - agosto de 2024, 21 comentários
A rede Reticulum subjacente que isto usa é bem interessante, porque oferece suporte a muitos meios de transporte, como packet radio
O Reticulum consegue funcionar em qualquer meio desde que haja uma taxa acima de 5 bits por segundo e uma MDU de 500 bytes. Além de funcionar sobre centenas de portadoras, como LoRa, BLE, packet radio e redes overlay como Tor ou I2P, essas portadoras também podem fazer parte da mesma rede
Fiz uma prova de conceito rápida rodando sobre rádio HF. Configurei dois nós a cerca de 144 km de distância, ambos usando um ICOM-7300 e um Raspberry Pi 5 para rodar um modem de software que recebe pacotes Reticulum e os envia por rádio: https://www.youtube.com/watch?v=blwNVumLujc
O nó 1 ficava ao ar livre e o nó 2 ficava em casa. No nó 2, configurei uma interface para o modem HF e outra interface conectada à testnet TCP, de modo que o nó 1 conseguia acessar todos os peers na testnet TCP
Também há um vídeo introdutório curto que explica os conceitos básicos do Reticulum: https://www.youtube.com/watch?v=q8ltLt5SK6A
Edit: não era isso. Parece ser configurado em nível global, não por link
O conceito é interessante, mas o problema é se comunicar com pessoas que usam dispositivos iOS/iPadOS. Em geral, por causa das restrições do sistema operacional, não é possível usar apps assim[1], e o efeito de rede torna isso muito difícil para a maioria das pessoas
[1] https://forums.developer.apple.com/forums/thread/685525
É claro que há problemas com execução em segundo plano, mas existem soluções possíveis, como rodar o Reticulum inteiramente no RNode, e há um trabalho relativamente ativo nisso
Não entendo como alguém pode digitar no teclado touchscreen de um dispositivo Android ou iOS e ainda sentir que a privacidade está garantida
Se quiser privacidade de verdade, seria preciso usar um teclado/terminal rodando código bare-metal para captura e exibição de texto, criptografia e transmissão dos pacotes criptografados, enviando blobs criptografados sobre um cliente Reticulum
Por exemplo, poderia ser serial com fio ou Bluetooth, e um MCU separado poderia cuidar da rede e do protocolo. O ponto central é executar código verificado, sem blobs binários, em bare-metal, e enviar apenas o payload criptografado para o nó de rede. Se possível, um link serial TTL entre o controlador do terminal e o controlador de rede seria uma boa opção
Fico curioso para saber como NomadNet/Reticulum se compara a Yggdrasil, IPFS, Nostr e Scuttlebutt
Scuttlebutt: Reticulum é uma pilha de rede que roteia dados em tempo real, não uma rede social descentralizada
Nostr: igual ao Scuttlebutt
IPFS: Reticulum não armazena dados, apenas os transmite. No entanto, alguns protocolos que rodam sobre Reticulum, como o LXMF, oferecem opcionalmente armazenamento temporário de mensagens
Yggdrasil é, entre os citados, o caso mais parecido com Reticulum, mas, numa busca rápida, não encontrei detalhes sobre como ele funciona. Atualmente, parece funcionar apenas sobre IPv6, usando em certa medida túneis IPv4; a diferença é que Reticulum funciona sobre qualquer coisa
Se houver interesse, recomendo ler pelo menos http://reticulum.network/manual/understanding.html para ver como o Reticulum funciona
Algumas anotações de usabilidade, feitas numa olhada rápida e talvez sem entender bem
Mostrar na frente, de um jeito que o usuário consiga compreender, o número usado como endereço da identidade é melhor do que a maioria. A forma como identidade e confiança são tratadas juntas na caixa de diálogo também parece relativamente compreensível. Ter categorias além de confiável/não confiável (desconhecido) é uma boa ideia, mas não é imediatamente intuitivo. O usuário precisa ser instruído sobre o que exatamente “trust” significa nesse contexto
O usuário não precisa saber que está sendo usado Curve25519; basta saber que algum tipo de criptografia foi estabelecido
Exibir o número de identidade em hexadecimal é a pior das bases possíveis. Decimal, que é mais familiar para identificação, ou base32, que é mais curta, seria melhor, e o número de identidade deveria ser mostrado de forma consistente com algum agrupamento útil. Por exemplo, 4 grupos de 5 dígitos
Ler isso me deixou muito empolgado. Construir uma rede mesh off-grid é a premissa central do meu romance de ficção científica 'Mesh': https://inkican.com/mesh-middle-grade-scifi-thriller/
Me lembra o Meshtastic, mas o Nomad parece ser para PC, enquanto o Meshtastic parece ser para microcontroladores
https://meshtastic.org/
Procurei, mas não consegui encontrar. Isso já passou por alguma auditoria?