Monday, July 25, 2005
SSL handshake process
- Client sends in a ClientHello message with the version number of SSL the browser uses and the ciphers and data compression methods it supports.
- Server acknowledges with a ServerHello message. This message contains a session ID and the ciphers and compression schemes that the server and client have in common.
- Server sends its public key encapsulated within its certificate
- Server concludes the negotiation with a ServerHelloDone message
- Client sends a ClientKeyExchange message that it created using the server's public key. It contains the session ID chosen by the client. This session ID is encrypted by the client using the server's public key.
- At this point both the server and the client send the ChangeCipherSpec message indicating to each other that they are ready for encrypted transmission
- Both send Finished messages containing the digest of the communication so far.
- Handshake complete. Secure session established.
Since the client initiates a communication, it is the clients responsibility of proposing a set of SSL options to use for the exchange.
This is the application layer security. You could be trying to login into your bank's site, or might be trying to purchase something from Amazon. This process happens everytime a new secure session needs to be established between your client (browser) and a server. Pretty much the entire ecommerce between end-users and online businesses depends upon this..
Copyright Anand Jain 2004, 2005. All rights