Comprensión de la autenticación NTLM paso a paso

4

Estaba leyendo este enlace en Autenticación y autorización de ASP.Net y estos 5 pasos estaban allí explicando la autenticación NTLM.

  1. El cliente envía el nombre de usuario y la contraseña al servidor.

  2. El servidor envía un desafío.

  3. El cliente responde al desafío con un resultado de 24 bytes.
  4. Los servidores comprueban si la respuesta se calcula correctamente al contactar al controlador de dominio.
  5. Si todo es correcto, otorga la solicitud.

Preguntas:

  1. No puedo entender lo que sucede después de que el cliente ha enviado el nombre de usuario y la contraseña. Especialmente las palabras "desafío" y "resultado de 24 bytes"
  2. ¿Cuál es el método de encriptación al enviar el nombre de usuario / contraseña al servidor?
pregunta one 12.07.2016 - 10:31
fuente

1 respuesta

7

Aquí está el texto de fuente oficial :

  

Los siguientes pasos presentan un esquema de NTLM no interactivo   autenticación. El primer paso proporciona las credenciales NTLM del usuario   y ocurre solo como parte de la autenticación interactiva (inicio de sesión)   proceso.

     
  1. (Solo autenticación interactiva) Un usuario accede a una computadora cliente y proporciona un nombre de dominio, nombre de usuario y contraseña. los   el cliente calcula un hash criptográfico de la contraseña y descarta la   contraseña actual.
  2.   
  3. El cliente envía el nombre de usuario al servidor (en texto plano).
  4.   
  5. El servidor genera un número aleatorio de 16 bytes, llamado desafío o nonce, y lo envía al cliente.
  6.   
  7. El cliente cifra este desafío con el hash de la contraseña del usuario y devuelve el resultado al servidor. Esto se llama   respuesta.
  8.   
  9. El servidor envía los siguientes tres elementos al controlador de dominio:      
    • nombre de usuario
    •   
    • Desafío enviado al cliente
    •   
    • Respuesta recibida del cliente
    •   
  10.   
  11. El controlador de dominio usa el nombre de usuario para recuperar el hash de la contraseña del usuario de la base de datos de Security Account Manager. Eso   utiliza este hash de contraseña para cifrar el desafío.
  12.   
  13. El controlador de dominio compara el desafío cifrado que calculó (en el paso 6) con la respuesta calculada por el cliente (en el paso 4). Si   son idénticos, la autenticación es exitosa.
  14.   

Por lo tanto, el desafío es un mensaje generado por el servidor que está cifrado con el hash de la contraseña de la cuenta por parte del cliente y del DC y se compara en DC.

Los métodos de cifrado son variables entre las versiones de NTLM y las diferentes configuraciones del servidor.

Aquí hay un poco de Wikipedia :

  

Tanto LMv2 como NTv2 tienen el desafío del cliente y del servidor con el NT   Hash de la contraseña del usuario y otra información de identificación. los   La fórmula exacta es comenzar con el hash de NT, que se almacena en el SAM.   o AD, y continúe introduciendo, utilizando HMAC-MD5, el nombre de usuario y   nombre de dominio.

    
respondido por el Grigory Sergeev 12.07.2016 - 11:03
fuente

Lea otras preguntas en las etiquetas