- Nomad Network es una herramienta de comunicación mesh fuera de la red para crear una plataforma de comunicación privada y resiliente que los usuarios poseen y controlan directamente, sin registros, términos y condiciones, entrega de datos ni aprobadores de permisos
- Está basada en LXMF y Reticulum, y ofrece funciones de red mesh cifrada y enrutamiento de mensajes P2P, por lo que funciona sobre diversos medios de comunicación, desde packet radio hasta fibra óptica
- Puede usarse sin Internet pública, IP ni Ethernet, y operar sobre packet radio, LoRa y serial line; gracias a Reticulum, ya se ha usado incluso en enlaces de radio de 300 bps
- Sus funciones incluyen mensajería cifrada, comunicación mesh sin configuración, almacenamiento distribuido y cifrado de mensajes para usuarios offline, nodos de hosting de páginas y archivos, navegador basado en texto y caché de páginas
- Actualmente es software beta; fue creado teniendo en cuenta buenas prácticas criptográficas, pero no ha recibido una auditoría de seguridad externa y podría contener bugs que comprometan la privacidad
Modelo de comunicación que ofrece Nomad Network
- Nomad Network permite construir una plataforma de comunicación privada y resiliente que el usuario controla y posee por completo
- No requiere registro, aceptación de términos, entrega de datos, aprobadores de permisos ni gatekeepers
- El repositorio es un mirror público; el desarrollo real se realiza en otro lugar
- Si se quiere un cliente LXMF con interfaz gráfica de usuario, se puede usar Sideband para Linux, Android y macOS
Tecnologías base y medios de red
- Nomad Network está construido sobre LXMF y Reticulum
- Ambos proyectos proporcionan las funciones de red mesh cifrada y el enrutamiento de mensajes P2P de los que depende Nomad Network
- Gracias a esta base, el programa puede usarse sobre una variedad muy amplia de medios de comunicación, desde packet radio hasta fibra óptica
- Funciona incluso sin conexión a Internet pública, y una red IP o Ethernet tampoco es un requisito indispensable
- Puede usarse solo con packet radio, LoRa o serial line
- Si hace falta, las redes aisladas pueden puentearse hacia Internet o una Ethernet privada
- También se pueden crear redes que funcionen completamente sobre Internet
- Como usa Reticulum, es eficiente incluso en medios con ancho de banda muy bajo, y se ha usado con éxito en enlaces de radio de 300 bps
Funciones principales
- Ofrece mensajería cifrada sobre packet radio, LoRa, WiFi y otros medios compatibles con Reticulum
- Soporta comunicación mesh con cero configuración e infraestructura mínima
- Incluye un almacenamiento distribuido y cifrado de mensajes que guarda mensajes para usuarios offline
- Los nodos alcanzables pueden alojar páginas y archivos
- Los nodos pueden generar páginas con PHP, Python, bash, etc.
- Incorpora un navegador basado en texto para interactuar con el contenido de los nodos
- Ofrece un lenguaje de marcado fácil de usar y eficiente en ancho de banda para escribir páginas
- Soporta caché de páginas en el navegador
Instalación y ejecución
- La forma más sencilla de instalarlo es usar
pip
pip install nomadnet
nomadnet
nomadnet --daemon
nomadnet --help
- En sistemas operativos que bloquean la instalación de paquetes para el usuario común, se puede restaurar el comportamiento de
pip agregando la siguiente configuración en la sección [global] de ~/.config/pip/pip.conf
[global]
break-system-packages = true
- Para instalarlo en un entorno aislado, se puede usar
pipx
pipx install nomadnet
pipx install rns
pipx install lxmf
nomadnet
nomadnet --daemon
nomadnet --help
- Si es la primera vez que se instala un programa con
pip en el sistema y el comando de ejecución no se reconoce, puede que sea necesario reiniciar el sistema y volver a intentarlo
- Al ejecutar el programa por primera vez, se muestra una Guide section con la información necesaria para empezar a usarlo
Uso de packet radio, LoRa y testnet
- Para usar Nomad Network sobre packet radio o LoRa, la instalación de Reticulum debe configurarse para usar el TNC de packet radio o el dispositivo LoRa correspondiente
- Para probarlo sin crear una red física propia, se puede conectar a la Unsigned.io RNS Testnet a través de Internet
- En la testnet ya hay algo de actividad de Nomad Network y LXMF
- Después de conectarse, se puede ejecutar
nomadnet durante un tiempo para recibir anuncios de otros nodos que alojan páginas o servicios
- Nodos de la testnet a los que se puede intentar conectar directamente:
abb3ebcd03cb2388a838e70c001291f9: Dublin Hub Testnet Node
ea6a715f814bdc37e56f80c34da6ad51: Frankfurt Hub Testnet Node
- Para explorar páginas de nodos que aún no se conocen, en la sección
Network del programa se puede abrir el cuadro de diálogo de URL con Ctrl+U, ingresar la dirección y luego elegir Go o presionar Enter
- NomadNet intentará descubrir el nodo solicitado y conectarse a él
Android y Docker
- En Android se puede instalar Nomad Network usando Termux, pero requiere más comandos que la instalación típica de una sola línea
- El procedimiento está documentado en Android Installation del Reticulum Manual
- Después de instalar Reticulum, se puede instalar Nomad Network con
pip
- Si se necesita una app gráfica nativa para Android, se puede usar Sideband
- Nomad Network se publica automáticamente como imagen Docker en GitHub Packages
- Las etiquetas de imagen tienen el formato
master para el commit más reciente o un número de versión de release específico
- Un ejemplo de etiqueta de versión es
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
Herramientas, extensiones y roadmap
- Nomad Network es una plataforma flexible y extensible, con herramientas aportadas por la comunidad y extensiones del lado del nodo
- Para pedir soporte, conversar o compartir ideas, se pueden usar las páginas de discusión de Nomad Network
- Entre las nuevas funciones principales del roadmap de desarrollo se incluyen boletines y hilos de discusión propagados por toda la red, además de mapas colaborativos e intercambio de información geoespacial
- Entre las mejoras y correcciones figuran indicadores de estado de enlaces, atajos para navegación por menús, compartir nodos, correcciones a problemas del editor interno en algunos sistemas operativos y un mecanismo para reintentar mensajes fallidos
Estado de seguridad y advertencias
- Nomad Network debe considerarse software beta
- Aunque fue creado dando mucha prioridad a las buenas prácticas criptográficas, no ha recibido una auditoría de seguridad externa
- Podría contener bugs que comprometan la privacidad
- Se indica que quienes quieran ayudar con una auditoría o patrocinarla pueden ponerse en contacto
1 comentarios
Opiniones en Hacker News
Puede que no sea así si NextNav se queda con una gran parte de la banda ISM de 900 MHz: https://news.ycombinator.com/item?id=41226802
https://en.wikipedia.org/wiki/ISM_radio_band
Aquí se pueden registrar comentarios: https://www.fcc.gov/ecfs/search/docket-detail/24-240
Hay un hilo relacionado en curso:
Private, Secure and Uncensorable Messaging over a LoRa Mesh (2022) - https://news.ycombinator.com/item?id=41256623 - agosto de 2024, 21 comentarios
La red Reticulum subyacente que usa esto es bastante interesante porque soporta muchos medios de transporte, como packet radio
Reticulum puede funcionar sobre cualquier medio siempre que tenga un rendimiento superior a 5 bits por segundo y una MDU de 500 bytes. No solo funciona sobre cientos de carriers como LoRa, BLE, packet radio y redes overlay como Tor o I2P, sino que esos carriers también pueden formar parte de la misma red
Hice una prueba de concepto rápida funcionando sobre radio HF. Configuré dos nodos separados por unos 144 km; ambos usaban un ICOM-7300 y una Raspberry Pi 5 para ejecutar un módem por software que recibía paquetes Reticulum y los enviaba por radio: https://www.youtube.com/watch?v=blwNVumLujc
El nodo 1 estaba al aire libre y el nodo 2 estaba en casa. En el nodo 2 configuré una interfaz para el módem HF y otra interfaz conectada a la testnet TCP, por lo que el nodo 1 podía acceder a todos los peers de la testnet TCP
También hay un video introductorio corto que explica los conceptos básicos de Reticulum: https://www.youtube.com/watch?v=q8ltLt5SK6A
Edit: no era así. Parece que se configura a nivel global, no por enlace
El concepto es interesante, pero el problema es comunicarse con personas que usan dispositivos iOS/iPadOS. Normalmente no se pueden usar apps así por restricciones del sistema operativo[1], y por el efecto de red eso hace que sea muy difícil que la mayoría de la gente las use
[1] https://forums.developer.apple.com/forums/thread/685525
Por supuesto hay problemas con la ejecución en segundo plano, pero hay posibles soluciones, como ejecutar Reticulum completamente en RNode, y se está trabajando en ello con cierta actividad
No entiendo cómo alguien puede sentir que su privacidad está garantizada mientras escribe en el teclado táctil de un dispositivo Android o iOS
Si quieres privacidad de verdad, tendrías que usar un teclado/terminal que ejecute código bare-metal para capturar y mostrar texto, cifrar y transmitir paquetes cifrados, enviando blobs cifrados sobre un cliente Reticulum
Por ejemplo, podría ser por serial cableado o Bluetooth, y también se podría usar un MCU separado para manejar la red y el protocolo. La clave es ejecutar en bare-metal código verificado sin blobs binarios y enviar al nodo de red solo payloads cifrados. Si es posible, lo ideal sería un enlace serial TTL entre el controlador de terminal y el controlador de red
Me da curiosidad cómo se comparan NomadNet/Reticulum con Yggdrasil, IPFS, Nostr y Scuttlebutt
Scuttlebutt: Reticulum es un stack de red que enruta datos en tiempo real, no una red social descentralizada.
Nostr: igual que Scuttlebutt.
IPFS: Reticulum no almacena datos, los transmite. Sin embargo, algunos protocolos que funcionan sobre Reticulum, como LXMF, ofrecen opcionalmente almacenamiento temporal de mensajes.
Yggdrasil es, de los mencionados, el caso más parecido a Reticulum, pero con una búsqueda rápida no encontré detalles sobre cómo funciona. Por ahora parece operar solo sobre IPv6, usando en cierta medida túneles IPv4, mientras que Reticulum se diferencia en que funciona sobre prácticamente cualquier cosa.
Si te interesa, te recomiendo leer al menos http://reticulum.network/manual/understanding.html para ver cómo funciona Reticulum.
Notas rápidas sobre usabilidad, quizá desde una mirada algo desinformada.
Mostrar al frente el número que se usa como dirección de identidad de una forma que el usuario pueda entender es mejor que en la mayoría de los casos. También parece relativamente comprensible la forma en que se tratan juntos esa identidad y la confianza en el cuadro de diálogo. Tener categorías además de confiable/no confiable (desconocido) es una buena idea, pero no se entiende de inmediato. Hay que educar al usuario sobre qué significa exactamente "trust" en este contexto.
El usuario no necesita saber que se está usando Curve25519; solo necesita saber que se estableció algún tipo de cifrado.
Mostrar el número de identidad en hexadecimal es la peor de las bases posibles. Para identificación conviene más el decimal, que resulta familiar, o un base32 más corto, y el número de identidad debería mostrarse de manera consistente con una agrupación útil. Por ejemplo, 4 grupos de 5 dígitos.
Leer esto me entusiasma muchísimo. Construir una red mesh off-grid es la premisa central de mi novela de ciencia ficción 'Mesh': https://inkican.com/mesh-middle-grade-scifi-thriller/
Me recuerda a Meshtastic, pero Nomad parece ser para PC y Meshtastic para microcontroladores.
https://meshtastic.org/
Busqué, pero no lo encontré. ¿Esto ha sido auditado alguna vez?