Forward Secrecy
| Fiche express | |
|---|---|
| Type | Durcissement TLS |
| Module | mod_ssl
|
| Fichier | section SSL du vhost (souvent ssl.conf)
|
| Voir aussi | Apache · Configurer vhost securise |
La Forward Secrecy (ou Perfect Forward Secrecy, PFS) est une propriété d'un
échange TLS garantissant que la compromission ultérieure de la clé privée du serveur ne permet
pas de déchiffrer rétroactivement du trafic capturé auparavant. Elle repose sur des suites de
chiffrement à échange de clé éphémère (DHE/EECDH), qui génèrent une
clé de session différente à chaque connexion au lieu de dériver directement la clé du
certificat du serveur.
Tester la configuration TLS d'un site
https://www.ssllabs.com/ssltest/analyze.html
Configurer la section SSL du vhost
# Protocoles autorisés : on désactive les versions dépréciées (SSLv2, SSLv3) SSLProtocol all -SSLv2 -SSLv3 # Le serveur impose l'ordre de préférence des suites de chiffrement, plutôt que le client SSLHonorCipherOrder on # Suite de chiffrement : privilégier les échanges de clé éphémères (Forward Secrecy), # écarter RC4/3DES/MD5 et les suites sans authentification SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+AESGCM EECDH EDH+AESGCM EDH+aRSA HIGH !MEDIUM !LOW !aNULL !eNULL !RC4 !MD5 !EXP !PSK !SRP !DSS" # Empêche les attaques par compression (CRIME/BREACH) SSLCompression Off # Impose HTTPS pendant 180 jours (HSTS) Header always set Strict-Transport-Security "max-age=15552000"
(à vérifier) Configuration datée
L'exemple ci-dessus vient d'une époque (mi-2010s) où il fallait encore composer avec des
clients anciens (IE8 sur Windows XP notamment), d'où des suites de secours contenant
RC4 ou 3DES dans certaines variantes. RC4 est aujourd'hui
considéré cassé et ne doit plus figurer dans aucune suite active ; SSLv3 est
lui-même obsolète (vulnérabilité POODLE) et ne devrait plus être négocié du tout, y compris
en fallback.
Sur un parc actuel, l'approche recommandée est plus simple :
SSLProtocol -all +TLSv1.2 +TLSv1.3 SSLCipherSuite HIGH:!aNULL:!MD5:!3DES:!RC4 SSLHonorCipherOrder off
(SSLHonorCipherOrder devient inutile avec TLS 1.3, qui a fixé la liste des suites
utilisables). Pour éviter de maintenir cette liste à la main, le générateur de configuration
Mozilla SSL Configuration Generator propose des profils "modern"/"intermediate" tenus à jour
selon le niveau de compatibilité navigateur souhaité.
Vérifier depuis un client
Forcer une suite de chiffrement précise pour valider qu'elle est bien acceptée (ou rejetée) par le serveur :
openssl s_client -connect exemple.example.com:443 -cipher ECDHE-RSA-AES256-SHA
Voir aussi
- Apache — vue d'ensemble du service
- Configurer vhost securise — mise en place initiale du certificat et du vhost SSL
- Directives apache — autres directives de configuration