title: Client Server Authentication
body: <p>I am creating a client server communication based on Asynchronous Sockets, my client will send the username and password to the server then the server will replay whether the account is valid, so i want to secure this steps so no one could record the conversation and keep sending it to my client to achieve illegal entry to the secret data</p>
  
  <p>[The Question {Simplified}] How to securely authenticate the client to the server ... ?</p>
  
  <p>[NOTE] I know SSL but i cant afford paying for a certificate so i need a free alternative to provide secure communication between my client and server.</p>