Secure chat application is developed using Java language and we used Eclipse IDE for creating Java Project. The application will be divided in to two basic modules.

Client Module

Client module will initiate a connection with the server. User has to pass Internet Protocol address and port of the server from the command line. Client module will read private key and root certificate information using JAVA API and then will start TLS handshake with the server. In the process of TLS handshaking authentication of the server and client will be done mutually, and there will be an agreement of cipher suite between client and server for secure the connection. The certificates will be generated using Certificate authority and Open SSL tools. These certificates are read from the directory where the class files are located (which is described in Certificate Generation Section). 

Server Module

Server application by default will run on 8003. But if the user specifies any specific port on the command line then server module will run on that port.  This module will also search for private key and root certificate where the server module class files are located then it will read this certificate information using JAVA API. This information will be useful for authenticating the clients and this module will listen for the client requests. When Client sends a request to server, the accept system call will return the new socket descriptor which is used to interact with the client in a secure manner.  The Server module is implemented as concurrent server.   Server module will decrypt information which is sent by client and it will encrypt the information which is sent to client using secret key generated during TLS handshake(which is described in ) and it will also calculates check sum using  Integrity algorithm which is specified  in the agreed cipher suite.

This Project Paper is written & submitted by Deepak V.