Lançamento do NNCP 8.8.0, utilitários para transferência de arquivos/comandos no modo armazenar e encaminhar

O lançamento do Node-to-Node CoPy (NNCP), um conjunto de utilitários para transferência segura de arquivos, e-mails e comandos para execução no modo store-and-forward. Suporta operação em sistemas operacionais compatíveis com POSIX. Os utilitários são escritos em Go e distribuídos sob a licença GPLv3.

Os utilitários estão focados em ajudar a construir pequenas redes ponto a ponto amigo a amigo (dezenas de nós) com roteamento estático para transferências seguras de arquivos do tipo "dispare e esqueça", solicitações de arquivos, e-mail e solicitações de comando. Todos os pacotes transmitidos são criptografados (ponta a ponta) e autenticados explicitamente usando chaves públicas conhecidas de amigos. A criptografia Onion (como no Tor) é usada para todos os pacotes intermediários. Cada nó pode atuar como cliente e servidor e usar modelos de comportamento push e poll.

A diferença entre as soluções NNCP e UUCP e FTN (FidoNet Technology Network), além da criptografia e autenticação mencionadas acima, é o suporte pronto para uso para redes floppinet e computadores fisicamente isolados (air-gapped) de locais inseguros e redes públicas. O NNCP também apresenta fácil integração (no mesmo nível do UUCP) com servidores de e-mail atuais, como Postfix e Exim.

As possíveis áreas de aplicação do NNCP incluem a organização do envio/recebimento de correio para dispositivos sem uma conexão permanente com a Internet, a transferência de arquivos em condições de conexão de rede instável, a transferência segura de grandes quantidades de dados em mídia física, a criação de redes isoladas de transmissão de dados protegidas de Ataques MitM, contornando a censura e vigilância da rede. Como a chave de descriptografia está apenas nas mãos do destinatário, independentemente de o pacote ser entregue por rede ou por meio físico, terceiros não poderão ler o conteúdo, mesmo que o pacote seja interceptado. Por sua vez, a autenticação por assinatura digital não permite a criação de uma mensagem fictícia sob o disfarce de outro remetente.

Entre as novidades do NNCP 8.8.0, em relação às novidades anteriores (versão 5.0.0):

  • Em vez do hash BLAKE2b, o chamado MTH: Merkle Tree-based Hashing, que usa o hash BLAKE3, é usado para verificar a integridade dos arquivos. Isso permite calcular a integridade da parte criptografada do pacote durante o download, sem exigir que ele seja lido no futuro. Isto também permite paralelização ilimitada de verificações de integridade.
  • O novo formato de pacote criptografado é totalmente compatível com streaming quando o tamanho dos dados é desconhecido antecipadamente. A sinalização da conclusão da transferência, com tamanho autenticado, vai diretamente dentro do fluxo criptografado. Anteriormente, para saber o tamanho dos dados transferidos, era necessário salvá-los em um arquivo temporário. Portanto, o comando “nncp-exec” perdeu a opção “-use-tmp” por ser completamente desnecessário.
  • As funções BLAKE2b KDF e XOF foram substituídas por BLAKE3 para reduzir o número de primitivas criptográficas usadas e simplificar o código.
  • Agora é possível detectar outros nós da rede local através de multicasting para o endereço “ff02::4e4e:4350”.
  • Surgiram grupos multicast (análogos às conferências de eco FidoNet ou grupos de notícias Usenet), permitindo que um pacote envie dados para vários membros do grupo, onde cada um também retransmite o pacote para o restante dos signatários. A leitura de um pacote multicast requer conhecimento do par de chaves (você deve ser explicitamente um membro do grupo), mas a retransmissão pode ser feita por qualquer nó.
  • Agora há suporte para confirmação explícita de recebimento de pacotes. O remetente não pode excluir o pacote após o envio, aguardando até receber um pacote ACK especial do destinatário.
  • Suporte integrado para a rede de sobreposição Yggdrasil: daemons online podem atuar como participantes de rede independentes e completos, sem usar implementações Yggdrasil de terceiros e sem trabalhar totalmente com a pilha IP em uma interface de rede virtual.
  • Em vez de strings estruturadas (RFC 3339), o log usa entradas recfile, que podem ser usadas com os utilitários GNU Recutils.
  • Opcionalmente, os cabeçalhos de pacotes criptografados podem ser armazenados em arquivos separados no subdiretório "hdr/", acelerando significativamente as operações de recuperação de listas de pacotes em sistemas de arquivos com tamanhos de bloco grandes, como o ZFS. Anteriormente, a recuperação do cabeçalho do pacote exigia a leitura de apenas um bloco de 128 KB do disco por padrão.
  • A verificação de novos arquivos pode opcionalmente usar os subsistemas kqueue e inotify do kernel, fazendo menos chamadas de sistema.
  • Os utilitários mantêm menos arquivos abertos e os fecham e reabrem com menos frequência. Com um grande número de pacotes, anteriormente era possível encontrar uma limitação no número máximo de arquivos abertos.
  • Muitas equipes começaram a mostrar o andamento e a velocidade de operações como download/upload, cópia e processamento (lançamento) de pacotes.
  • O comando “nncp-file” pode enviar não apenas arquivos únicos, mas também diretórios, criando um arquivo pax com seu conteúdo instantaneamente.
  • Os utilitários online podem, opcionalmente, invocar imediatamente o lançamento de pacotes após o download de um pacote com sucesso, sem executar um daemon "nncp-toss" separado.
  • Uma chamada online para outro participante pode ocorrer opcionalmente não apenas quando um temporizador é acionado, mas também quando um pacote de saída aparece no diretório de spool.
  • Garante a operabilidade no sistema operacional NetBSD e OpenBSD, além do FreeBSD e GNU/Linux anteriormente suportados.
  • "nncp-daemon" é totalmente compatível com a interface UCSPI-TCP. Juntamente com a capacidade de registrar em um descritor de arquivo especificado (por exemplo, configurando "NNCPLOG=FD:4"), é totalmente amigável para execução em utilitários do tipo daemontools.
  • A montagem do projeto foi totalmente transferida para o sistema de refazer.

Fonte: opennet.ru

Adicionar um comentário