Qué es Kerberos y Cómo Funciona
34
Views

La ciberdelincuencia es una triste realidad del mundo moderno que afecta tanto a usuarios particulares como a empresas. Ninguna empresa u organización está a salvo y la situación no mejorará en el futuro próximo. Los expertos predicen que las pérdidas por delitos cibernéticos alcanzarán los $25 billones para 2025. Forbes también advierte sobre el aumento de las amenazas a los dispositivos móviles.

Estas predicciones destacan que la ciberdelincuencia seguirá existiendo y solo crecerá. Como resultado, el mundo digital busca desarrollar nuevas estrategias para mejorar la ciberseguridad.

En este artículo, analizaremos el protocolo de autenticación Kerberos y veremos cómo funciona.

¿Qué es Kerberos?

Kerberos es un protocolo de seguridad de red informática que autentica las solicitudes entre dos o más hosts de confianza en una red no confiable, como Internet. Desarrollado por MIT para el proyecto Athena a fines de la década de 1980, ahora se utiliza de forma predeterminada en Microsoft Windows y se implementa en otros sistemas operativos como Apple OS, FreeBSD, UNIX y Linux.

¿Cómo Funciona Kerberos?

Kerberos utiliza la criptografía de clave secreta y un tercero de confianza, el Centro de Distribución de Claves (KDC), para autenticar las aplicaciones cliente-servidor y verificar la identidad de los usuarios. El KDC proporciona servicios de autenticación y emisión de tickets que permiten una verificación de identidad segura, protegiéndola de escuchas y ataques de repetición.

¿Para qué se Utiliza Kerberos?

Kerberos se usa ampliamente en el mundo digital, especialmente en los sistemas que requieren un auditoría y autenticación confiables. Se utiliza en la autenticación Posix, Active Directory, NFS y Samba, y como alternativa a los sistemas de autenticación SSH, POP y SMTP.

Aplicaciones Principales de Kerberos

  • Inicio de sesión único (SSO). Kerberos permite a los usuarios autenticarse una sola vez y obtener un ticket, conocido como Ticket de concesión de ticket de Kerberos (TGT). Este TGT se puede utilizar para solicitar tickets para acceder a varios recursos sin volver a introducir las credenciales, lo que facilita el trabajo de los usuarios y reduce la necesidad de administrar muchas contraseñas.
  • Autenticación de red. Kerberos proporciona un mecanismo seguro para autenticar servicios de red, como servidores y aplicaciones. Los clientes pueden solicitar un ticket de servicio al Centro de Distribución de Claves (KDC) utilizando su TGT, y este ticket se utiliza para autenticarse y establecer una sesión segura con el servicio solicitado.
  • Autenticación mutua. Kerberos proporciona autenticación mutua, lo que significa que tanto el cliente como el servidor se autentican entre sí durante el proceso de autenticación inicial. Esto previene la suplantación de identidad y los ataques “man in the middle” mediante la verificación de la autenticidad de ambas partes en la comunicación.
  • Autorización. Kerberos también se puede utilizar para implementar políticas de control de acceso. Después de que el cliente se autentica, el ticket de Kerberos contiene información sobre su identidad y sus derechos de acceso. Los servidores pueden usar esta información para aplicar reglas de autorización y permitir o negar el acceso a recursos específicos en función de los privilegios del cliente.

¿Qué Hace el Protocolo de Autenticación Kerberos?

Protocolo de Autenticación de 3 componentes
Protocolo de Autenticación de 3 componentes

MIT desarrolló el protocolo para un proyecto llamado Athena. El nombre proviene del perro de tres cabezas de Hades de la mitología griega, que custodiaba el inframundo. El nombre fue elegido porque el protocolo Kerberos representa tres componentes:

  • Cliente
  • Recurso de red (servidor de aplicaciones)
  • Centro de distribución de claves (KDC)

Estos tres componentes permiten que Kerberos proporcione la autenticación de hosts de confianza en redes no confiables. Kerberos garantiza que solo los usuarios autorizados tengan acceso a los recursos de red. También proporciona seguridad AAA: Autenticación, Autorización y Contabilidad.

Los desarrolladores de MIT crearon Kerberos para una autenticación segura a los sistemas requeridos y la autorización de usuarios. En ese momento, la mayoría de los sistemas transmitían contraseñas sin cifrar, lo que permitía a los hackers obtener acceso no autorizado. Por lo tanto, el desarrollo de Kerberos era necesario.

El proyecto estuvo a cargo de S.P. Miller, B.C. Neuman, J.I. Schiller y J.H. Saltzer.

En Kerberos, el KDC emite tickets que permiten a los diferentes hosts confirmar su identidad. Los desarrolladores también aseguraron que la autenticación Kerberos admita la autorización. Esto significa que el cliente autenticado por Kerberos también obtiene acceso a los recursos.

