Lo siento si esto se ha preguntado antes, pero no pude encontrar una respuesta en ninguna parte. Tal vez pasé por alto algo, pero no puedo comprender cómo funciona la validación de certificados.
Esta publicación detalla cómo funciona SSL / TLS, pero cuando llega Para la validación de certificados, las cosas no son tan claras para mí.
Según tengo entendido, el objetivo de los certificados es garantizar que yo, como cliente, identifique correctamente el certificado (por ejemplo, Google, usaré Google como ejemplo a partir de ahora) y garantizar un intercambio de claves públicas.
Para simplificar las cosas, asumiré que no hay una cadena de certificados, es decir, el certificado que Google envía es un certificado raíz de confianza. Ahora, Google me envía este certificado (un flujo de bytes, llamémoslo B) que se firma con la clave privada de la CA. Al utilizar la clave pública de la CA, puedo verificar que, efectivamente, el certificado se firmó con la clave privada de la CA, por lo que se garantiza la confianza.
La pregunta que tengo es esta: ¿Es esta la secuencia de bytes (B) que Google me envía siempre la misma? ¿Envía Google lo mismo al crear una conexión segura? Si es así, ¿qué me impide tomar esto y usarlo para identificarme incorrectamente como Google? Si es único para cada solicitud, parece que Google siempre debe ponerse en contacto con la CA para cifrarla con su clave privada.
¿En qué me estoy equivocando?