5 Protocolos Seguros de Red
5 Protocolos Seguros de Red
seguros de red
PID_00287477
Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea este eléctrico,
mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita
del titular de los derechos.
© FUOC • PID_00287477 Protocolos seguros de red
Índice
Introducción............................................................................................... 5
Objetivos....................................................................................................... 6
1. SSH.......................................................................................................... 7
1.1. Arquitectura del protocolo SSH .................................................. 8
1.2. Protocolo de capa de transporte ................................................. 9
1.2.1. SSH handshake................................................................. 9
1.2.2. Autenticación del servidor ............................................ 11
1.3. Protocolo de autenticación de usuario ....................................... 12
1.3.1. Autenticación con clave pública ................................... 12
1.3.2. Autenticación con contraseñas ..................................... 13
1.3.3. Autenticación basada en host......................................... 13
1.4. SSH connection protocol.................................................................. 14
1.5. Transferencia de ficheros con SSH: SCP y SFTP .......................... 14
1.6. Vulnerabilidades SSH .................................................................. 16
2. TLS.......................................................................................................... 18
2.1. Introducción a SSL/TLS ............................................................... 18
2.1.1. Motivación y origen ...................................................... 18
2.1.2. Versiones de SSL/TLS ..................................................... 18
2.2. TLS 1.3 ......................................................................................... 20
2.2.1. Diferencias con TLS 1.2 ................................................. 20
2.2.2. Descripción del protocolo ............................................. 20
2.2.3. TLS handshake protocol.................................................... 22
2.2.4. TLS record protocol............................................................ 23
2.2.5. TLS alert protocol.............................................................. 24
2.3. Protocolos que utilizan TLS ........................................................ 25
2.3.1. HTTPS ............................................................................. 25
2.3.2. SMTP, IMAP y POP3 ...................................................... 26
2.4. TLS en las redes privadas virtuales ............................................. 29
3. IPSEC...................................................................................................... 30
3.1. Introducción y arquitectura IPSEC ............................................. 30
3.2. AH ................................................................................................ 31
3.2.1. AH en modo transporte ................................................ 31
3.2.2. AH en modo túnel ........................................................ 31
3.3. ESP ............................................................................................... 32
3.3.1. ESP en modo transporte ................................................ 32
3.3.2. ESP en modo túnel ........................................................ 33
3.4. Protocolo de gestión de claves .................................................... 33
© FUOC • PID_00287477 Protocolos seguros de red
4. RADIUS.................................................................................................. 36
4.1. Historia de RADIUS ..................................................................... 36
4.2. Arquitectura y funcionamiento de RADIUS ............................... 36
4.3. Alternativas a RADIUS: DIAMETER y TACACS+ ......................... 38
Resumen....................................................................................................... 48
Bibliografía................................................................................................. 49
© FUOC • PID_00287477 5 Protocolos seguros de red
Introducción
Esta arquitectura lleva implícita una falta de seguridad que, a su vez, presenta
una serie de riesgos, entre los que podemos citar: la suplantación de identidad,
la falta de privacidad o los ataques a la integridad de la información transmi-
tida.
Objetivos
Los objetivos que el estudiantado habrá alcanzado al finalizar este módulo son:
1. SSH
En julio de 1995, Ylönen hizo público el código fuente, lo que permitió la Enlace recomendado
copia y el uso del programa sin coste alguno. A final del mismo año miles de
Podéis ver el documento ori-
usuarios estaban utilizando SSH-1, lo que llevó a Ylönen a fundar la empresa ginal de esta especificación
SSH Communications Security Ltd. para continuar con el desarrollo del pro- en: <https://tools.ietf.org/
html/draft-ylonen-ssh-proto-
ducto. En el mismo año, 1995, el protocolo SSH-1 entró como borrador en el col-00>
grupo de trabajo de ingeniería de internet (IETF).
Poco a poco se fue descubriendo que el protocolo SSH-1 tenía ciertas limita-
ciones y adolecía de problemas de seguridad, por lo que, en 1996, apareció la
segunda versión del protocolo, SSH-2, que incorporaba nuevos algoritmos y
era compatible con la versión anterior. En estos momentos, el IETF creó un
grupo de trabajo, llamado secure shell, para trabajar sobre esta nueva versión
y estandarizar el protocolo.
Desde entonces existen dos implementaciones del protocolo SSH 2.0 disponi-
bles, la de la empresa SSH Communications Security, Ltd. y la de OpenSSH,
aunque es habitual en este último que coloquialmente se confunda el propio
protocolo con la implementación de OpenSSH.
De forma generalizada, podemos decir que existen tres casos de uso principales
de SSH:
Aquí podemos ver de forma esquemática todas las fases del SSH handshake:
© FUOC • PID_00287477 10 Protocolos seguros de red
Fuente: www.rfwireless-world.com/Terminology/SSL-Handshake-Protocol-vs-SSH-Protocol-Stacks.html
SSH-2.0-billsSSH_3.6.3q3<CR><LF>
Un mismo servidor puede tener diferentes host keys para cada uno de los al-
goritmos que utiliza. De igual forma, diferentes servidores pueden compartir
la misma host key.
Durante esta fase de key exchange, el servidor se identificará ante el cliente con
la host key que tiene almacenada. Si el cliente no se había comunicado nunca
con este servidor, esta host key le resultará desconocida y, por tanto, no podría
autenticar con el servidor. Para resolver esta primera conexión OpenSSH, per-
mite que el cliente acepte la host key después de notificar al usuario y verificar
la aceptación por parte de este.
Figura 3. Ejemplo de menú de aceptación de host key por parte de cliente SSH
Fuente: es.ephesossoftware.com
© FUOC • PID_00287477 12 Protocolos seguros de red
En esta figura es responsabilidad del servidor verificar que la llave de host que
tiene actualmente almacenada corresponde con el nombre del cliente que se
envía en el mensaje. Adicionalmente se recomienda que el servidor realice al-
gunas otras comprobaciones adicionales, como, por ejemplo, comprobar que
la dirección de red del host coincide con la del nombre del host cliente trans-
mitido en el mensaje.
Esta capa del protocolo SSH 2.0 multiplexa y cifra el túnel en diferentes
canales lógicos. Cada uno de estos canales administra la conexión para
cada una de las diferentes sesiones de terminal y también para sesiones
de reenvío de X11, lo que permite reenviar las sesiones gráficas.
El primero de ellos es secure copy protocol (SCP), que es un protocolo que ga-
rantiza la transferencia segura de información entre un cliente y un equipo
remoto. Originalmente estaba basado en los comandos RCP, aparecidos en la
versión 4.2BSD en la Universidad de Berkeley (California).
© FUOC • PID_00287477 15 Protocolos seguros de red
Para lograr transmitir esta información es necesario que se establezca, con an-
terioridad, una conexión SSH entre el equipo local o cliente y el equipo remo-
to. Por tanto, necesitaremos poder autenticarnos contra el servidor remoto se-
gún el método de autenticación elegido, tal como explicamos en el protocolo
de autenticación de usuario (por ejemplo, con password).
Una vez establecida la conexión SSH, el cliente puede iniciar el proceso de co-
pia segura. Podemos ver en la siguiente figura el proceso de forma esquemática:
Fuente: blogs.oracle.com
«The scp protocol is outdated, inflexible and not readily fixed. We recommend the use
of more modern protocols like sftp and rsync for file transfer instead.»
SSH file transfer protocol (SFTP), o secure file transfer protocol, es un protocolo di-
señado por el IETF que proporciona transferencia segura de ficheros (y en ge-
neral acceso al sistema de ficheros del sistema). Fue propuesto como extensión
de SSH 2.0, pero es posible utilizarlo también sobre otros protocolos como TLS.
Este protocolo asume que se ejecuta sobre un canal confiable (como por ejem-
plo el definido para SSH en el RFC 4251), que el servidor ha realizado la auten-
ticación del cliente y que la identidad del cliente está disponible para SFTP. Es-
te último requisito es necesario para que pueda interactuar el programa cliente
de acceso a ficheros a través del túnel SSH.
2. TLS
Hoy en día, cada vez que alguno de nosotros navegamos por internet y utili-
zamos algún servicio de una página segura que disponga de certificados (como
por ejemplo una compra en línea) estamos utilizando en nuestras comunica-
ciones el protocolo�transport�layer�security (TLS).
TLS es la versión moderna de secure sockets layer (SSL), que fue el primer proto-
colo pensado para dar seguridad a la navegación web, y es por esta razón que
en muchas referencias técnicas lo vemos escrito como SSL/TLS. Comenzare-
mos con una breve historia de la evolución de este protocolo para centrarnos
posteriormente en sus características.
Cuando apareció la red internet, la world wide web (WWW) y el protocolo HTTP
a principios de la década de los noventa, lo importante era el funcionamiento
de la red y la posibilidad de comunicarse con equipos remotos mediante la
navegación por sus páginas HTML.
Todos los protocolos que aparecían en esta época, como FTP, SMTP o el propio
HTTP no fueron diseñados con características de seguridad importantes, con lo
que poco a poco se fue viendo que era necesario implementar otros protocolos
que sirvieran para transportar la comunicación de los protocolos no seguros.
Fuente: dev.to/techschoolguru/a-complete-overview-of-ssl-tls-and-its-cryptographic-system-36pd
La primera versión desarrollada por Netscape fue SSL 2.0 y apareció en 1995
(la versión SSL 1.0 nunca llegó a aparecer debido a que era una prueba de con-
cepto). Esta versión SSL 2.0 fue integrada en el navegador Netscape Navigator,
pero rápidamente se dieron cuenta de que tenía muchos problemas de seguri-
dad y, en 1996, apareció una nueva versión, conocida como SSL 3.0.
En esta época comienza una lucha legal entre Microsoft y Netscape, propietaria
del protocolo, y a finales de los noventa, pasa a manos del IETF, que modifica
el nombre del protocolo a TLS para eliminar toda relación con la empresa
Netscape. Aparece en 1999 TLS 1.0, definido en el RFC 2246. Técnicamente
este protocolo supuso una mínima evolución respecto a SSL 3.0.
Dos años más tarde, en el año 2008, aparece TLS v1.2, definida en el RFC
5246, que introdujo algunas novedades, como por ejemplo el soporte para la
autenticación.
• Velocidad: se ha conseguido que TLS 1.3 sea más rápido y, por tanto, tenga
más rendimiento que su predecesor. Para ello, se ha modificado el TLS
handshake entre cliente y servidor, para intercambiar menos mensajes y
conseguir, por tanto, que el round-trip time (RTT) sea menor. Además, se
ha mejorado la reanudación de la sesión, lo que permite compartir los
mismos datos de clave secreta compartida entre varias conexiones, con lo
que se optimiza la latencia y los cálculos criptográficos necesarios.
• Integridad: los datos enviados por el canal no pueden ser modificados por
atacantes sin detectar esta modificación.
Fuente: www.hep.by/gnu/gnutls/TLS-layers.html
Fuente: www.cdn77.com/blog/improving-webperf-security-tls-1-3
El mensaje ClientHello está compuesto por una serie de campos en los que el
cliente se anuncia y comienza a proponer opciones para la negociación de los
parámetros. Algunos de estos campos se conservan por interoperabilidad con
versiones anteriores del protocolo, como el campo Client_Version, que se
anuncia con un valor de «0x0303», correspondiente a TLS 1.2. Posteriormente,
se introduce una extensión para la negociación real en la versión 1.3. De igual
forma ocurre con el campo SessionID, que ya no es necesario en TLS 1.3, y al
que se rellena con un valor aleatorio. Los diseñadores del protocolo debieron
tener en cuenta todas estas cuestiones de interoperabilidad para que todo el
software que se ejecuta en los nodos intermedios de la comunicación TLS no
se viera afectado.
Una vez que el cliente recibe el mensaje ServerHello, tiene que contestar
al servidor, para que este sepa que el cliente ha recibido los parámetros. Esta
respuesta, llamada client handshake finished, puede viajar dentro de la petición
de la capa de aplicación (por ejemplo, una petición GET), con lo que se con-
sigue terminar el handshake en este primer mensaje de intercambio de datos
de las aplicaciones.
Una vez establecido el canal, el TLS record protocol recibe los mensajes que tie-
nen que ser transmitidos, los fragmenta en bloques, protege los registros y
transmite el resultado por el canal. Una vez recibidos los datos, estos se verifi-
can, descifran, se vuelven a ensamblar y se entregan a la capa de nivel superior.
De forma general, podemos decir que todos los mensajes e información que se
intercambian cliente y servidor se convierten en un tipo de registro llamado
TLSPlainText, con un tamaño de fragmento máximo de 214 bytes. El tamaño
exacto del fragmento dependerá del tipo de contenido, con una serie de reglas
que se deben respetar según el RFC 8446.
© FUOC • PID_00287477 24 Protocolos seguros de red
Si se está encapsulando un mensaje del TLS handshake protocol, como por ejem-
plo ClientHello, una vez creado el registro se escribirá inmediatamente en
la capa de transporte subyacente.
Fuente: www.slideshare.net/yassl/wolfssl-and-tls-13
El objetivo del TLS alert protocol es que se puedan enviar mensajes de señaliza-
ción entre cliente y servidor. Al igual que otros mensajes, los mensajes gene-
rados por TLS alert protocol se cifran con las claves de seguridad de la conexión
actual.
Los mensajes generados por el protocolo pueden ser de dos clases: de cierre o
para informar sobre un error:
1)� Los� mensajes� de� cierre se utilizan para informar del cierre ordenado de
una conexión. El nodo que es informado del cierre de la conexión, al recibir
dicha alerta debe indicar el final de los datos a la aplicación. En el RFG 8446
tenemos definidos dos mensajes de cierre: close_notify y user_canceled.
© FUOC • PID_00287477 25 Protocolos seguros de red
Como parte final del estudio de TLS, vamos a presentar algunos ejemplos de
su adopción por protocolos de la capa de aplicación que no estaban diseñados
con características de seguridad intrínsecas. Estos ejemplos no suponen una
lista exhaustiva de todos los protocolos de capa de aplicación que soportan
TLS, sino que se han escogido por su uso en servicios de amplia difusión, como
la navegación web o el correo electrónico.
2.3.1. HTTPS
Fuente: code.tutsplus.com/es/tutorials/http-the-protocol-every-web-developer-must-know-
part-2--net-31155
El agente que actúa como cliente HTTP también debe hacerlo como cliente
TLS y, por lo tanto, para iniciar una conexión tendrá que enviar al servidor el
mensaje TLS ClientHello. Una vez que el handshake haya concluido, ya se
podrá enviar sobre el canal la primera petición HTTP.
© FUOC • PID_00287477 26 Protocolos seguros de red
Como resultado, vemos que un servidor HTTPS la primera petición que espe-
ra recibir es un ClientHello, diferente de lo que espera un servidor HTTP.
Es, por lo tanto, recomendable, a efectos prácticos, que escuchen en puertos
diferentes, y el puerto predeterminado para HTTPS es el 443.
Normalmente, el cliente conoce el nombre del host del servidor, y este se co-
difica en la URI. En estos casos, el cliente debe comparar este nombre de host
con el que aparece en el certificado.
Hoy en día, prácticamente todos los navegadores disponibles soportan TLS 1.3 Enlace recomendado
en sus últimas versiones.
Podéis comprobar el sopor-
te para un navegador y ver-
2.3.2. SMTP, IMAP y POP3 sión concreta en páginas co-
mo, por ejemplo: <https://
caniuse.com/tls1-3>
Los protocolos utilizados para el envío y recepción del correo electrónico, co-
mo simple mail transport protocol (SMTP), post office protocol versión 3 (POP3)
o internet message access protocol (IMAP), son similares conceptualmente al de
HTTP. Son protocolos que fueron diseñados al principio de las comunicaciones
de internet y, por lo tanto, sin funciones intrínsecas de seguridad. Podemos
ver el uso de cada uno de estos protocolos de forma general la siguiente figura:
© FUOC • PID_00287477 27 Protocolos seguros de red
Fuente: www.hostinger.es/tutoriales/smtp-pop-imap
Fuente: www.redeszone.net
Como último punto de este apartado, vamos a hacer una pequeña mención
a uno de los usos más habituales hoy en día del protocolo TLS, en concreto
su uso en redes privadas virtuales.
Podemos definir una red privada virtual (virtual private network, VPN,
por sus siglas en inglés) como una tecnología de red que permite una
extensión de la red privada de la organización sobre una red pública
como internet.
3. IPSEC
Está diseñado para trabajar tanto con la versión IPv4 como con la versión
IPv6 del protocolo IP. Entre los servicios de seguridad que se ofrecen están el
control de accesos, la integridad, confidencialidad, autenticación del origen
de los datos o protección contra repeticiones.
Otro concepto importante que no podemos olvidar en IPSec son sus dos posi-
bles modos de funcionamiento para cada uno de sus protocolos de seguridad:
modo�transporte y modo�túnel.
© FUOC • PID_00287477 31 Protocolos seguros de red
3.2. AH
3.3. ESP
Por lo tanto, para iniciar una comunicación IPSec ambos nodos deben tener
configurada una SA con los parámetros necesarios para enviar o recibir infor-
mación con AH o ESP. Esta configuración de SA podría realizarse de forma
manual en cada uno de los nodos, aunque resultaría bastante costoso a nivel
de tiempo y propenso a errores.
Es por esta razón por la que el IETF definió el protocolo IKE, que permite
una gestión automática de claves y establecer a partir de ellas las SA
resultantes. IKE, por lo tanto, es un protocolo de gestión de claves y
su utilidad va más allá de IPSec, por lo que se puede utilizar en otros
escenarios.
Ejemplo
En la primera fase del protocolo IKE phase 1 se establece un canal seguro de comunicación.
En la segunda fase, IKE phase 2, se negociarán los parámetros de trabajo AH o ESP.
Fuente: https://vilarrasa.com.ar/ike_timeout.htm
Al igual que hicimos con el protocolo TLS, vamos a mencionar uno de los
principales usos de IPSec hoy en día, como protocolo para crear redes privadas
virtuales (virtual private network, VPN, por sus siglas en inglés).
Uno de los usos más habituales de IPSec en VPN es crear una configu-
ración conocida como site-to-site VPN, en la que se conectan dos sedes
remotas por una red pública como internet, con el direccionamiento
público conocido por ambos.
© FUOC • PID_00287477 35 Protocolos seguros de red
Para ello, se configuran cada uno de los equipos que acceden a la red pública
en cada sitio (normalmente cortafuegos), como punto de acceso de un túnel
IPSec, y se ocultan todas las direcciones internas de las redes privadas dentro
del tráfico IPSec. Estos dos equipos serán los que negocien las SA con el pro-
tocolo IKE:
Fuente: https://techbast.com/2016/07/sphos-xg-configure-ipsec-vpn-connection.html
Una vez realizada esta configuración, los equipos de la red interna de cada
sitio podrán comunicarse entre ellos por el túnel, como si fueran dos redes de
área local de la misma sede física.
Por último, hay que mencionar también que IPSec ofrece el soporte de seguri-
dad en las VPN que están basadas en el protocolo L2TP (layer-2 tunnel protocol),
ya que este protocolo no fue diseñado con características intrínsecas de segu-
ridad, y la IETF puede usarlos de manera conjunta para crear VPN confiables.
© FUOC • PID_00287477 36 Protocolos seguros de red
4. RADIUS
Unos años más tarde, en junio del año 2000, estas RFC fueron reemplazadas
por las RFC 2865 y 2866, que actualizan los aspectos más importantes del
protocolo RADIUS. Desde entonces han ido apareciendo diferentes RFC que
complementan la RFC 2865 y 2866 y añaden soporte a nuevas funcionalidades
y protocolos que han aparecido durante estos años.
Los paquetes que se envían entre el cliente y el servidor RADIUS (cabe recordar
que el cliente RADIUS es el servidor NAS, no los usuarios finales) deben ir
autenticados usando una clave compartida o secreta, la cual no se envía nunca
por la red. Las contraseñas de usuario son cifradas entre el cliente y el servidor
RADIUS con el algoritmo MD5.
© FUOC • PID_00287477 38 Protocolos seguros de red
EAP define un formato de trama y unos tipos de mensajes que los dis-
tintos métodos de autenticación utilizarán en el proceso de autentica-
ción. Provee funciones comunes de negociación para los métodos EAP
soportados. Está definido en el RFC 3748.
• Peer: punto final del enlace (cliente) que responde al autenticador. Vere-
mos que en el protocolo 802.1x se le conoce como suplicante (supplicant,
en inglés).
Como vemos en esta figura, la separación por capas permite una arquitectura
modular en la que podemos añadir un servidor de autenticación. En el caso
de no tener este servidor, el authenticator tendría la capa con los métodos EAP.
Las funciones de cada una de las capas son siguientes:
• Low�layer: transmitir y recibir las tramas EAP entre peer y authenticator. EAP
se ejecuta sobre diferentes protocolos, como, por ejemplo: PPP, protocolos
de LAN 802.x, protocolos 802.11 wireless LAN, etc.
• EAP� layer: recibe y transmite los paquetes EAP recibidos de low layer, e
implementa la detección de duplicados y retransmisión. También recibe y
transmite paquetes con la capa superior (EAP peer o EAP authenticator).
Como hemos introducido, EAP es un marco de autenticación que soporta di- Enlace recomendado
ferentes métodos de autenticación. Existen métodos de autenticación descri-
Podéis consultar todos los
tos en el RFC 3748 que describe EAP (como por ejemplo EAP MD5), otros des- métodos de autenticación
critos en RFC propios (como por ejemplo EAP TLS en el RFC 5216) y existen disponibles y la lista de có-
digos de tipo y paquetes uti-
algunos específicos de proveedores. Cada uno de estos tipos de métodos debe lizados en EAP en el regis-
tro IANA: <www.iana.org/as-
tener un número diferente dentro de los mensajes del protocolo EAP. Vamos
signments/eap-numbers/eap-
a continuación a presentar tres de los métodos de autenticación disponibles: numbers.xhtml>
EAP-MD5, EAP TLS y EAP-TTLS.
© FUOC • PID_00287477 42 Protocolos seguros de red
3) Otro de los métodos EAP disponibles, y que no tenemos que confundir con
el anterior, es EAP-TTLS, descrito en el RFC 5281. En este método la auten-
ticación mutua se realiza de forma diferente. Lo más habitual es que el servi-
dor se autentique con un certificado y que, una vez autenticado, se utilice el
certificado del servidor para crear un túnel que permita autenticar al cliente
por otros métodos, como por ejemplo PAP, CHAP, MS CHAP o incluso otro
método de autenticación EAP.
Para realizar este proceso 802.1x usa EAP como método de autenticación y
utiliza un servidor AAA externo (como por ejemplo RADIUS). El formato de
encapsulación EAP sobre la capa MAC es EAPOL.
Fuente: https://foundation.wikimedia.org/wiki/File:802.1X_wired_protocols.png
© FUOC • PID_00287477 45 Protocolos seguros de red
4) Cuando recibe este paquete, el servidor RADIUS utiliza el método EAP con-
figurado para autenticar al cliente, en este ejemplo EAP-MD5.
Una vez que hemos comprobado la identidad del usuario que intenta acceder a
la red, podemos, mediante la autorización, comprobar sus derechos de acceso
sobre los recursos de la red.
Para realizar esta fase, podemos utilizar diferentes herramientas, entre las que
podemos destacar las siguientes:
Resumen
Posteriormente, hemos presentado TLS, que fue concebido en sus orígenes pa-
ra dotar de seguridad a la world wide web y, hoy en día, es ampliamente utili-
zado por todos aquellos sitios de internet que consideramos seguros. Además,
proporciona servicios de seguridad en otros servicios de red, como, por ejem-
plo, la transmisión de correo con SMTPS.
Después, hemos presentado el protocolo de nivel de red IPSec, con sus dife-
rentes formas de configuración mediante los protocolos AH, ESP e IKE, y he-
mos visto también cómo se utilizan para crear redes privadas virtuales (VPN)
que nos permiten conexiones privadas mediante redes públicas.
Otro grupo importante de protocolos son aquellos que nos proporcionan ser-
vicios de autenticación. El primero de los que hemos visto ha sido RADIUS,
base de lo que se conoce como protocolos que ofrecen servicios triple AAA
(autenticación, autorización y accounting) con algunas de sus evoluciones co-
mo son DIAMETER y TACACS+.
Bibliografía
Blokdyk, G. (2018). IPsec: A Clear and Concise Reference. The Art of Service.
Ristic, I. (2021). Bulletprof TLS and PKI (2.ª ed.). Feisty Duck.