Secreto directo perfecto (PFS)

Perfect Forward Secrecy (PFS), también conocido como Forward Secrecy, es un estilo de cifrado conocido por producir intercambios temporales de claves privadas entre clientes y servidores. Para cada sesión individual iniciada por un usuario, se genera una clave de sesión única. Si una de estas claves de sesión se ve comprometida, los datos de cualquier otra sesión no se verán afectados. Por lo tanto, las sesiones pasadas y la información contenida en ellas están protegidas de futuros ataques.

Sin un secreto de reenvío perfecto, un usuario inicia una sesión de comunicación con un cliente y toda la conversación se cifra según la clave especial del cliente. Sin embargo, el cliente usa la misma clave especial para generar encriptación para todas sus sesiones, y si se ve comprometida, también lo hace toda la información contenida en cada conversación.

Con un perfecto secreto hacia adelante, cada sesión de comunicación genera una clave de cifrado única que está separada de la clave especial, es privada y solo dura el tiempo que dura la sesión. Si un atacante comprometiera una de las claves especiales del usuario, las conversaciones permanecerían cifradas y seguras. De manera similar, si un atacante comprometiera la clave de cifrado única, solo se filtraría esa conversación específica.

Al proteger los datos en la capa de transporte de una red, el secreto directo perfecto se ha convertido en un estándar de seguridad para que los desarrolladores lo implementen en servicios de mensajería o sitios web dedicados a la privacidad del usuario. Las herramientas que aplican esta función pueden cambiar las claves de cifrado con tanta frecuencia como cada mensaje de texto, llamada telefónica o actualización de página. Recientemente, el Grupo de trabajo de ingeniería de Internet ha publicado el Estándar de seguridad de la capa de transporte para exigir el secreto directo perfecto para todas las sesiones de TLS.

Heartbleed y Perfect Forward Secrecy

El secreto directo perfecto se volvió más interesante después de la introducción del error Heartbleed en OpenSSL en 2012. La vulnerabilidad es el resultado de una validación de entrada insuficiente en la utilización de la extensión de latido del protocolo Transport Layer Security. Heartbleed se conoce como una vulnerabilidad de sobrelectura del búfer y permitiría al usuario leer más datos de los permitidos, filtrando una cadena completa de información de hasta 64 kilobytes.

Si bien Heartbleed se ha divulgado públicamente desde 2014, demostró la simplicidad de un ataque OpenSSL y provocó la conversación sobre métodos temporales de intercambio de claves. Por lo tanto, el secreto directo perfecto se convirtió en una solución viable para proteger a los usuarios de defectos de código similares.

Perfecto secreto en uso

El secreto hacia adelante perfecto ha sido adoptado ampliamente por los proveedores de información desde sus inicios y es conocido como una característica de seguridad crucial. Signal, un protocolo de mensajería para el cifrado de extremo a extremo que se encuentra en WhatsApp, Google Allo messenger y conversaciones de Facebook, popularizó el perfecto secreto hacia adelante. Conocido como el sistema de "doble trinquete", Signal crea una nueva clave de cifrado con cada mensaje. Más recientemente, también introdujo una función que permite que los mensajes se autodestruyan.

En 2011, Google proporcionó a Gmail, Google Docs y a los usuarios de búsqueda encriptados un secreto de reenvío perfecto de forma predeterminada. Twitter ha ofrecido un secreto directo perfecto a todos los usuarios desde 2013. Apple anunció en 2016 un nuevo protocolo obligatorio para todas las aplicaciones iOS que requieren el uso de App Transport Security, una función de seguridad que utiliza un secreto directo perfecto.