KERBEROS

INTRODUCCIÓN

La seguridad e integridad de un sistema es una de las cosas más importantes a la ahora de llevarlo a la red, por lo que necesitamos servicios de seguridad robustos para combatir toda amenaza que atente contra los puntos mencionados, y hoy estudiaremos a fondo uno de ellos, el protocolo "Kerberos", en donde aprenderemos de el y como es que este trabaja.
Imagen relacionada

¿Qué es Kerberos?
Kerberos es un protocolo de autenticación que proporciona un mecanismo que permite a los usuarios y las máquinas identificarse en la red y recibir acceso limitado y definido a las áreas y servicios configurados por el administrador. Kerberos autentica las entidades verificando su identidad, y Kerberos también protege estos datos de autenticación para que un externo no pueda acceder y usarlos o manipularlos. Kerberos está integrado en todos los principales sistemas operativos, incluidos Microsoft Windows, Apple OS X, FreeBSD y Linux. (TechTarget, 2017)

La mayoría de los servicios de red convencionales utilizan esquemas de autenticación basados en contraseñas, donde un usuario proporciona una contraseña para acceder a un servidor de red determinado. Sin embargo, la transmisión de información de autenticación para muchos servicios no está cifrada. Para que dicho esquema sea seguro, la red debe ser inaccesible para los usuarios externos, y todas las computadoras y usuarios de la red deben ser de confianza y confiables.

Kerberos fue desarrollado originalmente para el Proyecto Athena en el Instituto de Tecnología de Massachusetts (MIT). El nombre Kerberos fue tomado de la mitología griega; Kerberos (Cerberus) era un perro de tres cabezas que vigilaba las puertas de Hades. Los tres cabezales del protocolo Kerberos representan un cliente, un servidor y un Centro de distribución de claves (KDC), que actúa como el servicio de autenticación de terceros confiable de Kerberos.

Resultado de imagen para kerberos
¿Cómo trabaja?

Una vez que un usuario se autentica en el KDC, envía un ticket específico para esa sesión a la máquina del usuario y cualquier servicio kerberizado busca el ticket en la máquina del usuario en lugar de pedirle al usuario que se autentique usando una contraseña.

Cuando un usuario en una red kerberizada inicia sesión en su estación de trabajo, su principal se envía al KDC en una solicitud de Ticket-Granting Ticket (TGT) desde el servidor de autenticación (AS). Esta solicitud puede ser enviada por el programa de inicio de sesión para que sea transparente para el usuario o pueda ser enviada por el programa de kinit después de que el usuario inicie sesión.

El KDC busca el principal en su base de datos. Si se encuentra el principal, el KDC crea un TGT, que se cifra con la clave del usuario y se devuelve a ese usuario.

Resultado de imagen para KDC KERBEROS
El programa de inicio de sesión o de kinit en la máquina del cliente descifra el TGT usando la clave del usuario (que calcula a partir de la contraseña del usuario). La clave del usuario se usa solo en la máquina cliente y no se envía a través de la red.

El TGT expira después de un cierto período de tiempo (generalmente diez horas) y se almacena en el caché de credenciales de la máquina del cliente. Se establece un tiempo de caducidad para que un atacante comprometido sea útil para un atacante solo por un corto período de tiempo. Una vez que se emite el TGT, el usuario no tiene que volver a ingresar su contraseña hasta que el TGT expire o cierre sesión y vuelva a iniciar sesión.

Siempre que el usuario necesite acceder a un servicio de red, el software del cliente utiliza el TGT para solicitar un nuevo ticket para ese servicio específico del Servidor que otorga tickets (TGS). El boleto de servicio se usa luego para autenticar al usuario de manera transparente. (Red Hat Inc., 2017)

Kerberos Authentication, in Steps

El sistema Kerberos puede verse comprometido cada vez que un usuario en la red se autentica frente a un servicio no kerberizado enviando una contraseña en texto sin formato. Se desaconseja el uso de servicios no kerberizados. Dichos servicios incluyen Telnet y FTP. Sin embargo, el uso de otros protocolos encriptados, como los servicios SSH o SSL asegurados, es aceptable, aunque no es ideal.

Versiones
  • Version 4: Utiliza un cifrado basado en DES llamado PCBC, sin embargo esta versión tiene  deficiencias como la vulnerabilidad a ataques a sus contraseñas y que este realiza un cifrado doble que resulta inútil.
  • Version 5: Se añaden nuevos elementos como el Dominio del usuario, opciones para fijar indicadores en el ticket, darle tiempos de inicio y fin del ticket, agrega la opción de agregar una subclave, y finalmente agrega un mecanismo de seguridad para evitar el ataque informático “Repetición del mensaje” implementando la numeración en secuencia de los mensajes.

Conclusión
Kerberos es uno de los servicios de autenticación más confiables para los desarrolladores, y no es nada erróneo eso, ya que con lo que pudimos ver, este sistema además de permitirnos identificar un servidor y un cliente, podemos cifrar toda la comunicación entre ambas entidades. Kerberos ataca varias problemáticas, desde no permitir la suplantación de estaciones de trabajo, modificar las direcciones de red, y contraatacar los ataques de obtención y repetición de mensajes.
Es cierto decir que no existe un servicio de seguridad 100% infalible, pero Kerberos sí que nos da uno por el momento, ya que cumple efectivamente con sus cometidos y como hemos visto, este se va actualizando con el pasar de los tiempos.   

Referencias

Red Hat Inc. (12 de 11 de 2017). CHAPTER 3. USING KERBEROS. Obtenido de Red Hat | Customer Portal: https://access.redhat.com
TechTarget. (12 de 11 de 2017). Kerberos. Obtenido de TechTarget | Search Security: http://searchsecurity.techtarget.com
MIT. (25 de 09 de 2017). Kerberos. Obtenido de https://web.mit.edu/kerberos/


Comentarios

Entradas populares