Transport Layer Security

From Clinfowiki
Jump to: navigation, search

Transport Layer Security (TLS) is a cryptographic protocol that provides security for communications over the Internet. It is used to secure web browsing, email, instant messaging, and others.

Its predecessor is the SSL protocol, developed by Netscape.

The TLS protocol allows client/server applications to communicate across a network in a way designed to prevent eavesdropping and tampering.

A TLS client and server negotiate a stateful connection by using a handshaking procedure. [1] During this handshake, the client and server agree on various parameters used to establish the connection's security.

  • The handshake begins when a client connects to a TLS-enabled server requesting a secure connection and presents a list of supported CipherSuites (ciphers and hash functions).
  • From this list, the server picks the strongest cipher and hash function that it also supports and notifies the client of the decision.
  • The server sends back its identification in the form of a digital certificate. The certificate usually contains the server name, the trusted certificate authority (CA) and the server's public encryption key.
  • The client may contact the server that issued the certificate (the trusted CA as above) and confirm that the certificate is valid before proceeding.
  • In order to generate the session keys used for the secure connection, the client encrypts a random number with the server's public key and sends the result to the server. Only the server should be able to decrypt it, with its private key.
  • From the random number, both parties generate key material for encryption and decryption.

This concludes the handshake and begins the secured connection, which is encrypted and decrypted with the key material until the connection closes.

If any one of the above steps fails, the TLS handshake fails and the connection is not created.

References

  1. SSL/TLS in Detail". Microsoft TechNet. Updated July 31, 2003