Kerberos ( / ˈ k ɜːr b ər ɒ s / ) es un protocolo de autenticación de redes informáticas que funciona mediante tickets para permitir que los nodos que se comunican a través de una red no segura demuestren su identidad entre sí de forma segura. Sus diseñadores lo concibieron principalmente para un modelo cliente-servidor y proporciona autenticación mutua : tanto el usuario como el servidor verifican la identidad del otro. Los mensajes del protocolo Kerberos están protegidos contra la interceptación y los ataques de repetición .
Kerberos se basa en la criptografía de clave simétrica y requiere un tercero de confianza , y opcionalmente puede usar criptografía de clave pública durante ciertas fases de la autenticación. [ 2 ] Kerberos usa el puerto UDP 88 por defecto.
El protocolo recibió su nombre del personaje Cerbero , también escrito Kerberos , de la mitología griega , el feroz perro guardián de tres cabezas del Hades . [ 3 ]
Historia y desarrollo
El Instituto Tecnológico de Massachusetts (MIT) desarrolló Kerberos en 1988 para proteger los servicios de red proporcionados por el Proyecto Athena . [ 4 ] [ 5 ] Su primera versión fue diseñada principalmente por Steve Miller y Clifford Neuman basándose en el protocolo de clave simétrica Needham-Schroeder anterior . [ 6 ] [ 7 ] Las versiones 1 a 3 de Kerberos fueron experimentales y no se publicaron fuera del MIT. [ 8 ]
Kerberos versión 4, la primera versión pública, se lanzó el 24 de enero de 1989. Dado que Kerberos 4 se desarrolló en Estados Unidos y utilizaba el algoritmo de cifrado Estándar de Cifrado de Datos (DES) , las restricciones de control de exportaciones estadounidenses impidieron su exportación a otros países. El MIT creó una versión exportable de Kerberos 4 con todo el código de cifrado eliminado, [ 8 ] llamada "Bones". [ 9 ] Eric Young, de la Universidad Bond de Australia , reimplementó DES en Bones, en una versión llamada "eBones", que podía utilizarse libremente en cualquier país. El Real Instituto de Tecnología de Suecia lanzó otra reimplementación llamada KTH-KRB. [ 10 ]
Neuman y John Kohl publicaron la versión 5 en 1993 con la intención de superar las limitaciones y los problemas de seguridad existentes. La versión 5 apareció como RFC 1510 , que posteriormente quedó obsoleta con la RFC 4120 en 2005.
En 2005, el grupo de trabajo Kerberos del Grupo de Trabajo de Ingeniería de Internet (IETF) actualizó las especificaciones. Las actualizaciones incluyeron:
- Especificaciones de cifrado y suma de verificación ( RFC 3961 ).
- Cifrado estándar de cifrado avanzado (AES) para Kerberos 5 ( RFC 3962 ).
- Nueva edición de la especificación Kerberos V5: "Servicio de autenticación de red Kerberos (V5)" ( RFC 4120 ). Esta versión reemplaza a la RFC 1510 y aclara aspectos del protocolo y su uso previsto con una explicación más detallada y clara.
- Una nueva edición de la especificación de la interfaz de programación de aplicaciones de servicios de seguridad genéricos (GSS-API) "El mecanismo de la interfaz de programación de aplicaciones de servicios de seguridad genéricos (GSS-API) de Kerberos versión 5: versión 2" ( RFC 4121 ).
El MIT ofrece una implementación de Kerberos de forma gratuita, bajo permisos de copyright similares a los utilizados para BSD . En 2007, el MIT creó el Consorcio Kerberos para fomentar su desarrollo continuo. Entre los patrocinadores fundadores se encuentran proveedores como Oracle , Apple Inc. , Google , Microsoft , Centrify Corporation y TeamF1 Inc., así como instituciones académicas como el Real Instituto de Tecnología de Suecia, la Universidad de Stanford y el MIT, y proveedores como CyberSafe que ofrecen versiones con soporte comercial.
Protocolo
Descripción
El cliente se autentica ante el servidor de autenticación (AS), que forma parte del centro de distribución de claves (KDC) . El KDC emite un ticket de concesión de tickets (TGT) , que incluye una marca de tiempo, lo cifra utilizando la clave secreta del servicio de concesión de tickets (TGS) y devuelve el resultado cifrado a la estación de trabajo del usuario. Esto se realiza con poca frecuencia, normalmente al iniciar sesión el usuario; el TGT caduca en algún momento, aunque el gestor de sesiones del usuario puede renovarlo automáticamente mientras este permanece conectado.
Cuando el cliente necesita comunicarse con un servicio en otro nodo (un "principal", en la terminología de Kerberos), envía el TGT al TGS, que es otro componente del KDC y generalmente comparte el mismo host que el servidor de autenticación. El servicio debe estar registrado previamente en el TGS con un Nombre Principal de Servicio (SPN) . El cliente utiliza el SPN para solicitar acceso a este servicio. Tras verificar que el TGT es válido y que el usuario tiene permiso para acceder al servicio solicitado, el TGS emite un ticket de servicio (ST) y claves de sesión al cliente. A continuación, el cliente envía el ticket al servidor de servicio (SS) junto con su solicitud de servicio.

