Kerberos como servicio de autenticación
KERBEROS...
Uno de los
servicios de seguridad fundamentales que deben brindar los sistemas en internet
es la autentificación, esto debido a que el ataque a la seguridad más frecuente
es la suplantación. La suplantación es un ataque de tipo activo, en el que una
entidad finge ser otra, es decir un intruso trata de acceder a información
restringida a la que no tiene acceso y por alguna razón obtiene acceso a esa
información fingiendo ser otro usuario y realiza acciones indebidas negando que
él las hizo. Kerberos ofrece una solución bastante sólida a esta problemática,
pero ¿Es kerberos completamente infalible e invulnerable?
Surgimiento
de kerberos
Primero que nada hay que comenzar por los
motivos que se tuvieron para el desarrollo de kerberos. Kerberos ofrece un
servicio de autentificación bastante completo, añadiendo que también ofrece los
mecanismos de integridad de los datos y
cifrado. Todo lo que incluye se debe al propósito con el que fue desarrollado.
Se creó con la intención de dar solución a la problemática de que un usuario no
autorizado pudiera acceder a información no autorizada para este, también para
que un usuario no pudiera fingir ser otro y realizar algún tipo de transacción
negando que la hizo, en pocas palabras realizando una suplantación. Kerberos
también se desarrolló con la intención de restringir el acceso de los usuarios
autorizados a cierta información y autentificar las solicitudes a dicha
información.
¿Qué es kerberos?
Ya que se han
mencionado las problemáticas que motivaron a que se desarrollara el servicio de
autentificación conocido como kerberos, es necesario definir qué es: Kerberos
es un servicio de autenticación que se desarrolló en el MIT (Massachusetts
Institute of Technology) como parte del proyecto Athena.
Kerberos ofrece una autentificación de
usuario, integridad y privacidad. La autenticación la ofrece al asegurar que
las identidades del remitente y el destinatario sean verdaderas al realizar una
transacción, ofrece integridad de los datos al asegurar que los datos llegan a
un destinatario tal y como fueron enviados y ofrece privacidad al cifrar la
información cuanto es transmitida a través de la red. Kerberos maneja un
servidor central de autentificación que tiene la función de autentificar a los
usuarios a un servidor y autentificar el servidor a los usuarios. Con el
servicio kerberos se puede iniciar sesión en varios dispositivos, intercambiar
datos, transferir datos de manera segura; además también ofrece servicios de
autorización que permiten que un administrador pueda restringirle a un usuario
el acceso a ciertos servicios y/o equipos. Y de igual manera siendo usuario de
kerberos se puede restringir el acceso a otras personas a una cuenta personal.
Ventajas
de Kerberos
Kerberos presenta varias ventajas, una de ellas es que
proporciona autentificación y seguridad entre dominios o dentro de un único
dominio. Otra de sus grandes ventajas es que es flexible, es decir, en la
ejecución de las aplicaciones, ya que se puede configurar para que sólo se
permitan solicitudes de servicios de red que se basen o no en kerberos o
igualmente se puede configurar el servicio kerberos para permitir únicamente
solicitudes que se basen en el servicio ya mencionado
Kerberos posee ciertas características que lo hacen un
servicio bastante completo y confiable, estas características son las
siguientes:
Seguridad: Kerberos
ofrece seguridad al no permitir que cualquier persona que esté en la red como
observador pueda obtener información necesaria para hacerse pasar por un
usuario de algún sistema.
Fiabilidad: Kerberos
es fiable al proporcionar una arquitectura de servidores distribuidas en la que
un sustema puede disponer de copias de otro. De esta manera es tolerante a
fallos.
Transparencia: Debido a
que el usuario debe introducir una contraseña y que este no se da cuenta que
está ocurriendo una autentificación.
Escalabilidad: Debido a
que puede darle lugar a un gran número de clientes y a un gran número de
servidores
Otra de las grandes ventajas de
kerberos es que es un sistema de inicio de sesión único, es decir que
sólo se necesita autentificarse ante el servicio una vez por inicio de sesión,
el resto de las transacciones que se realizan dentro del sistema al que se
ingresó se comprueban de manera automática.
La autentificación con Kerberos
Ya que se ha
definido lo que es kerberos, por qué surgió, en qué consiste y cuáles son sus
ventajas, es necesario explicar cómo es que funciona.
Kerberos es
diferente a los métodos de autentificación de usuario y contraseña. En vez de
validar cada usuario para cada uno de los servicios de red, se usa una un
cifrado de tipo simétrico y un tercero, un KDC (Centro de distribución de
llaves) para autentificar los usuarios ante varios servicios de red. Una vez
que el usuario se haya autentificado ante el KDC, se le envía un ticket
específico para la sesión que ha iniciado, y dicho ticket se manda a la máquina
del usuario, y cuando se requiera la utilización del algún servicio de red
kerberizado, el servicio buscará el ticket en la máquina del usuario en vez de
pedirle que introduzca nuevamente una contraseña para que pueda autentificarse.
Cuando un usuario
se registra a un sistema que utiliza kerberos, el ID del usuario se envía al
KDC como petición para solicitar un TGT (Ticket de acceso), el cual es un
ticket especial que le permite al cliente obtener otros tickets sin la
necesidad de solicitarlos desde el KDC. El KDC envía la petición del usuario a Un
servidor de autenticación (AS) y este responde
a la petición del cliente, genera el TGT y luego es mandado al KDC.
Cuando el usuario
quiere iniciar sesión el KDC busca en su base de datos al usuario, y si lo
encuentra cifra el TGT que ya fue generado previamente y se lo manda al
usuario. Se descifra el TGT usando la contraseña que el usuario ingresó al
sistema cuando se registró. La contraseña del usuario es utilizada en su
computadora, por lo que esta no es enviada a la red, y de esta manera se
autentifica al usuario, ya que este posee un TGT único y al ser la contraseña
obtenida desde su computadora y no enviada por la red, no puede ser
interceptada por un intruso. Por lo que el riesgo de que alguien más pueda
obtener la contraseña se reduce.
Los TGT tienen una
configuración que hacen que se caduquen después de cierto tiempo (10 horas
normalmente). El TGT es almacenado en el caché de credenciales de la máquina
del cliente. Al existir un tiempo para que el TGT se caduque, un intruso tiene
muy poco tiempo para que el ticket pueda serle de utilidad. El usuario no
necesita mandar su contraseña al KDC hasta que el ticket (TGT) se halla
caducado o hasta que la sesión se haya cerrado y quiera iniciarse de nuevo.
Cuando un usuario
quiera acceder a algún otro servicio de red, no es necesario autentificarse con
la contraseña, sino que el TGT se utiliza para eso, el servidor AS accede a un
servidor TGS para autentificar, y de esta manera obtiene otros tickets que le
sirven al usuario para acceder a dichos servicios.
Desventajas
de Kerberos
No todo es
infalible al utilizar kerberos, ya que a pesar de ser un servicio de
autentificación bastante completo también tiene sus defectos ya que se vuelve
vulnerable cada vez que el usuario en la red se valida ante un servicio no
kerberizado y requiere enviar su contraseña en la red en texto plano, es decir
sin cifrar.
Otra desventaja de
kerberos es que este requiere de ciertros servicios en la red para trabajar
correctamente y si se utilian servicios de la red no kerberizados, el servicio
de autentificación se vuelve bastante vulnerable.
Conclusión
En conclusión
Kerberos es un servicio de autentificación bastante confiable y sólido que se
diferencia de otros métodos de autentificación debido a la emisión de tickets
que este realiza para poder autentificar a los usuarios. Gracias a los tickets
TGT la autentificación se realiza de una manera más concreta puesto que estos
tienen un tiempo de caducidad, por lo que un intruso no dispone de mucho tiempo
para utilizarlo en caso de obtenerlo, la contraseña que el usuario ingresa a un
sistema kerberizado no requiere ser enviada por la red a cada momento para
autentificarse, para eso está el TGT. Kerberos reduce en gran medida los
ataques de suplantación, autentifica, asegura la integridad de los datos y los
hace privados ya que también utiliza el mecanismo de cifrado ya que los tickets
TGT se cifran para enviarse y se descifran cuando se reciben, todo esto con un
cifrado simétrico.
Sin embargo a pesar
de que kerberos resulta ser un servicio bastante completo, no es perfecto y
también tiene sus vulnerabilidades, debido a que cuando un usuario se valida
ante un servicio de red no kerberizado y envía su contraseña sin cifrar por la
red, kerberos se hace muy vulnerable, o el hecho de que se requiere de ciertos
servicios de red para que kerberos funcione bien.
Kerberos resulta
ser una buena opción para utilizarse como servicio de autenticación en un
sistema en la red, sin embargo hay que tener en cuenta que no es completamente
infalible, y que como todas las cosas tiene sus vulnerabilidades en ciertos
casos específicos.
Referencias:
William Stallings;(2004); Fundamentos
de Seguridad en Redes, Aplicaciones y Estándares; 2 aedición; Editorial
Pearson educación; Madrid, España; Páginas 71-15.
Oracle ;( 2002-2011);Guía de administración de servicios del sistema: Servicios de seguridad; California, EU;
Recuperado en:https://docs.oracle.com/cd/E24842_01/html/E23286/intro-5.html
Red Hat;(2005); Ref Hat Enterprise Linux 4: Manual de referencia;Cambridge, Massachusetts; Recuperado en: http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/ch-kerberos.html
Comentarios
Publicar un comentario