The objective of this project is to introduce you to cryptographic tools via the implementation of a secure file transfer protocol. Your implementation will be similar to and a subset of a very popular tool used in Apple devices, called AirDrop. During the process, you will practice many cryptographic and cybersecurity concepts such as symmetric and asymmetric cryptography, digital certificates, public key infrastructure, mutual authentication, non-repudiation, confidentiality, integrity protection and password security.
Secure file transfer can be useful in many different scenarios, e.g., uploading source code, transmitting configuration files, transmitting sensitive banking information. For this project, we’ll focus on one scenario — how can we securely transfer a file to another person’s computer who is in our contact list and on the same local network (wired or wireless)?
The project will be implemented as a command-line tool. We'll call the application SecureDrop and the executable secure_drop. For the sake of simplicity, the focus will be on the Linux ecosystem. The Linux VM will be used for all the tests.