1 - ¿Qué es Kerberos?

Kerberos es un protocolo de autenticación, no de autorización. Su función principal es validar la identidad de los usuarios o servicios que intentan acceder a recursos dentro de un entorno de red, como los proporcionados por Active Directory (AD).

Autenticación vs. Autorización

  • Autenticación: Confirmar que el usuario es quien dice ser.

  • Autorización: Determinar a qué recursos tiene derecho de acceso ese usuario.

Kerberos se ocupa exclusivamente de la autenticación. Durante este proceso, un usuario se presenta al sistema (por ejemplo, mediante un nombre de usuario y una contraseña), y si las credenciales son válidas, Kerberos emite un Ticket Granting Ticket (TGT). Este TGT es luego utilizado para obtener otros tickets (TGS – Ticket Granting Service) que permiten al usuario autenticarse ante servicios específicos dentro del dominio (como un servidor de archivos, base de datos, o impresora compartida).

¿Y la autorización?

Aquí es donde surge una distinción crítica: aunque Kerberos puede incluir información sobre los privilegios del usuario (por ejemplo, grupos a los que pertenece, SID, etc.) dentro del ticket Kerberos, la decisión final de acceso no recae en Kerberos, sino en el servicio destino.

Por ejemplo:

  • Un usuario puede obtener un ticket TGS para acceder al servicio CIFS en un servidor.

  • Pero el servidor CIFS (el recurso) es el encargado de evaluar si ese usuario tiene los permisos necesarios para leer o escribir archivos, según su propia política de control de acceso (por ejemplo, ACLs en el sistema de archivos NTFS).

Nota: El servidor CIFS (Common Internet File System) es un servicio que implementa un protocolo de red para compartir archivos, impresoras y otros recursos entre computadoras, especialmente en entornos Windows. CIFS es una versión antigua del protocolo SMB (Server Message Block), y aunque hoy en día se usa más el término SMB (especialmente SMBv2 y SMBv3), "CIFS" aún se usa comúnmente para referirse al acceso a recursos compartidos mediante este protocolo.

¿Qué contiene un ticket Kerberos?

El ticket TGS que se entrega al usuario contiene, entre otras cosas:

  • El nombre del usuario y su SID.

  • Una lista de grupos de seguridad a los que pertenece.

  • Un tiempo de validez.

  • El nombre del servicio destino (SPN).

  • Claves cifradas utilizadas para verificar su autenticidad.

El TGT que el KDC entrega al usuario contiene, entre otras cosas:

  • El nombre del usuario y su SID.

  • Una lista de grupos de seguridad a los que pertenece.

  • Una clave de sesión para comunicarse con el KDC.

  • Un tiempo de validez (inicio, expiración y posible renovación).

  • Claves cifradas y firmas que garantizan su autenticidad.

  • Información de control como flags (forwardable, renewable, etc.).

  • Todo el ticket está cifrado con la clave secreta del KDC (krbtgt).

Esto proporciona al servicio destino información suficiente para tomar decisiones de autorización, pero la lógica de control de acceso no está implementada en Kerberos. El protocolo simplemente transporta datos que los servicios pueden usar para tomar decisiones, como el nombre del usuario, sus grupos de seguridad o sus privilegios, pero corresponde al servicio verificar estos datos y aplicar sus propias políticas de acceso de forma local.

Last updated