¿La autenticación mutua tiene algún impacto en las posibilidades de MiTM?

6

Al realizar un ataque Man-in-the-middle contra un servidor de autenticación unidireccional clásico, el atacante solo tiene que:

  • Use un certificado lo suficientemente creíble como para que la víctima confíe en él,
  • Actúe como un cliente estándar hacia el servidor real, transmitiendo las solicitudes de la víctima.

Sin embargo, me preguntaba si el uso de la autenticación mutua TLS podría tener un impacto en este esquema.

Puede un atacante:

  1. Suplantar el servidor durante el paso autenticación del servidor ,
  2. Iniciar el protocolo de enlace TLS hacia el servidor real,
  3. Retransmita la comunicación entre el servidor real y la víctima (desafíos, respuestas, ...) para pasar el paso de autenticación de cliente ,
  4. ¿Y luego estar en medida para descifrar, espiar y alterar la comunicación entre los dos hosts?

¿Este escenario siempre es posible? ¿Es posible que dependa de la suite de cifrado utilizada?

En particular, en el paso 3) el atacante está obligado a reenviar datos de intercambio genuinos (incluso si están firmados por su propio certificado falso) del servidor al cliente, estos datos de intercambio se pueden usar para establecer un secreto entre el cliente original y ¿El servidor evita la acción del atacante (por ejemplo, alguna magia Diffie-Hellman-Merckle) o invalida la sesión (cada parte tiene secretos que faltan, ya nadie puede continuar con la comunicación)?

    
pregunta WhiteWinterWolf 08.05.2015 - 16:45
fuente

1 respuesta

8

Un Man-in-the-Middle realmente es doble personificación simultánea: los atacantes posan como un servidor falso cuando se habla con el cliente, y como un servidor falso cuando se habla con el servidor. La belleza de MitM es que, dado que la suplantación es simultánea, el atacante puede esperar reutilizar las respuestas del cliente o servidor genuino cuando responde al servidor o cliente genuino.

Los detalles son importantes. TLS usa certificados X.509 y los usa correctamente, lo que lo hace robusto contra algunos posibles ataques.

Supongamos que el atacante de alguna manera logró hacerse pasar por un servidor falso, por ejemplo. al sobornar o comprometer a una CA para que le expida un certificado falso o, más probablemente, al convencer al usuario humano de que ignore la advertencia del navegador acerca de que el certificado del servidor no es válido. El atacante ahora transmite la información entre el cliente y el servidor. El servidor ahora quiere autenticar al cliente con algún protocolo basado en contraseña (por ejemplo, el protocolo simple y muy común "mostrar la contraseña"), dentro del túnel TLS. El atacante puede simplemente dejar que el protocolo fluya y, una vez que se haya completado y el servidor esté satisfecho, realmente secuestre la secuencia de datos e inyecte sus propios comandos.

Ahora, inténtelo de nuevo, pero con un certificado de cliente . Cuando se utiliza un certificado de cliente en SSL / TLS, el cliente demuestra su dominio de su clave privada al calcular una firma sobre un "desafío" del servidor. De manera crucial , este "desafío" realmente es la concatenación de todos los mensajes de saludo anteriores (ver el estándar ). En particular, el certificado del servidor es parte de lo que está firmado por el cliente. Nuestro atacante podría llegar a ese punto en el MitM enviando un certificado de servidor falso al cliente, es decir, un certificado distinto de lo que envió el servidor original. Por lo tanto, lo que firma el cliente y lo que el servidor utiliza para verificar que la firma será una secuencia distinta de bytes, y la firma no coincidirá.

Resumen: si por "autenticación mutua" quiere decir "autenticación con un certificado de cliente, manejado a nivel SSL / TLS", esa autenticación evitará el MitM. O, más precisamente, el atacante tendrá éxito solo si logra obtener un certificado de servidor falso que convencerá al cliente y de un certificado de cliente falso que convencerá al servidor.

Sin embargo, si las dos autenticaciones no están acopladas (como ocurre en el protocolo de contraseña dentro de TLS), un atacante que supere el servidor puede convertirlo fácilmente en un MitM completo reutilizando las respuestas del cliente.

    
respondido por el Thomas Pornin 08.05.2015 - 17:04
fuente

Lea otras preguntas en las etiquetas