Según tengo entendido, si Alice y Bob quieren comunicarse de forma segura, primero deben ponerse de acuerdo sobre los protocolos que se utilizarán. Luego deben confirmar que efectivamente se están comunicando entre sí. Esto se hace a través de certificados firmados por un tercero de confianza. La clave pública y el algoritmo de hash utilizado por un tercero ya están almacenados en su computadora. Alice luego le envía a Bob su certificado y Bob le envía a Alice su certificado. Ambos verifican la firma del certificado utilizando la clave pública del tercero. Si es válido, comienzan su intercambio de claves y tal. Sin embargo, ¿qué hay en esos certificados que confirman su identidad? Me imagino que no puede ser simplemente "Hola, esto es totalmente Bob / Alice, confía en mí". Me imagino que el certificado de Bob debe contener la clave pública de Bob, pero ¿no sería inseguro si Bob utilizara la misma clave pública cada vez? ¿No sería mejor si pudiera usar una clave pública diferente para cada cliente?
Además, ¿un sitio web (como Amazon) tiene solo un certificado que envía a todos los clientes, o es un nuevo certificado firmado por un tercero para cada cliente que se conecta al sitio web?
También apreciaría algunas fuentes sobre los aspectos básicos de la aplicación de la criptografía asimétrica si alguien tiene algunas fuentes simples (aunque todavía soy un tonto).