El lanzamiento de Node-to-Node CoPy (NNCP), un conjunto de utilidades para transferir archivos, correo electrónico y comandos de forma segura para su ejecución en modo de almacenamiento y reenvío. Admite el funcionamiento en sistemas operativos compatibles con POSIX. Las utilidades están escritas en Go y distribuidas bajo la licencia GPLv3.
Estas utilidades están diseñadas para ayudar a construir pequeñas redes peer-to-peer (decenas de nodos) con enrutamiento estático para transferencias de archivos seguras, solicitudes de archivos, correo electrónico y solicitudes de ejecución de comandos. Todos los paquetes transmitidos se cifran de extremo a extremo y se autentican explícitamente mediante las claves públicas conocidas de los pares. El cifrado Onion (similar a Tor) se aplica a todos los paquetes intermedios. Cada nodo puede actuar como cliente y host. servidor y utilizar modelos de comportamiento tanto de inserción como de sondeo.
NNCP se diferencia de las soluciones UUCP y FTN (FidoNet Technology Network), además del cifrado y la autenticación ya mencionados, al ofrecer compatibilidad inmediata con redes de disquetes y computadoras aisladas físicamente (aisladas) de redes locales y públicas inseguras. NNCP también se integra fácilmente (como UUCP) con los servicios de correo electrónico actuales. servidores, como Postfix y Exim.
Las posibles áreas de aplicación de NNCP incluyen organizar el envío/recepción de correo a dispositivos sin una conexión permanente a Internet, transferir archivos en condiciones de conexión de red inestable, transferir de forma segura grandes cantidades de datos en medios físicos, crear redes de transmisión de datos aisladas protegidas de Ataques MitM, evitando la censura y vigilancia de la red. Dado que la clave de descifrado está únicamente en manos del destinatario, independientemente de si el paquete se entrega a través de una red o de un medio físico, un tercero no puede leer el contenido, incluso si el paquete es interceptado. A su vez, la autenticación de firma digital no permite crear un mensaje ficticio disfrazado de otro remitente.
Entre las novedades de NNCP 8.8.0, respecto a las novedades anteriores (versión 5.0.0):
- En lugar del hash BLAKE2b, para comprobar la integridad de los archivos se utiliza el llamado MTH: Merkle Tree-based Hashing, que utiliza el hash BLAKE3. Esto le permite calcular la integridad de la parte cifrada del paquete directamente durante la descarga, sin necesidad de leerlo en el futuro. Esto también permite una paralelización ilimitada de comprobaciones de integridad.
- El nuevo formato de paquete cifrado es completamente compatible con la transmisión cuando se desconoce de antemano el tamaño de los datos. La señalización de finalización de la transferencia, con un tamaño autenticado, va directamente dentro del flujo cifrado. Anteriormente, para conocer el tamaño de los datos transferidos, era necesario guardarlos en un archivo temporal. Entonces el comando “nncp-exec” ha perdido la opción “-use-tmp” porque es completamente innecesario.
- Las funciones BLAKE2b KDF y XOF han sido reemplazadas por BLAKE3 para reducir la cantidad de primitivas criptográficas utilizadas y simplificar el código.
- Ahora es posible detectar otros nodos en la red local mediante multidifusión a la dirección “ff02::4e4e:4350”.
- Han aparecido grupos de multidifusión (análogos a las conferencias de eco de FidoNet o los grupos de noticias de Usenet), que permiten que un paquete envíe datos a varios miembros del grupo, donde cada uno también transmite el paquete al resto de los firmantes. La lectura de un paquete de multidifusión requiere conocimiento del par de claves (debe ser miembro explícitamente del grupo), pero cualquier nodo puede realizar la retransmisión.
- Ahora se admite la confirmación explícita de la recepción del paquete. El remitente no puede eliminar el paquete después del envío y esperar hasta recibir un paquete ACK especial del receptor.
- Soporte integrado para la red superpuesta de Yggdrasil: los demonios en línea pueden actuar como participantes de red independientes y completos, sin utilizar implementaciones de Yggdrasil de terceros y sin trabajar completamente con la pila de IP en una interfaz de red virtual.
- En lugar de cadenas estructuradas (RFC 3339), el registro utiliza entradas de archivo rec, que se pueden utilizar con las utilidades GNU Recutils.
- Opcionalmente, los encabezados de paquetes cifrados se pueden almacenar en archivos separados en el subdirectorio "hdr/", lo que acelera significativamente las operaciones de recuperación de listas de paquetes en sistemas de archivos con tamaños de bloques grandes, como ZFS. Anteriormente, para recuperar el encabezado del paquete era necesario leer solo un bloque de 128 KB del disco de forma predeterminada.
- La comprobación de archivos nuevos puede utilizar opcionalmente kqueue e inotificar los subsistemas del kernel, realizando menos llamadas al sistema.
- Las utilidades mantienen menos archivos abiertos y los cierran y vuelven a abrir con menos frecuencia. Con una gran cantidad de paquetes, antes era posible encontrarse con una limitación en la cantidad máxima de archivos abiertos.
- Muchos equipos comenzaron a mostrar el progreso y la velocidad de operaciones como descargar/cargar, copiar y procesar (tirar) paquetes.
- El comando "nncp-file" puede enviar no solo archivos individuales, sino también directorios, creando un archivo pax con su contenido sobre la marcha.
- Opcionalmente, las utilidades en línea pueden invocar inmediatamente el lanzamiento de paquetes después de que un paquete se haya descargado exitosamente, sin ejecutar un demonio "nncp-toss" separado.
- Opcionalmente, una llamada en línea a otro participante puede ocurrir no solo cuando se activa un temporizador, sino también cuando aparece un paquete saliente en el directorio de spool.
- Garantiza la operatividad bajo NetBSD y OpenBSD OS, además de FreeBSD y GNU/Linux previamente compatibles.
- "nncp-daemon" es totalmente compatible con la interfaz UCSPI-TCP. Junto con la capacidad de iniciar sesión en un descriptor de archivo específico (por ejemplo, configurando "NNCPLOG=FD:4"), es completamente amigable para ejecutar con utilidades similares a daemontools.
- El conjunto del proyecto se ha transferido completamente al sistema de rehacer.
Fuente: opennet.ru