Beneficios de la Autenticación Kerberos

Kerberos trae muchos beneficios a cualquier configuración de ciberseguridad:

  • Control de acceso efectivo. Kerberos permite a los usuarios realizar un seguimiento de las entradas y aplicar políticas de seguridad a través de un único punto.
  • Duración limitada de los tickets clave. Cada ticket de Kerberos tiene una marca de tiempo, datos de caducidad y duración de la autenticación, controlados por el administrador.
  • Autenticación mutua. Los sistemas y los usuarios pueden autenticarse entre sí.
  • Reutilización de la autenticación. La autenticación de los usuarios de Kerberos se reutiliza y es duradera; cada usuario solo debe ser verificado por el sistema una vez. Mientras el ticket esté activo, el usuario no necesita volver a introducir sus datos para autenticarse.
  • Medidas de seguridad fuertes y diversas. Los protocolos de seguridad de Kerberos utilizan la criptografía, varias claves secretas y la autorización de terceros, creando una protección robusta. Las contraseñas no se transmiten a través de las redes y todas las claves secretas están cifradas.

¿Cómo Funcionan los Protocolos de Autenticación de Kerberos?

Funcionamiento de Kerberos
Funcionamiento de Kerberos

A continuación, se muestra un diagrama simplificado del funcionamiento de los protocolos de autenticación de Kerberos:

  1. Solicitud al servidor de autenticación. El cliente solicita la autenticación al KDC. Esta solicitud se transmite en texto plano.
  2. Respuesta del servidor de autenticación. El KDC envía un TGT y una clave de sesión si el cliente está en la base de datos. Si el cliente no está en la base de datos, la autenticación no se completa.
  3. Solicitud de ticket de servicio. El cliente solicita un ticket de servicio junto con el TGT emitido previamente por el KDC.
  4. Respuesta a la solicitud de ticket. El KDC envía el ticket cifrado con la clave de sesión. El cliente puede utilizar la clave de sesión enviada previamente por el KDC para descifrar el ticket de servicio.
  5. Solicitud al servidor de aplicaciones. El cliente solicita acceso al servidor de aplicaciones utilizando el ticket de servicio.
  6. Respuesta del servidor de aplicaciones. El servidor de aplicaciones autentica al cliente y envía el ticket que proporciona acceso a un servicio específico.

El ticket de servicio tiene una duración específica. Puede utilizar el mismo ticket de sesión para acceder a los servicios hasta que expire. De forma predeterminada, el ticket de Kerberos tiene una duración de 600 minutos.

Descripción General del Flujo del Protocolo de Kerberos

Analicemos con más detalle qué es la autenticación de Kerberos y veamos cómo funciona, dividiéndola en sus componentes principales.

Los principales participantes de un proceso típico de Kerberos son:

  • Cliente: actúa en nombre del usuario e inicia la solicitud de servicio.
  • Servidor: proporciona el servicio al que el usuario quiere acceder.
  • Servidor de autenticación (AS): autentica al cliente. Si la autenticación es exitosa, el AS emite un ticket al cliente llamado TGT (Ticket de concesión de ticket). Este ticket confirma a otros servidores que el cliente está autenticado.
  • Centro de distribución de claves (KDC): en el entorno de Kerberos, el servidor de autenticación se divide lógicamente en tres partes: la base de datos (db), el servidor de autenticación (AS) y el servidor de emisión de tickets (TGS). Estas tres partes están unidas en un solo servidor llamado Centro de distribución de claves (KDC).
  • Servidor de emisión de tickets (TGS): es un servidor de aplicaciones que emite tickets de servicio.

Ahora analicemos el proceso del protocolo.

Hay tres claves secretas clave que se utilizan en el flujo de Kerberos:

  • Clave cliente/usuario: un hash obtenido de la contraseña del usuario.
  • Clave secreta TGS: un hash de la contraseña utilizada para definir el TGS.
  • Clave secreta del servidor: un hash de la contraseña utilizada para definir el servidor que proporciona el servicio.

El proceso del protocolo incluye los siguientes pasos:

  1. Paso 1. Solicitud inicial de autenticación del cliente: el usuario solicita al servidor de autenticación (AS) un ticket TGT. Esta solicitud incluye el identificador del cliente.
  2. Paso 2. El KDC verifica las credenciales del cliente. El AS verifica la base de datos para ver si el cliente existe y si el TGS está disponible. Si el AS encuentra ambos valores, genera una clave secreta cliente/usuario utilizando el hash de la contraseña del usuario.

