NetCrypt is a small Open Source tool providing authentication, confidentiality and integrity validation while still maintaining top-notch performance and transfer speed between machines. No public key distribution is required: NetCrypt is designed to use a symmetric passphrase with a strong key-derivation-function.
Have you ever wanted to quickly copy files or devices between different machines over the network?
You can use tools like netcat. However, netcat transmision is insecure and doesn't provide any kind of authentication or confidentiality.
One might additionally use the OpenSsl enc cmdline utility to provide confidentiality,
but that does not support authenticated encryption and the transmission happens without integrity validation.
Using OpenSSH provides all that, but unfortunately, SSH and SFTP is unbearably slow when using a secure cipher.
NetCrypt seeks to fulfill all those requirements.
In it's default configuration, it uses the AES-256-GCM cipher with a PBKDF2 key iteration count of 32000 rounds.
export NETCRYPT_PASSPHRASE="yourPassphrase" # Listen on incoming connections on port 9000, serve connectin clients the file 'input.txt' netcrypt -l 9000 -i input.txt # Connect to localhost port 9000, store contents in output.txt netcrypt -h localhost -p 9000 -o output.txt
You can also copy entire directories using tar (bzip2 compressed):
tar -cj . | netcrypt -l 9000 netcrypt -h localhost -p 9000 | tar -xjDuring the transfer, you will see a nice progress bar showing the transfer speed:
80.6% done, 56.495 MB/s, Bytes: 118479039 / 146996326, Time: 2.02 sTo generate a random passphrase, you might use the --genpass option.
NetCrypt is licensed under GPL 2.
See the LICENSE file in the project root folder.
- Jan-Philip Stecker