En el ámbito de Internet, SSL (Secure Socket Layer, Capa de conexión segura) también llamados o , es un protocolo criptográfico de transferencia de datos que proporciona una comunicación segura en una red, generalmente en Internet. Las páginas web seguras son transferidas utilizando este protocolo, y se identifican porque contienen “https” en la URL.
Qué es SSL
SSL (Secure Socket Layer, capa de conexión segura), es un protocolo criptográfico que proporciona una comunicación segura en una red, generalmente en Internet.
SSL proporciona autenticación y privacidad entre extremos en Internet mediante el uso de criptografía. Usualmente sólo el servidor es autenticado y se garantiza su identidad, mientras que el cliente se mantiene sin autenticar.
Veamos las fases básicas de una conexión SSL:
- Negociación entre el cliente y el servidor para acordar el algoritmo criptográfico que va a ser utilizado en la comunicación. Para criptografía de clave pública los más utilizados son RSA, Diffie-Hellman, DSA o Fortezza. Para cifrado simétrico son RC2, RC4, IDEA, DES, Triple DES y AES. Como funciones hash MD5 o SHA.
- Intercambio de claves públicas y autenticación según certificados digitales.
- Cifrado del tráfico mediante cifrado simétrico.
El protocolo SSL fue desarrollado por Netscape. El protocolo SSL en su versión 3.0, tuvo como sucesor al TLS (Transport Layer Security), el cual agregó protección contra ataques específicos detectados.
Respecto al funcionamiento de SSL, este protocolo intercambia registros, de tal manera que cada registro tiene un campo content_type que especifica qué protocolo se está usando a nivel superior. Cuando inicia la conexión, el cliente envía y recibe varias estructuras:
- ClientHello: el cliente envía un mensaje en el que especifica una lista de cifrados, métodos para su comprensión y el protocolo SSL más alto permitido, junto con bytes aleatorios que serán usados más tarde en el Challenge de Cliente o Reto.
- ServerHello: el cliente recibe un mensaje desde el servidor, en el cual se le otorgan los parámetros de conexión en base a las opciones ofertadas por el cliente.
- Certificados: una vez conocidos los parámetros, cliente y servidor intercambian cerfificados, actualmente X.509.
- Clave secreta simétrica: cliente y servidor negocian una clave secreta (master secret) de la que derivan todos los datos de claves restantes.
En lo referente a medidas de seguridad, SSL/TSL dispone de diversas medidas:
- Numera todos los registross y usa el número de secuencia en el MAC.
- Utiliza un resumen de mensaje mejorado con una clave, sólo comprobable por el MAC.
- Protección contra múltiples ataques detectados y conocidos, como ataques man-in-the-middle o ataques basados en un degradado del protocolo a versiones previas o conjuntos de cifrados más débiles.
- El mensaje del final del protocolo (Finished), envía un hash de todos los datos vistos e intercambiados por ambas partes.
- Divide los datos de entrada y los procesa con algoritmos hash diferentes (MD5 y SHA), para prevenir que alguno de estos algoritmos se revelen vulnerables en el futuro.
En cuanto a sus aplicaciones, SSL puede proporcionar seguridad a cualquier protocolo que use TCP/IP, y se utiliza habitualmente como capa de seguridad con protocolos como HTTP, SMTP, NNTP o SIP.
También puede usarse SSL para tunelizar una red completa y crear una red privada virtual (VPN).