El protocolo se describe detalladamente a continuación.
Inicio de sesión y preautenticación del usuario
- El usuario introduce un nombre de usuario y una contraseña en el equipo cliente . Otros mecanismos de credenciales, como PKINIT (RFC 4556), permiten el uso de claves públicas o tarjetas inteligentes en lugar de una contraseña.
- El cliente transforma la contraseña en una clave simétrica utilizando una función hash unidireccional o una función de derivación de clave estándar , según el conjunto de cifrado utilizado.
- En Kerberos moderno (v5), el cliente suele usar esta clave para cifrar una marca de tiempo actual. Esta marca de tiempo cifrada se envía al servidor autónomo junto con el nombre de usuario como "preautenticación" para demostrar que el usuario conoce la contraseña antes de que el servidor autónomo emita cualquier ticket, lo que previene ataques de fuerza bruta sin conexión.
Autenticación del cliente
- El cliente envía un mensaje en texto plano con el ID de usuario al servidor de autenticación (AS) solicitando servicios en nombre del usuario. (Nota: Ni la clave secreta ni la contraseña se envían al servidor de autenticación).
- El servidor AS comprueba si el cliente está en su base de datos. Si lo está, el servidor AS genera la clave secreta mediante el hash de la contraseña del usuario que se encuentra en la base de datos (por ejemplo, Active Directory en Windows Server) y envía los dos mensajes siguientes al cliente:
- Mensaje A: La clave de sesión del cliente/TGS se ha cifrado utilizando la clave secreta del cliente/usuario.
- Mensaje B: Ticket de concesión de tickets (TGT, que incluye el ID del cliente, la dirección de red del cliente , el período de validez del ticket y la clave de sesión del cliente/TGS ) cifrado utilizando la clave secreta del TGS.
- Una vez que el cliente recibe los mensajes A y B, intenta descifrar el mensaje A con la clave secreta generada a partir de la contraseña ingresada por el usuario. Si la contraseña ingresada por el usuario no coincide con la contraseña en la base de datos de AS, la clave secreta del cliente será diferente y, por lo tanto, no podrá descifrar el mensaje A. Con una contraseña y una clave secreta válidas, el cliente descifra el mensaje A para obtener la clave de sesión Cliente/TGS . Esta clave de sesión se utiliza para futuras comunicaciones con el TGS. (Nota: El cliente no puede descifrar el mensaje B, ya que está cifrado con la clave secreta del TGS). En este punto, el cliente tiene suficiente información para autenticarse ante el TGS.
Autorización de servicio al cliente
- Al solicitar servicios, el cliente envía los siguientes mensajes al TGS:
- Mensaje C: Compuesto por el mensaje B (el TGT cifrado utilizando la clave secreta TGS) y la ID del servicio solicitado.
- Mensaje D: Autenticador (compuesto por el ID del cliente y la marca de tiempo), cifrado mediante la clave de sesión del cliente/TGS (obtenida por el cliente en el mensaje A).
- Al recibir los mensajes C y D, el TGS recupera el mensaje B del mensaje C. Descifra el mensaje B utilizando la clave secreta del TGS. Esto le proporciona la clave de sesión del cliente/TGS y el ID del cliente (ambos se encuentran en el TGT). Utilizando esta clave de sesión del cliente/TGS , el TGS descifra el mensaje D (Autenticador) y compara los ID de cliente de los mensajes B y D; si coinciden, el servidor envía los dos mensajes siguientes al cliente:
- Mensaje E: Ticket de cliente a servidor (que incluye el ID del cliente, la dirección de red del cliente, el período de validez y la clave de sesión cliente/servidor ) cifrado mediante la clave secreta del servicio.
- Mensaje F: La clave de sesión del cliente/servidor está cifrada con la clave de sesión del cliente/TGS .
Solicitud de servicio al cliente
- Al recibir los mensajes E y F de TGS, el cliente dispone de información suficiente para autenticarse en el Servidor de Servicio (SS). El cliente se conecta al SS y envía los dos mensajes siguientes:
- Mensaje E: Del paso anterior (el ticket de cliente a servidor , cifrado mediante la clave secreta del servicio por el TGS).
- Mensaje G: Un nuevo autenticador, que incluye la ID del cliente, la marca de tiempo y está cifrado mediante la clave de sesión del cliente/servidor .
- El SS descifra el ticket (mensaje E) utilizando su propia clave secreta para recuperar la clave de sesión del cliente/servidor . Utilizando la clave de sesión, el SS descifra el autenticador y compara el ID del cliente de los mensajes E y G; si coinciden, el servidor envía el siguiente mensaje al cliente para confirmar su verdadera identidad y su disposición a prestarle servicio:
- El cliente descifra la confirmación (mensaje H) utilizando la clave de sesión cliente/servidor y comprueba si la marca de tiempo es correcta. Si lo es, el cliente puede confiar en el servidor y comenzar a enviarle solicitudes de servicio.
- El servidor proporciona los servicios solicitados al cliente.
Soporte por parte de los sistemas operativos
Microsoft Windows
Windows 2000 y versiones posteriores utilizan Kerberos como método de autenticación predeterminado. [ 13 ] Algunas adiciones de Microsoft al conjunto de protocolos Kerberos se documentan en el RFC 3244 "Protocolos de cambio y establecimiento de contraseña de Microsoft Windows 2000 Kerberos". El RFC 4757 documenta el uso que hace Microsoft del cifrado RC4 . Si bien Microsoft utiliza y amplía el protocolo Kerberos, no utiliza el software del MIT.
Kerberos se utiliza como método de autenticación preferido: en general, unir un cliente a un dominio de Windows implica habilitar Kerberos como protocolo predeterminado para las autenticaciones de ese cliente a los servicios en el dominio de Windows y a todos los dominios con relaciones de confianza con ese dominio. [ 13 ]
Por el contrario, cuando el cliente o el servidor, o ambos, no están unidos a un dominio (o no forman parte del mismo entorno de dominio de confianza), Windows utilizará NTLM para la autenticación entre el cliente y el servidor. [ 13 ]
Las aplicaciones web de Internet pueden imponer Kerberos como método de autenticación para los clientes unidos al dominio mediante el uso de las API proporcionadas en SSPI .
Microsoft Windows y Windows Server incluyen setspn , una utilidad de línea de comandos que se puede usar para leer, modificar o eliminar los nombres principales de servicio (SPN) de una cuenta de servicio de Active Directory . [ 14 ] [ 15 ]
Unix y otros sistemas operativos
Muchos sistemas operativos tipo Unix, incluidos FreeBSD , macOS de Apple , Red Hat Enterprise Linux , Solaris de Oracle , AIX de IBM , HP-UX y otros, incluyen software para la autenticación Kerberos de usuarios o servicios. Diversos sistemas operativos que no son tipo Unix, como z/OS , IBM i y OpenVMS, también ofrecen soporte para Kerberos. Además, existen implementaciones integradas del protocolo de autenticación Kerberos V para agentes cliente y servicios de red que se ejecutan en plataformas integradas, disponibles en varias empresas .
Inconvenientes y limitaciones
- Kerberos tiene requisitos de tiempo estrictos, lo que significa que los relojes de los hosts involucrados deben estar sincronizados dentro de los límites configurados. Los tickets tienen un período de disponibilidad de tiempo, y si el reloj del host no está sincronizado con el reloj del servidor Kerberos, la autenticación fallará. La configuración predeterminada según MIT requiere que la diferencia horaria no supere los cinco minutos. En la práctica, los demonios del Protocolo de Tiempo de Red (NTP ) se suelen usar para mantener sincronizados los relojes de los hosts. Tenga en cuenta que algunos servidores (la implementación de Microsoft es uno de ellos) pueden devolver un resultado KRB_AP_ERR_SKEW que contiene la hora del servidor cifrada si ambos relojes tienen una diferencia mayor que el valor máximo configurado. En ese caso, el cliente podría reintentar calculando la hora usando la hora del servidor proporcionada para encontrar la diferencia. Este comportamiento está documentado en RFC 4430 .
- El protocolo de administración no está estandarizado y difiere entre las implementaciones del servidor. Los cambios de contraseña se describen en el RFC 3244 .
- En caso de adoptar criptografía simétrica (Kerberos puede funcionar con criptografía simétrica o asimétrica (de clave pública)), dado que todas las autenticaciones están controladas por un centro de distribución de claves (KDC) centralizado, la vulneración de esta infraestructura de autenticación permitirá a un atacante suplantar la identidad de cualquier usuario.
- Cada servicio de red que requiera un nombre de host diferente necesitará su propio conjunto de claves Kerberos. Esto complica el alojamiento virtual y los clústeres.
- Kerberos requiere que las cuentas de usuario y los servicios tengan una relación de confianza con el servidor de tokens Kerberos.
- La confianza requerida entre los clientes dificulta la creación de entornos diferenciados (por ejemplo, dominios separados para el entorno de prueba, el entorno de preproducción y el entorno de producción): o bien es necesario crear relaciones de confianza entre dominios que impidan una separación estricta de los dominios de entorno, o bien se deben proporcionar clientes de usuario adicionales para cada entorno.
Seguridad
El cifrado Estándar de Cifrado de Datos (DES) puede usarse en combinación con Kerberos, pero ya no es un estándar de Internet debido a su debilidad. [ 16 ] Existen vulnerabilidades de seguridad en productos que implementan versiones antiguas de Kerberos que carecen de soporte para cifrados más recientes como AES.
Véase también
Referencias
- ↑ "Kerberos 5 Versión 1.22.2" . Consultado el 30 de enero de 2026 .
- ↑ RFC 4556, resumen.
- ↑ "Autenticación Kerberos" . IONOS Digitalguide . Consultado el 25 de agosto de 2022 .
- ↑ Garman 2003 , pág. 5.
- ↑ Steiner, Jennifer G.; Geer, Daniel E. (21 de julio de 1988). Servicios de red en el entorno Athena . Actas de la Conferencia Usenix de invierno de 1988. CiteSeerX 10.1.1.31.8727 .
- ↑ Steiner, Jennifer G.; Neuman, Clifford; Schiller, Jeffrey I. (febrero de 1988).Kerberos : Un servicio de autenticación para sistemas de red abiertos . Actas de la Conferencia USENIX de Invierno de 1988. CiteSeerX 10.1.1.112.9002 . S2CID 222257682 .
- ↑ Elizabeth D. Zwicky; Simon Cooper; D. Brent (26 de junio de 2000). Creación de cortafuegos para Internet: Seguridad en Internet y la web . O'Reilly. ISBN 9781565928718.
- 1 2 Garman 2003 , pág. 7.
- ↑ Pröhl & Kobras 2022 , pág. 7.
- ↑ Garman 2003 , págs. 7–8.
- ↑ Neuman, C.; Kohl, J. (1993). "El servicio de autenticación de red Kerberos (V5)" . doi : 10.17487/RFC1510 . Archivado del original el 21 de agosto de 2016.
- ↑ Neuman, Clifford; Hartman, Sam; Yu, Tom; Raeburn, Kenneth (2005). "El servicio de autenticación de red Kerberos (V5)" . doi : 10.17487/RFC4120 . Archivado del original el 21 de agosto de 2016.
- 1 2 3 "¿Qué es la autenticación Kerberos?" . Microsoft TechNet. 8 de octubre de 2009. Archivado del original el 20 de diciembre de 2016.
- ↑ Setspn - Windows CMD - SS64.com
- ↑ Setspn | Microsoft Docs
- ↑ Tom, Yu; Love, Astrand (2012). "Desaprobar DES, RC4-HMAC-EXP y otros algoritmos criptográficos débiles en Kerberos" . doi : 10.17487/RFC6649 . Archivado del original el 27 de octubre de 2015.
- General
- Garman, Jason (2003). Kerberos: La guía definitiva . O'Reilly Media, Inc. ISBN 978-0-596-00403-3.
- Prohl, Mark; Kobras, Daniel (14 de abril de 2022). Kerberos: inicio de sesión único en gemischten Linux/Windows-Umgebungen (en alemán). dpunkt.verlag. pag. 7.ISBN 9783960888512.
- Lynn Root (30 de mayo de 2013) (2 de abril de 2013). "Explícalo como si tuviera 5 años: Kerberos" . Blog de Lynn Root .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - Microsoft TechNet (18 de julio de 2012). "Conceptos básicos del protocolo Kerberos" . Biblioteca MSDN .
- Equipo del kit de recursos (7 de enero de 2021). "Microsoft Kerberos (Windows)" . Biblioteca MSDN .
- B. Clifford Neuman; Theodore Ts'o (septiembre de 1994). "Kerberos: un servicio de autenticación para redes informáticas" . IEEE Communications . 32 (9): 33–8 . Bibcode : 1994IComM..32i..33N . doi : 10.1109/35.312841 . S2CID 45031265 .
- Kohl, John T.; Neuman, B. Clifford; Ts'o, Theodore Y. (1994). «La evolución del sistema de autenticación Kerberos». En Brazier, FMT ; Johansen, D (eds.). Sistemas abiertos distribuidos . IEEE Computer Society Press. pp. 78–94 . CiteSeerX 10.1.1.120.944 . ISBN 978-0-8186-4292-0OCLC 1191406172
- "Descripción general de Kerberos: un servicio de autenticación para sistemas de red abiertos" . Cisco Systems. 19 de enero de 2006. Consultado el 15 de agosto de 2012 .
- "Cómo funciona la autenticación Kerberos" . learn-networking.com. 28 de enero de 2008. Archivado del original el 2 de abril de 2015. Consultado el 15 de agosto de 2012 .
- "¿Qué es la autenticación Kerberos?: Inicio de sesión y autenticación" . Microsoft TechNet. 8 de octubre de 2009. Consultado el 7 de diciembre de 2016 .
- RFC
- RFC 1510 El servicio de autenticación de red Kerberos (V5) [Obsoleto]
- RFC 1964 El mecanismo GSS-API de Kerberos versión 5
- RFC 3961 Especificaciones de cifrado y suma de comprobación para Kerberos 5
- RFC 3962 Estándar de cifrado avanzado (AES) Cifrado para Kerberos 5
- RFC 4120 El servicio de autenticación de red Kerberos (V5) [Actual]
- RFC 4121 Mecanismo de interfaz de programación de aplicaciones (API) del servicio de seguridad genérico (GSS) de Kerberos versión 5: Versión 2
- RFC 4537 Extensión de negociación del criptosistema Kerberos
- RFC 4556 Criptografía de clave pública para la autenticación inicial en Kerberos (PKINIT)
- RFC 4557 Compatibilidad del Protocolo de estado de certificado en línea (OCSP) con la criptografía de clave pública para la autenticación inicial en Kerberos (PKINIT)
- RFC 4757 Tipos de cifrado Kerberos RC4-HMAC utilizados por Microsoft Windows [Obsoleto]
- RFC 5021 Kerberos Extendido Versión 5 Intercambios de Centro de Distribución de Claves (KDC) sobre TCP
- RFC 5349 Compatibilidad con criptografía de curva elíptica (ECC) para criptografía de clave pública para autenticación inicial en Kerberos (PKINIT)
- RFC 5868 Declaración del problema sobre el funcionamiento entre dominios de Kerberos
- RFC 5896 Interfaz de programación de aplicaciones de servicio de seguridad genérico (GSS-API): Delegar si está aprobado por la política.
- RFC 6111 Restricciones adicionales de nomenclatura de Kerberos
- RFC 6112 Soporte de anonimato para Kerberos
- RFC 6113 Un marco generalizado para la preautenticación de Kerberos
- RFC 6251 Uso de Kerberos versión 5 sobre el protocolo de seguridad de la capa de transporte (TLS).
- RFC 6448 La forma no cifrada del mensaje KRB-CRED de Kerberos 5
- RFC 6542 Kerberos Versión 5 Interfaz de programación de aplicaciones de servicio de seguridad genérico (GSS-API) Enlace de canal Agilidad de hash
- RFC 6560 Contraseña de un solo uso (OTP) Preautenticación
- RFC 6649: Desaconseja el uso de DES, RC4-HMAC-EXP y otros algoritmos criptográficos débiles en Kerberos.
- RFC 6784 Opciones de Kerberos para DHCPv6
- RFC 6803 Cifrado Camellia para Kerberos 5
- RFC 6806 Canonización del nombre principal de Kerberos y referencias entre dominios
- RFC 6880 Un modelo de información para Kerberos versión 5
- RFC 8009 Cifrado AES con HMAC-SHA2 para Kerberos 5
Lecturas adicionales
- «Comentario de Novell Inc. al acuerdo propuesto entre Microsoft y el Departamento de Justicia, de conformidad con la Ley Tunney» . Causa civil n.º 98-1232 (CKK): Estados Unidos de América contra Microsoft Corporation . Departamento de Justicia. 29 de enero de 2002. Consultado el 15 de agosto de 2012 .
- Bryant, Bill (febrero de 1988). "Diseñando un sistema de autenticación: un diálogo en cuatro escenas" . Obra humorística sobre cómo evolucionó el diseño de Kerberos . MIT .
- Hornstein, Ken (18 de agosto de 2000). "Preguntas frecuentes sobre Kerberos, v2.0" . Secretario de Marina . Archivado del original el 3 de diciembre de 2002. Recuperado el 15 de agosto de 2012 .
- Bellovin, SM; Merritt, M. (1 de octubre de 1990). "Limitaciones del sistema de autenticación Kerberos" . ACM SIGCOMM Computer Communication Review . 20 (5): 119– 132. doi : 10.1145/381906.381946 . S2CID 8014806 .
- Neuman, BC; Ts'o, T. (septiembre de 1994). "Kerberos: un servicio de autenticación para redes informáticas". IEEE Communications Magazine . 32 (9): 33– 38. Bibcode : 1994IComM..32i..33N . doi : 10.1109/35.312841 . S2CID 45031265 .
- Bella, Giampaolo; Paulson, Lawrence C. (1998). «Kerberos Versión IV: Análisis inductivo de los objetivos de confidencialidad». Seguridad informática — ESORICS 98. Notas de clase en ciencias de la computación. Vol. 1485. págs. 361–375 . doi : 10.1007/BFb0055875 . ISBN 978-3-540-65004-1.
- Abdelmajid, NT; Hossain, MA; Shepherd, S.; Mahmoud, K. (2010). "Evaluación mejorada del protocolo de seguridad Kerberos mediante lógica BAN modificada". 10.ª Conferencia Internacional IEEE de 2010 sobre Computación y Tecnología de la Información . págs. 1610–1615 . doi : 10.1109/CIT.2010.285 . ISBN 978-1-4244-7547-6. S2CID 6246388 .
Enlaces externos
- Consorcio Kerberos
- Página de Kerberos en el sitio web del MIT
- Grupo de trabajo de Kerberos en el sitio web de la IETF
- Diagrama de secuencia de Kerberos archivado el 26/03/2015 en Wayback Machine.
- Implementación de Heimdal/Kerberos
- Introducciones relacionadas con la informática en 1988
- Protocolos de autenticación
- protocolos de control de acceso informático
- seguridad de redes informáticas
- Protocolos de transporte clave
- Algoritmos de clave simétrica
- Software del Instituto Tecnológico de Massachusetts
- Cerbero