La mia comprensione di come funziona:
Una vittima richiede la chiave pubblica di un server. L'attaccante inoltra semplicemente questa richiesta. Il server ora risponde con un certificato che contiene la chiave pubblica. L'utente malintenzionato lo modifica alla sua chiave pubblica e la invia alla vittima.
Qualcosa accade ora che non capisco:
Il browser ha le chiavi pubbliche di tutte le principali autorità di certificazione. Utilizza questa chiave pubblica per verificare che il certificato del server Web sia stato firmato dalla CA attendibile? Come? Un utente malintenzionato può simulare questa richiesta proprio come ha fatto con il server? Apparentemente il browser controlla se il certificato è valido? Ora come va facendo questo. L'autore dell'attacco può falsificare i dati per questo in modo che il controllo del browser continui a risultare un vero.
Se la chiave privata / chiave pubblica del server cambia il modo in cui un browser delle vittime sa che questo è cambiato?
Quindi il browser genera una chiave simmetrica condivisa e la crittografa con la chiave dell'attaccante. Pertanto l'attaccante può decrittografarlo. Prendi la chiave. Criptalo con la chiave del server e invialo al server.