Erreur SSLLabs : The server does not support Forward Secrecy :

Cette erreur est retournée par SSLLabs.com lorsque les Ciphers de sécurité (méthodes de chiffrement) ne sont idéalement configurés.
La sécurité des informations transmises pourrait être compromise en cas de vol de la clé privée, car la clé de session est transmise sur le réseau.

 

Qu'est-ce que le Forward Secrecy :

Cette propriété de cryptographie permet d'éviter que la clé de session - utilisée pour chiffrer les données - ne soit transmise sur le réseau.

 

Pourquoi activer le Forward Secrecy :

Pour éviter que des informations chiffrées et interceptées par un hacker ne puisse, un jour, être décryptées si la sécurité de la clée privée venait à être compromise.

La clé de session est chiffrée à l'aide de la partie publique de la clé privée. Si la clé privée est volée, alors la clé de session ainsi que les données peuvent être déchiffrées.

 

Exemple de faille de sécurité :

- Le Forward Secrecy n'est pas supporté par le serveur (The server does not support Forward Secrecy with the reference browsers) ;
- Un hacker sniffe le réseau et enregistre les informations chiffrées transmises entre un utilisateur et le serveur ;

S'il arrive à voler la clé privée RSA (via une faille OpenSSL tel que HeartBleed, piratage du serveur / intrusion), le pirate sera en mesure de déchiffrer toutes les données...

La seule solution est d'activer le Forward Secrecy afin d'éviter que la clé de session ne soit transmise sur le réseau.
Grâce au Forward Secrecy, un hacker qui aurait enregistré des données chiffrées ne sera pas en mesure de les déchiffrer car celles-ci ne contiendront pas la clé de session.

 


 

Comment activer le Forward Secrecy :

Pour activer le Forward Secrecy, vous devez intégrer l'ECDHE (Elliptic Curve Diffie-Hellman Exchange) dans la suite cryptographique (Cipher Suite).
Pour cela, nous allons indiquer au navigateur que nous souhaitons utiliser exclusivement des méthodes de chiffrement de haut niveau par l'ajout de HIGH.

 

Apache 2 :

# L'ECDHE sera proposé au navigateur par l'ajout de HIGH dans la directive SSLCipherSuite
SSLCipherSuite HIGH:!aNULL:!MD5:!ADH:!RC4:!DH

# La directive SSLHonorCipherOrder permet de forcer le navigateur à utiliser les préférences de chiffrement du serveur
# Sans cette directive, le Perfect Forward Secrecy risque de ne pas être activé car l'ECDHE ne sera pas proposé en premier
SSLHonorCipherOrder on

 


 

Nginx :

# L'ECDHE sera proposé au navigateur par l'ajout de HIGH dans la directive ssl_ciphers
ssl_ciphers "HIGH:!aNULL:!MD5:!ADH:!RC4:!DH";

# La directive ssl_prefer_server_ciphers permet de forcer le navigateur à utiliser les préférences de chiffrement du serveur
# Sans cette directive, le Perfect Forward Secrecy risque de ne pas être activé car l'ECDHE ne sera pas proposé en premier
ssl_prefer_server_ciphers on;