¿Qué es Kerberos y cómo funciona?

El delito cibernético es un hecho lamentable de la vida en estos días, independientemente de si estamos hablando de consumidores privados o del mundo empresarial en general. Ninguna empresa u organización es segura y el problema no mejorará pronto. Los expertos predicen que los daños causados ​​por los delitos cibernéticos costarán al mundo 7 billones de dólares para 2022. Como si eso no fuera lo suficientemente malo, se predice que un número cada vez mayor de ciberdelincuentes utilizará Inteligencia Artificial (IA) para escalar sus ataques.

Estas predicciones, y muchas otras, apuntan a la dura realidad de que el ciberdelito llegó para quedarse y el problema solo va a empeorar. En consecuencia, el mundo digital está ansioso por encontrar y emplear nuevas estrategias para fortalecer la seguridad cibernética.

Hoy, analizamos los protocolos de autenticación, Kerberos. Corramos el telón y familiaricémonos con este eficaz protocolo de red. Veremos qué es Kerberos, cómo funciona, para qué se usa y sus beneficios.

¿Qué es Kerberos?

Kerberos es un protocolo de autenticación que permite a los sistemas y usuarios probar su identidad a través de un tercero de confianza. El protocolo se desarrolló inicialmente en el Instituto de Tecnología de Massachusetts (MIT) como parte de un proyecto más grande llamado Proyecto Athena. El Proyecto Athena fue una iniciativa conjunta del MIT, Digital Equipment Corporation e IBM para construir un entorno informático distribuido para uso educativo.

El protocolo se centra en las entradas. Los tickets son emitidos por un tercero de confianza y utilizan cifrado simétrico (la clave que solo conoce el tercero de confianza) para establecer su confianza. Como explicaremos más adelante, ciertas contraseñas de usuario también se utilizan para cifrar y firmar tickets específicos. Sin embargo, la raíz de la seguridad del protocolo es la clave utilizada por el tercero de confianza.

La implementación de Kerberos que se encuentra en Microsoft Active Directory se basa en el Servicio de autenticación de red Kerberos (V5), que se detalla en RFC 4120. Microsoft amplió la especificación del protocolo base agregando una serie de extensiones al protocolo ( MS-KILE ) para implementar comportamientos y características específicas de Active Directory y el sistema operativo Windows.

Microsoft lanzó su versión de Kerberos en Windows 2000 y se ha convertido en el protocolo de referencia para sitios web e implementaciones de inicio de sesión único en diferentes plataformas. El Consorcio Kerberos mantiene Kerberos como un proyecto de código abierto.

El protocolo deriva su nombre del legendario perro de tres cabezas Kerberos (también conocido como Cerberus) de los mitos griegos, el guardián canino de la entrada al inframundo. Kerberos tenía cola de serpiente y un temperamento particularmente malo y, a pesar de una notable excepción, era un guardián muy útil.

Pero en el caso del protocolo, las tres cabezas de Kerberos representan el cliente, el servidor y el Centro de distribución de claves (KDC). Este último funciona como el servicio de autenticación de terceros de confianza.

Los usuarios, las máquinas y los servicios que utilizan Kerberos dependen únicamente del KDC, que funciona como un proceso único que proporciona dos funciones: autenticación y concesión de tickets. Los «tickets» de KDC ofrecen autenticación a todas las partes, lo que permite a los nodos verificar su identidad de forma segura.

¿Cómo funciona?

Kerberos proporciona una solución de seguridad confiable para empresas de todos los tamaños. Pero, ¿cómo funciona exactamente la autenticación Kerberos?

Kerberos utiliza criptografía de clave simétrica y un centro de distribución de claves (KDC) para autenticar y verificar las identidades de los usuarios. Un KDC involucra tres aspectos:

  • Un servidor de concesión de tickets (TGS) que conecta al usuario con el servidor de servicios (SS).
  • Una base de datos Kerberos que almacena la contraseña y la identificación de todos los usuarios verificados.
  • Un servidor de autenticación (AS) que realiza la autenticación inicial.