El AS calcula la clave secreta TGS y crea una clave de sesión (SK1) cifrada con la clave secreta cliente/usuario. El AS genera un TGT que contiene el identificador del cliente, la dirección de red del cliente, la marca de tiempo, la duración y SK1. El secreto del TGT La clave luego cifra el ticket.

  1. Paso 3. El cliente descifra el mensaje. El cliente utiliza la clave secreta cliente/usuario para descifrar el mensaje y extraer SK1 y TGT, creando un autenticador que confirma al cliente al TGS.
  2. Paso 4. El cliente utiliza el TGT para solicitar acceso. El cliente solicita un ticket al servidor que proporciona el servicio, enviando el TGT extraído y el autenticador creado al TGS.
  3. Paso 5. El KDC crea un ticket para el servidor de archivos. El TGS utiliza la clave secreta TGS para descifrar el TGT recibido del cliente y extraer SK1. El TGS descifra el autenticador y verifica que coincida con el identificador del cliente y la dirección de red del cliente. El TGS también verifica la marca de tiempo para asegurarse de que el TGT no ha expirado.

Si todas las comprobaciones se completan correctamente, el KDC genera una clave de sesión de servicio (SK2) que se comparte entre el cliente y el servidor de destino.

Por último, el KDC crea un ticket de servicio que incluye el identificador del cliente, la dirección de red del cliente, la marca de tiempo y SK2. Este ticket está cifrado con la clave secreta del servidor obtenida de la base de datos. El cliente recibe el mensaje con el ticket de servicio y SK2, todo cifrado con SK1.

  1. Paso 6. El cliente utiliza el ticket de servicio para autenticarse. El cliente descifra el mensaje con SK1 y extrae SK2. Este proceso crea un nuevo autenticador que contiene la dirección de red del cliente, el identificador del cliente y la marca de tiempo, cifrado con SK2, y lo envía junto con el ticket de servicio al servidor de destino.
  2. Paso 7. El servidor de destino acepta la descifración y la autenticación. El servidor de destino utiliza la clave secreta del servidor para descifrar el ticket de servicio y extraer SK2. El servidor utiliza SK2 para descifrar el autenticador, verificando si el identificador del cliente y la dirección de red del cliente del autenticador y el ticket de servicio coinciden. El servidor también verifica el ticket de servicio para comprobar si ha expirado.

Una vez que se completan todas las comprobaciones correctamente, el servidor de destino envía un mensaje al cliente confirmando que el cliente y el servidor se han autenticado mutuamente. El usuario ahora puede iniciar una sesión segura.

Ahora que hemos examinado qué es Kerberos, pasemos a la cuestión de si Kerberos es infalible.

Conceptos y Términos de los Objetos de Kerberos

La mayoría de los objetivos de Kerberos están relacionados con la gestión de contraseñas. Asegura que las contraseñas no se transmitan por la red ni se almacenen en los sistemas cliente; el sistema las elimina inmediatamente después de su uso. Las contraseñas no deben almacenarse en texto plano y cada sesión solo debe utilizar una contraseña.

Además, toda la información de autenticación se almacena en un servidor centralizado, lo que significa:

  • Un administrador puede restringir el acceso de cualquier cliente desde el servidor centralizado.
  • Una contraseña de usuario puede proporcionar acceso a todos los servicios.
  • La protección de la información del usuario se vuelve menos compleja, ya que solo se necesita proteger un servidor.
  • En Kerberos, todas las entidades deben autenticarse entre sí cuando se les solicite.

Las siguientes entidades utilizan los protocolos de Kerberos:

  • Principales de Kerberos: es un identificador único asignado a un ticket. Para la mayoría de los usuarios, este es el mismo identificador que el nombre de usuario. Kerberos identifica al principal mediante la siguiente información:
    • Para los usuarios: este es el nombre de usuario; para los hosts: la palabra “host”. Para los servicios, el principal es el nombre del servicio.
    • Identificador adicional que indica el nombre del host.
    • Nombre del dominio de Kerberos en el que funciona el servidor de Kerberos.
  • Servidores de aplicaciones de Kerberos: proporcionan acceso a los recursos que necesitan los clientes.
  • KDC de Kerberos: proporciona acceso a recursos como la emulación de terminales y la computación remota.
  • Base de datos de Kerberos: contiene registros de cada principal. Es el repositorio centralizado de Kerberos que contiene la identificación de los clientes y su acceso.
  • Servicio de autenticación de Kerberos: emite un ticket TGT (Ticket de concesión de ticket) a los clientes.
  • Servicio de emisión de tickets de Kerberos: autentica a los clientes en función del TGT.

Una vez autenticado, el usuario recibe un ticket de autenticación. El cliente puede utilizar este ticket para obtener tickets para acceder a los servicios de aplicaciones.

Kerberos frente a Otros Protocolos de Autenticación de Red

