Perfect Forward Secrecy: qué es y cómo protege tus datos
Perfect Forward Secrecy (PFS) refuerza la seguridad de SSL/TLS al generar claves de sesión únicas para cada conexión, impidiendo que los hackers descifren datos anteriores o futuros, incluso si las claves privadas son comprometidas. Descubre cómo funciona y por qué es fundamental para la ciberseguridad.
Tabla de Contenidos
¿Qué es el secreto perfecto hacia adelante?
El secreto perfecto hacia adelante (PFS), también conocido como secreto hacia adelante, es un estilo de encriptación que permite intercambios de claves privadas a corto plazo entre clientes y servidores. El PFS se puede encontrar dentro de la seguridad de la capa de transporte (SSL/TLS) y evita que los hackers descifren datos de otras sesiones, pasadas o futuras, incluso si las claves privadas utilizadas en una sesión individual son robadas en algún momento.
El PFS logra esto utilizando claves de sesión únicas, generadas automáticamente cada vez que se establece una conexión. Las claves no utilizan conocimientos previos cuando se generan, lo que elimina la necesidad de almacenar las claves a largo plazo y evita que se acceda a datos confidenciales utilizando las existentes que han sido comprometidas.
De este modo, los hackers no pueden obtener la clave de sesión mediante el descifrado sin involucrarse a un nivel fundamental, con el acuerdo de claves y el mecanismo de intercambio, lo que requiere mucho más esfuerzo que otros métodos de ataque.
PFS es compatible con todos los principales navegadores de Internet y suele considerarse una característica de seguridad. La mayoría de los sistemas operativos modernos son compatibles con PFS desde hace bastante tiempo. Por ejemplo, la última versión de Windows que no era compatible con PFS fue Windows XP.
Se espera que el crecimiento de PFS continúe a medida que más gigantes tecnológicos impongan su adopción a los clientes. Google lo ha utilizado con Gmail y otros productos durante años, y Apple hizo del secreto perfecto hacia adelante, dentro de iOS, un requisito en la App Store en 2017. Cuando se introdujo TLS 1.3, el Grupo de Trabajo en Ingeniería de Internet (IETF) exigió el secreto perfecto hacia adelante, permitiendo solo los conjuntos de cifrado que lo ofrecían. Es una parte importante del futuro de la criptografía, y por una buena razón.
Cómo funciona el PFS
Dado que PFS utiliza claves de sesión únicas, los atacantes solo pueden ver los datos específicos de un intercambio concreto si recuperan las claves privadas de ese intercambio. Esta segmentación de las sesiones SSL/TLS reduce en gran medida el riesgo de una grave violación de datos a través de este vector.
Por lo tanto, los actores malintencionados tendrán menos probabilidades de atacar un servidor que utilice PFS, ya que sus esfuerzos darán como resultado el acceso a una cantidad significativamente menor de datos, sin garantía de que los datos recuperados sean el objetivo previsto hasta que los descifren utilizando las claves robadas.
En la práctica, el PFS funciona mediante organizaciones que cambian las claves de sesión cada vez que se utiliza un servicio, por ejemplo, cada vez que un visitante accede a una página cifrada, tal vez por motivos financieros o de identificación. El PFS también se utiliza en la mensajería. Se puede utilizar un nuevo conjunto de claves de sesión para cada mensaje enviado, segmentando completamente cualquier información que se recopile.
El método preferido para descifrar una sesión PFS es mediante un agente instalado en el propio servidor. Existen otros métodos, pero estos conllevan inconvenientes que deben resolverse antes de poder utilizarlos de forma segura.
La instalación de un agente en un servidor integra software de terceros que recopila claves de cifrado y proporciona visibilidad sin interrumpir la sesión SSL/TLS.
¿Qué algoritmos de cifrado lo utilizan?
SSL/TLS se logra mediante el intercambio de claves a través de procesos criptográficos acordados llamados conjuntos de cifrado. El acuerdo para establecer estos parámetros de conexión se denomina protocolo de enlace.
Para implementar el secreto directo perfecto, se debe utilizar un tipo de cifrado compatible. Actualmente, funcionarán dos algoritmos de intercambio de claves:
- Difie-Hellman efímero (DHE)
- Difie-Hellman de curva elíptica efímera (ECDHE)
Los algoritmos específicos utilizados probablemente cambiarán a medida que se descubran mejores métodos, pero uno de los principios más importantes del PFS es que los intercambios de claves deben ser efímeros, lo que significa que las claves de sesión son de un solo uso. También se conocen como claves efímeras. Se basan en valores aleatorios creados durante cada intercambio, por lo que son únicos para ese intercambio y dejarán de ser válidos cuando finalice. Toda la información cifrada se elimina después y se crean nuevos parámetros para la siguiente sesión.
Además de limitar la exposición de los datos una vez que una clave se ve comprometida, el diseño del intercambio de claves Diffie-Hellman garantiza que la clave de sesión no pueda obtenerse mediante fuerza bruta. Dado que la clave de sesión se crea mediante métodos criptográficos independientes y no compartidos, la clave privada del servidor es prácticamente inútil. La clave pública correspondiente en el par nunca se utiliza realmente para cifrar ninguno de los datos.
El objetivo principal de PFS
PFS evita la proliferación del riesgo a través de múltiples sesiones SSL/TLS.
Anteriormente, un actor malintencionado que atacara una conexión de uso común entre un cliente y un servidor podría registrar el tráfico cifrado durante el tiempo que quisiera, esperando hasta que pudiera hacerse con la clave privada. Entonces, una vez adquirida, podría volver atrás y descifrar todo lo que se había registrado. PFS limita sustancialmente esta posibilidad.
Antes de PFS, esta vulnerabilidad era común y potencialmente devastadora. Un claro ejemplo de esto se puede ver en la vulnerabilidad Heartbleed OpenSSL que fue descubierta en 2012 y anunciada públicamente en 2014.
Con el error Heartbleed, los atacantes indicaban al servidor que iban a enviarle un mensaje de solicitud de latido de 64 KB, pero en su lugar, enviaban un mensaje mucho más pequeño. El servidor respondía con el mensaje más corto, pero como el servidor preveía responder con un mensaje más largo, rellenaba el resto del mensaje con los datos que se encontraran en su memoria. Esto fue devastador, ya que el ataque podía ejecutarse repetidamente para recopilar grandes cantidades de datos. Los datos podían contener cualquier cosa dentro del servidor; contraseñas, información personal, datos de sesión e incluso la clave privada del servidor estaban al alcance del hacker.
Dado que una solicitud de latido es un evento rutinario, nunca se registra dentro del sistema. Esto no solo causa un problema para la investigación forense del hackeo, sino que hace que el hackeo sea imposible de descubrir sin buscarlo específicamente.
Si la clave privada del servidor fuera uno de los elementos comprometidos por la brecha, entonces los ataques también podrían interceptar y descifrar cualquier sesión SSL/TLS que se produjera sin que los participantes se dieran cuenta.
Los usuarios de PFS no solo están preocupados por los actores malintencionados, sino también por otros tipos de vigilancia. Después de la revelación de Edward Snowden sobre los programas de espionaje de la Agencia de Seguridad Nacional (NSA), muchas organizaciones ven el PFS como un paso necesario para limitar el espionaje y la supervisión del gobierno.
Una solución para el futuro
Si el desarrollo tecnológico actual del procesamiento sigue la Ley de Moore o el salto a la computación cuántica se realiza a gran escala, muchos algoritmos criptográficos y mejores prácticas serán superados y quedarán obsoletos. Esto expondrá todo lo que la encriptación está protegiendo y podría poner en peligro los datos heredados. Muchos expertos han expresado su preocupación de que individuos y naciones de todo el mundo estén recopilando datos con el objetivo de descifrarlos en una fecha posterior, cuando el procesamiento los haga triviales.
El PFS evita por completo esta estrategia como opción. No transmite ninguna de sus claves de sesión a través de la red, sino que utiliza métodos de cifrado simétrico que generan claves de sesión de forma independiente a través de complejas ecuaciones de autenticación realizadas por ambas partes.
Otra opción para ayudar a prevenir este problema es la utilización de la criptografía cuántica, un campo en desarrollo.
Cómo lograr el secreto perfecto hacia adelante
Habilitar el soporte PFS en un servidor es sencillo, y la mayoría de los servidores modernos ya están configurados para ello. Si no es así, generalmente puede hacerlo en cuatro sencillos pasos:
- Vaya a la configuración del protocolo SSL.
- Añada los protocolos SSL.
- Establezca un cifrado SSL que sea compatible con PFS.
- Reinicie su servidor.
El secreto perfecto hacia adelante se puede lograr en la mayoría de los servidores web, incluidos Apache, Nginx, RSA y otros.