Diciamo che Alice vuole comunicare con alcuni server S. Eve gestisce che il traffico da entrambe le parti la supererà per impersonare il server S. Ora, i certificati digitali dovrebbero fornire l'autenticazione. In questo scenario dovrebbe garantire l'identità del server, in modo che Eva non sia in grado di impersonare S. Ma cosa impedisce a E di inviare il certificato identico dal server S?
Come ho capito, il certificato digitale emesso da una CA o da una CA intermedia verso S ha solo campi statici, il che significa che non ci sono campi che cambieranno su richiesta. Tutti i campi sono statici finché il certificato non scade o viene revocato. Un determinato sottoinsieme di questi campi viene sottoposto a hashing e un algoritmo di firma viene applicato all'hash utilizzando la chiave privata dell'autorità di rilascio. Il client può verificare la firma eseguendo il hashing del sottoinsieme di campi e confrontando l'hash calcolato con il valore "decrittografato" (utilizzando la chiave pubblica dell'autorità di emissione) che risiede nel certificato.
Quindi, se Eve passa il certificato da S ad A, A verificherà che il certificato sia valido e quindi creda che stia comunicando con S anziché con E.
Cosa mi manca qui?