Mi comprensión de cómo funciona:
Una víctima solicita la clave pública de un servidor. El atacante simplemente reenvía esta petición. El servidor ahora responde con un certificado que contiene la clave pública. El atacante modifica esto a su propia clave pública y lo envía a la víctima.
Ahora sucede algo que no entiendo:
El navegador tiene claves públicas de todas las principales autoridades de certificación. ¿Utiliza esta clave pública para verificar que el certificado del servidor web fue firmado por la CA de confianza? ¿Cómo? ¿Un atacante puede falsificar esta solicitud como lo hizo con el servidor? Al parecer, el navegador comprueba si el certificado es válido? Ahora, ¿cómo va haciendo esto? El atacante puede falsificar datos para esto, de modo que la comprobación del navegador aún resulte verdadera.
Si la clave privada / publicación del servidor cambia, ¿cómo sabría un buscador de víctimas que esto ha cambiado?
Luego, el navegador genera una clave simétrica compartida y la cifra con la clave de los atacantes. Por lo tanto el atacante puede descifrarlo. Consigue la llave. Cifrelo con la clave del servidor y envíelo al servidor.