Durante la autenticación, Kerberos almacena el ticket específico para cada sesión en el dispositivo del usuario final. En lugar de una contraseña, un servicio compatible con Kerberos busca este ticket. La autenticación Kerberos tiene lugar en un ámbito Kerberos, un entorno en el que un KDC está autorizado para autenticar un servicio, host o usuario.

La autenticación Kerberos es un proceso de varios pasos que consta de los siguientes componentes:

  • El cliente que inicia la necesidad de una solicitud de servicio en nombre del usuario.
  • El servidor, que aloja el servicio al que el usuario necesita acceder.
  • El AS, que realiza la autenticación del cliente. Si la autenticación es exitosa, se emite al cliente un vale de otorgamiento de boletos (TGT) o un token de autenticación de usuario, que es prueba de que el cliente ha sido autenticado.
  • El KDC y sus tres componentes: el AS, el TGS y la base de datos Kerberos.
  • La aplicación TGS que emite tickets de servicio.

¿Para qué se utiliza?

Aunque Kerberos se encuentra en todas partes del mundo digital, se emplea mucho en sistemas seguros que dependen de funciones fiables de auditoría y autenticación. Kerberos se utiliza en la autenticación Posix y en Active Directory, NFS y Samba. También es un sistema de autenticación alternativo a SSH, POP y SMTP.

Flujo del protocolo Kerberos

Echemos un vistazo más detallado a qué es la autenticación Kerberos y cómo funciona dividiéndola en sus componentes principales.

Estas son las entidades principales involucradas en el flujo de trabajo típico de Kerberos:

  • Cliente. El cliente actúa en nombre del usuario e inicia la comunicación para una solicitud de servicio.
  • Servidor. El servidor aloja el servicio al que desea acceder el usuario.
  • Servidor de autenticación (AS). El AS realiza la autenticación de cliente deseada. Si la autenticación se realiza correctamente, el AS emite al cliente un ticket llamado TGT (Ticket Granting Ticket). Este ticket asegura a los otros servidores que el cliente está autenticado
  • Centro de distribución de claves (KDC). En un entorno Kerberos, el servidor de autenticación se separó lógicamente en tres partes: una base de datos (db), el servidor de autenticación (AS) y el servidor de concesión de tickets (TGS). Estas tres partes, a su vez, existen en un solo servidor llamado Centro de distribución de claves.
  • Servidor de concesión de tickets (TGS). El TGS es un servidor de aplicaciones que emite tickets de servicio como servicio.

Ahora analicemos el flujo del protocolo.

Primero, hay tres claves secretas cruciales involucradas en el flujo de Kerberos. Hay claves secretas únicas para el cliente / usuario, el TGS y el servidor que se comparten con el AS.

  • Cliente / usuario. Hash derivado de la contraseña del usuario
  • Clave secreta TGS. Hash de la contraseña empleada para determinar el TGS
  • Clave secreta del servidor. Hash de la contraseña utilizada para determinar el servidor que proporciona el servicio.

Pasos

El flujo del protocolo consta de los siguientes pasos:

Solicitud de autenticación de cliente inicial

El usuario solicita un Ticket Granting Ticket (TGT) del servidor de autenticación (AS). Esta solicitud incluye la identificación del cliente.

KDC verifica las credenciales del cliente

El AS comprueba la base de datos para conocer la disponibilidad del cliente y de TGS. Si el AS encuentra ambos valores, genera una clave secreta de cliente / usuario, empleando el hash de la contraseña del usuario.

A continuación, el AS calcula la clave secreta TGS y crea una clave de sesión (SK1) cifrada por la clave secreta del cliente / usuario. Luego, el AS genera un TGT que contiene el ID del cliente, la dirección de red del cliente, la marca de tiempo, la vida útil y SK1. La clave secreta TGS luego encripta el ticket.

El cliente descifra el mensaje

La clave secreta cliente / usuario es usada para descifrar el mensaje y extraer el SK1 y TGT, generando el autenticador que valida el TGS del cliente.

