Para obtener Perfect Forward Secrecy , debes utilizar claves efímeras .
Con Diffie-Hellman estático (curva elíptica o no, ese no es el problema), Alice y Bob poseen un par de claves DH: la clave privada de Alice es a , la clave pública es aG (la notación de curva elíptica, G es el "punto base" convencional para la curva); La clave privada de Bob es b , la clave pública es bG . Cuando Alice y Bob quieren hablar entre ellos, hacen lo de DH, lo que significa que terminan con el valor secreto compartido abG . Siempre tienen este exacto secreto compartido. Si un atacante logra robar la clave privada de Alice ( a ), puede volver a calcular el secreto compartido y descifrar todas las conversaciones pasadas y futuras entre Alice y Bob.
Ephemeral Diffie-Hellman trata de generar pares de claves DH "sobre la marcha" y no grabar claves privadas en ningún lugar (las claves privadas se guardan solo en la memoria RAM y solo durante la conversación) . Nunca ser registrado debe hacer que estas claves privadas sean inmunes a robos posteriores; De ahí viene el PFS. Esto se usa en SSL / TLS con los conjuntos de cifrado "DHE" (y "ECDHE"): el servidor posee un privado / par de claves públicas, con la clave pública en un certificado y aptos para firmas (por ejemplo, ese par de claves es de tipo RSA o DSA). Cuando un cliente se conecta, tanto el cliente como el servidor generan nuevos pares de claves DH; el servidor firma su nueva clave pública DH generada con su clave de firma (el cliente verifica esa firma y valida el certificado del servidor). La clave que realmente se utiliza para cifrar los datos es la que se deriva del algoritmo Diffie-Hellman.
Con las suites de cifrado DHE, si la clave privada del servidor es robada, el ladrón solo obtiene el poder de calcular firmas falsificadas. El ladrón puede hacerse pasar por el servidor y poner en peligro las comunicaciones de futuro ejecutando un Man-in -el ataque del medio , pero las conexiones pasadas se cifraron con respecto a las claves DH que se perdieron durante mucho tiempo, por lo que el atacante no las descifrará. Eso es PFS.