Economía digital | Artículos | 01 JUL 1999

Seguridad SSL

Gonzalo Alvarez.
Es un hecho de todos conocido que Internet constituye un canal de comunicaciones inseguro, debido a que la información que circula a través de esta vasta red es fácilmente accesible en cualquier punto intermedio por un posible atacante. Los datos transmitidos entre dos nodos de Internet (por ejemplo su máquina y el servidor Web desde el que quiere descargar una página) se segmentan en pequeños paquetes que son encaminados a través de un número variable de nodos intermedios hasta que alcanzan su destino. En cualquiera de ellos es posible leer el contenido de los paquetes, destruirlo e incluso modificarlo, posibilitando todo tipo de ataques contra la confidencialidad y la integridad de sus datos. El símil más conocido y gráfico para ilustrar esta situación es el de la tarjeta postal, que puede ser fisgada por ejemplo por los empleados de correos o por los vecinos, por lo que no suele confiársele información comprometida. Ahora bien, ¿qué se puede hacer en el caso de que se necesite enviar datos confidenciales? Se utilizaría un sobre cerrado y lacrado. En Internet, la solución más comúnmente adoptada para construir el análogo digital de este sobre se basa en la utilización del protocolo SSL.

Qué es SSL
SSL (Secure Sockets Layer) fue diseñado y propuesto en 1994 por Netscape Communications Corporation junto con su primera versión del Navigator como un protocolo para dotar de seguridad a las sesiones de navegación a través de Internet. Sin embargo, no fue hasta su tercera versión, conocida como SSL v3.0 que alcanzó su madurez, superando los problemas de seguridad y las limitaciones de sus predecesores. En su estado actual proporciona los siguientes servicios:

Cifrado de datos: la información transferida, aunque caiga en manos de un atacante, será indescifrable, garantizando así la confidencialidad.
Autenticación de servidores: el usuario puede asegurarse de la identidad del servidor al que se conecta y al que posiblemente envíe información personal confidencial.
Integridad de mensajes: se impide que modificaciones intencionadas o accidentales en la información mientras viaja por Internet pasen inadvertidas.
Opcionalmente, autenticación de cliente: permite al servidor conocer la identidad del usuario, con el fin de decidir si puede acceder a ciertas áreas protegidas.

El rasgo que distingue a SSL de otros protocolos para comunicaciones seguras, como el hoy prácticamente extinto S-HTTP, es que se ubica en la pila OSI (ver. Figura. 1) entre los niveles de transporte (TCP/IP) y de aplicación (donde se encuentran los conocidos protocolos HTTP para Web, FTP para transferencia de ficheros, SMTP para correo electrónico, Telnet para conexión a máquinas remotas, etc.). Gracias a esta característica, SSL resulta muy flexible, ya que puede servir para securizar potencialmente otros servicios además de HTTP para Web, sin más que hacer pequeñas modificaciones en el programa que utilice el protocolo de transporte de datos TCP.
SSL proporciona sus servicios de seguridad sirviéndose de dos tecnologías de cifrado distintas: criptografía de clave pública (asimétrica) y criptografía de clave secreta (simétrica). Para el intercambio de los datos entre el servidor y el cliente, utiliza algoritmos de cifrado simétrico, que pueden elegirse típicamente entre DES, triple-DES, RC2, RC4 o IDEA. Para la autenticación y para el cifrando de la clave de sesión utilizada por los algoritmos anteriores, usa 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 una vez establecido el canal 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 los mensajes de futuras transacciones. Por su parte, MD5 o SHA se pueden usar como algoritmos de resumen digital (hash). Esta posibilidad de elegir entre tan amplia variedad de algoritmos dota a SSL de una gran flexibilidad criptográfica.

Cómo funciona SSL
Cuando un navegador solicita una página a un servidor seguro, ambos intercambian una serie de mensajes para negociar las mejoras de seguridad. Este protocolo sigue las siguientes fases (de manera muy resumida):

1. La fase Hola, usada para ponerse de acuerdo sobre el conjunto de algoritmos para garantizar la confidencialidad e integridad y para la autenticación mutua. El navegador le informa al servidor de los algoritmos que posee disponibles. Normalmente, se utilizarán los más fuertes que se puedan acordar entre las dos partes. En función de las posibilidades criptográficas del navegador, el servidor elegirá un conjunto u otro de algoritmos con una cierta longitud de claves.
2. La fase de autenticación, en la que el servidor envía al navegador su certificado x.509v3 que contiene su clave pública y solicita a su vez al cliente su certificado X.509v3 (sólo si la aplicación exige la autenticación de cliente).
3. La fase de producción de clave de sesión, en la que el cliente envía al servidor una clave maestra a partir de la cual se generará la clave de sesión para cifrar los datos intercambiados posteriormente mediante el algoritmo de cifrado simétrico acordado en la fase 1. El navegador envía cifrada esta clave maestra usando la clave pública del servidor que extrajo de su certificado en la fase 2. Más adelante, ambos generarán idénticas claves de sesión a partir de la clave maestra generada por el navegador.
Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios