¿Qué es Kerberos?

Kerberos es un protocolo de autenticación de red informática. Está diseñado en MIT para permitir recursos de red de manera segura. En este artículo, vamos a ver discutido el concepto de Kerberos y su funcionamiento con la ayuda de un ejemplo.

¿Cómo funciona Kerberos?

Kerberos funciona en tres pasos. Ahora discutamos esos tres pasos uno por uno.

Paso 1:

Iniciar sesión

El cliente ingresa su nombre en una estación de trabajo arbitraria. Luego, la estación de trabajo envía el nombre al servidor de autenticación en formato de texto sin formato.
En respuesta, el servidor de autenticación realiza alguna acción. Primero, crea el paquete de nombre de usuario, es decir, Cliente, y genera la clave de sesión. Cifra este paquete con una clave simétrica que el servidor de autenticación comparte con el Servidor de concesión de tickets (TGS). El resultado de este proceso se llama Ticket Ticket Granting Ticket (TGT). Luego, el servidor de autenticación combina la clave TGT y la clave de sesión y las cifra usando la clave simétrica que se deriva de la contraseña del cliente.

Nota: TGT solo puede abrirse utilizando TGS y la salida final solo puede abrirla el cliente.

Después de recibir este mensaje, la estación de trabajo del usuario solicita la contraseña. Cuando un usuario o cliente ingresa su contraseña, la estación de trabajo genera la clave simétrica derivada de la contraseña de un servidor de autenticación. Esta clave se utiliza para extraer la clave de sesión y TGT. Después de eso, la estación de trabajo destruye la contraseña del cliente de su memoria para evitar el ataque.
Nota: Los usuarios no pueden abrir el Ticket que otorga el Ticket.

Paso 2:

Obtención de un boleto de concesión de servicios.

Supongamos que, después de un inicio de sesión exitoso, el usuario desea comunicarse con otros usuarios a través del servidor de correo. Para ese cliente informa a su estación de trabajo que quiere contactar a otro usuario X. Por lo tanto, el cliente necesita un ticket para comunicarse con la X. En este punto, la estación de trabajo del cliente crea un mensaje destinado a un servidor de otorgamiento de tickets, que contiene los elementos mencionados a continuación -
• Boleto de concesión de boletos
• la identificación de la X cuyos servicios interesan a los clientes.
• La marca de tiempo actual debe cifrarse con la misma clave de sesión.

Concesión de tickets, el ticket se cifra únicamente con la clave secreta del servidor de otorgamiento de tickets, por lo tanto, solo el servidor de otorgamiento de tickets puede abrir un ticket de otorgamiento de tickets. Debido a este servidor de concesión de tickets, cree que el mensaje proviene del cliente. El servidor de autenticación de la sesión cifró el ticket de concesión de tickets y la clave de sesión.

Un servidor de autenticación lo cifra utilizando la clave secreta que se deriva de la contraseña del cliente. Por lo tanto, el único cliente puede abrir el paquete y recuperar el boleto.
Una vez que el servidor de otorgamiento de tickets está satisfecho con los detalles ingresados ​​por el cliente, el ticket de otorgamiento de tickets crea una clave de sesión KAB para que el cliente realice la comunicación segura con X. Ticket Granting Server lo envía dos veces al cliente, la primera vez que se envía cuando se combina con la identificación de X y encriptada con la clave de sesión, la segunda vez se envía cuando se combina con la identificación del cliente y se encripta con la clave secreta de X KB.

En este caso, el atacante puede intentar obtener el primer mensaje enviado por el cliente y puede intentar un ataque de respuesta. Sin embargo, esto fallaría ya que el mensaje del cliente contiene una marca de tiempo cifrada y el atacante no puede reemplazar la marca de tiempo ya que no tiene la clave de sesión.

Paso 3:

El usuario contacta con X para acceder al servidor.

Un cliente envía KAB a X para crear una sesión con X. Para una comunicación segura, el cliente reenvía KAB cifrado con la clave secreta de X a X. X puede acceder a KAB. Para protegerse de un ataque de respuesta, el cliente envía una marca de tiempo a X que está encriptada con KAB.

X usa su clave secreta para obtener la información, de esta información usa KAB para descifrar el valor del sello. Luego, X agrega 1 al valor de la marca de tiempo y lo cifra usando KAB y lo envía al cliente. Luego, el cliente abre el paquete y verifica el sello incrementado en X. A partir de este proceso, el cliente se asegura de que la X reciba el mismo KAB que envía el cliente.

Ahora el cliente y X pueden comunicarse entre sí de forma segura. Ambos usan la clave secreta compartida KAB, encriptan los datos en el momento del envío y descifran el mensaje utilizando la misma clave. Supongamos que el cliente puede querer comunicarse con otro servidor Y, en ese caso, el cliente solo n3d para obtener otra clave secreta del servidor de concesión de tickets. Después de obtener la clave secreta, puede comunicarse con Y de manera similar a como lo hemos discutido en el caso de X. Si el cliente puede comunicarse nuevamente con X, puede usar la misma clave anterior, no es necesario generar un ticket cada vez. Solo por primera vez, necesita obtener el boleto.

Ventajas y desventajas de Kerberos

A continuación se presentan las ventajas y desventajas:

Ventajas de Kerberos

  1. En Kerberos, los clientes y servicios se autentican mutuamente.
  2. Es compatible con varios sistemas operativos.
  3. Los boletos en Kerberos tienen un período limitado. Además, si se roba el ticket, es difícil reutilizarlo debido a las fuertes necesidades de autenticación.
  4. Las contraseñas nunca se envían a través de la red sin cifrar.
  5. En Kerberos, se comparten claves secretas que son más eficientes que compartir claves públicas.

Desventajas de Kerberos

  1. Es vulnerable a contraseñas débiles o repetidas.
  2. Solo proporciona autenticación para servicios y clientes.

Conclusión

En este artículo hemos visto Qué es Kerberos, cómo funciona junto con sus ventajas y desventajas. Espero que encuentres útil este artículo.

Artículos recomendados

Esta es una guía de Kerberos. Aquí discutimos qué es Kerberos, cómo funciona Kerberos y sus ventajas y desventajas. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Tipos de alojamiento web
  2. ¿Qué es la aplicación web?
  3. ¿Qué es el esquema estelar?
  4. Matrices en programación Java