Sean Deuby

En 1999 escribí un libro sobre Windows 2000 Server en general y Active Directory en particular. Intento no mirar atrás y comparar lo que escribí sobre AD en aquel entonces con lo que sé ahora, pero sigo teniendo cariño a un pasaje que explicaba cómo funciona el protocolo de seguridad Kerberos, utilizando una analogía de una fiesta de empresa en el salón de baile de un hotel. Aunque OAuth2 y OpenID Connect son los actuales favoritos del mundo de la seguridad, la mayor parte del mundo empresarial local sigue dependiendo de Kerberos cada segundo de cada día.

Creo que una analogía que implique una fiesta es más propicia para aprender un tema árido como Kerberos. Así que he modernizado un poco mi ejemplo y lo he pulido para compartirlo con vosotros aquí. Kerberos gestiona tanto la autenticación como la autorización en Active Directory. Técnicamente hablando, Kerberos es un protocolo de autenticación, pero Microsoft introduce datos de autorización (SID) en el campo PAC del ticket Kerberos para que los consuman los servicios (recursos integrados en AD como archivos compartidos o aplicaciones como Exchange o SharePoint).

Kerberos en la fiesta de empresa

Imagina que vas a una gran fiesta de empresa en la que se sirve alcohol y es barra libre1. Se ha anunciado como una fiesta temática de ciencia ficción (oye, es una empresa tecnológica), y cada zona del bar del salón de baile donde se celebra la fiesta está decorada con un tema de ciencia ficción concreto, como Planeta prohibido, El día que la Tierra se detuvo, La guerra de las galaxias, etc., y el personal está compuesto por camareros disfrazados.)

Figura 1: Distribución de la fiesta

Te acercas a la entrada del salón de baile y delante hay una de esas mesas con falda de terciopelo y una gran pancarta en la que pone "Key Drink Center". Para entrar en la fiesta, tienes que mostrar tu carné de conducir (la solicitud de servicio de autenticación que contiene tu contraseña) a las personas que trabajan en la mesa (el Centro de Distribución de Llaves, o KDC).

Entregas tu carné de conducir(hora actual, cifrado con el hash de la contraseña que has introducido) a una persona que tiene una lista de invitados; te mira, mira tu carné y mira la lista de invitados de la fiesta. Si tu nombre coincide con un nombre de la lista de invitados(el usuario existe en el directorio) y te pareces a la persona de la foto del carné de conducir (el hash de la contraseña introducidacoincide con el hash de la contraseña del nombre de usuario en el DC), puedes entrar en la fiesta(estás autentificado).

Ahora que ya puedes entrar en la fiesta, la persona sentada junto al revisor de listas te estampa un sello en la mano (el Ticket Granting Ticket, o TGT). Es válido durante diez horas: ¡vaya fiesta! A continuación...

La siguiente persona de la mesa le pregunta si desea visitar una zona del bar en particular (un servicio). Has oído que en el bar Guía del autoestopista galáctico habrá un Pan Galactic Gargle Blaster, así que pides ese bar(nombre principal del servicio, o SPN). Pueden ver el sello de tu mano, así que te dan un ticket(el ticket de servicio) para que se lo des al camarero del bar HHGG. Este ticket también es válido durante diez horas. Si tu carné indica que eres mayor de 21 años, también te lo estamparán en el reverso del ticket.

Armado con tu ticket del bar, te diriges a la fiesta.

Te diriges directamente al bar HHGG para que te sirvan, presentas el ticket al camarero de tres cabezas. Él ve que es para su bar(autentificación del servicio), le da la vuelta y ve que tiene un sello que indica que eres mayor de 21 años(el campo PAC del ticket de servicio contiene un SID que coincide con un ACE del servicio) y, por lo tanto, autorizado a tomar una bebida alcohólica. Asiente con la cabeza y te lo devuelve (recuerda que sirve para acceso ilimitado durante las próximas diez horas). Prepara un Gargle Blaster Pan-Galáctico y te lo sirve.

A partir de ese momento, si necesitas otra bebida (y se recomienda precaución si pides un PGGB), sólo tienes que presentar al camarero del HHGG tu ticket de servicio, y él te preparará otra bebida. Ten en cuenta que sólo puedes beber en el bar HHGG con ese ticket; si quieres que Gort te prepare una bebida (es bastante torpe y no para de romper vasos) debes volver a la mesa de delante y conseguir un ticket de servicio de Day The Earth Stood Still.

Este sistema de bebidas para fiestas requiere un poco de trabajo, pero lo garantiza:

  • Sólo pueden asistir las personas que figuran en la lista de invitados
  • No se puede colar ningún aguafiestas, ya que hay que verificar la identidad
  • Los fiesteros eligen un bar concreto
  • Sólo los mayores de 21 años están autorizados a consumir bebidas alcohólicas.
  • La fiesta terminará definitivamente después de 10 horas

Por supuesto, sólo se puede estirar esta analogía hasta cierto punto, por lo que no hay que mirar demasiado cerca; ver el artículo detallado de Brian Desmond sobre la autenticación de Active Directory Kerberos / proceso de autorización para los detalles sangrientos. Pero creo que hace un trabajo decente al explicar la autenticación AD con intercambios de tickets Kerberos, autorización y valores de tiempo de vida. ¡Y sé que todos los profesionales de TI que han asistido a una conferencia están bien familiarizados con asistir a una fiesta en un salón de baile de la conferencia!

1Mi tipo de fiesta.