¿Cómo aumenta la seguridad la autenticación previa de Kerberos?

11

Esta entrada de preguntas frecuentes (y el RFC en sí) establece que la autenticación previa resuelve una debilidad en las implementaciones iniciales de Kerberos que la hizo vulnerable a los ataques de diccionario fuera de línea.

El estado de preguntas frecuentes:

La forma más simple de autenticación previa se conoce como PA-ENC-TIMESTAMP. Esta es simplemente la marca de tiempo actual cifrada con la clave del usuario.

Si un atacante logra rastrear un paquete que contiene estos datos de autenticación previa, ¿no es esto también vulnerable a un ataque de diccionario? Tengo el texto cifrado, conozco la marca de tiempo original, ¿en qué se diferencia este escenario?

Sedate Alien
fuente
Llego un poco tarde a la fiesta :). Creo que suponer que el atacante tiene la marca de tiempo original no es cierto en esta pregunta. Este es un ataque de "texto cifrado conocido", no un ataque de "texto plano conocido", de lo contrario sería divertido. No podemos suponer que el atacante tiene texto plano y texto cifrado, porque también conoce el algoritmo, ¿cuál es el desafío aquí? O tal vez me estoy perdiendo algo aquí ...
Ashkan
Al completar mi comentario anterior, después de reconsiderar el asunto, se me ocurrió la idea de que si asumimos el ataque como ataque de "texto simple conocido" (lo que significa que el atacante conoce la marca de tiempo exacta), entonces tiene razón, el paso de autenticación previa no proporciona seguridad adicional porque puede probar posibles contraseñas elegidas de forma insegura y encontrar la clave, de lo contrario, lo hace. Entonces, me pregunto qué tipo de ataque sería este.
Ashkan

Respuestas:

16

Cuando no aplica la autenticación previa, el atacante puede enviar directamente una solicitud ficticia de autenticación. El KDC devolverá un TGT encriptado, y el atacante puede forzarlo a desconectarse. No verá nada en sus registros de KDC excepto una sola solicitud de un TGT.

Cuando aplica la autenticación previa de la marca de tiempo, el atacante no puede solicitar directamente a los KDC el material encriptado para desconectar la fuerza bruta. El atacante debe cifrar una marca de tiempo con una contraseña y ofrecerla al KDC. Sí, él puede hacer esto una y otra vez, pero verá una entrada de registro KDC cada vez que falle antes de la autorización previa.

Por lo tanto, la autenticación previa de la marca de tiempo evita que un atacante activo. No evita que un atacante pasivo huela el mensaje de marca de tiempo cifrado del cliente al KDC. Si el atacante puede oler ese paquete completo, puede forzarlo a desconectarse.

Las mitigaciones para este problema incluyen el uso de contraseñas largas y una buena política de rotación de contraseñas para que la fuerza bruta fuera de línea no sea factible, o el uso de PKINIT ( http://www.ietf.org/rfc/rfc4556.txt )

anónimo
fuente
+1 Gracias por señalar la diferencia entre atacante activo y atacante pasivo.
Harvey Kwok
Tenga en cuenta que un artículo completo con este detalle aparece en 2014 aquí: social.technet.microsoft.com/wiki/contents/articles/…
Martin Serrano
5

Encontré un documento ( Extracción de contraseñas de Kerberos a través del análisis de tipo de cifrado RC4-HMAC ) en IEEE Xplore que es algo relevante para esto. Parecen implicar que si se captura un paquete de autenticación previa, no es diferente.

Si un atacante puede capturar los paquetes de autenticación previa y quiere tomar la identidad de un usuario válido, el atacante deberá realizar los procedimientos que realiza el KDC. El atacante deberá utilizar el procedimiento de descifrado en el tipo de cifrado acordado e intentar ejecutar diferentes contraseñas contra los datos capturados. Si tiene éxito, el atacante tiene la contraseña del usuario.

Sedate Alien
fuente