Protocolos de Seguridad: SSH y SSL
Protocolos de Seguridad: SSH y SSL
Finalmente una aclaración: una conexión de red implica una relación entre
ordenadores a muchos niveles: necesitamos una conexión física (cable, etc.)
necesitamos manejar los datos transportados; necesitamos un sistema de transporte;
necesitamos mostrar los datos. Normalmente los protocolos de red trabajan en
grupos, encargándose de aspectos parciales de la comunicación.
Los protocolos de IPsec actúan en la capa de red, la capa 3 del modelo OSI. Otros
protocolos de seguridad para Internet de uso extendido, como SSL, TLS (Transport
Layer Security) y SSH operan de la capa de transporte (capas OSI 4 a 7) hacia
arriba. Esto hace que IPsec sea más flexible, ya que puede ser utilizado para
proteger protocolos de la capa 4, incluyendo TCP y UDP, los protocolos de capa de
transporte más usados. IPsec tiene una ventaja sobre SSL y otros métodos que
operan en capas superiores. Para que una aplicación pueda usar IPsec no hay que
hacer ningún cambio, mientras que para usar SSL y otros protocolos de niveles
superiores, las aplicaciones tienen que modificar su código.
10
PPTP. (Point-To-Point Tunneling Protocol)
PPTP permite el intercambio seguro de datos de un cliente a un servidor formando
un Virtual Private Network (VPN ó red privada virtual), basado en una red de trabajo
vía TCP/IP. El punto fuerte del PPTP es su habilidad para proveer en la demanda,
multi-protocolo soporte existiendo una infraestructura de área de trabajo, como
INTERNET. Esta habilidad permitirá a una compañía usar Internet para establecer
una red privada virtual (VPN) sin el gasto de una línea alquilada.
Esta tecnología que hace posible el PPTP es una extensión del acceso remoto del
PPP (Point-to-Point-Protocol). La tecnología PPTP encapsula los paquetes ppp en
datagramas IP para su transmisión bajo redes basadas en TCP/IP. El PPTP es ahora
mismo un boceto de protocolo esperando por su estandarización. Las compañías
"involucradas" en el desarrollo del PPTP son: Microsoft, Ascend Communications,
3com / Primary Access, ECI Telematics y US Robotics.
11
1.4 Conceptos y características para establecer un túnel
de comunicación.
Los equipos informáticos que se encuentren dentro del túnel, mantienen una
dirección IP asignada por la red o por los usuarios, lo que hace a este túnel
completamente dependiente de la dirección IP de las máquinas que lo están
utilizando, para poder establecer una conexión puerto a puerto. Para alcanzar los
objetivos de seguridad y de confiabilidad que se plantean en un túnel es necesario
apelar a protocolos que se ocupen de la creación de un túnel, al cifrado y el
descifrado de los paquetes que son transmitidos.
De esta forma, el túnel es simplemente la ruta que toman los paquetes encapsulados
y cifrados, dentro de un paquete del mismo protocolo. Un atacante puede interceptar
los mensajes que viajen por el túnel, pero los datos encapsulados están cifrados y
solo pueden ser recuperados por el destinatario final. En el sistema de destino, el
mensaje encapsulado es extraído del paquete recibido, descifrado, y re direccionado
al servicio al que pertenece en el receptor.
Gracias a esto, una organización puede usar de forma segura una red pública para
comunicarse con sus usuarios, ya que los paquetes son cifrados antes de ser
enviados a través del “túnel”. Con el uso en modo túnel, el encabezado IP interno
(encapsulado) es cifrado, ocultando la identidad del destinatario y del origen del
tráfico.
12
Las características más importantes de los protocolos que soportan “tunneling” son
cifrado de datos, autenticación, autorización e integridad de datos; muchas de estas
características son posibles gracias al cifrado completo del paquete encapsulado.
Una distinción a destacar es el hecho de que un paquete esté encapsulado en otro
no implica que esté cifrado, tampoco lo inverso. De esta forma se obtienen distintos
beneficios que responden a necesidades y conveniencias específicas.
Autenticación de usuario.
Asignación de direcciones.
Compresión de datos.
Cifrado de datos.
Administración de llaves.
Soporte multiprotocolo.
Los protocolos se seguridad SSH y SSL cumplen con algunas de las características
mencionadas anteriormente para poder operar en modo túnel y de esta forma poder
utilizarlos para establecer túneles de comunicación, con características de seguridad
para la protección de la información. De esta forma al crear el canal de comunicación
se garantiza con políticas de seguridad la integridad de la información, dejando al
usuario la creación, su implementación y la gestión de las políticas de seguridad.
13
CAPITULO II. PROTOCOLOS SSH Y SSL.
La seguridad de la red es un gran negocio ya que las empresas luchan por proteger
su información con ciertos mecanismos como cortafuegos, establecer redes privadas
virtuales (VPNs), y cifrar los archivos y el canal por donde es transmitida esta. Sin
embargo, escondido de todo el bullicio, hay una modesta pero robusta solución que
muchas grandes empresas han perdido. Es confiable y razonablemente fácil de usar,
barata y disponible para la mayoría de los sistemas operativos de hoy.
Es SSH. Quien protege su red con un bajo costo, es una solución basada en
software para mantener los ojos curiosos lejos de los datos en una red. No resuelve
todos los problemas de privacidad y seguridad, pero elimina varios de ellos con
eficacia. Sus características principales son:
14
2.1.1 Concepto.
15
Figura 2.1 Arquitectura de SSH
Si es usuario de Unix, hay que pensar en SSH como una forma segura con los r-
comandos: rsh (shell remoto), rlogin (login remoto), y rcp (copia remota). De
hecho, el SSH original de Unix incluye comandos con nombres similares como
ssh, scp, y slogin as secure, drop-in reemplazo los r-commands. Se puede
finalmente deshacerse de los inseguros. rhosts y [Link] files (. A pesar de
esto SSH puede trabajar con ellos, si lo desea) Si todavía está utilizando los r-
commands, cambie a SSH de inmediato: la curva de aprendizaje es pequeña, y la
seguridad es mucho mejor. [6]
16
2.1.2 Características.
17
Figura 2.2 Autenticación, cifrado e integridad en SSH.
Esta es una gran mejora con respecto a otros protocolos comunes de acceso
remoto (Telnet, FTP), que generalmente envían la contraseña en texto claro (es
decir, sin cifrar) a través de la red, donde cualquier persona con acceso a la red
puede robarla. Sin embargo, todavía es sólo la autenticación de contraseña
simple, por lo que SSH proporciona otros mecanismos más fuertes y más
manejables: por usuario, llaves públicas, firmas, y una autenticación mejorada
rlogin-style, con la identidad del anfitrión verifica por clave pública.
18
Cifrado. La estructura del mensaje es incomprensible para la mayoría, excepto
para los destinatarios. Esto protege los datos a su paso por la red.
SSH proporciona privacidad mediante el cifrado de los mensajes que pasan por la
red. Este cifrado de extremo a extremo se basa en claves aleatorias que estén
bien negociadas para esa sesión y luego destruidas cuando la sesión ha
terminado. SSH soporta una variedad de algoritmos de cifrado para la transmisión
de datos, tales como sistemas de cifrado estándar ARCFOUR, Blowfish, DES,
IDEA y triple-DES (3DES).
Integridad. Garantiza que los datos que viajan por la red lleguen inalterados. Si
alguien captura y modifica los datos en tránsito, SSH detecta este hecho. El
transporte subyacente de SSH, TCP / IP, tiene el control de integridad para
detectar alteraciones debidas a problemas de red (ruido eléctrico, pérdida de
paquetes debido al exceso de tráfico, etc.) Sin embargo, estos métodos no son
efectivos contra la deliberada manipulación y puede ser engañado por un
atacante inteligente.
A pesar de que SSH cifra el flujo de datos y por lo general un atacante no puede
cambiar fácilmente las partes de un archivo para lograr un resultado especifico, el
control de integridad de TCP / IP 's no puede impedir, por ejemplo, la inyección
deliberada de basura de un atacante en su período de sesión.
La integridad de TCP / IP 's se realiza sólo en función de cada paquete, por lo que
no puede detectar un ataque de este tipo. Es evidente que la comprobación de
integridad debe aplicarse a la secuencia de datos como un todo, asegurándose
de que los bits que lleguen son los mismos que se enviaron en orden y sin
duplicación.
19
el contrario, utiliza un método relativamente débil: un control de redundancia
cíclica de 32 bits (CRC-32) sobre los datos no cifrados en cada paquete.
En resumen, SSH permite conexiones de red entre los equipos, con sólidas
garantías de que las partes en ambos extremos de la conexión son auténticas.
También asegura que cualquier dato que pasa sobre estas conexiones llega sin
modificaciones y no leídos por espías.
20
SSH es compatible con tres tipos de transmisión. Port Forwarding, X forwarding
incluye características adicionales para garantizar el protocolo X (es decir, X
windows). El tercer tipo, el agente de forwarding, permite a los clientes SSH
intercambiar claves públicas en las máquinas remotas.
Una vez que un túnel seguro está configurado, las solicitudes de participación se
muestran al usuario para operar normalmente. Transparencia total a nivel de
aplicación, necesita una técnica a nivel de red, tales como IPSEC o una VPN
(Virtual Private Network). Mientras que las VPN proporcionan una solución más
completa, requieren mucho más trabajo y dinero para establecer a comparación
del forwarding de SSH.
21
Incluso con el forwarding de SSH se puede lograr la comunicación que en
algunos casos son imposibles sin ella. El Forwarding no es un concepto nuevo.
El funcionamiento básico de una conexión de terminal en una red (por ejemplo, a
través de telnet) es también una especie de forwarding. En una conexión telnet,
usted se sienta en un extremo, el shell remoto del otro lado y ambas partes
actúan como si estuvieran directamente conectados por un cable serial.
22
Normalmente, esta conexión es insegura, introduciendo la contraseña de su
cuenta de correo como texto sin formato seguro de transmisión entre su programa
de correo y el servidor. Con el redireccionamiento de puertos SSH, puede redirigir
de forma transparente la conexión IMAP (que se encuentra en el puerto S
servidor TCP 143) para así pasar a través de SSH de forma segura y cifrando los
datos a través de la conexión.
La máquina del servidor IMAP debe ejecutar un servidor SSH para el reenvío de
puertos para ofrecer una protección real. En resumen, con los cambios de
configuración mínima para sus programas, el redireccionamiento de puertos SSH
protege arbitrariamente conexiones TCP / IP mediante la reorientación de ellos a
través de una sesión SSH. El Forwarding de puertos, incluso puede pasar de una
conexión segura a través de un firewall si se configuran las cosas bien.
IMAP utiliza el puerto TCP 143, lo que significa que un servidor IMAP escucha las
conexiones en el puerto 143 del servidor. Para el túnel de conexión IMAP a través
de SSH, usted necesita escoger un puerto local en la máquina de origen H (entre
1024 y 65535) y lo remitirá al puerto (S, 143). Suponga que usted escoge al azar
el puerto local 2001. El siguiente comando crea el túnel:
$ ssh –L 2001:localhost:143 S
23
El comando anterior se registra en S, ya que si sólo tienes que escribir ssh. Sin
embargo, este período de sesiones SSH también ha remitido el puerto TCP 2001
en H para el puerto 143 en S, la transmisión se mantiene en efecto hasta que
cierre la sesión de la reunión. Para hacer uso del túnel, el último paso es decirle a
su lector de correo electrónico para utilizar el puerto redirigido. Normalmente, su
programa de correo electrónico se conecta al puerto 143 en el servidor, es decir,
la toma (S, 143). En su lugar, está configurado para conectarse al puerto 2001,
sobre las máquinas de la casa H, es decir, localhost por el puerto 2001. Así que el
camino de la conexión es el siguiente:
# SSH1, OpenSSH
LocalForward 2001 localhost:143
# SSH2 only
LocalForward
"2001:localhost:143"
El ejemplo de una maquina cliente (H) y un servidor IMAP (S) se puede configurar
de esta manera:
# SSH1, OpenSSH
Host local-forwarding-example
HostName S
LocalForward 2001
localhost:143
# Run on home machine H
$ ssh local-forwarding-
example
24
Reenvio remote (Forwarding remoto). Un puerto transmite de forma remota
como si fuera local, pero las instrucciones están invertidas. Esta vez, el cliente
TCP es remoto, su servidor es local, y una conexión se inicia desde una máquina
remota.
$ ssh –R 2001:localhost:143 H
Al igual que con el reenvío local, se puede establecer una transmisión a distancia
utilizando una palabra clave en el archivo de configuración del cliente. La palabra
clave RemoteForward es análoga a LocalForward, con las diferencias sintácticas
entre las mismas SSH1 y SSH2:
# SSH1, OpenSSH
RemoteForward 2001 S:143
# SSH2 only
RemoteForward
"2001:S:143"
Por ejemplo, la transmision anterior se define en un
formato SSH2 archivo de configuracion:
# SSH2 only
remote-forwarding-example:
Host H
RemoteForward "2001:S:143"
$ ssh2 remote-forwarding-
example [11]
25
3. Herramientas Putty y OpenSSH.
PuTTY es un cliente SSH, Telnet, rlogin, y TCP raw con licencia libre. Disponible
originalmente sólo para Windows, ahora también está disponible en varias
plataformas Unix, y se está desarrollando la versión para Mac OS clásico y Mac
OS X. Otra gente ha contribuido con versiones no oficiales para otras
plataformas, tales como Symbian para teléfonos móviles. Es software beta escrito
y mantenido principalmente por Simon Tatham, open source y licenciado bajo la
Licencia MIT. [12]
El nombre PuTTY proviene de las siglas Pu: Port unique TTY: terminal type. Su
traducción al castellano sería: Puerto único para tipos de terminal
Historial de versiones.
26
En Windows, ya no es necesario configurar líneas alto-numeradas tales como
COM10; PuTTY hace esto automáticamente. Ahora se puede almacenar un
nombre de host en las opciones por defecto.
Aplicaciones, las funciones principales están realizadas por los mismos ficheros
PuTTY:
27
La gestión de la distribución de OpenSSH está dividida entre dos equipos. Un
equipo sólo lleva a cabo el desarrollo basado en OpenBSD, y su objetivo es el de
producir un código que sea tan limpio, simple y seguro como sea posible.
Características
OpenSSH es una implementación libre del paquete de protocolos SSH/SecSH
que provee cifrado para los servicios de red, como ingreso remoto ("remote
login") o transferencia de archivos remota, de un sistema de cifrado.
Todos los componentes de naturaleza restrictiva (o sea, patentes, ver ssl) han
sido eliminados del código fuente; los componentes bajo licencia o patentados se
obtienen de bibliotecas externas (v.g. OpenSSL). El algoritmo de cifrado simétrico
IDEA ya no se encuentra disponible, debido a que está patentado en
muchos
28
países. En su lugar, recomendamos que use cualquiera de los otros algoritmos de
cifrado disponibles (no creemos que se pueda justificar el uso de un algoritmo de
cifrado simétrico patentado, cuando existen muchos otros libres).
Cifrado Fuerte
OpenSSH soporta 3DES, Blowfish, AES y Arcfour como algoritmos de cifrado.
Todos ellos están libres de patentes. Triple DES es un algoritmo de cifrado muy
conocido y que ha pasado la prueba del tiempo, que provee cifrado fuerte.
Blowfish es un algoritmo de cifrado rápido de bloque inventado por Bruce
Schneier, que pueden usarlo aquéllos que requieran un cifrado más rápido. AES
es la Norma Avanzada de Cifrado (AES por sus siglas en inglés) de la Norma
Federal de Procesamiento de Información de los Estados Unidos de América
(FIPS por sus siglas en inglés) desarrollado para reemplazar a DES.
Autenticación Fuerte
Una fuerte autentificación protege contra varios problemas de seguridad, como
por ejemplo suplantación de IP (IP spoofing), rutas falsas (fake roots), y fisgoneo
de DNS (DNS spoofing). Los métodos de autenticación son: .rhosts junto con
huésped de autenticación basado en RSA, autenticación RSA pura, contraseñas
para uso de una sola vez, y finalmente autenticación mediante Kerberos.
29
necesidad de guardar las claves de autenticación de RSA o DSA en ninguna
máquina de la red (exceptuando la máquina del usuario).
Los protocolos de autenticación nunca revelan las claves; sólo se pueden usar
para verificar que el agente del usuario tenga cierta clave. El agente podría hacer
uso de una tarjeta inteligente para llevar a cabo todas las computaciones de
autenticación.
Interoperabilidad
Las versiones de OpenSSH anteriores a la 2.0 contienen soporte para los
protocolos SSH 1.3 y SSH 1.5, permitiendo de este modo la comunicación con la
mayoría de implementaciones comerciales de SSH en Unix y Windows.
A partir de la versión 2.0 de OpenSSH, además del soporte para el protocolo SSH
1.3 y protocolo SSH 1.5, OpenSSH también dispone de soporte para el protocolo
SSH 2.0. Este protocolo evita el uso del algoritmo RSA -- ya que cuando se
inventó el protocolo 2.0, la patente sobre RSA todavía no existía -- y en su lugar
usa los algoritmos libres DH y DSA. Por lo tanto, OpenSSH le ofrece lo mejor de
los dos mundos. Puede ínter operar con ambos tipos de clientes y servidores de
SSH.
Compresión de Datos
La compresión de datos antes del cifrado mejora los resultados en los enlaces
con redes lentas. [14]
30
2.2 SSL (Secure Socket Layer)
Netscape desarrolló la primera versión de SSL en 1994. Está primera versión jamás
fue implementada de forma pública. Tan sólo unos pocos meses después liberó una
importante actualización que vino a llamarse SSL 2.0 y que si tuvo una
implementación real a pesar de ir aquejada de importantes errores de diseño. En
noviembre de 1995 Netscape publica la especificación para SSL 3.0 la cual, desde
entonces, se ha convertido en el estándar ‘de hecho’ para comunicaciones seguras
entre clientes y servidores en Internet.
SSL trabaja sobre el protocolo TCP y por debajo de protocolos como HTTP, IMAP,
LDAP, etc., y puede ser usado por todos ellos de forma transparente para el usuario.
Opera entre la capa de transporte y la de sesión del modelo OSI (o entre la capa de
transporte y la de aplicación del modelo TCP) y está formado, a su vez, por dos
capas y cuatro componentes bien diferenciados.
31
2.2.1 Concepto.
SSL trabaja entre la capa de transporte y la de sesión del modelo OSI (o entre la
capa de transporte y la de aplicación del modelo TCP) y está formado, a su vez,
por dos capas la capa SSL Record Protocol y la Application Layer Protocol,
además en esta ultima capa que se hace mención se forma por cuatro
componentes bien diferenciados, el SSL Handshake Protocol, el SSL Change
Chipre Spec Protocol, el SSL Alert Protocol y por ultimo Application Data Protocol
como lo podemos observar en la Figura 2.5.
El Change Cipher Spec Protocol está formado por un único mensaje consistente
en un único byte de valor 1 y se utiliza para notificar un cambio en la estrategia de
cifrado.
32
concatenado a cada uno de los bloques comprimidos para asegurar la integridad
de los mismos, realiza el cifrado y envía los resultados.
Figura 2.5 SSL con sus sub capas y sus sub protocolos.
En primer lugar el cliente envía un mensaje Client Hello al servidor el cual debe
de responder con un mensaje similar de Server Hello. Estos mensajes son
utilizados para dar a conocer ciertas características de ambos: versión del
protocolo usado, algoritmos de cifrado conocidos y preferidos, longitudes
máximas de clave que admite para cada uno de ellos, funciones hash y métodos
de compresión a utilizar. En este momento, además, el servidor asigna un
identificador a la sesión y se hace constar la fecha y hora de la misma.
33
A continuación del mensaje de Server Hello, el servidor puede enviar su
Certificado (típicamente un X.509) de forma que sea autenticado por el cliente y
que, además, este reciba su clave pública. Si no es así, le envía al cliente su clave
pública mediante un mensaje de Server Key Exchange (o también si ha enviado su
Certificado y este es únicamente para firma y autenticación). Está claro que al
menos uno de estos dos mensajes es necesario para establecer el canal seguro.
Un último mensaje que puede enviar el servidor en esta fase de negociación es
una solicitud de certificado al cliente.
Por último, la fase concluye con el envío, por parte del servidor, de un mensaje de
Server Hello Done. Si el Servidor ha solicitado su certificado al cliente, este debe
de responder con el o con un mensaje de alerta indicando que no lo posee. A
continuación se envía un mensaje de Client Key Exchange donde el cliente envía
al servidor, cifrada mediante la clave pública de este, la clave maestra, un número
aleatorio generado por el y que actuará como clave del algoritmo simétrico
acordado para el intercambio de datos.
34
Figura 2.6 Handshake de cliente y servidor .
35
SSL puede establecer múltiples conexiones dentro de una misma sesión o
reanudar una sesión previamente interrumpida. En ambos casos el intercambio de
mensajes de la fase Handshake es mucho más reducido como veremos a
continuación. El cliente envía un mensaje de Client Hello usando el identificador de
la sesión previamente negociada. El servidor verifica si ese identificador es válido y
en caso afirmativo devuelve un mensaje de Server Hello usando el mismo
identificador de sesión.
36
2.2.2 Características.
SSL Change Cipher Spec Protocol. Consiste en un único mensaje, que encripta
y comprime bajo las current cipherspec. Este mensaje tanto puede ser enviado
por el cliente como el servidor, para notificar al receptor de que los siguientes
registros se basaran en las llaves y las cipherspec.
SSL Alert Protocol. Son mensajes de errores fatales que hacen que la conexión
se acabe, tales como: mensaje inesperado. Incorrecto MAC, fallo de
descompresion, certificado revocado, parámetros ilegales, etc…[19]
37
2.2.3 Herramienta Stunnel.
Utilizar el modo de conexión SSL entre un cliente que tenga esa opción y un
servidor POP o IMAP que no lo tenga.
Lo mismo pero al revés (el servidor soporte SSL y el cliente no).
Cifrar cualquier conexión TCP entre dos ordenadores, permitiendo opcionalmente
el control de acceso al servidor desde determinados clientes.
38
La autentificación de cliente puede imponerse ejecutando el servidor con la
opción -v, cuyo argumento indica el nivel de autentificación exigido. Los valores
que puede tomar son:
Stunnel utiliza solo un programa binario stunnel, que puede ejecutarse en dos
modos: cliente y servidor. Funcionan de forma similar, excepto por una diferencia
principal: en modo cliente, stunnel escucha las conexiones descifradas (por
ejemplo, en la maquina local) y las reenvía a través de una conexión cifrada SSL
a una maquina remota que ejecuta stunnel; en modo servidor, stunnel
escucha las conexiones cifradas SSL (por ejemplo, de los procesos remotos
stunnel) y después descifra y reenvía estas sesiones a un proceso local.
39
Accept [IP-de-host:]puerto-de-demonio: Este parámetro especifica en que
dirección IP y puerto escuchara stunnel. IP-de-host, una dirección IP local o
nombre de host, especifica la dirección donde se desea que stunnel escuche (por
ejemplo, especificando [Link] restringe el uso del túnel a los usuarios locales).
El parámetro puerto-de-demonio puede ser un puerto TCP numérico o un nombre
de servicio existente dentro de /etc/services. En modo servidor, esta opción se
utiliza para especificar el puerto donde se escuchan los paquetes de texto legible
que van a ser tunelizados.
Se tiene que considerar que se puede utilizar el parametro accept para limitar en
que interfaz Stunnel acepta las conexiones. Stunnel no es la unica aplicación
capacitada para establecer una conexión a un demonio [Link] ejemplo, es
posible ejecutar Stunnel en un servidor POP3 escuchando en el puerto estándar
pop3s (TCP 995) y reenviar a un demonio de correo local POP3, como Outlook
Express y Eudora en sistemas que no ejecuten Stunnel.
40
CAPITULO III. DESARROLLO PRÁCTICO.
Los datos contenidos en una base de datos pueden llegar a ser un activo muy
valorado para una entidad. Es por esta razón que se deben de tener mecanismos
para asegurar en lo máximo la integridad de los datos cuando son solicitados, y
si esta solicitud es realizada de forma remota, entonces se enfrenta a una
situación, que eleva el riesgo de ver comprometida la integridad de los datos.
La información que tiene que viajar por un medio en el cual, puede llegar a ser
interceptado; ve comprometida su integridad, porque no se puede garantizar su
integridad y la disponibilidad, premisas fundamentales en la seguridad de la
información. (Figura 3.1)
41
Para este proyecto, se realizo una conexión entro dos equipos, que se encuentran en
redes locales distintas (Figura 3.2), estas dos redes están comunicadas mediante un
enlace, que se establece en la red de redes, la Internet, entonces cada vez que se
realice una petición del equipo cliente hacia el equipo servidor mediante IP y puerto,
esta petición viaja a través de Internet en texto plano, si se intercepta la información
se puede conocer la IP del servidor, el puerto del servicio y sobre todo la información.
El túnel se establece para comunicar el servicio de MySQL, por el puerto 3306. Esto
significa que el túnel re direcciona el servicio, en la configuración por default de la
instalación del MySQL el puerto de comunicación es el 3306 y la conexión la
realizamos como un localhost, cuando se realiza una conexión remota, se realiza
indicando la IP del servidor y el puerto, esto significa que la configuración del MySQL
debe aceptar conexiones remotas.
Hasta este punto se observa que se deben se proponer políticas de seguridad, una
de estas tiene que ver con el acceso, como es el acceso remoto, se puede restringir
por IP o por segmento de red, existe la configuración que acepte todo tipo de
conexión y solo restringir el acceso a las bases, ya que la configuración de usuarios
también debe tener permisos de conexión remota. Además también implica que
mediante esta configuración toda solicitud y respuesta viaje en texto plano. (Figura
3.1)
42
Por lo tanto se debe de especificar políticas de acceso remoto de usuarios a los
equipos, además de mecanismos para que los datos no viajen en texto plano. La
implementación de los túneles tienen como objetivo establecer características de
seguridad de acceso a los usuarios de forma remota a los equipos, además
proporcionan la característica de cifrar la información para que viaje por la red, esto
agrega sin dudad alguna seguridad.
Los túneles de establecieron utilizando los protocolos SSH v2.0 y el SSL v2.0, la
razón principal, permiten el tunneling y además cifran la información, trabajan con
TCP; la conexión para este proyecto se realizo mediante identificación de usuario y
contraseña, pero permiten el uso de certificados digitales, para evitar la intervención
del usuario.
Las herramientas utilizadas son putty y stunnel para el equipo cliente con un sistema
operativo Windows XP, para el equipo servidor openSSH y Stunnel con sistema
operativo Ubuntu 10.10 para la configuración de los túneles, y el MySQL Query
Browser para realizar las peticiones desde el cliente. Se utilizo SmartSniff para
capturar paquetes de esta comunicación y verificar que estén cifrados. (Figura 3.2)
43
Figura 3.2 Escenario de prueba.
Equipo Servidor:
Sistema operativo Ubuntu 10.10
openSSH.
Stunnel4.
MySQL.
Una cuenta de acceso al servidor. (Usuario y Contraseña)
Una cuenta de acceso al servidor de datos MySQL. (Usuario y Contraseña)
Equipo Cliente.
Sistema Operativo Windows XP.
Putty.
Stunnel.
MySQL Query Browser.
44
3.2 Túnel SSH.
Configuración en el Servidor.
OpenSSH es una versión libre del protocolo Secure Shell (SSH) que es una familia
de herramientas para control remoto o transferencia de archivos entre equipos. Las
herramientas utilizadas tradicionalmente para realizar estas funciones, eran el telnet
o el rcp, que son inseguras y transmiten la contraseña de los usuarios en texto plano
cuando son usadas. OpenSSH proporciona un demonio y unos clientes para facilitar
un control remoto seguro y cifrado, así como operaciones de transferencia de
archivos, reemplazando de forma efectiva las herramientas heredadas.
$ ssh [Link]
45
Configuración en el Cliente.
Para iniciar la configuración del túnel ejecutar el [Link] en la pantalla que que se
ve a continuación (Figura 3.3), especificar en el Host Name la dirección IP del equipo
servidor de datos, como es una conexión SSH se realiza a través del puerto 22, si se
ha configurado el SSH en otro puerto, entonces es necesario especificar el puerto.
En el apartado de Saved Sessions, escribir un nombre para guardar la sesión, esto
es útil porque cada vez que se requiera establecer el túnel solo se selecciona la
sesión.
46
También es útil para automatizar el proceso, ya que se puede ejecutar desde un ms-
dos y como parámetro el nombre de la sesión, es útil a la hora de establecer un
proceso automatizado. Por el momento solo se especifica un nombre para la sesión,
pero no se que guarda nada aun, se debe de esperar para tener todos los
parámetros correctos porque después ya no es posible modificarlos, en caso de
equivocación se debe borrar la entrada y nuevamente configurarla.
Dentro del apartado SSH de Conecction, se inicia la configuración del túnel, primero
dentro de protocol options; habilitar la opción de no permitir que se inicie una
consola, esto es debido a que solo es necesario el túnel, ya que no se van a ejecutar
comandos remotos. Seleccionar la versión del protocolo SSH, en este caso, es la
versión 2. (Figura 3.5)
47
Figura 3.5 Putty túnel SSH.
48
Figura 3.6 Configuración de puertos para SSH.
Una vez que se han ingresado los datos, se verifica que las opciones local y
auto estén activadas, esto indica que la conexión se va a realizar solo en el equipo
local, y la de auto es para que seleccione la versión de IP, una vez verificado los
datos se pulsa la opción de agregar. (Figura 3.7)
49
Con el paso anterior se ha finalizado la configuración del túnel, ahora solo resta,
regresar a la ventana inicial, la de sesión para guardar la configuración bajo un
nombre asignado, y de esta forma de concluye la configuración del túnel. (Figura 3.8)
Ahora para iniciar la sesión del putty para establecer el túnel, se tiene que
seleccionar el nombre de la sesión y pulsar abrir. (Figura 3.9)
50
Figura 3.9 Establecimiento del túnel.
Ahora al iniciar la sesión, primero verifica una llave de sesión la cual envía el servidor
al cliente, se debe aceptar la llave ya que através de esta se inicia la comunicación
con el servidor de forma cifrada, en este punto aun no se ha establecido la sesión.
(Figura 3.10)
51
Figura 3.10 Host key en putty.
Al iniciar la sesión se abre una ventana que inicia la conexión, con el usuario
configurado. (Figura 3.11)
52
Figura 3.12 Establecimiento se sesión SSH.
Una forma de verificar el túnel es realizando un simple Telnet al puerto local 3306,
(localhost) y verificar que la respuesta es el nombre del servidor MySQL en Ubuntu.
(Figura 3.13)
53
De esta manera se finaliza la configuración de la conexión del lado del cliente, se ha
visto que ahora la conexión de forma local procesa información solicitada de un
servicio remoto.
Para ello se ejecuta la herramienta MySQL Query Browser, e ingresar los datos, en
el Server Host indicar que la conexión es de forma local y no remota, esto también
ayuda a la seguridad del MySQL no permitiendo conexiones remotas, en lugar de
esto todas las conexiones se realizan de forma local, simulando que el servidor de
datos esta instalado en el equipo cliente y no en un equipo remoto. (Figura 3.15)
Ahora las peticiones y la conexión al servidor de datos viajan por el túnel y los datos
van cifrados(Figura 3.16), y con ello se ve disminuido el riesgo de que alguien
intercepte los datos y vea su contenido, con este paso ya se ha asegurado en
parte la integridad de los datos, ya que al realizar una petición al servidor de datos
sin el túnel, al capturar los paquetes, podemos ver el contenido fácilmente.
54
Figura 3.16 Solicitud realizada al servidor através del túnel SSH.
En el equipo cliente la solicitud es enviada al puerto 3306 (Figura 3.17) esta solicitud
es re direccionada al puerto 22 el del SSH, aquí el SSH realiza el establecimiento del
túnel, primero el cliente y el servidor comparten la clave de host, si la maquina cliente
no encontró una clave pública previa, entonces se le pregunta al usuario si acepta la
clave no confiable. Después, utilizan están claves públicas para negociar una clave
de sesión, que se utilizará para cifrar todos los datos posteriores de la sesión
mediante un bloque de cifrado tipo Triple-Des (3DES), blowfish o IDEA.
55
Figura 3.17 Diagrama del túnel SSH.
56
También por defecto, si la autenticación RSA/DSA falla o no hay certificado cliente, el
servidor remoto le solicitara al usuario una combinación estándar Unix de
usuario/contraseña que sea válida para el sistema remoto, Recuerde, ya se ha
establecido una sesión cifrada entre el cliente y el servidor, de ahí que el
usuario/contraseña no se podrán manipular al ir cifrados. Finalmente, después de
lograr la autenticación comienza la sesión propiamente dicha.
En el cliente se cifra (Figura 3.18) la información recibida del puerto 3306 para ser
enviada al puerto 22 del equipo servidor, una vez que llega al puerto 22 del equipo
servidor, es descifrada la información y reenviada a su servicio origen en este caso el
puerto 3306, para que el MySQL procese la consulta, cuando el servidor tenga el
resultado los envía al puerto 3306, que es re direccionado al puerto 22 del SSH,
entonces aquí se cifra la información y es enviada por el túnel al puerto 22 del equipo
cliente.
57
3.3 Túnel SSL.
Stunnel se apoya en OpenSSL para todas sus funciones de cifrado. Por tanto, para
utilizar Stunnel, primero tiene que obtener e instalar OpenSSL en cada host donde se
desee utilizarlo. La versión actual para la mayoria de las distribuciones Linux incluye
los paquetes binarios de OpenSSL versión 0.9.7 o superior.
Configuración en el Servidor.
Se debe recordar que el equipo servidor es un sistema Linux con una distribución
Ubuntu 10.10, se debe de abrir una terminal; para instalar stunnel4 ingresar en una
terminal el siguiente comando:
58
Figura 3.19 Esqumea de archivos de configuración para el túnel SSL.
vi [Link]
[Link]
cert = /etc/stunnel/[Link]
# chroot = /var/run/stunnel4/
pid = /[Link]
#setuid = nobody
#setgid =
nobody
59
Para la configuración de los puertos en donde se va establecer el tunel se utilizo el
puerto 3307 local va a hacer el lugar por donde se va a establecer el tunnel SSL. Con
esta configuración se coloca al puerto 3307 del servidor a la escucha, con lo cual
toda solicitud que llegue a este puerto lo va a redireccionar al puerto 3306 del mismo
equipo. Para de esta forma simular que las peticiones realizadas al MySQL son de
manera local.
[mysql]
accept = 3307
connect =
[Link]:330
6
Con esto se finaliza la configuración del archivo para establecer el túnel del lado del
servidor quedando con la siguiente estructura.
[Link]
cert = /etc/stunnel/[Link]
# chroot = /var/run/stunnel4/
pid = /[Link]
#setuid = nobody
#setgid =
nobody [mysql]
accept = 3307
connect =
[Link]:3306
60
Para realizar una verificación al archivo de configuración creado, hay que ejecutar el
stunnel, pasando como argumento el archivo de configuración, si todo esta bien no
indicara error, de forma contraria se debe analizar la alerta para encontrar el error.
(Figura 3.21)
Finalmente solo falta verificar que el puerto configurado en este caso el 3307, este a
la escucha de solicitudes, este paso es necesario realizarlo para verificar que el
puerto esta abierto a la espera de peticiones, si no se realiza este proceso, al tratar
de establecer el túnel, no se podrá asegurar que la conexión se realice con éxito, si
indicara un error y no se realizo la verificación del puerto, será mas difícil deducir el
origen del error. (Figura 3.22) Para verificar la conexión se ejecuta la siguiente
instrucción:
Con esta verificación se concluye la configuración de stunnel del lado del servidor.
61
Configuración en el Cliente.
[mysqls]
accept = [Link]:3306
connect = [Link]:3307
Aquí se indica que el servidor con la ip x.x.x.x que escucha el puerto 3307 , va a
ser la conexión para todas las peticiones que se realicen al localhost por el puerto
3306. De esta forma toda petición realizada a través del puerto 3306 del equipo
local, será redireccionado al equipo remoto con IP x.x.x.x hacia el puerto 3307.
Así toda petición que se realice desde el equipo cliente al puerto local 3306, será
dirigida a la dirección x.x.x.x por el puerto 3307, para de esta forma simular que la
petición fue realizada de forma local y no remota.
De esta manera el archivo de configuración del lado del cliente queda con la
siguiente estructura:
[Link]
62
# enable client mode
client = yes
[mysqls]
accept = [Link]:3306
connect = [Link]:3307
63
Figura 3.24 Verificación del servicio stunnel en el cliente.
Para realizar una prueba de conexión, se realiza una conexión Telnet de forma local
por el puerto 3306 (Figura 3.25), para verificar que la respuesta sea devuelta por el
servidor de datos, que viajara por el túnel. La respuesta esperada será el nombre y la
versión del MySQL.
64
Figura 3.26 Respuesta del servidor utilizando el túnel SSL en el cliente.
65
Figura 3.28 Consulta realizada al servidor através del túnel SSL.
Aquí stunnel realiza el trabajo, una vez que tiene una solicitud aceptada, entonces
establece, una sesión al servidor por el puerto 3307, aquí se realizá todo el
mecanismo de autenticación utilizado por SSL, es decir, utiliza los protocolos de
establecimiento de sesión, además válida el certificado utilizado, una vez aceptados,
entonces, la autenticación a finalizado, y con ello se inicia la sesión de SSL,
mediante la cual viajarán los datos de forma cifrada.
Del lado del servidor, la configuración establece que acepte todo lo que provenga del
puerto 3307, y entonces toda esta información una vez que ha llegado al servidor es
descifrada, recordar que el cliente cifro los datos antes de enviarlos, entonces una
vez que los descifro los redirecciona al puerto local 3306, que es el servidor de datos,
así el servidor procesa la solicitud y se vuelve a realizar nuevamente el regreso de
forma inversa, con esto la información viaja a través del túnel de forma cifrada y se
ha establecido una conexión remota hacia un servidor de datos. (Figura 3.29)
66
Figura 3.29 Escenario de prueba para el túnel SSL.
Para que de esta manera no exponer los datos, en un medio en el cual alguien los
pueda interceptar, y con ello sufrir de un ataque, si en algún momento se pudiera
obtener la información, esta en primera instancia seria dirigida al servidor, entonces
el que sufre las consecuencias es el sistema operativo y las bases de datos no serian
el primer objetivo de ataque, y con ello se puede mantener la integridad y hasta cierto
punto la disponibilidad de la información. (Figura 3.30)
67
CAPITULO IV. PRUEBAS Y RESULTADOS.
Una vez que se han configurado y establecido los túneles para cada protocolo, se
realizaron solicitudes de petición de información al servidor de datos, para obtener un
conjunto de datos necesarios para realizar la comparativa de características entre
los túneles. Esta comparativa tiene como objetivo presentar datos que determinen
cual de los dos túneles establecidos es más rápido en la comunicación establecida
entre el cliente y el servidor, además de analizar el rendimiento de cada túnel, para
finalizar con las vulnerabilidades que cada túnel puede tener.
Esta apartado tiene como finalidad mostrar que el estableciemto de los túneles;
aumenta la seguridad para mantener la integridad de los datos, sin dejar de lado que
también tiene vulnerabilidades, pero el beneficio es mayor ya que los datos no están
a disposición de cualquier proceso que pueda interceptar la comunicación, con
esto se pretende minimizar el riesgo de ver comprometida la integridad y la
disponibilidad, y como ningún sistema de seguridad informática es cien por ciento
seguro, es mejor conocer las vulnerabilidades del sistema, para asumir el riesgo o
para establecer aun mas, políticas de seguridad que ayuden a minimizar las
vulnerabilidades hasta un grado que se aceptable para el sistema.
Las pruebas contempladas, son realizar un análisis de velocidad, una prueba para
analizar el rendimiento, y finalmente exponer los casos de alertas de seguridad
emitidos por un CERT en este caso el SSI (Subdirección de Seguridad de la
Información)/UNAM-CERT de la Dirección General de Cómputo y de Tecnologías de
Información y Comunicación, UNAM, detectados para ambos protocolos. Con los
resultados de estas pruebas, se puede conocer el comportamiento que tiene cada
túnel en relación a los tiempos de respuesta y el rendimiento del equipo al establecer
los túneles, características que dan una idea general, para poder decidir cual utilizar
y que puede utilizarse como punto de partida, para la realización de túneles de
acuerdo a características especificas y objetivos concretos, velocidad o seguridad.
68
4.1 Velocidad.
69
Los tiempos obtenidos, se grafican para poder tener una interpretación visual del
comportamiento de peticiones realizadas al servidor de datos, y de esta forma
determinar con cual túnel se lleva mas tiempo en obtener una respuesta del servidor,
ya que estos datos viajan en dos túneles distintos, con esto se pretende mostrar cual
es mas rápido y seguro, es decir si cumple con ambas características o con alguna, y
determinar cual utilizar.
0.09
0.08
Tiempo de respuesta.
0.07
0.06
Tunel SSL
0.05
Tunel SSH
0.04
Sin Tunel
0.03
0.02
0.01
0
1 2 3 4 5 6 7 8 9 10
Query.
70
4.2 Rendimiento.
Esta prueba tiene como finalidad, el determinar los recursos que utiliza en cuanto al
procesador se refiere, es decir, al establecer los tuneles al iniciar el cifrado y el
descifrado. Una vez establecido el túnel y que los datos estan viajando, cada vez
que envia una solicitud al servidor el equipo cliente cifra la información y la prepara
para enviarla a traves del tunel, cada vez que el servidor envia una respuesta se
tiene que descifrar; esto requiere un procesamiento, y este procesamiento es el
que se esta monitoreando para obtener la información necesaria para realizar la
comparativa.
Para medir el rendimiento sin el establecimiento del túnel, se realiza una solicitud al
servidor de datos, y se obtiene la información contenida en la Figura 4.2, la cual
indica que el uso medio del CPU es del 3.10, y utiliza el 23% del total del CPU.
71
Para medir el rendimiento a traves del túnel SSH, se realiza una solicitud al servidor
de datos, y se obtiene la información contenida en la Figura 4.3, la cual indica que el
uso medio del CPU es del 0.28, y utiliza el 46% del total del CPU.
Para medir el rendimiento a traves del túnel SSL, se realiza una solicitud al servidor
de datos, y se obtiene la información contenida en la Figura 4.4, la cual indica que el
uso medio del CPU es del 3.30, y utiliza el 44% del total del CPU.
72
Con la obtención de los datos anteriores, se construye la tabla 4.2, se han ordenado
primero por tiempo medio del CPU, para finalizar con el uso del CPU. Y con esto se
finaliza la pureba de rendimiento, hay que señalar que estas pruebas fueron
realizadas en un equipo HP Compaq 8000 Elite Small Form Factor, que tiene un
procesador Intel® Core (TM)2 Duo a 3.00GHz con 2 GB en RAM .
Ahora con los datos obtenidos de la tabla 4.2, se obtiene que sin el establecimiento
del túnel la petición realizada hacia el servidor requiere del 23% del CPU y que el uso
medio es del 3.10, esto indica sin duda alguna que el rendimiento es mejor sin un
túnel, pero carece de medidas de seguridad, ya que los datos están viajando el texto
plano y que eleva el riesgo de ver comprometida la integridad y la disponibilidad de
los datos.
Con el establecimiento del túnel SSH, el tiempo medio del CPU es de apenas el 0.28,
mientras que el uso del CPU se eleva al 46%, esto indica mayor procesamiento, al
utilizar este túnel, hay que señalar que de acuerdo a las pruebas de velocidad este
túnel es mas rápido, pero como punto en contra, necesita mas procesamiento. Esto
es un punto a considerar ya que se puede establecer un túnel con la finalidad de
obtener mayor velocidad, pero si se establece con un equipo con características
menores al equipo utilizado para esta prueba, el procesamiento puede reducir la
velocidad que se pretende obtener.
73
Aun así, con el establecimiento del túnel SSH se deduce que se puede obtener
velocidad y seguridad, ya que los datos antes de viajar por la red, son cifrados y
tienen un tratamiento para asegurar que los datos no viajen en texto plano, además
de reducir el riesgo de que alguien intercepte la comunicación, y pueda visualizar su
contenido, además el protocolo SSH, agrega características de seguridad, como lo
es una mejor autenticación entre el cliente y el servidor, con ello se cumple dos
objetivos de la seguridad informática, como lo son la integridad de los datos y la
disponibilidad de la información.
Finalmente para el túnel SSL, la información obtenida muestra que el uso medio es
de 3.30, mayor en relación al túnel de SSH y en cuento al uso del CPU es del 44%,
un poco mayor al túnel SSH, con esta información obtenemos condiciones
semejantes en cuanto al uso del procesamiento, este procesamiento en gran medida
es requerido en el momento de cifrar la información, pero la ventaja que tiene SSL
sobre SSH, es el certificado que podemos utilizar, es decir obtener uno de una CA.
Este punto el del certificado agrega mayor seguridad, al túnel SSL, ya que la CA,
garantiza en cierta medida la integridad de los datos al utilizar su certificado, para
este proyecto, se utilizo un certificado de ejemplo para fines demostrativos y observar
su funcionamiento, pero para un ambiente de producción es recomendable obtener
un certificado expedido por una CA, y de esta manera se crea un estricto control de
seguridad, que cuando la política de seguridad requiera seguridad, dejando en un
segundo orden de importancia la velocidad es entonces, donde se puede utilizar un
túnel SSL.
74
4.3 Vulnerabilidad.
En este lugar se han buscado reportes que nos muestren incidentes relacionados
con los protocolos SSH y SSL, con el objetivo de descubrir vulnerabilidades de
dichos protocolos, la información recabada, menciona que estos dos protocolos
pueden sufrir ataques de tipo negación de servicio. Además emite propuestas para
evitar tales ataques, este tipo de sitios son importantes ya que estos ofrecen mucha
información relacionada a la seguridad informática.
75
Los reportes aquí presentados son:
Vulnerabilidad de Seguridad
UNAM−CERT−2006−106:Negacion de servicio en Open SSH. [22]
76
Para establecer un sistema de seguridad informática, es necesario conocer que
existen protocolos de seguridad, como los utilizados en este proyecto, además las
herramientas en este caso el software utilizado, como son OpenSSH, el putty y el
Stunnel tienen vulnerabilidades que no garantizan por completo la seguridad al
utilizarlos, pero como ningún sistema puede garantizar esta característica, es
necesario conocer sus vulnerabilidades para que con este conocimiento establecer
los medios de acción y respuesta a incidentes.
Todo el software utilizado en este proyecto cuenta con una sección de incidentes y
de posibles problemas encontrados y para los cuales emiten una solución para cubrir
la vulnerabilidad, es necesario acudir a los sitios oficiales, para conocer las
vulnerabilidades que tienen, este punto es importante para realizar un análisis de
vulnerabilidad y decidir si se va a utilizar el software, al conocer las vulnerabilidades,
se sabe que amenazas pueden afectar al sistema y de esto establecer mediadas de
precaución, de monitoreo y de respuesta a incidentes.
77
CONCLUSIONES.
La información es un activo que puede llegar a tener gran relevancia para una
empresa y su protección llega a ser fundamental, es en esta situación en la cual
gestionar sistemas de seguridad es importante, bajo esta circunstancias, se elaboro
este proyecto que presenta un sistema para proteger la información, ya que sin un
sistema como el que aquí ha sido planteado, la información es muy vulnerable y ve
comprometida su integridad.
Los protocolos que se manejaron en este proyecto, forman parte del conjunto de
protocolos de seguridad de red, estos como todo protocolo tienen mecanismos para
ayudar a la seguridad, pero al utilizarlos también se estará agregando
vulnerabilidades propias del protocolo, aunque son mínimas, la utilización de estos
protocolos y su continua mejora, ayudan a fortalecer la seguridad, además de estos
protocolos existen otros, que será necesario conocer para poder utilizarlos.
Finalmente del resultado de la comparativa se obtiene que el túnel SSH sea mas
rápido, la seguridad es buena y se pueden agregar mas recursos de seguridad, estos
recursos pueden ser el manejo de un certificado de seguridad, o el uso de claves
para el establecimiento de la sesión. Por otro lado el túnel SSL es más lento pero su
fortaleza es la seguridad al manejar certificados, por lo tanto si se necesita velocidad
se puede utilizar el protocolo SSL.
78
Referencias.
79
Anexos.
UNAM−CERT
Departamento de Seguridad en Cómputo
DGSCA−UNAM
Vulnerabilidad de Seguridad UNAM−CERT−2006−106
Negación de servicio en OpenSSH
Sistemas Afectados
OpenSSH ==3
OpenSSH ==4
Riesgo
Alto
Problema de Vulnerabilidad
Remoto
Tipo de Vulnerabilidad
Negación de servicio
I. Descripción
OpenSSH es una suite de aplicaciones para el protocolo SSH, desarrollado y
mantenido por el proyecto OpenBSD.
Se ha descubierto una vulnerabilidad que podría permitir una negación de servicio
para el protocolo de SSH versión 1 en el código del detector de ataques de
compensación CRC.
80
II. Impacto
Los usuarios que no cuenten con los parches correspondientes son vulnerables a
una negación de servicio.
III. Solución
Se recomienda aplicar los parches que corrigen esta vulnerabilidad en las siguientes
direcciones.
[Link] sh/[Link]?r1=1.29ate
[Link] sh/[Link]?
r1=1.143date [Link]
sh/[Link]?r1=1.9ate
IV. Referencias
[Link]
[Link]
[Link]
UNAM−CERT
Equipo de Respuesta a Incidentes UNAM
Departamento de Seguridad en
Cómputo E−Mail:
seguridad@[Link]
[Link]
[Link]
[Link]
Tel: 56 22 81 69
Fax: 56 22 80 43
81
UNAM−CERT
Departamento de Seguridad en Cómputo
DGSCA−UNAM
boletin de Seguridad UNAM−CERT 2004−004
Múltiples vulnerabilidades en OpenSSL
[Link]ón
OpenSSL implemtenta los protocolos Secure Sockets Layer (SSL) y Transport Layer
Security (TLS) e incluye una biblioteca criptográfica de propósito general. SSL y TLS
son comúnmente usadas para proporcionar servicios de autenticación, encripción,
integridad y no repudio para aplicaciones de red como HTTP, IMAP, POP3, STP y
LDAP. OpenSSL es ampliamente utilizado entre una diversidad de plataformas y
sistemas. En particular, muchos ruteadores y otros tipos de equipo de red usan
OpenSSL.
82
Las versiones 0.9.7a, 0.9.7b y 0.9.7c de OpenSSL no validan adecuadamente la
longitud de los tickets de Kerberos durante el inicio de negociacion de inicio de
sesion (handshake) SSL/TLS. OpenSSL no está configurado para usar Kerberos de
manera predeterminada. Realizando un handshake SSL/TLS especialmente
diseñado con un sistema OpenSSL configurado para usar Kerberos, un intruso
podría provocar que falle OpenSSL, lo cual puede resultar en una negación de
servicio en la aplicación destino. OpenSSL 0.9.6 no es afectado.
Impacto
Soluciones
Apendices
Apéndice A. Información de distribuidores
83
Nota de vulnerabilidad VU#288574 − [Link]
− [Link]
[Link]
UNAM−CERT
Equipo de Respuesta a Incidentes UNAM
Departamento de Seguridad en
Computo E−Mail :
seguridad@[Link]
[Link]
[Link]
[Link]
Tel : 56 22 81 69
Fax : 56 22 80 43
84