Solución:
Diffie-Hellman es un algoritmo asimétrico, con una clave pública y una clave privada.
En un conjunto de cifrado “DH_RSA”, el par de claves “permanente” del servidor es un par de claves DH. La clave pública está en el certificado del servidor. Ese certificado, como cualquier certificado, ha sido firmado por una CA, y esa CA usa un par de claves RSA (eso es lo que significa ‘RSA’ en “DH_RSA”).
En un conjunto de cifrado “DHE_RSA”, el par de claves permanentes del servidor tiene el tipo RSA; la clave pública RSA está en el certificado del servidor (el conjunto de cifrado no dice nada sobre el tipo de clave utilizada por la CA emisora, pero generalmente también es RSA). Cuando un cliente se conecta, el servidor genera un par de claves DH transitorias y envía la clave pública al cliente como un ServerKeyExchange
mensaje; el servidor señales ese mensaje con su clave privada RSA permanente.
Reenviar el secreto es una propiedad definida en relación con el robo ulterior de secretos del servidor. Los conjuntos de cifrado “DHE_RSA” proporcionan confidencialidad directa porque el secreto real del intercambio de claves (la clave privada DH) es transitorio, por lo que el servidor no lo guarda; si el servidor no guarda esa clave en su disco, entonces debería ser inmune al robo ulterior. Por el contrario, “DH_RSA” implica que la clave privada DH se almacena en algún lugar del disco duro del servidor, y si esa clave es robada, la sesión pasada grabada se puede descifrar.
Hay que tener en cuenta que algunos servidores mantendrán los pares de claves DH durante algún tiempo, normalmente en la RAM; no crean un nuevo par de claves DH para cada cliente. Este comportamiento tiene algunos beneficios de rendimiento, pero debilita ligeramente el secreto hacia adelante, por definición. Esto realmente depende del modelo que utilice para definir el “robo ulterior”: ¿está hablando de recuperar un disco duro antiguo en un contenedor de basura o de un malware que inspecciona el contenido de la RAM?
Pero no pude entender por qué RSA_DH simple no admite el secreto hacia adelante.
Digamos que Alice es el cliente y Bob es el servidor y usa los nombres de las variables de su diagrama.
En no efímero, dh b es parte del certificado, lo que significa que B es un secreto a largo plazo. Eve registra la sesión incluyendo el valor de a.
Algún tiempo después, Eve se apodera de B, tal vez pirateó el servidor, tal vez llamó a sus amigos en la aplicación de la ley que obligaron al administrador del servidor a entregarlo. Eve puede entonces calcular unB y por lo tanto calcular el secreto de la sesión y descifrar la sesión.
Con efímero dh B es sólo un secreto a corto plazo. Por lo tanto, es mucho menos probable que el compromiso posterior de Eve con el servidor lo revele.