1 puntos por GN⁺ 2024-08-16 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2024-08-16
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

    • No se ve de inmediato cómo dejar ese comentario. Si a mí me cuesta encontrarlo, a otras personas también podría pasarles, así que sería bueno que indiquen a dónde hay que ir
    • No encuentro la sección de comentarios. Ya estoy grande y la vista no me ayuda, pero no la veo, y el agente tampoco encuentra el enlace
    • Como LoRaWAN WiFi está en la banda de 900 MHz como parte de WiFi 6 o 7, espero que en el peor de los casos lo traten como excepción
  • 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 es muy flexible y también tiene un ecosistema de herramientas en desarrollo. NomadNet es solo uno de los mensajeros; también está Sideband, un cliente móvil (https://github.com/markqvist/Sideband), y Reticulum MeshChat, un cliente basado en navegador desarrollado por Liam Cottle (https://github.com/liamcottle/reticulum-meshchat)
      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
    • Me da risa que exista de verdad. Pensé que era una broma sobre la red de computadoras ficticia reticulum de la novela Anathem de Neal Stephenson
    • Estoy viendo la parte de tolerancia a la latencia del protocolo, y sería perfecto si también soportara sneakernet como medio de transporte
      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

  • 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

    • Es difícil comparar cosas tan distintas entre sí, pero voy a intentarlo.
      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?

    • “Nomad Network es software beta y debe considerarse como tal. Fue creado teniendo como máxima prioridad las mejores prácticas criptográficas, pero no ha recibido una auditoría de seguridad externa y bien podría tener bugs que comprometan la privacidad. Si quieres ayudar o contribuir a patrocinar una auditoría, ponte en contacto.”
    • En esta etapa, si no vas a pagarla ni liderar una campaña de recaudación, no me parece razonable esperar una auditoría formal para un producto no comercial.