El forward secrecy ( forward secrecy en inglés), es una propiedad en criptografía que asegura que el descubrimiento por un oponente de la clave privada de un correspondiente (secreto a largo plazo) no compromete la confidencialidad de las comunicaciones pasadas.
Puede proporcionarse, por ejemplo, mediante la generación de claves de sesión utilizando el protocolo de intercambio de claves Diffie-Hellman . Estas claves de sesión (temporales) no se pueden encontrar en las claves de los participantes y viceversa.
Durante una conexión TLS , la elección de algoritmos de intercambio de claves hace posible o no aprovechar la confidencialidad persistente. Los métodos "DH" (para Diffie-Hellman) o " Efímero DH ", cuando se utilizan, proporcionan esta característica.
Esto significa que, incluso si obtuvo la clave privada del servidor sobornando a un administrador, robándola o incluso mediante una sentencia judicial, no podrá descifrar los intercambios que haya registrado en el pasado.
La clave privada no es de ayuda en este caso, ya que solo se usó para firmar los parámetros DH durante el mensaje " Server Key Exchange ".
Los mecanismos de derivación de claves también pueden garantizar el secreto hacia adelante, como en el algoritmo DUKPT ( in ) donde se utiliza una única clave por transacción.
La confidencialidad persistente fue descrita por primera vez por Whitfield Diffie , Paul van Oorschot y Michael James Wiener. Describieron esta propiedad en el protocolo STS (estación a estación), en el que el secreto a largo plazo es una clave privada,
El término confidencialidad persistente también se ha utilizado para describir las propiedades de un protocolo de intercambio de claves autenticado por contraseña, en el que el secreto a largo plazo es una contraseña compartida.
Finalmente, el Anexo D.5.1 de IEEE 1363-2000 analiza las propiedades de confidencialidad persistente de los diversos estándares de intercambio de claves.
La confidencialidad persistente está diseñada para evitar que el compromiso de una clave duradera (clave privada) afecte la confidencialidad de conversaciones pasadas. Sin embargo, esto no protege frente a un criptoanálisis del algoritmo de cifrado subyacente utilizado, ya que un criptoanálisis consiste en descifrar un mensaje cifrado mediante un algoritmo de cifrado, sin tener la clave a su disposición, y que la confidencialidad persistente solo protege las claves pasadas. Un atacante paciente puede almacenar una conversación encriptada por un algoritmo de clave pública y esperar a que este algoritmo se rompa en el futuro. Esto permitiría encontrar un mensaje claro de una antigua conversación que, sin embargo, había utilizado un intercambio de claves con una confidencialidad persistente.