web-dev-qa-db-fra.com

Comment désactiver les chiffrements en mode CBC

Existe-t-il un moyen simple, de style liste noire, de désactiver les suites de chiffrement en mode CBC dans les applications qui utilisent une liste de suites de chiffrement openssl? J'espère quelque chose dans le style de !RC4, cependant, !CBC n'a aucun effet et autorise toujours les suites telles que TLS_DHE_RSA_WITH_AES_128_CBC_SHA256.

La seule solution que j'ai trouvée jusqu'à présent est d'utiliser une liste blanche beaucoup plus verbeuse qui n'inclut que des chiffres non CBC. Existe-t-il une alternative plus simple?

15
Synchro

Selon la liste des chaînes de chiffrement donnée dans la documentation (chiffrements man) il n'y a pas de chaîne décrivant tous les chiffrements CBC. Cela signifie qu'il n'y a pas de moyen simple de désactiver tous ces éléments (et uniquement ceux-ci) avec un simple !CBC ou similaire.

3
Steffen Ullrich

Vous pouvez utiliser !SHA1:!SHA256:!SHA384 pour désactiver tous les chiffrements en mode CBC. Certains faux positifs non CBC seront également désactivés (RC4, NULL), mais vous voudrez probablement les désactiver quand même.

Notez que tandis que GCM et CHACHA20 les chiffres ont SHA* en leur nom, ils ne sont pas désactivés car ils utilisent leur propre algorithme MAC. Le SHA* dans leur nom est pour le PRF, pas le MAC

15
imgx64

J'ai passé pas mal de temps au cours des deux derniers jours à essayer d'obtenir une liste parfaite pour ssllabs. Merci en partie à cela, voici ce qui fonctionne:

SSLCipherSuite ALL:!RSA:!CAMELLIA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SHA1:!SHA256:!SHA384
5
Bill Cheswick

Il n'y a aucun moyen de le faire directement, mais vous pouvez l'écrire un peu.

Supposons que votre chaîne initiale de suites de chiffrement soit !3DES:HIGH. (Vous devriez probablement avoir une meilleure chaîne de suites de chiffrement pour commencer, mais c'est un bon point de départ et n'encombrera pas trop cette réponse.)

Maintenant, faites ceci:

$ openssl ciphers '!3DES:HIGH' \
    | sed -e 's/:/\n/g' \
    | grep -v GCM \
    | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/:!/g' -e 's/^/!/'

Explication, par ligne:

  1. Commencez avec l'ensemble de chiffres que vous voulez "vraiment"
  2. Divisez le :- liste séparée en une suite de chiffrement par ligne
  3. Supprimez tout ce qui ne dit pas explicitement GCM
  4. Lisez l'intégralité du fichier en une seule fois, remplacez les sauts de ligne par :!, puis ajoutez un ! au tout début

Maintenant, prenez cette sortie et placez-la à l'avant de votre chaîne de suite de chiffrement. Ne jetez pas votre original, car vous voudrez peut-être réexécuter ce processus plus tard lorsque la chaîne de vos suites de chiffrement initiale change, ou si de nouveaux chiffrements sont ajoutés à OpenSSL ou même à leur liste par défaut HIGH.

1