El cliente usa TGT para solicitar acceso

El cliente solicita un ticket al servidor que ofrece el servicio enviando el TGT extraído y el autenticador creado a TGS.

El KDC crea un ticket para el servidor de archivos

Luego, el TGS usa la clave secreta del TGS para descifrar el TGT recibido del cliente y extrae el SK1. El TGS descifra el autenticador y comprueba si coincide con el ID del cliente y la dirección de red del cliente. El TGS también usa la marca de tiempo extraída para asegurarse de que el TGT no haya expirado.

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

Finalmente, el KDC crea un ticket de servicio que incluye la identificación del cliente, la dirección de red del cliente, la marca de tiempo y SK2. A continuación, este ticket se cifra con la clave secreta del servidor obtenida de la base de datos. Se envía al cliente un mensaje que contiene el ticket de servicio y el SK2, todos encriptados con SK1.

El cliente usa el ticket de archivo para autenticarse

El cliente descifra el mensaje usando SK1 y extrae SK2. Este proceso genera un nuevo autenticador que contiene la dirección de red del cliente, la identificación del cliente y la marca de tiempo, cifrada con SK2, y la envía junto con el ticket de servicio al servidor de destino.

El servidor de destino recibe el descifrado y la autenticación

El servidor de destino utiliza la clave secreta del servidor para descifrar el ticket de servicio y extraer el SK2. Usa SK2 para descifrar el autenticador, realizando verificaciones para asegurarse de que el ID del cliente y la dirección de red del cliente del autenticador y el ticket de servicio coincidan. El servidor también verifica el ticket de servicio para ver si está vencido.

Una vez que se cumplen las comprobaciones, el servidor de destino envía al cliente un mensaje verificando que el cliente y el servidor se han autenticado entre sí. El usuario ahora puede participar en una sesión segura.

Beneficios de la autenticación Kerberos

Existen algunas ventajas clave en el uso de Kerberos como servicio de autenticación.

Control de acceso

El protocolo de autenticación Kerberos permite un control de acceso eficaz. Los usuarios se benefician de un único punto para realizar un seguimiento de todos los inicios de sesión y la aplicación de las políticas de seguridad.

Autenticación mutua

La autenticación Kerberos permite que los sistemas de servicio y los usuarios se autentiquen entre sí. Durante todos los pasos del proceso, el usuario y el servidor sabrán que las contrapartes con las que están interactuando son auténticas.

Duración limitada del boleto

Cada ticket en Kerberos tiene marcas de tiempo y datos de por vida, y los administradores controlan la duración de la autenticación.

Autenticación reutilizable

La autenticación Kerberos es duradera y reutilizable. Cada usuario solo tendrá que ser verificado por el sistema una vez. Luego, a lo largo de la vida útil del ticket, el usuario puede autenticarse sin la necesidad de volver a ingresar información personal.

Seguridad

Varias claves secretas, autorización de terceros y criptografía hacen de Kerberos un protocolo de verificación seguro. Las contraseñas no se envían a través de las redes y las claves secretas están encriptadas, lo que dificulta que los atacantes se hagan pasar por usuarios o servicios.

¿Cuáles son las debilidades de Kerberos?

Kerberos es un método eficaz para gestionar las amenazas a la seguridad. Sin embargo, existen algunos desafíos. Algunas de las debilidades más frecuentes incluyen:

Punto único de fallo

Varias claves secretas, autorización de terceros y criptografía hacen de Kerberos un protocolo de verificación seguro. Las contraseñas no se envían a través de las redes y las claves secretas están encriptadas, lo que dificulta que los atacantes se hagan pasar por usuarios o servicios.

Cada servicio de red necesita un conjunto de claves Kerberos

Los servicios de red que requieren diferentes nombres de host necesitarán su propio conjunto de claves Kerberos, lo que puede presentar desafíos con el alojamiento virtual y de clúster.

Requisitos estrictos de tiempo

