Kerberos
Introducción
En el presente ensayo se analiza el algoritmo denominado Kerberos y como se divide para garantizar la seguridad de un sistema. Así mismo se analizan las ventajas y desventajas de usar este protocolo al ser implementado.Kerberos
Kerberos es un protocolo de
autenticación de red creado por el MIT (Massachusetts Institute of Technology),
y utiliza una criptografía de llave simétrica para autenticar a los usuarios de
los servicios de red, lo que en pocas palabras significa que las contraseñas
nunca son enviadas a través de la red. (Martinez Peñaranda , Rincon Avila, & Peñaranda, 2012).
Componentes
- Tercero confiable, llamado Centro de Distribución de Claves (KDC), con dos componentes:
- servidor de autenticación (AS)
- servidor emisor de tickets (TGS)
- Los tickets identifican a usuarios.
- BD con claves compartidas de cada ente con Kerberos (se crean claves de sesión).
Versiones
- VERSIÓN 4: sólo un dominio
- VERSIÓN 5: permite autenticación inter-dominio. Esta versión es un estándar de Internet (RFC4120), usado por muchas utilitarias.
Requisitos iniciales para Kerberos
- Seguridad: Kerberos debería ser lo suficientemente robusto para que un posible atacante no lo considere un punto débil.
- Fiabilidad: la falta de disponibilidad del servicio de Kerberos implica la falta de disponibilidad de los servicios que se proporcionan. Así, Kerberos debería ser muy fiable y emplear una arquitectura de servidores distribuida en la que un sistema pudiera disponer de copias de otro.
- Transparencia: aparte del requisito de introducir una contraseña, es preferible que el usuario no sea consciente de que está teniendo lugar la autentificación.
- Escalabilidad: el sistema debería poder dar cabida a un gran número de clientes y servidores, lo cual sugiere una arquitectura distribuida modular.
VERSIÓN 4
AS
En
un entorno de red sin protección, cualquier cliente puede solicitar un servicio
a cualquier servidor. Para evitar la suplantación, se propone la implementación
de la autenticación AS que conozca las claves de todos los usuarios y las
almacene en una base de datos centralizada, por ejemplo:
Con el ticket (que es de un solo
uso), el cliente puede solicitar un servicio al servidor. C envía a V un
mensaje que contiene el ID de cliente y el ticket. V descifra el ticket y
verifica que el ID del usuario en el ticket es el mismo que el ID sin cifrar en
el mensaje. Si estos dos coinciden, el servidor considera al usuario
autentificado y concede el servicio solicitado.
Un atacante podría capturar el
ticket transmitido en el mensaje (2), luego usar el nombre IDc y transmitir un
mensaje de la forma (3) desde otra estación de trabajo. El servidor recibiría
un ticket válido que coincide con el ID del usuario y concedería el acceso. Para
prevenir este ataque, el AS incluye en el ticket la dirección de red desde la
que se envió la solicitud original y así el ticket es válido sólo si se
transmite desde la misma estación de trabajo que inicialmente solicitó
el ticket.
TGS
Debido a que los tickets se
pueden utilizar una sola vez, la propuesta para que el usuario haga menor uso
de su contraseña, es la generación de un ticket TGS. El usuario primero
solicita al AS un TGT (Ticket-Granting Ticket), ticket que concede un ticket
(Tickettgs). El módulo de cliente almacena este ticket en la
estación de trabajo del usuario. Cada vez que el usuario requiera acceso a un
nuevo servicio, el cliente se dirige al TGS. Luego el TGS concede el ticket
para el servicio concreto. El ticket incluye un sello de tiempo con indicación
de la fecha y la hora en que se emitió el ticket y un tiempo de vida que indica
el período de validez del ticket (por ejemplo, ocho horas).
Un servicio de red (el TGS o un
servicio de aplicaciones) debe ser capaz de comprobar que la persona que usa el
ticket es la misma persona a la que se emitió ese ticket. Así mismo, se debe
garantizar la identidad del servidor, de lo contrario un servidor falso estaría
entonces en situación de actuar como un servidor real, capturar cualquier
información y rechazar el servicio real al usuario.
Como conclusión para este proceso,
el cliente y el servidor comparten una clave secreta. Esta clave puede usarse
para cifrar futuros mensajes entre los dos o para intercambiar una nueva clave
de sesión aleatoria con ese propósito.
VERSIÓN 5
Implica
mejoras a la versión 4, arreglando varios fallos e incovenientes que se presentaban
en la versión anterior:
- Dominio: indica el dominio del usuario.
- Opciones: se usan para solicitar que se fijen determinados indicadores en el ticket de regreso.
- Tiempos: los usa el cliente para solicitar los siguientes valores de tiempo para el ticket:
- from: la fecha de comienzo deseada para el ticket solicitado.
- till: la fecha de expiración deseada para el ticket solicitado.
- rtime: la nueva fecha de expiración solicitada.
- Nonce: un valor aleatorio que se debe repetir en el mensaje (2) para garantizar que la respuesta es reciente y no ha sido capturada y reenviada por ningún oponente.
Ventajas de Kerberos
- Si se usa apropiadamente, Kerberos elimina efectivamente la amenaza de los husmeadores (sniffers) de paquetes en la red.
- La información que es asignada a cada ticket brinda una seguridad robusta al intercambiar información.
Desventajas de Kerberos
- Si alguien más tiene acceso al único equipo que envía los comprobantes utilizados para la autenticación, denominado el centro de distribución de claves (Key Distribution Center), además del usuario correspondiente, todo el sistema de autenticación Kerberos corre riesgo.
- Para que una aplicación utilice Kerberos, su origen debe ser modificado para que pueda realizar las llamadas apropiadas a las bibliotecas de Kerberos. Esto puede ser bastante problemático debido al diseño de algunas aplicaciones y la adaptación de estas puede requerir una programación extensa.
- Si Kerberos es utilizado en una red, cualquier contraseña no encriptada transferida a un servicio no compatible con Kerberos (o no Kerberizado), se encuentra en riesgo.
Conclusión
Kerberos es un protocolo que pensó en todas las maneras posibles en las que un atacante podría infiltrarse, por lo cual es robusto y cumple altamente con uno de sus requerimientos iniciales que es no considerar Kerberos un punto débil para atacar. Sin embargo, vemos que las desventajas van más hacia su implementación, ya que si se quiere aplicar este protocolo todos los programas del sistema deberán estar adaptados (o kerberizados) para garantizar que el sistema es seguro.
Referencias
Martinez Peñaranda , F., Rincon Avila, C., &
Peñaranda, H. A. (2012). Kerberos. Obtenido de Administración de
Sistemas Operativos en Red:
https://asorufps.wikispaces.com/file/view/KERBEROS-1150101-1150111-1150123.pdf
Massachusetts
Institute of Technology. (s.f.). Capítulo 19. Kerberos. Obtenido de
Massachusetts Institute of Technology:
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/ch-kerberos.html
Stallings, W. (2004). Fundamentos
y Seguridad en Redes. Madrid: PEARSON EDUCACIÓN.




Comentarios
Publicar un comentario