A secure client–server socket communication system implemented in C#, featuring a custom Certificate Authority (CA), certificate-based authentication, encrypted messaging, and centralized user discovery.
This project demonstrates a complete secure communication workflow over TCP sockets. Clients authenticate using certificates issued by a custom CA, establish a secure session via RSA-based key exchange, and communicate using AES-encrypted messages.
- C#
- .NET
- TCP / UDP Sockets
- RSA & AES Cryptography
- JSON-based message protocol
- TCP-based client–server communication
- Custom Certificate Authority (CA) for identity verification
- RSA-based authentication and secure key exchange
- AES-encrypted session communication
- Centralized directory service for secure client discovery
- Real-time encrypted messaging
- The CA server issues and signs client certificates
- Clients register their network endpoints with the CA
- A centralized directory service enables secure user discovery
- Peer-to-peer communication is established only after authentication
- Session keys are generated dynamically for encrypted communication
- Start the Certificate Authority server.
- Launch client applications and discover the CA via UDP broadcast.
- Request and verify certificates from the CA.
- Register clients in the directory service.
- Establish a secure session and exchange encrypted messages.

