Désactiver SSLv2 et les chiffrements faibles
Conformité PCI - Désactivez SSLv2 et les chiffrements faibles
Conformément à la norme PCI DSS (Payment Card Industry Data Security Standard), les commerçants qui traitent des données de cartes de crédit sont tenus d'utiliser des protocoles de cryptage et de sécurité robustes, tels que SSL/TLS ou IPSEC, afin de protéger les données sensibles des titulaires de cartes lors de leur transmission sur des réseaux publics ouverts.
Qu'est-ce que cela signifie ? Afin de valider votre conformité PCI DSS dans ce domaine, vous devrez vous assurer que vos serveurs concernés au sein de votre environnement PCI sont configurés pour interdire la version 2 du protocole SSL (Secure Sockets Layer) ainsi que les cryptages « faibles ». Vous êtes également tenu de faire effectuer des analyses trimestrielles de vulnérabilité de sécurité PCI sur vos systèmes PCI externes. Si vous ne désactivez pas SSLv2 et les chiffrements faibles, vous êtes presque assuré d'échouer aux analyses. Cela entraînera à son tour une non-conformité, avec les risques et les conséquences qui y sont associés.
Le dilemme SSLv2
Votre serveur prend-il en charge SSLv2 ?
Comment tester :
Vous devez installer OpenSSL sur le système à partir duquel vous effectuerez les tests. Une fois installé, utilisez la commande suivante pour tester votre serveur web, en supposant que le port 443 est celui sur lequel vous fournissez des connexions https :
# openssl s_client -ssl2 -connect SERVERNAME:443
Si le serveur ne prend pas en charge SSLv2, vous devriez recevoir une erreur similaire à celle-ci :
# openssl s_client -ssl2 -connect SERVERNAME:443
CONNECTED(00000003)
458:erreur:1407F0E5:routines SSL:SSL2_WRITE:échec de la négociation SSL:s2_pkt.c:428:
Comment configurer Apache v2 pour qu'il n'accepte pas les connexions SSLv2 :
Vous devrez modifier la directive SSLCipherSuite dans le fichier httpd.conf ou ssl.conf.
Par exemple, vous pouvez modifier les lignes suivantes pour qu'elles ressemblent à ceci :
SSLProtocol -ALL +SSLv3 +TLSv1
Redémarrez le processus Apache et assurez-vous que le serveur fonctionne. Effectuez également un nouveau test à l'aide d'OpenSSL pour confirmer que SSLv2 n'est plus accepté.
Comment configurer Microsoft IIS pour qu'il n'accepte pas les connexions SSLv2 :
Vous devrez modifier le registre du système.
Fusionnez les clés suivantes dans le registre Windows® :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Server]
« Enabled »=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
« Enabled »=dword:00000000
Redémarrez le système et assurez-vous que le serveur fonctionne correctement. Effectuez également un nouveau test à l'aide d'OpenSSL pour confirmer que SSLv2 n'est plus accepté.
Ces fichus chiffrements SSL faibles
Votre serveur prend-il en charge les chiffrements SSL faibles ?
Comment tester :
Vous devez avoir installé OpenSSL sur le système à partir duquel vous effectuerez les tests. Une fois installé, utilisez la commande suivante pour tester votre serveur web, en supposant que le port 443 est celui sur lequel vous fournissez des connexions https :
# openssl s_client -connect SERVERNAME:443 -cipher LOW:EXP
Si le serveur ne prend pas en charge les chiffrements faibles, vous devriez recevoir une erreur similaire à celle-ci :
# openssl s_client -connect SERVERNAME:443 -cipher LOW:EXP
CONNECTED(00000003)
461:erreur:140790E5:routines SSL:SSL23_WRITE:échec de la négociation SSL:s23_lib.c:226:
Comment configurer Apache v2 pour qu'il n'accepte pas les chiffrements SSL faibles :
Vous devrez modifier la directive SSLCipherSuite dans le fichier httpd.conf ou ssl.conf.
Par exemple, vous pouvez modifier les lignes suivantes pour qu'elles ressemblent à ceci :
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
Redémarrez le processus Apache et assurez-vous que le serveur fonctionne correctement. Effectuez également un nouveau test à l'aide d'OpenSSL pour confirmer que les chiffrements SSL faibles ne sont plus acceptés.
Comment configurer Microsoft IIS pour qu'il n'accepte pas les chiffrements SSL faibles :
Vous devrez modifier le registre du système.
Fusionnez les clés suivantes dans le registre Windows® :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56]
« Enabled »=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]
« Enabled »=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128]
« Activé » = dword : 00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128]
« Activé »=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
« Activé » = dword : 00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
« Activé » = dword : 00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128]
« Activé » = dword:0000000
Redémarrez le système et assurez-vous que le serveur fonctionne correctement. Effectuez également un nouveau test à l'aide d'OpenSSL pour confirmer que les chiffrements SSL faibles ne sont plus acceptés.
À ce stade, demandez à votre fournisseur de services d'analyse approuvé (ASV) d'analyser votre environnement PCI externe afin de le valider. Les modifications ci-dessus devraient empêcher les analyses ASV de vous signaler et de vous rejeter pour les vulnérabilités suivantes :
- Le serveur SSL prend en charge un chiffrement faible
- Le serveur SSL autorise le chiffrement en clair
- Le serveur SSL peut être contraint d'utiliser un cryptage faible
- Le serveur SSL autorise l'authentification anonyme