Si SSL / TLS utiliza un certificado creado previamente, ¿por qué también utiliza cifrados de clave pública como RSA y ECDSA para la autenticación (no me refiero a la integridad de MAC)? ¿Están relacionados?
La clave en un certificado TLS es para un sistema de cifrado de clave pública. Esto se debe a que la misma clave se envía a cada cliente, y la mayoría de los expertos no consideran una estrategia de seguridad viable para enviar una clave secreta a quien la pregunta.
La razón por la que el certificado se firma con un algoritmo de clave pública es que, de lo contrario, no hay nada que impida que un atacante pretenda ser el sitio real y que le dé a su público llave. Por lo tanto, desea asegurarse de que la clave pública sea la correcta, lo que hace al verificar que haya sido aprobada por alguien de confianza. Este es el caso de uso exacto de las firmas digitales, por lo que se utilizan para verificar el certificado.
La clave pública en un certificado X.509 es normalmente una clave pública para un algoritmo signature , para firmar datos y (si el certificado es un certificado de CA) firmar otros certificados. En TLS, también puede ser una clave pública de algoritmo de cifrado / intercambio de claves; La más común es una clave pública RSA, que puede usarse para ambas. En las suites de cifrado basadas en RSA, esto se utiliza para el intercambio de claves. En las suites de cifrado DHE / ECDHE, se usa en el intercambio de claves al verificar una clave Diffie-Hellman temporal firmada con la clave privada asociada. En cualquier caso, el efecto final es el mismo: la clave pública en el certificado del servidor es para el intercambio de claves, y en los certificados de CA es para la firma de certificados.
Lea otras preguntas en las etiquetas authentication tls