Release of NNCP 5.0.0, store-and-forward file/mail transfer utilities

Took place Release Node-to-Node copy (NNCP), a set of utilities for securely transferring files, e-mail, and commands for execution in store-and-forward. Supports work on POSIX-compliant operating systems. The utilities are written in the Go language and distributed under the GPLv3 license.

Utilities focused on helping build small peer-to-peer friend-to-friend networks (dozens of hosts) with static routing for secure fire-and-forget file transfers, file requests, email, and command requests. All transmitted packets encrypted (end-to-end) and are explicitly authenticated against known public keys of acquaintances. Onion (as in Tor) encryption is applied to all intermediate packets. Each node can act as both a client and a server and use both push and poll behaviors.

Distinction NNCP from Solutions UUCP ΠΈ FTN (FidoNet Technology Network), in addition to the aforementioned encryption and authentication, is support out of the box networks floppinet and computers physically isolated (air-gapped) from insecure local and public networks. NNCP also features easy integration (on a par with UUCP) with current mail servers such as Postfix and Exim.

Of the possible applications of NNCP noted organization of sending / receiving mail to devices without a permanent Internet connection, transferring files in conditions of an unstable network connection, secure transfer of very large amounts of data on physical media, creating isolated data transfer networks protected from MitM attacks, bypassing network censorship and surveillance. Since the decryption key is only with the recipient, regardless of how the packet is delivered over the network or through physical media, a third party cannot read the contents, even by intercepting the send. In turn, digital signature authentication does not allow you to create a fictitious shipment under the guise of another sender.

Among the innovations of NNCP 5.0.0, in comparison with previous news (version 3.3), it can be noted:

  • GPLv3+ project license changed to GPLv3-only due to distrust of SPO Foundation after ΡƒΡ…ΠΎΠ΄Π° Richard Stallman from it;
  • A full-fledged AEAD encryption ChaCha20-Poly135 128 KiB blocks. This allows you to immediately authenticate data in encrypted packets on the fly, instead of exiting with an error at the end of reading the entire ciphertext;
  • The configuration file format has changed from YAML on hjson. The library of the latter is much simpler and smaller in size, with the same convenience of a person working with the configuration;
  • zlib compression algorithm changed to zstandard: a significant increase in compression speed with a significantly higher efficiency;
  • nncp-call got the option to view available packages (-list) on the remote side, without downloading them. As well as the ability to selectively download packages (-pkts);
  • nncp-daemon got the -inetd option, allowing it to run under inetd or, for example, via SSH;
  • Online connections can be made not only directly via TCP, but also by calling external commands and communicating via stdin/stdout. For example: nncp-call gw.stargrave.org "|ssh gw.stargrave.org nncp-daemon -inetd";
  • Command umask friendliness (using extended permissions like 666/777) and the ability to globally set umask via configuration file, making it easy to use shared spool directory among several users;
  • Full use of the system Go modules.

Source: opennet.ru

Add a comment