These are sets of cryptographic protocols designed to enable secure communication in the internet, SSL being first introduced by Netscape in 1995 (in version 2.0, as version 1.0 was never oficially published due to design flaws it had). TLS took over in 1999 and is constantly under development, its version 1.3 is still in draft status.
Let us first take a glance from a distance on how the SSL/TLS secure the connection. At first, the client and server execute a handshake procedure, where the server first authenticates itself and then both parties generate a common, symmetric key for further communication. For reason clarified in section on load balancing it is worth mentioning that SSL/TLS communication initialization is in L5 OSI and works in L6 OSI layers, only leveraging lower OSI layers for transportation of encrypted messages.
Authentication
The authentication is based on X.509 certificates as described above, and the suites of algorithms available in each version of SSL/TLS are following:
Fig.4.4.5/1
Establish a symmetric key
After the server is authenticated, both communicating parites establish a symmetric key and further use it for encrypting the communication. The available block ciphers are:
Even though SSL/TLS standards offer such a wide suite of ciphers to be used for securing communication, some of them have been shown to be insecure. A good overview is presented in wiki-tls but the main facts are as follows:
Here is what happens during initialization phase of TLS session.
Fig. 4.4.5/2