OpenSSL Perfect Forward Secrecy

· Características

Desde sgcWebSockets 4.4.8 hay pequeñas modificaciones en la librería para mejorar la seguridad de las conexiones. Una de ellas es Perfect Forward Secrecy

Cuando usas el mecanismo de intercambio de claves RSA, se crea un vínculo entre el par de claves del servidor y la clave de sesión generada para cada sesión segura única. Por tanto, si un atacante alguna vez consigue hacerse con la clave privada del servidor, puede descifrar tu sesión SSL y cualquier sesión SSL guardada.

Por el contrario, cuando activas Perfect Forward Secrecy (PFS), no hay vínculo entre la clave privada de tu servidor y cada clave de sesión. Si un atacante consiguiera acceder a la clave privada de tu servidor, no podría usar dicha clave privada para descifrar ninguna de tus sesiones archivadas; por eso se llama "Perfect Forward Secrecy".


Activar Perfect Forward Secrecy 

Para activar Perfect Forward Secrecy en conexiones TLS 1.2, basta con habilitar la propiedad:

SSLOptions.OpenSSL_Options.ECDHE := True;

Esto habilitará ECDHE para conexiones TLS 1.2 si estás usando las librerías openSSL 1.0.2 (para 1.1.1 ECDHE está habilitado por defecto). Cuando ECDHE está habilitado, la librería le pasa a openSSL una lista de cifrados con alta seguridad.

Si haces un Security Test en el sitio online https://entrust.ssllabs.com/, obtendrás un resultado seguro después de activar ECDHE en tu servidor.

El servidor utilizado para pasar las pruebas usaba openSSL 1.1.1 y permite TLS 1.2 y TLS 1.3; ECDHE también estaba activado.