Dado que un certificado debe ser verificado por los certificados del sistema operativo o, en el caso de Firefox, con un certificado del navegador, tengo problemas para entender por qué un certificado de servidor web también consta de una clave pública.
¿La clave pública tampoco está en los certificados del sistema operativo?
Me suena como decir:
"Hola, soy David y por la presente confirmo que soy David".
¿Qué estoy entendiendo mal aquí?
Respuesta1
La criptografía de clave pública se basa en lo que se conoce como cifrados asimétricos. Lo que eso significa es que algo cifrado con una clave, por ejemplo la clave pública,no puedoser descifrado con esa misma clave.
Lo que eso significa es que terminas con una clave que tiene dos partes, una clave pública que le entregas a todos y una clave secreta que guardas para ti.
Al entregar una clave pública, puede estar seguro de que sólo la persona que posee la clave secreta correcta podrá descifrar los datos.
Puede verificar el propietario de la clave pública utilizando la cadena de firma del certificado, efectivamente una corporación o una lista de personas que le aseguran que la persona que puede descifrar sus datos es quien desea que pueda descifrarlos.
Luego, le envía a esa persona una clave (o un código de acceso, etc.) propia, cifrada con su clave pública, y ella la descifra con su clave secreta. Debido a que utilizó su clave pública y ellos pueden descifrarla, esencialmente ha validado que el sitio web es quien dice ser y que puede "confiar" en la conexión con ellos. Si no pudieron descifrarlo usando la clave pública, entonces no son el sitio que estás solicitando.
Hay un elemento del sitio, como usted dice, que dice "Hola, soy David y por la presente confirmo que soy David". porque eso es lo que necesita y desea cuando está a punto de enviar a ese sitio algunos datos muy personales, como su nombre de usuario y contraseña. Túnecesidadpara saberlosoloel lugar al que envía los datos puede descifrar los datos que envía.