Si el cliente acepta cualquier certificado como un certificado de servidor válido, un atacante activo puede hacerse pasar por el servidor cuando habla con el cliente.
Si el atacante puede robar una copia de la clave privada del cliente, entonces puede hacerse pasar por el cliente cuando habla con el servidor.
Si se cumplen ambas condiciones, entonces el atacante puede ejecutar un ataque de Man in the Middle , por definición: un ataque MitM no es más que doble personificación simultánea. El atacante se hace pasar por el cliente cuando habla con el servidor, y como el servidor cuando habla con el cliente; él transmite el tráfico en ambas direcciones, inspeccionando y modificando los datos a voluntad.
Si el cliente puede asegurarse de que usa el certificado del servidor original (ya sea a través de la validación de una CA raíz de confianza conocida, o quizás porque el cliente recuerda el certificado del servidor de una conexión anterior), entonces el cliente rechazará el intento de suplantación y MitM no funcionará. El atacante, que ha robado la clave privada del cliente, aún podrá reemplazar al cliente, por ejemplo. secuestrar llamadas entrantes, pero eso no será un verdadero MitM (el atacante tendrá que imitar la voz del propietario del cliente normal).
Tenga en cuenta que si el atacante no tiene una copia de la clave privada del cliente, y el servidor valida la clave pública del cliente de alguna manera (por ejemplo, el servidor recuerda el la clave pública del cliente después de un paso de configuración inicial), entonces el atacante no podrá hacerse pasar por el cliente. La autenticación del cliente en SSL es tal que incluso si el atacante se hace pasar por el servidor, no puede reutilizar los mensajes de un cliente crédulo para engañar al verdadero servidor. Técnicamente, el cliente utiliza su clave privada para firmar un "desafío" que es un valor de cálculo calculado sobre todo lo que el cliente y el servidor se han enviado hasta el momento, y esto incluye el certificado del servidor; por lo tanto, en el caso de MitM, el cliente firmará los mensajes que contengan la clave pública del atacante (el certificado falso del servidor enviado por el atacante), no el certificado enviado por el verdadero servidor, y la firma no coincidirá con lo que espera el verdadero servidor.
Por lo tanto, si el cliente puede asegurarse de que usa el certificado del servidor verdadero, o el servidor puede asegurarse de que usa el certificado del cliente verdadero, o ambos , entonces un intento completo de MitM debe fallar. Sin embargo, incluso sin un MitM, la suplantación (una "mitad-MitM") todavía es posible:
- Si el atacante roba la clave privada del servidor, o el cliente no puede validar el certificado del servidor, entonces el atacante puede hacerse pasar por el servidor.
- Si el atacante roba la clave privada del cliente, o el servidor no puede validar el certificado del cliente, entonces el atacante puede hacerse pasar por el cliente.
Finalmente, si el atacante tiene una copia de la clave privada del servidor , y el conjunto de cifrado SSL / TLS es uno de los conjuntos RSA que no son DHE, entonces el el atacante puede descifrar todos los datos después de una intercepción puramente pasiva, y también puede secuestrar la conexión en cualquier momento después del apretón de manos, lo que permite, de nuevo, un MitM. Lo mismo no es válido para una clave privada robada de cliente ; En SSL / TLS, el certificado de cliente y la clave privada se usan solo para la autenticación, no para el intercambio de claves, y no tienen ninguna influencia en el secreto resultante que se usa para el cifrado de datos real.