Un développeur a récemment couru une analyse PCI avec TripWire contre notre serveur de lampe. Ils ont identifié plusieurs problèmes et ont chargé ce qui suit de corriger les problèmes suivants:
Problème: SSL Server prend en charge le cryptage faible pour SSLV3, TLSV1,
Solution: ajoutez la règle suivante à httpd.conf
SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
Problème: SSL Server prend en charge CBC Ciphers pour SSLV3, TLSV1
Solution: Désactiver toutes les suites de chiffrement à l'aide de CBC Ciphers
Problème: SSL Server prend en charge l'algorithme Mac faible pour SSLV3, TLSV1
Solution: Désactivez toutes les suites de chiffrement à l'aide d'algorithmes Mac basés sur MD5
J'ai essayé de chercher Google pour un didacticiel complet sur la création d'une directive SSLCIPHersuite pour répondre à mes exigences, mais je n'ai rien trouvé à comprendre. Je vois des exemples de directives SSLCIPHERSuite, mais j'ai besoin d'une explication sur ce que chaque composante de la directive fait. Donc même dans la directive SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
, Je ne comprends pas par exemple ce que le !LOW
moyens.
Quelqu'un) soit a) dites-moi la directive SSLCIPHersuite qui répondra à mes besoins ou à mes besoins, montrez-moi une ressource qui explique clairement chaque segment d'une SSLCIPHERSuite et comment en construire un?
Si leur seul reproche est MAC, vous devriez simplement ajouter le !MD5
Élément à votre suite Cipher existante pour répondre à la recommandation.
Cela dit, je vois qu'ils se plaignent également de l'utilisation du mode CBC. Malheureusement, il n'y a pas de groupe de chiffrement CBC
. La recommandation qui vous est donnée n'exclut pas non plus les ciphersPecs en mode CBC, au moins sur ma version de OpenSSL (1.0.1e). C'est une honte. Si vous avez besoin de tous ces chiffres à exclure, vous pouvez exclure tous les CBC explicitement, bien que vous deviez mettre à jour cela comme ils sont inclus. Notez que même HIGH
inclut des chiffres CBC.
Y compris les deux ALL
et RC4+RSA
est redondant. Je serais détesté de faire confiance à un consultant en sécurité (même un informatisé) qui ne peut même pas construire un cipherspec bien formé qui répond à leurs propres recommandations.
Le SSLCipherSuite
prend une spécification de chiffrement OpenSSL. Vous pouvez trouver ceci dans la documentation OpenSSL (link) , mais je trouve que cette documentation est généralement obsolète. Cependant, vous pouvez tester une en exécutant openssl ciphers ${cipherspec}
sur votre serveur; la sortie sera un :
- Liste des chiffres séparés séparés qui seraient autorisés par la spécification donnée ou une erreur indiquant aucun n'a été autorisée.
De même, si vous voulez savoir ce que contient LOW
contient, faites:
falcon@tiernyn ~ $ openssl ciphers 'LOW'
EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:ADH-DES-CBC-SHA:DES-CBC-SHA:DES-CBC-MD5
!LOW
signifie exclure ceux-là. +HIGH
signifie préférer les personnes à haute sécurité dans la commande.
Si vous souhaitez une liste délimitée de tous les chiffres qui utilisent CBC dans votre CIPHERSPEC, faites:
openssl ciphers ${cipherspec} | sed 's/:/\n/g' | grep CBC
Ce sont ceux que vous devez exclure. Vous pouvez cependant le trouver plus raisonnable à grep -v CBC
et n'incluez que celles (simplement les mettre en place dans un :
- Liste délimitée et utilisez cela comme ciPHERSPEC).
Les mod_ssl
Documentation explique les composants des paramètres SSLCipherSuite
, ici .
Si vous souhaitez rencontrer toutes ces exigences de numérisation, vous devez manifester à peu près RC4 avec SSLCipherSuite RC4-SHA
(ou exécuter des TLS plus récents qui peuvent ou non être pratiques pour votre système).