He estado leyendo SSL y TLS a prueba de balas
Diffie Hellman es un mecanismo de intercambio de claves, en el que cada servidor y cliente comparten secretos, es decir, g ^ x y g ^ y, respectivamente, entre sí, donde g es el generador de algún grupo. Ellos calculan el secreto S = (g ^ y) ^ x y (g ^ x) ^ y respectivamente. Tenga en cuenta que un atacante en el medio no puede obtener el valor de S de g ^ x y g ^ y, ya que un logaritmo discreto es un problema difícil. Pero, un atacante activo puede enmascarar y engañar al servidor y al cliente.
AhoraenRSA_DH,elvalorqueelservidorenvíaalcliente,esdecir,g^xsefijaysealmacenaenelcertificado.Porlotanto,elmensaje"ServerKeyExchange" no se envía. Ahora, el cliente envía su valor g ^ y en el mensaje "ClientKeyExchange" y esto se cifra con el algoritmo de criptografía de clave pública RSA cuyo servidor de certificados ya ha enviado el mensaje "Certificado".
En RSA_DHE, el mensaje "ServerKeyExchange" tiene lugar donde el servidor envía g ^ x al cliente.
Ahora mi pregunta es ¿cuál es la diferencia entre los dos? Dado que el secreto del maestro maestro se calcula a partir del valor (g ^ x) ^ y, por lo tanto, incluso en RSA_DH, si el cliente envía diferentes valores de g ^ y en cada sesión, entonces (g ^ x) el valor de y será diferente. (Creo que incluso si él todavía no sostiene mi argumento) Por lo tanto, logrará el secreto hacia adelante como en RSA_DHE. Y el pobre atacante no podrá obtener el secreto de premaster incluso después de obtener el valor de g ^ y comprometiendo la clave privada del servidor. Por lo tanto, en ambos casos, no podrá calcular el secreto del premaster. Entonces, ¿por qué se dice que Ephemeral one (RSA_DHE) logra un secreto hacia adelante y otro no?