Las configuraciones de fecha y hora de los hosts deben sincronizarse con límites predefinidos. De lo contrario, la autenticación fallará debido a que los tickets tienen disponibilidad limitada.

¿Se puede piratear Kerberos?

Kerberos, como cualquier otro modelo de seguridad, no es 100% invulnerable. Debido a que Kerberos es un protocolo de autenticación ampliamente utilizado, los piratas informáticos han encontrado formas de evitarlo. La mayoría de estos trucos incluyen tickets falsificados, cifrado que degrada el malware y adivinación de contraseñas. A veces, los piratas informáticos utilizarán cada uno de estos métodos para violar el sistema.

Estos son los métodos más comunes utilizados para piratear Kerberos.

Pass the Ticket

Con este método, un atacante falsifica la clave de sesión y usa credenciales falsas. Los piratas informáticos falsificarán un boleto dorado o plateado para obtener acceso al dominio o acceso a un servicio.

Relleno de credenciales o fuerza bruta

Este es un intento automático y continuo de adivinar la contraseña de un usuario. La mayoría de estos ataques se dirigirán al servicio de emisión de tickets inicial y emisión de tickets.

Degradación de cifrado

Se realiza una degradación de cifrado con malware de clave maestra, un tipo de malware que pasa por alto Kerberos si el ciberatacante tiene acceso de administrador.

DC Shadow Attack

Este ataque tiene lugar cuando los piratas informáticos obtienen el acceso necesario para configurar su propio controlador de dominio (DC) que se utilizará para una mayor infiltración.

A pesar de esto, Keberos sigue siendo el mejor protocolo de acceso de seguridad disponible en la actualidad. El protocolo es lo suficientemente flexible como para emplear algoritmos de cifrado más robustos para ayudar a combatir nuevas amenazas, y si los usuarios practican buenas políticas de elección de contraseñas, ¡debería estar bien!

Kerberos frente a LDAP

Cuando lees sobre Kerberos, verás con frecuencia menciones de LDAP. Kerberos y LDAP se unen comúnmente (incluso en Active Directory) para proporcionar un directorio de usuarios centralizado (LDAP) y servicios de autenticación (Kerberos).

LDAP, el protocolo ligero de acceso a directorios, almacena información sobre usuarios, grupos y otros objetos (como computadoras) en una ubicación central. También puede proporcionar una autenticación simple. Sin embargo, estos protocolos nativos, a diferencia de Kerberos, generalmente requieren que el secreto del usuario (es decir, la contraseña) se transmita a través de la red. Cada recurso al que el usuario desea acceder debe manejar la contraseña del usuario y autenticar al usuario en el directorio por separado.

A diferencia de LDAP, Kerberos proporciona la funcionalidad de inicio de sesión único. Una vez que un usuario se ha autenticado en el KDC, ningún otro servicio (como un sitio de intranet o un recurso compartido de archivos) necesita la contraseña del usuario. El KDC, ese tercero de confianza, es responsable de emitir tickets en los que confía cada servicio. La combinación de LDAP y Kerberos proporciona autenticación y administración de usuarios centralizadas, y en redes más grandes esto proporciona beneficios de seguridad sustanciales.

¿Kerberos es obsoleto?

Kerberos puede haber existido durante décadas, pero eso no significa que sea obsoleto. De hecho, sigue siendo un protocolo de acceso de seguridad probado y eficaz a pesar de que los ciberatacantes han podido descifrarlo. Una de las principales ventajas de Kerberos es que utiliza un cifrado sólido para proteger los tickets de autenticación y las contraseñas.

La conclusión es que Kerberos llegó para quedarse y no hay reemplazos en el futuro inmediato. La mayoría de los avances de seguridad actuales están destinados a proteger contraseñas o proporcionar un método diferente para validar una identidad. Kerberos sigue siendo la tecnología de back-end en estas soluciones. Sigue siendo una solución eficaz y utilizable en el lugar de trabajo conectado gracias al SSO, que permite a los usuarios probar su identidad una sola vez para acceder a múltiples aplicaciones.