Ecco come capisco cosa fanno effettivamente i certificati SSL, in termini di bambino di 4 anni. Devono esserci tre parti coinvolte. Due parti sono solo il mio cliente e il server con cui sto comunicando, mentre il terzo è l'emittente del certificato. Il mio cliente chiederà l'emittente del certificato se il server che ho contattato è in realtà il server che dice di essere, l'emittente del certificato proporrà una richiesta al server e risponderà se è andato bene.
Ecco però la cosa. Quando ho cercato altre persone che chiedevano attacchi man-in-the-middle, le risposte hanno detto che sarebbe stato possibile solo se la terza parte (l'emittente del certificato) avesse rubato la sua chiave privata, che l'uomo nel mezzo avrebbe potuto usare per falsificare la sua identità completando la sfida, o qualcosa del genere ...
Tuttavia, senza rubare la chiave privata, e senza rubare nulla - se l'uomo nel mezzo può imporre come server del sito che sto cercando di raggiungere (semplicemente reindirizzando il suo nome di dominio al proprio IP), allora cosa impedisce di fare lo stesso con il server dell'emittente del certificato? Quindi, ad esempio, potrebbe reindirizzare l'indirizzo IP di Facebook sul proprio server per provare a farmi inserire le credenziali del mio account e quando il mio browser cerca di chiedere a Digicert (il titolare del certificato per facebook.com) se sto comunicando con l'autentico Il server di Facebook, l'uomo nel mezzo potrebbe anche reindirizzare nuovamente l'indirizzo IP di Digicert a se stesso, e erroneamente confermare che Facebook è davvero Facebook.