This project implements a secure messaging application that integrates MQTT for real-time communication and RSA encryption to ensure the privacy and security of messages. The application includes a user-friendly graphical interface (GUI) to facilitate secure communication between multiple clients.
- End-to-End Encryption: Ensures secure message delivery using RSA encryption.
- Real-Time Communication: Utilizes the MQTT protocol for fast and efficient message delivery.
- RSA Key Management:
- Each client generates its own RSA key pair.
- Private keys are stored locally for enhanced security.
- Public keys are shared with other clients for encrypted communication.
- Graphical User Interface (GUI):
- Allows users to generate RSA keys, send encrypted messages, and receive/decrypt incoming messages.
- Displays chat history for each client.
- Error Handling: Includes validation for message delivery and recipient errors.
- Programming Language: Python
- Messaging Protocol: MQTT (with
paho-mqttlibrary) - Encryption: RSA (with the
cryptographypackage) - GUI Framework: Tkinter for cross-platform graphical user interfaces.
- Key Generation:
- Each client generates its own RSA key pair.
- Public keys are exchanged among clients.
- Message Encryption:
- Messages are encrypted using the recipient's public key.
- Only the recipient can decrypt the message with their private key.
- Message Transmission:
- Messages are sent over MQTT topics.
- Each client subscribes to its designated topic to receive messages.
- Message Decryption:
- Received messages are decrypted using the recipient's private key.
- Clone the repository:
git clone https://github.com/username/secure-mqtt-rsa cd secure-mqtt-rsa
Install required dependencies: **pip install paho-mqtt cryptography
Run the application:
python client1.py python client2.py python client3.py python rsakey.py python display.py
Future Enhancements Add support for secure file sharing between clients. Introduce multi-factor authentication (MFA) for additional security. Expand the project to include voice and video communication.
Screenshots
(Include relevant screenshots of the GUI and message flow here)
