¿Qué son los certificados digitales SSL?
Seguramente desconocerás el significado de SSL, así que por tanto vamos a comenzar por ahí, y para ello podemos decir que las siglas «SSL» Secure Sockets Layer (SSL; en español «capa de conexión segura») y cuyo sucesor es Transport Layer Security (TLS; en español «seguridad de la capa de transporte»), unos protocolos criptográficos que nos proporcionan comunicaciones seguras por una red, comúnmente Internet.
El protocolo SSL ha sido diseñado y propuesto por Netscape Communications Corporation y lleva funcionando desde el año 1996, fecha en la que se publicó su versión 3.0 y la actual base de desarrollo para TLS 1.0.
Proporciona sus servicios de seguridad cifrando los datos intercambiados entre el servidor y el cliente con un algoritmo de cifrado simétrico, típicamente el RC4 o IDEA, y cifrando la clave de sesión de RC4 o IDEA mediante un algoritmo de cifrado de clave pública, típicamente el RSA. La clave de sesión es la que se utiliza para cifrar los datos que vienen del y van al servidor seguro. Se genera una clave de sesión distinta para cada transacción, lo cual permite que aunque sea reventada por un atacante en una transacción dada, no sirva para descifrar futuras transacciones. ¿Te ha sonado un poco a Chino verdad?. Bueno, no desesperes, no entraremos en muchos detalles al respecto, y simplemente nos vamos a quedar con que se trata de un sistema de protección entre Servidor y Cliente (usuario de Internet o Red).
¿Cómo funciona?
Cuando el cliente pide al servidor seguro una comunicación segura, el servidor abre un puerto cifrado, gestionado por un software llamado Protocolo SSL Record, situado encima de la capa TCP. Será el software de alto nivel, Protocolo SSL Handshake, quien utilice el Protocolo SSL Record y el puerto abierto para comunicarse de forma segura con el cliente.
- El cliente envía el mensaje «hello» que lista las posibilidades criptográficas del cliente (clasificadas por orden de preferencia del cliente), como la versión de SSL, los grupos de programas de cifrado soportados por el cliente y los métodos de compresión de datos soportados por el cliente. El mensaje también contiene un número aleatorio de 28 bytes.
- El servidor responde con el mensaje «hello» del servidor que contiene el método criptográfico (conjunto de programas de cifrado) y el método de compresión de datos seleccionados por el servidor, el ID de sesión y otro número aleatorio.
- Nota: el cliente y el servidor deben dar soporte como mínimo a un conjunto de cifrado común; de lo contrario, el protocolo de enlace dará error. Generalmente, el servidor elige el conjunto de programas de cifrado común más potente.
- El servidor envía su certificado digital. (El servidor utiliza certificados digitales X.509 V3 con SSL.)
- Si el servidor utiliza SSL V3 y si la aplicación de servidor (por ejemplo, el servidor web) requiere un certificado digital para la autenticación de cliente, el servidor envía el mensaje «digital certificate request». En el mensaje «digital certificate request», el servidor envía una lista de los tipos de certificados digitales soportados y los nombres distinguidos de autoridades de certificación aceptables.
- El servidor envía el mensaje «hello done» de servidor y aguarda una respuesta del cliente.
- Al recibir el mensaje «hello done» del servidor, el cliente (el navegador web) verifica la validez del certificado digital del servidor y comprueba que los parámetros del mensaje «hello» del servidor son aceptables.
- Si el servidor ha solicitado un certificado digital del cliente, el cliente envía un certificado digital o, si no hay ningún certificado digital adecuado disponible, el cliente envía la alerta «no digital certificate». Esta alerta sólo es un aviso, pero la aplicación de servidor puede hacer que la sesión sea anómala si la autenticación del cliente es obligatoria.
- El cliente envía el mensaje «client key exchange». Este mensaje contiene el secreto pre-maestro, un número aleatorio de 46 bytes utilizado en la generación de las claves de cifrado simétrico y las claves de código de autenticación de mensajes (MAC), cifradas con la clave pública del servidor.
- Si el cliente ha enviado un certificado digital al servidor, el cliente envía un mensaje «digital certificate verify» firmado con la clave privada del cliente. Al verificar la firma de este mensaje, el servidor puede verificar explícitamente la propiedad del certificado digital del cliente.
- Nota: no es necesario un proceso adicional para verificar el certificado digital del servidor. Si el servidor no tiene la clave privada que pertenece al certificado digital, no podrá descifrar el secreto pre-maestro y crear las claves correctas para el algoritmo de cifrado simétrico y el protocolo de enlace dará error.
- El cliente utiliza una serie de operaciones criptográficas para convertir el secreto pre-maestro en un secreto maestro, del que se deriva todo el material de clave necesario para el cifrado y la autenticación de mensajes. A continuación, el cliente envía el mensaje «change cipher spec» para que el servidor conmute al conjunto de programas de cifrado recién negociado. El siguiente mensaje enviado por el cliente (mensaje «finished») es el primer mensaje cifrado con este método y estas claves de cifrado.
- El servidor responde con mensajes propios «change cipher spec» y «finished».
- El protocolo de enlace SSL finaliza y los datos de aplicación cifrados se pueden enviar.
¿Por qué es tan importante el certificado SSL?
El intercambio de datos personales, especialmente los datos bancarios y de clientes, debe estar protegido de accesos no autorizados y manipulación indebida. Con el Certificado SSL (Secure Sockets Layer) tus clientes estarán seguros de que no se exponen a ninguno de los riesgos que implica la transmisión de datos a través de una red abierta.
EL Certificado SSL es sinónimo de seguridad
- Mediante el proceso SSL básicamente se pueden intercambiar datos entre los servidores web y los visitantes de forma cifrada.
- Se puede reconocer una página con cifrado SSL porque en lugar de «http://» aparece «https://» en la barra de dirección del navegador. Así, el visitante de la página web sabe que la comunicación de la página web no está siendo interceptada por usuarios ajenos, a lo que además debemos añadir que el certificado SSL debe no estar vencido.
- La validez de un certificado SSL puede ser comprobada y confirmada por navegadores tales como Internet Explorer, Firefox o Chrome entre otros, y éstos nos avisarán de si dicho certificado SSL es inválido.
Ventajas del certificado SSL
- Protección «perfecta» de tus datos mediante un cifrado máximo de hasta 256 bits durante la conexión.
- Compatible con los principales navegadores: Internet Explorer, Safari, Opera o Chrome.
- Abarca todo el ámbito de Quick SSLPremium de GeoTrust, Inc., el proveedor líder en Certificados SSL.