A
continuación reproducimos un artículo sobre la seguridad proporcionada por
la utilización de un Certificado SSL publicado en la
siguiente dirección de internet, dedicada a la seguridad de las
transacciones electrónicas: -
http://www.htmlweb.net/seguridad/ssl/ssl_5.html
¿Que es un Certificado de Seguridad SSL?
Secure Socket Layer es un sistema de protocolos de
carácter general diseñado en 1994 por la empresa Nestcape Communcations
Corporation, y está basado en la aplicación conjunta de Criptografía Simétrica,
Criptografía Asimétrica (de llave pública), certificados digitales y
firmas digitales para conseguir un canal o medio seguro de comunicación a
través de Internet. De los sistemas criptográficos simétricos, motor
principal de la encriptación de datos transferidos en la comunicación, se
aprovecha la rapidez de operación, mientras que los sistemas asimétricos
se usan para el intercambio seguro de las claves simétricas, consiguiendo
con ello resolver el problema de la Confidencialidad en la transmisión de
datos.
SSL implementa un protocolo de negociación para
establecer una comunicación segura a nivel de socked (nombre de máquina más
puerto), de forma transparente al usuario y a las aplicaciones que lo usan.
Actualmente es el estándar de comunicación segura
en los navegadores web más importantes (protocolo HTTP), como Nestcape
Navigator e Internet Explorer, y se espera que pronto se saquen versiones
para otras otros protocolos de la capa de Aplicación (correo, FTP, etc.).
La identidad del servidor web seguro (y a veces
también del usuario cliente) se consigue mediante el Certificado Digital
correspondiente, del que se comprueba su validez antes de iniciar el
intercambio de datos sensibles (Autenticación), mientras que de la
seguridad de Integridad de los datos intercambiados se encarga la Firma
Digital mediante funciones hash y la comprobación de resúmenes de todos
los datos enviados y recibidos.
Desde el punto de vista de su implementación en
los modelos de referencia OSI y TCP/IP, SSL se introduce como una especie de
nivel o capa adicional, situada entre la capa de Aplicación y la capa de
Transporte, sustituyendo los sockets del sistema operativo, lo que hace que
sea independiente de la aplicación que lo utilice, y se implementa
generalmente en el puerto 443. (NOTA: Los puertos son las intefaces que hay
entre las aplicaciones y la pila de protocolos TCP/IP del sistema
operativo).
SSL proporciona servicios de seguridad a la pila de
protocolos, encriptando los datos salientes de la capa de Aplicación antes
de que estos sean segmentados en la capa de Transporte y encapsulados y
enviados por las capas inferiores. Es más, también puede aplicar
algoritmos de compresión a los datos a enviar y fragmentar los bloques de
tamaño mayor a 214 bytes, volviéndolos a reensamblarlos en el receptor.
La versión más actual de SSL es la 3.0. que usa
los algoritmos simétricos de encriptación DES, TRIPLE DES, RC2, RC4 e
IDEA, el asimétrico RSA, la función hash MD5 y el algoritmo de firma SHA-1.
Los algoritmos, longitudes de clave y funciones
hash de resumen usados en SSL dependen del nivel de seguridad que se busque
o se permita, siendo los más habituales los siguientes:
* RSA + Triple DES de 168 bits + SHA-1: soportado
por las versiones 2.0 y 3.0 de SSL, es uno de los conjuntos más fuertes en
cuanto a seguridad, ya que son posibles 3.7 * 1050 claves simétricas
diferentes, por lo que es muy dificil de romper. Por ahora sólo está
permitido su uso en Estados Unidos, aplicándose sobre todo en transacciones
bancarias.
* RSA + RC4 de 128 bits + MD5: soportado por las
versiones 2.0 y 3.0 de SSL, permite 3.4 * 10 38 claves simétricas
diferentes que, aunque es un número inferior que el del caso anterior, da
la misma fortaleza al sistema. Análogamente, en teoría sólo se permite su
uso comercial en Estados Unidos, aunque actualmente ya es posible su
implementación en los navegadores más comunes, siendo usado por organismos
gubernamentales, grandes empresas y entidades bancarias.
* RSA + RC2 de 128 bits + MD5: soportado sólo por
SSL 2.0, permite 3.4 * 10 38 claves simétricas diferentes, y es de
fortaleza similar a los anteriores, aunque es más lento a la hora de
operar. Sólo se permite su uso comercial en Estados Unidos, aunque
actualmente ya es posible su implementación en los navegadores más
comunes.
* RSA + DES de 56 bits + SHA-1: soportado por las
versiones 2.0 y 3.0 de SSL, aunque es el caso de la versión 2.0 se suele
usar MD5 en vez de SHA-1. Es un sistema menos seguro que los anteriores,
permitiendo 7.2 * 10 16 claves simétricas diferentes, y es el que suelen
traer por defecto los navegadores web en la actualidad (en realidad son 48
bits para clave y 8 para comprobación de errores).
* RSA + RC4 de 40 bits + MD5: soportado por las
versiones 2.0 y 3.0 de SSL, ha sido el sistema más común permitido para
exportaciones fuera de Estados Unidos. Permite aproximadamente 1.1 * 10 12
claves simétricas diferentes, y una velocidad de proceso muy elevada,
aunque su seguridad es ya cuestionable con las técnicas de Criptoanálisis
actuales.
* RSA + RC2 de 40 bits + MD5: en todo análogo al
sistema anterior, aunque de velocidad de proceso bastante inferior.
* Sólo MD5: usado solamente para autentificar
mensajes y descubrir ataques a la integridad de los mismos. Se usa cuando el
navegador cliente y el servidor no tienen ningún sistema SSL común, lo que
hace imposible el establecimiento de una comunicación cifrada. No es
soportado por SSL 2.0, pero si por la versión 3.0.
La clave de encriptación simétrica es única y
diferente para cada sesión, por lo que si la comunicación falla y se debe
establecer una nueva sesión SSL, la contraseña simétrica se generará de
nuevo.
SSL proporciona cifrado de alto nivel de los datos
intecambiados (se cifran incluso las cabeceras HTTP), autenticación del
servidor (y si es necesario también del cliente) e integridad de los datos
recibidos.
Durante el proceso de comunicación segura SSL
existen dos estados fundamentales, el estado de sesión y el estado de
conexión. A cada sesión se le asigna un número identificador arbitrario,
elegido por el servidor, un método de compresión de datos, una serie de
algoritmos de encriptación y funciones hash, una clave secreta maestra de
48 bytes y un flag de nuevas conexiones, que indica si desde la sesión
actual se pueden establecer nuevas conexiones. Cada conexión incluye un número
secreto para el cliente y otro para el servidor, usados para calcular los
MAC de sus mensajes, una clave secreta de encriptación particular para el
cliente y otra para el servidor, unos vectores iniciales en el caso de
cifrado de datos en bloque y unos números de secuencia asociados a cada
mensaje.
¿Cómo podemos saber si una conexión se está
realizando mediante SSL? Generalmente los navegadores disponen de un icono
que lo indica, generalmente un candado en la parte inferior de la ventana.
Si el candado está abierto se trata de una conexión normal, y si está
cerrado de una conexión segura. Si hacemos doble click sobre el candado
cerrado nos aparecerá el Certificado Digital del servidor web seguro.
Además, las páginas que proceden de un servidor
SSL vienen implementadas mediante protocolo HTTP seguro, por lo que su
dirección, que veremos en la barra de direcciones del navegador, empezará
siempre por https, como por ejemplo:
https://www.discriminacionporedad.org
Por último, cuando estamos en una conexión segura
podemos ver el certificado del servidor acudiendo al menú
"Archivo" del navegador y pinchando en "Propiedades". En
la parte inferior tenemos una opción "Certificados", que nos
mostrará el del servidor actual.
|