Authentication Methods
Cuando trabajamos en un dominio de Windows, todas las credenciales de los usuarios están almacenadas en los Controladores de Dominio (DC). Cada vez que un usuario intenta acceder a un servicio usando sus credenciales del dominio, ese servicio debe consultar al DC para verificar si dichas credenciales son válidas.
Windows permite dos protocolos para este tipo de autenticación:
Kerberos
Predeterminado
Utilizado por versiones recientes de Windows.
NetNTLM
Legado
Mantenido por compatibilidad. Considerado obsoleto.
🔐 Kerberos Authentication
Kerberos es el protocolo predeterminado en sistemas Windows modernos. Funciona mediante un sistema de tickets que actúan como prueba de que el usuario ya ha sido autenticado. Estos tickets evitan que el usuario tenga que reenviar su contraseña cada vez que accede a un servicio.
🧱 Componentes Clave
KDC (Key Distribution Center): Servicio en el DC encargado de emitir tickets.
TGT (Ticket Granting Ticket): Primer ticket que se recibe tras autenticarse, sirve para solicitar acceso a otros servicios.
TGS (Ticket Granting Service): Ticket específico para acceder a un servicio determinado.
SPN (Service Principal Name): Identificador único del servicio al que se quiere acceder.
🔄 Flujo de Autenticación Kerberos
Solicitud de TGT:
El usuario envía su nombre de usuario y una marca de tiempo, cifrados con una clave derivada de su contraseña, al KDC.
El KDC responde con un TGT cifrado (usando el hash de la cuenta
krbtgt
) y una Session Key.
Solicitud de TGS:
Para acceder a un servicio, el usuario envía:
Su TGT,
Una nueva marca de tiempo cifrada con la Session Key,
El nombre del servicio (SPN).
El KDC responde con:
Un TGS cifrado con el hash del servicio (cuenta del servidor),
Una nueva Service Session Key.
Acceso al servicio:
El usuario presenta el TGS al servicio.
El servicio lo descifra y valida usando su propio hash.
Si es válido, se establece la conexión.
🧠 Importante: El TGT y TGS no son legibles por el usuario; su contenido está cifrado. El KDC tampoco necesita almacenar claves: puede regenerarlas descifrando los tickets.
🕸️ NetNTLM Authentication
NetNTLM es un protocolo más antiguo que usa un sistema de desafío-respuesta, sin transmitir la contraseña real en ningún momento.
🔄 Flujo de Autenticación NetNTLM
El cliente solicita autenticación al servidor.
El servidor responde con un desafío aleatorio (nonce).
El cliente calcula una respuesta combinando:
El desafío,
Su hash NTLM (derivado de su contraseña),
Otros datos conocidos.
El servidor envía el desafío y la respuesta al Domain Controller.
El DC recalcula la respuesta y la compara:
Si coinciden → autenticación exitosa.
Si no coinciden → acceso denegado.
El resultado se devuelve al servidor y luego al cliente.
🔐 Nota: Si el usuario utiliza una cuenta local, el propio servidor puede verificar el desafío, ya que guarda el hash en su base local (SAM).
✅ Comparativa Rápida
Característica
Kerberos
NetNTLM
Seguridad
Alta (uso de tickets y cifrado)
Menor (más vulnerable a ataques de relay)
Transmisión de credenciales
No se transmite el hash
No se transmite el hash
Uso actual
Estándar
Solo por compatibilidad
Autenticación múltiple
Soportada (SSO)
Limitada
Vulnerabilidades comunes
Pass-the-Ticket
Pass-the-Hash, Relay Attacks

Last updated