Kerberos Protocol

Introducción.

El "Kerberos Authenticarion Service" es un sistema desarrollado por el MIT como método de protección de datos por medio de la autenticación de terceros, es decir, comprobar la identidad de dos miembros de una comunicación de manera certera y sin margen de error. Es por ello que se enfoca en este aspecto y no en la autorización. Para cumplir su tarea lo más efectivamente posible, ya que se considera como uno de los mejores o el mejor y el más acertado de los sistemas de autenticación, Kerberos hace uso de protocolos de autenticación como NIS, LDAP o Samba, prescindiendo de otros métodos de validación como la dirección de host o de una seguridad física. 

"Kerberos was developed with authentication in mind, and not authorization (or accounting). In fact, Kerberos could be compared to some supreme service that tells others: "yes, you can trust me, and this person is the one she claims to be". Nothing more."   (MIT, 2010)

Al ser un método de autenticación, se podría decir que "Kerberos" es un tipo de cifrado asimétrico, ya que utiliza tecnologías de criptografía en su proceso; sin embargo, este cuenta con algunas diferencias que se explicarán a continuación, las cuales lo hacen mucho más parecido a un sistema de cifrado simétrico.

Funcionamiento de Kerberos Protocol.

Kerberos funciona de la siguiente manera:

Un usuario posee una llave, que no es más que una contraseña con una función hash asociada, la cual es guardada en un centro de distribución de llaves, que a su vez se almacena en un archivo "keytab" dentro del servidor, estas llaves son generadas de manera aleatoria. Para acceder a estas llaves, tanto los usuarios como el servidor deben de hacer uso de Kerberos, el cual es el encargado de devolver la llave solicitada. La comunicación con el servicio Kerberos se da a través de tickets, que no son más que datos encriptados enviados por la red y guardados del lado del cliente.

De esta forma, el centro de distribución de llaves (Key Distribution Center) Kerberos se divide en tres componentes: 
  1. Un servidor de autenticación en el cual, un usuario solicita un reconocimiento y adquiere un Ticket. En este paso, el usuario manda un mensaje al centro de distribución de llaves el cual incluye datos como su nombre, la hora del cliente, la clave del servidor de emisión de tickets, y el tiempo de vida del ticket. Después, el sistema revisa si este usuario existe dentro de la base de datos para después realizar una comprobación del usuario, y si ésta es correcta, el servicio otorgará un ticket. Una vez concluida la autenticación, el servidor genera dos llaves de sesión aleatoria, una para el cliente y otra para el servidor de emisión de Tickets, la cual se usará posteriormente. El mensaje que garantiza la autenticación del usuario se encuentra dividida en dos partes, la primera se encuentra cifrada con la llave del usuario, y la segunda es el Ticket otorgado anteriormente, de esta forma, solamente el usuario puede acceder a este mensaje de autenticación, asegurando así, su identidad.
  2. Un servidor de emisión de tickets (Ticket Granting Server) con los cuales un usuario puede autenticarse dentro de un servicio de la red. Cuando el usuario quiere acceder al sistema, el usuario debe de mandar un mensaje al servicio que incluye al servicio de emisión de Tickets en sí, el Ticket adquirido en el proceso de autenticación, y un autenticador, que no es más que el mensaje encriptado con la llave de sesión adquirida en el primer paso, de esta manera el sistema se asegura de que la solicitud proviene de la persona correcta y no de un intruso. Si la validación es correcta, el servidor de tickets lleva al servicio de comprobación de Tickets, donde el sistema genera un nuevo conjunto de llaves de sesión; después, el servicio manda un mensaje encriptado con la llave de sesión del cliente obtenida en el primer paso, de forma que solamente el usuario pueda leer el contenido y extraer el servicio de verificación de tickets de él. Una vez que el usuario llega a este punto, el usuario utilizará el último ticket adquirido para acceder directamente al servicio que desea ingresar, el cual guardará este ticket dentro de su tabla de tickets y así obtener los datos que el sistema necesita sobre el usuario.
  3. Una base de datos que se encarga de guardar las llaves secretas, tanto las de los clientes como la del servidor y algunas cuentas relacionadas a Kerberos.

Normalmente, este centro de llaves se almacena en una sola computadora con fines de mayor seguridad, la cual utiliza sistemas avanzados de criptografía como DES, 3DES o AES.

Para acceder al sistema, es necesario que el usuario se identifique en el centro de distribución de llaves antes de poder obtener un Ticket que le pueda permitir entrar el sistema, de esta forma se evitan los ataques de fuerza bruta, ya que cada intento de ingresar una nueva contraseña requiere de una autenticación en el servicio. 

Conclusión. 

El sistema Kerberos puede verse de una forma mucho más sencilla, primero, el usuario debe de verificar su identidad para adquirir un ticket, el cual es usado con un servidor que nos otorgará un servicio de concesión de tickets, con el que finalmente podremos acceder al servicio que deseábamos entrar desde un principio. 

De esta forma podemos comparar a Kerberos con un servicio de autenticación de identidad común y corriente de nuestra vida cotidiana, donde nos presentamos ante un centro de verificación que a través de una identificación nuestra y sólo nuestra, la cual ha sido aprobada anteriormente por dicho servicio de autenticación, comprueba nuestra identidad comparándola con algunos datos que pueden ser visibles a simple vista, como son los rasgos faciales o las huellas dactilares; puede que parezca absurdo que algo tan sencillo requiera de tanta complicación a la hora de aplicarlo en un sistema informático, sin embargo, hay que recordar que detrás de un monitor, una persona posee un casi completo anonimato, que se vuelve aun mayor y m ás peligroso si esta persona posee conocimientos informáticos, lo que le permite hacerse pasar por otra persona e infiltrarse dentro de un sistema en el que no es bienvenido. Es por ello que Kerberos se enfoca en asegurarse de que una persona dentro de un servicio informático es la que dice ser, pues al tener el control de esta situación, el sistema adquiere una mayor seguridad.

Bibliografía. 

Basso, A. (10 de Mayo de 2002). Kerberos protocol: an overview. Obtenido de https://pdfs.semanticscholar.org/f6c5/8e2b468f3872c330fcc6e50cc084c8f71600.pdf
Migeon, J.-Y. (10 de Junio de 2010). The MIT Kerberos Administrator's How-to Guide. Obtenido de http://www.kerberos.org/software/adminkerberos.pdf
MIT. (s.f.). Kerberos consortium. Obtenido de http://www.kerberos.org/

Comentarios

Entradas populares de este blog

Cifrado

Conclusiones - Sistemas Heredados