Scusa se è già stato chiesto in precedenza, ma non sono riuscito a trovare una risposta da nessuna parte. Forse ho trascurato qualcosa, ma non riesco a capire come funziona la convalida dei certificati.
Questo post spiega come funziona SSL / TLS, ma quando arriva per la convalida del certificato, le cose non sono così chiare per me.
A quanto ho capito, il punto dei certificati è quello di garantire che io, come cliente, identifichi correttamente il certificato (ad esempio Google, userò Google come esempio da ora in poi) e garantirò uno scambio di chiavi pubbliche.
Per semplificare le cose, supporrò che non ci sia una catena di certificati, cioè, il certificato che Google invia è un certificato di root attendibile. Ora, Google mi invia questo certificato (un flusso di byte, chiamiamolo B) che viene firmato utilizzando la chiave privata della CA. Usando la chiave pubblica della CA, sono in grado di verificare che effettivamente il certificato è stato firmato utilizzando la chiave privata della CA, quindi la fiducia è garantita.
La domanda che ho è questa: questo flusso di byte (B) che Google mi invia è sempre lo stesso? Google invia la stessa cosa quando crea una connessione sicura? In tal caso, cosa mi impedisce di prendere questo e usarlo per identificarmi erroneamente come Google? Se è unico per ogni richiesta, sembra che Google debba sempre contattare la CA per crittografarla utilizzando la propria chiave privata.
Che cosa sto sbagliando?