Para proveer de una comunicacion segura para el serviddor web, se utiliza el
protocolo criptográfico SSL (en especial TLS 1.2, la actual vesrion de ese
protocolo) y un certificado X.509 de encriptacion asimétrica para autenticar
al servidor e intercambiar una llave simétrica, la cual es usada para cifrar la
comunicacion entre cliente y servidor.
Esta comunicacion inicia con el cliente enviando un mensaje ClientHello, en el
cual le notifica al servidor los algoritmos de cifrado, métodos de compresion
(funciones hash), y la version del protocolo SSL/TLS mas alta permitida.
El servidor le responde con un mensaje ServerHello, el cual elige los parametros
de conexion a utilizar a partir de as opciones dadas por el cliente.
Ademas el servidor envia su certificado al cliente, para que este lo verifique en
la Autoridad Certificadora correspondiente, y así obtenga la clave pública del
servidor, la cual utiliza el cliente para encriptar una clave secreta (simétrica)
que es enviada al server.
Este desencirpta esta clave con su clave privada, y así ambos tienen la misma
clave simétrica.
Al momento de finalizar esta transferencia de parámetros, el cliente envía un
mensaje ClientFinished. Finalmente, el servidor termina el handshake enviando
su mensaje ServerFinished al cliente.
Ahora, cliente y servidor pueden comunicarse con una clave simétrica que les
brinda seguridad.