Existen otros protocolos de autenticación además de Kerberos. Examinémoslos:

  • Kerberos frente a Microsoft New Technology LAN Manager (NTLM): NTLM era la tecnología anterior que utilizaba Windows. A partir de Windows 2000, todas las versiones utilizan Kerberos. NTLM utiliza la autenticación de desafío-respuesta: el servidor hace una pregunta a la que el cliente debe responder.
  • Kerberos frente a Lightweight Directory Access Protocol (LDAP): LDAP permite mantener información sobre los usuarios. LDAP y Kerberos se pueden utilizar en una misma red: LDAP proporciona el servicio de autorización y Kerberos la autenticación.
  • Kerberos frente a Remote Authentication Dial-in User Service (RADIUS): RADIUS estaba destinado al acceso remoto de los usuarios a través de conexiones de módem. Sin embargo, los servicios de red lo utilizan para la contabilidad y la autenticación junto con Kerberos.

¿Es Kerberos Seguro?

Ahora que sabes qué es Kerberos, es posible que te preguntes si es seguro.

Los expertos en seguridad de todo el mundo consideran que Kerberos es seguro. Utiliza un cifrado sólido para proteger los datos. Sin embargo, los investigadores de seguridad han descubierto varias formas de eludir Kerberos:

  • Ataque “Pass-the-key”: los hackers suplantan a los clientes utilizando sus credenciales.
  • Ataque “Pass-the-ticket”: los hackers utilizan un ticket cuando el KDC envía un ticket de sesión.
  • Ataque “Golden ticket”: los hackers utilizan controladores de dominio de Windows para crear credenciales de cliente.

¿Se Puede Piratear Kerberos?

Ninguna medida de seguridad es 100% impenetrable, y Kerberos no es una excepción. Como existe desde hace mucho tiempo, los hackers han tenido la oportunidad de encontrar formas de eludirlo, generalmente falsificando tickets, realizando intentos repetidos de adivinación de contraseñas (fuerza bruta/relleno de credenciales) y utilizando malware para reducir el nivel de cifrado.

Sin embargo, Kerberos sigue siendo el mejor protocolo de seguridad disponible. El protocolo es lo suficientemente flexible como para utilizar algoritmos de cifrado más robustos para combatir las nuevas amenazas y, si los usuarios siguen buenas políticas de elección de contraseñas, ¡todo debería estar bien!

¿Es Kerberos un Sistema Obsoleto?

La longevidad no significa necesariamente obsolescencia. A pesar de algunos casos en los que los ciberdelincuentes han eludido Kerberos (y ya hemos establecido que ningún sistema de seguridad es 100% impenetrable), Kerberos sigue utilizándose activamente y goza de buena reputación.

Preguntas Frecuentes

¿Qué es Kerberos y cómo funciona?

Kerberos es un protocolo de autenticación de red que proporciona una autenticación segura en entornos de computación distribuidos. Utiliza un tercero de confianza, llamado Centro de distribución de claves (KDC), para autenticar clientes y servidores. El KDC emite tickets que verifican la identidad de los clientes y los servidores, permitiendo una comunicación segura y evitando el acceso no autorizado.

¿Cómo se aplica Kerberos?

Un ejemplo de la aplicación de Kerberos es el sistema de autenticación que se utiliza en Microsoft Active Directory. Kerberos es el protocolo principal para la autenticación en los dominios de Windows, permitiendo a los usuarios acceder de forma segura a los recursos y servicios de red.

¿Qué ventajas tiene Kerberos?

Algunas de las ventajas de utilizar Kerberos para la autenticación incluyen:
Seguridad robusta. Kerberos utiliza el cifrado y la autenticación mutua para garantizar la integridad y la confidencialidad del intercambio de autenticación.
Punto único de acceso. Después de autenticarse, los usuarios pueden acceder a varios servicios y recursos sin volver a introducir sus credenciales, lo que aumenta la comodidad y la productividad.
Autenticación centralizada. Kerberos proporciona un sistema de autenticación centralizado, lo que reduce la necesidad de gestionar credenciales independientes para cada servicio o sistema.
Escalabilidad. Kerberos puede gestionar entornos a gran escala y admite una autenticación eficiente para una gran cantidad de usuarios y servicios.

¿Cuál es la diferencia entre Kerberos y KDC?

Kerberos se refiere al propio protocolo de autenticación de red, mientras que KDC (Key Distribution Center) es un servidor centralizado que implementa el protocolo de Kerberos. Se compone de dos componentes principales: el Servicio de autenticación (AS) y el Servicio de emisión de tickets (TGS). El AS es responsable de la autenticación inicial y de la emisión de tickets TGT (Ticket-Granting Tickets), mientras que el TGS emite tickets para acceder a servicios específicos. En general, Kerberos es el protocolo y KDC es la implementación del servidor de ese protocolo.

Categorías:
Diccionario

Deja una respuesta

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