Cmpt361 Group Project
Our project has the following key features:
- Secure Communication: The client and server communicate using RSA encryption for the initial handshake and AES encryption for the message exchange. This ensures the confidentiality of the communication
- User Authentication: The servr verifies the client's username and password before allowing access to the email system.
- Email Functinoality: The client can send emails, view their inbox, and read individual emails. The emails are stored on the server's file system.
- Scalability: The server can handle multiple client connections simultaneously using a fork-based approach.
- Replay Attack Protection: Enhanced program versions (Server_enhanced.py + Client_enhanced.py) include protections against replay attacks using nonces and timestamps.
Our project consists of the following components:
- Server:
- Handles client connections and authentication
- Supports five simultaneous client connections
- Generates and manages symmetric keys for encryption.
- Saves and retrieves emails from the file system.
- Client:
- Establishes a connection with the server.
- Authenticates with the server using a username and password.
- Send emails, views the inbox, and reads individual emails.
- Handles file-based email content imports
- Key Generator:
- Generates RSA key pairs for the server and clients.
- Saves the keys in the appropriate directories
- Generates user credentials file and directory structures if necessary
- Basic Security (Original):
- RSA encryption for authentication
- AES encryption for messages exchange
- Password-based authentication
- Enhanced Security:
- Protection against replay attacks
- Nonce-based challenge-response implementation
- Timestamp verification
- Session tracking
- Run the 'key_generator.py' script to generate the necessary keys.
- Run either 'Server.py' or 'Server_enhanced.py' to start the email server.
- Run either 'Client.py'or 'Client_enhanced.py' to connect to the server and use the email system.
- Invalid credentials detection
- File not found for email imports
- Invalid email indexing
- Connection timeouts