The Secure File Transfer System is designed to facilitate secure file transfers between clients and a server. It allows clients to register in a database, exchange encryption keys, and securely send files to the server. The system operates in a client-server architecture and attempts to ensure data confidentiality and integrity during file transmission.
This is the final project I completed as part of the course Defensive System Programming (20937) at the Open University of Israel.
The project implements a partially secure file transfer protocol designed for transferring relatively small files. The server is written in Python 3.9, the client is written in C++11, and the database is managed with MySQL.
The full project specifications can be found here (Hebrew).
- Requirements
- Getting Started
- Features
- Communication Protocol
- Encryption
- Payload Content
- Vulnerabilities and Weaknesses
To successfully use and compile the Secure File Transfer System, you will need the following software and libraries installed:
-
Python: Ensure you have Python 3.9 or a compatible version installed on your system.
-
Crypto.Cipher: You will need the Crypto.Cipher library for encryption. You can install it using pip with the following command:
pip install pycryptodome
.