Ruby secure chat terminal

The Ruby secure chat terminal is a multi-threaded, SSL/TLS-encrypted chat system built using Ruby. It consists of a server that supports multiple clients, allowing them to communicate in real time. The communication between the server and clients is encrypted to ensure privacy and security.

Features:

  • SSL/TLS Encryption:
    Secure communication using strong encryption ciphers.
  • Multi-threaded:
    Each client is handled in a separate thread, allowing for simultaneous connections and real-time chat.
  • Command Interface:
    The server includes a command-line interface for server management, including listing connected clients.
  • Graceful Shutdown:
    The server and clients handle shutdowns and disconnections gracefully, ensuring a clean exit.
  • Logging:
    Errors and key events are logged for debugging and monitoring purposes.

Planned Improvements:

  • End-to-End Encryption:
    Implement end-to-end encryption to ensure that only the communicating users can read the messages.
  • Secure Storage for Certificates:
    Introduce a secure method to store the SSL/TLS certificates and private keys.
  • Integrate with FreeDB:
    Integrate with FreeDB to self host a list of friends to chat with and store authentication details.
  • Authentication:
    Add an authentication mechanism to ensure the locally hosted chat server.
  • Ngrok or Self-Hosting Testing:
    Incorporate tools like Ngrok to offer self-hosting capabilities to allow users to host the chat server themselves.
  • Notification to Friends When You Are Online:
    Add a signaling feature to check if friends are online.
  • Pending Messages When Offline:
    Implement a feature that stores messages sent to offline users, delivering them once the user reconnects, ensuring no messages are missed during disconnection periods.