Bien, en criptografía, el término PFS aparece a veces. Es la abreviatura de Perfect Forward Secrecy (Secreto Perfecto Hacia Adelante), a veces llamado simplemente FS. Básicamente, se trata de garantizar que si una clave privada de un servidor es robada (por ejemplo, si alguien hackea el servidor), solo los datos de la sesión actual sean vulnerables. El tráfico anterior se mantiene seguro. Esa es la idea principal. Pero, sinceramente, comprender cómo funciona implica comprender los intercambios de claves criptográficas, así que no se preocupe si al principio le parece confuso. Es una forma de hacer que el cifrado sea más seguro a largo plazo.

Fundamentos de criptografía

Para mantener sus mensajes seguros, la mejor manera es usar cifrado simétrico: este es el método más rápido, como AES.¿El problema? Dado que se usa la misma clave para codificar y descodificar el mensaje, no se puede enviar esa clave a través de una red insegura sin riesgo de interceptación. Por lo tanto, el enfoque común es usar criptografía asimétrica (claves públicas/privadas) para configurar primero un canal seguro.

Nota: En teoría, se podrían probar métodos fuera de banda, como intercambiar claves mediante un dispositivo sin conexión, pero eso es algo tedioso y poco práctico hoy en día. Normalmente, se hace mediante Diffie-Hellman.

Diffie-Hellman (DH) es un protocolo de enlace complejo. Una persona, por ejemplo, Alicia, envía su clave pública a Bob, quien la combina con su clave privada para generar un secreto compartido. Bob devuelve su clave pública y Alicia hace lo mismo con la suya. Debido a su configuración, ambos terminan con el mismo secreto, sin siquiera transmitirlo. Este secreto se utiliza para cifrar los mensajes con algoritmos simétricos ultrarrápidos.

Nota: ¿La trampa? Diffie-Hellman no comprueba la legitimidad de la otra parte por defecto. Básicamente, cualquiera podría interferir con una clave falsa; por lo tanto, se necesita una forma de verificar las identidades, y ahí es donde entran en juego la PKI y los certificados. Porque, claro, la seguridad en internet no se trata solo del cifrado, sino también de la confianza.

El problema con el método Diffie-Hellman estándar

Aquí es donde la cosa se complica. Los sitios web utilizan certificados emitidos por Autoridades de Certificación (CA) de confianza, que incluyen claves públicas. Estos funcionan de maravilla hasta que la clave privada del servidor se ve comprometida; por ejemplo, si un hacker consigue acceder al servidor y robar dicha clave privada. Una vez obtenida, el atacante puede descifrar el tráfico cifrado con ella, a veces incluso años de información, si se almacenó. Esto es una auténtica pesadilla, ya que el cifrado moderno hace casi imposible adivinar la clave; por lo tanto, si alguien tiene esa clave privada, está a salvo.

Y seamos sinceros: si un atacante (por ejemplo, un estado-nación o algún proveedor de internet o VPN poco fiable) tiene a su disposición una gran cantidad de tráfico cifrado, podría descifrarlo más tarde si consigue la clave. Esto significa que todos esos chismes, información bancaria y demás información cifrada corren peligro una vez expuesta la clave privada.

Aquí viene lo más preocupante: tener la clave no basta para descifrar conversaciones pasadas, a menos que se haya registrado todo el tráfico en curso. Pero si alguien lo logra (y tiene la clave privada), puede descifrar todos esos datos más adelante, cuando el descifrado sea computacionalmente factible.

Secreto perfecto hacia adelante

Aquí es donde entra en juego PFS.¿La idea? No reutilizar la misma clave en cada sesión. En su lugar, cada vez que un cliente se conecta, el servidor genera un nuevo par de claves temporales (efímeras).Esta clave efímera se usa solo para esa sesión y se descarta inmediatamente después. Por lo tanto, incluso si alguien logra hackear el servidor y obtener la clave privada posteriormente, no podrá descifrar conversaciones anteriores, ya que cada sesión estaba protegida con su propia clave única.

Cuando hablamos de Diffie-Hellman con claves efímeras, se llama ECDHE (Curva Elíptica Diffie-Hellman Efímera).Es un nombre complejo, pero básicamente es la misma idea: generar una clave nueva cada vez, conservarla solo para esa sesión y luego borrarla.

¿La consecuencia práctica? Si la clave privada de tu servidor se ve comprometida *después* del incidente, el atacante solo podrá descifrar el tráfico de las sesiones protegidas con esa clave, no todo el historial. Una gran mejora en la seguridad, especialmente si alguien ha estado capturando tráfico con la esperanza de descifrarlo posteriormente.

Es un poco raro, pero hace que el sistema en general sea más resistente, especialmente contra el espionaje a largo plazo. Como cada sesión usa un secreto nuevo, es como no dejar una cerradura permanente en la puerta.

Resumen

En resumen, PFS se trata de mantener seguro el contenido cifrado antiguo incluso si la clave privada se ve comprometida en el futuro. No es infalible, pero es una de las mejores maneras de evitar que un atacante descifre años de tráfico almacenado si accede posteriormente. En esencia, es un buen hábito de seguridad que dificulta que tus conversaciones cifradas sean descifradas posteriormente. Porque en seguridad, a veces se trata de dificultarle las cosas a cualquiera que intente retroceder en el tiempo.

Resumen

  • Perfect Forward Secrecy implica generar claves de sesión únicas para cada conexión.
  • Obliga a los servidores a descartar claves efímeras una vez finalizada la sesión, lo que reduce el riesgo a largo plazo.
  • Evita que los atacantes descifren comunicaciones pasadas si obtienen la clave privada más tarde.
  • Generalmente se implementa a través de protocolos como ECDHE en HTTPS.

Resumen

Crucemos los dedos para que esto ayude a aclarar las ideas principales. Es un poco técnico, pero comprender el porqué de PFS facilita comprender por qué los sitios web y las aplicaciones se esfuerzan tanto en implementarlo. Es algo que funcionó en múltiples configuraciones y, con suerte, esto arrojará algo de luz en los rincones oscuros de la criptografía.