• Jue. Nov 21st, 2024

¿Qué es Kerberos?

kerberos windows

Kerberos es un protocolo de autenticación de redes de ordenador creado por el MIT que permite a dos ordenadores en una red insegura demostrar su identidad mutuamente de manera segura.

¿Para qué funciona Kerberos?

Este protocolo funciona para autenticar usuarios dentro de una red, a través de una contraseña que solo lo conozca este, pero Kerberos no puede determinar a que recursos o servicios tiene acceso dicho usuario.

Este protocolo es muy utilizado en Active Directory, ya que Kerberos da información sobre los privilegios de cada usuario, pero son los servicios los que verifican a qué puede acceder cada usuario autentificado.

Kerberos logo

Partes de Kerberos

Kerberos esta formado por distintas partes:

Capa de transporte

Kerberos utiliza UDP o TCP como protocolos de transporte, por lo cual el mismo es el encargado de proporcionar la capa de cifrado.

Kerberos utiliza los puertos 88 tanto en UDP como en TCP.

Protocolo TCP Kerberos

Agentes

Estos son los encargados de realizar la autenticación de usuarios:

  • El usuario que quiere acceder.
  • El AP que es el que expone el servicio al usuario.
  • El KDC, este es el servicio que reparte los tickets a los clientes del controlador de dominio. Cuenta con el servicio de autenticación.

Claves de cifrado

Los tickets enviados por Kerberos se transmiten cifrados. Estas son las claves de cifrado utilizadas en Active Directory:

  • Clave del KDC o krbtgt: clave derivada del hash NTLM de la cuenta krbtgt.
  • Clave de usuario: clave derivada del hash NTLM del propio usuario.
  • Clave de servicio: clave derivada del hash NTLM del propietario del servicio.
  • Clave de sesión: clave negociada por el cliente y el KDC.
  • Clave de sesión de servicio: clave negociada para utilizar entre el cliente y el AP.

Tickets

Kerberos utiliza los Tickets, estos se entregan a los usuarios autenticados para realizar determinadas acciones dentro del dominio.

  • El TGS, este ticket se utiliza para poder acceder a los recursos de un servicio.
  • El TGT, este se manda al KDC para que nos ofrezca los TGS.

PAC

Es una estructura que contiene los privilegios de cada usuario y está firmada con la clave KDC, esta está incluida en la mayoría de tickets

La verificación PAC consiste en comprobar la firma del KDC, sin comprobar si los privilegios son correctos.

Se puede evitar incluir el PAC si lo especificamos en el campo KERB-PA-PAC-REQUEST de la petición del ticket

Mensajes

El protocolo Kerberos se comunica con el usuario a través de diferentes mensajes.

  • KRB_AS_REQ: Utilizado por el usuario para solicitar el TGT al KDC.
  • KRB_AS_REP: Respuesta del KDC para enviar el TGT al usuario.
  • KRB_TGS_REQ: Utilizado por el usuario para solicitar el TGS al KDC, utilizando el TGT.
  • KRB_TGS_REP: Respuesta del KDC para enviar el TGS solicitado al usuario.
  • KRB_AP_REQ: Utilizado por el usuario para identificarse contra el servicio deseado, utilizando el TGS del propio servicio.
  • KRB_AP_REP: (Opcional) Utilizado por el servicio para autenticarse frente al usuario.
  • KRB_ERROR: Utilizado por los diferentes agentes para notificar situaciones de error.

¿Cómo funciona el sistema de autenticación de Kerberos?

Las aplicaciones le permiten iniciar sesión en un sistema remoto si puede proveer un ticket que demuestre su identidad y una clave de sesión coincidente. La clave de sesión tiene información que es específica del cliente y del servicio al que se accede.

El KDC crea un ticket y una clave de sesión para todos los usuarios una vez que inician sesión por primera ocasión. El ticket y la clave de sesión coincidente conforman una credencial. A medida que use diversos servicios de red, el cliente puede recopilar muchas credenciales.

El cliente debería tener una credencial para cada servicio que se ejecute en un servidor definido. Ejemplificando, para entrar al servicio ftp en un servidor que se denomina Boston es preciso una credencial. Para entrar al servicio ftp en otro servidor es necesario la credencial que corresponde.

Autenticación Kerberos

Ventajas de Kerberos

Los servicios de redes más convencionales utilizan esquemas de autenticación basados en contraseñas. Tales esquemas necesitan que una vez que un cliente requiere una autenticación en un servidor de red, debería dar un nombre de cliente y una contraseña.

Desafortunadamente, la información de autenticación para bastantes servicios se transmite sin estar encriptada. Para que un esquema de esta clase sea seguro, la red tiene que estar inaccesible a usuarios externos, y todos los usuarios de la red tienen que ser de confianza.

Todavía en esta situación, cuando la red se conecte a la Internet, por el momento no puede aceptar que la red es segura. Cualquier intruso del sistema con ingreso a la red y un analizador de paquetes puede interceptar cualquier contraseña enviada de esta forma, comprometiendo las cuentas de usuarios y la totalidad de toda la infraestructura de estabilidad.

El primer objetivo de Kerberos es el de borrar la transmisión por medio de la red de información de autenticación. Un uso adecuado de Kerberos erradica la amenaza de analizadores de paquetes que intercepten contraseñas en su red.

Desventajas de Kerberos

Pese a que Kerberos quita una amenaza de estabilidad común, podría ser difícil de llevar a cabo por una pluralidad de causas:

La migración de contraseñas de usuarios a partir de una base de datos de contraseñasestándar UNIX, de la misma forma que /etc/passwd o /etc/shadow, a una base de datos de contraseñas Kerberos podría ser tediosa y no hay un mecanismo veloz para hacer esta labor.

Kerberos es solamente parcialmente compatible con los Pluggable Authentication Modules (PAM) utilizados por la mayor parte de los servidores Red Hat Enterprise Linux.

Kerberos presupone que cada cliente es de confianza sin embargo que está usando una máquina no fiable en una red no fiable. Su primordial objetivo es el de prevenir que las contraseñas no encriptadas sean enviadas por medio de la red. No obstante, si cualquier otro cliente aparte del cliente correcto, tiene ingreso a la máquina que emite tickets utilizados para la autenticación — denominado Centro de repartición de llaves (KDC) —, el sistema de autenticación de Kerberos completo está en peligro.

Para que una aplicación utilice Kerberos, el código debería ser modificado para hacer las denominadas apropiadas a las librerías de Kerberos. Las aplicaciones que son modificadas así son consideradas kerberizadas. Para varias aplicaciones, esto puede dar por sentado un esfuerzo desmesurado de programación, debido al tamaño de la aplicación o su diseño. Para otras aplicaciones incompatibles, los cambios se tienen que hacer en el modo en que el servidor de red y sus consumidores se comunican; otra vez, esto puede dar por sentado bastante programación. Generalmente, las aplicaciones de código cerrado que no poseen soporte de Kerberos son habitualmente las más problemáticas.

Al final, si dictamina utilizar Kerberos en su red, debería percatarse de que es una elección de todo o nada. Si dictamina utilizar Kerberos en su red, debería rememorar que si se transmite cualquier contraseña a un servicio que no usa Kerberos para autenticar, se corre el peligro de que el paquete logre ser interceptado. De esta forma, su red no obtendrá ningún beneficio de utilizar Kerberos. Para garantizar su red con Kerberos, solo debería usar las variantes que funcionen con Kerberos de cada una de las aplicaciones cliente/servidor que envíen contraseñas sin encriptar o no usar ni una de estas aplicaciones en la red.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies