Kerberos



Introducción



Kerberos es un protocolo de autentificación desarrollado para actuar sobre problemas resultantes de un entorno abierto distribuido, donde los usuarios o clientes desean obtener servicios de servidores distribuidos por toda la red.

La función principal radica en que el cliente pruebe su identidad al servidor y viceversa. Además, después de que el cliente y el servidor hayan utilizado Kerberos para probar sus identidades, tienen la oportunidad de usarlo para cifrar su comunicación y asegurar la privacidad y la integrad de los datos.

Funcionamiento:

Cuando un usuario, en una red que utiliza el sistema Kerberos, se registra en su estación de trabajo, su principal se envía al Key Distribution Center (KDC) como una demanda para un Ticket Granting Ticket (TGT). Esta demanda puede ser enviada por el programa login (para que sea transparente al usuario) o puede ser enviada por el programa kinit después de que el usuario se registre. El KDC verifica el principal en su base de datos. Si lo encuentra, el KDC crea un TGT, lo encripta usando las claves del usuario y lo devuelve al usuario. 
El programa login o kinit desencripta el TGP utilizando las claves del usuario. El TGT, que caduca después de un cierto periodo de tiempo, es almacenado en su caché de credenciales. Sólo se puede usar durante un cierto periodo de tiempo, que suele ser ocho horas (a diferencia de una contraseña comprometida, que puede usarse hasta que se cambie). El usuario no tiene que introducir su contraseña otra vez hasta que el TGT caduca o se desconecta y vuelve a conectarse. 
Cuando el usuario necesita acceder a un servicio de red, el cliente usa el TGT para pedir un ticket para utilizar el servicio Ticket Granting Service (TGS), que se ejecuta en el KDC. El TGS emite un ticket por el servicio deseado que se usa para autenticar el usuario. Kerberos depende de ciertos servicios de red para trabajar correctamente. Primero, Kerberos necesita una sincronización de reloj entre las computadoras y su red. Si no se ha configurado un programa de sincronización de reloj para la red, será necesaria su instalación. Ya que ciertos aspectos de Kerberos se apoyan en el DNS (Domain Name System), las entradas DNS y los host en la red deben estar configurados correctamente.

Kerberos 4

La versión 4 de Kerberos hace uso del DES, esto dentro de un protocolo complejo para proporcionar el Servicio de Autentificación. El riesgo más grande es la suplantación por lo cual los servidores deben poder confirmar las identidades de los clientes que soliciten el servicio. Una solución es el uso de un servidor de autentificación que conozca todos los usuarios y almacene una base de datos centralizada. El AS comparte una única clave secreta con cada servidor. Estas claves son distribuidas físicamente y de manera segura.

Kerberos se basa en una combinación de clave de cifrado y protocolos criptográficos que garantizan la autenticación de los usuarios. Un administrador de la red se ha creado un servidor de autenticación conocido como Ticket Grating Server(TGS). Uno o varios dominios se crean el TCG. Un usuario solicita el acceso a un determinado ámbito, debe obtener el boleto de la TGS, mediante una autenticación del servidor.
El modulo del cliente en la estación de trabajo del usuario solicita de contraseña de usuario y luego envía al AS un mensaje que incluye el ID del usuario, servidor y la contraseña del cliente.
El servidor de autenticación comprueba su base de datos para verificar si el usuario ha dado la contraseña correspondiente a su ID de usuario y si efectivamente tiene permiso de acceder al servidor. Cuando pasa las dos comprobaciones, el servidor de autentificación acepta al usuario como autentico y debe convencer al servidor de dicha autenticidad por lo cual crea un ticket que contiene el ID, la dirección ip del usuario y el ID del servidor.
El ticket se cifra usando la clave secreta que comparten el servidor de autentificación y el servidor. Luego este ticket se entrega al cliente el cual no podrá modificarlo. El servidor descifra el ticket y verifica el ID del usuario es el mismo que el ID sin cifrar el mensaje. Si ambos son iguales el servidor considera al usuario como autentico y concede los servicios que sean solicitados.
El ticket es cifrado para evitar su modificación y falsificación. El ID del servidor se cifra para evitar modificación o falsificación. El ID del servidor se incluye en el ticket para que el servidor verifique el descifrado correcto del ticket y para evitar la suplantación se ingresa la dirección ip del cliente en el ticket.

Kerberos versión 5

En la versión 5 un servidor puede actuar como un proxy en nombre de un cliente adoptando, efectivamente, las credenciales y los privilegios del cliente para solicitar un servicio de otro servidor. Si un cliente desea usar este mecanismo solicita un TGT con el indicador PROXIABLE. Cuando este ticket que otorga servicio con una dirección de red diferente, este último ticket tendrá su indicador PROXY. Una aplicación que reciba tal ticket podría aceptarla o exigir autentificación adicional para proporcionar una uniforme auditoria.
Aparecen nuevas características para el intercambio de autentificación cliente/servidor. En el mensaje (5), el cliente puede solicitar de forma opcional que se requiera autentificación mutua. El autentificador incluye los nuevos campos que se exponen a continuación:
•  Subclave: una clave de cifrado elegida por el cliente que se usará para proteger
esta sesión concreta de la aplicación. Si se omite este campo, se usa la clave de sesión
(KCJ suministrada en el ticket del mensaje (4).
• Número de secuencia: un campo opcional que especifica el número inicial de secuencia
que va a usar el servidor para los mensajes enviados al cliente durante esta
sesión.
Conclusiones:

Existen diferentes maneras de resguardar la seguridad de nuestros programas, y Kerberos es una muy buena opción para ello, ya que nos permite mantener una autenticación al ingresar al sistema. Como con todo existen diferentes versiones que van mejorando y se adapatan a lo que se necesite.

Bibliografía:

Stallings, W. (2004). Fundamentos de Seguridad en Red y Aplicaciones. Madrid, España: Pearson.

Universidad Autonoma de México. (2017). Profesores UNAM. Obtenido de Kerberos: http://profesores.fi-b.unam.mx/yasmine/KERBEROS_DNS.pdf

Comentarios

Entradas populares de este blog

Cifrado Asimetrico

Modelo OSI y TCP/IP

RMI