Sto leggendo Reti di computer di Tanenbaum e Weatherall. Nel capitolo 8 descrivono le comunicazioni sicure usando lo scambio di chiavi pubbliche tramite certificati. Descrivono una situazione in cui Alice invia messaggi a Bob e un uomo nel mezzo (Trudy) sta cercando di intercettare i messaggi di Alice. Descrivono ciò che Trudy può fare per cercare di indurre Alice a credere che lei stia comunicando con Bob. La conclusione che traggono è che non può.
Tuttavia c'è una situazione non coperta:
Supponiamo che Bob abbia un certificato contenente la sua chiave pubblica e un hash firmato da un'autorità di certificazione. Rende questo certificato disponibile a chiunque come è pratica comune
Trudy ottiene il certificato di Bob e lo modifica sostituendo la chiave pubblica di Bobs con la sua.
Trudy intercetta la richiesta di Alice per la pagina di Bob. Trudy rimanda una pagina falsa ad Alice contenente il certificato modificato. Quando Alice ottiene questa pagina falsa, vede che quando esegue l'algoritmo SHA-1 sul certificato, otterrà un hash che è d'accordo con quello che ottiene quando applica la chiave pubblica della CA al blocco della firma (il blocco della firma non ha cambiato dall'originale di Bob). Quindi Alice cripta il suo messaggio a Bob usando la chiave pubblica di Trudy (Trudy ha inserito questo nel certificato quando lo ha modificato). Trudy ora può decifrare e leggere il messaggio che intercetta da Alice.
Lo scenario sopra funzionerà?