web-dev-qa-db-fra.com

SSLCIPHERSUITE - Désactiver le cryptage faible, CBC Cipher et un algorithme basé sur MD5

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?

6
John

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).

9
Falcon Momot

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).

4
Shane Madden