web-dev-qa-db-fra.com

Hors suites de chiffrement contenant SHA ou AES128

Je suis au courant que cela ne soit peut-être pas vu comme une question, mais voici:

Une grande organisation que je travaille a récemment publié un nouvel ensemble de normes pour des suites de chiffrement acceptables sur tous leurs sites Web en fonction du public. Les normes font bouillir jusqu'à ceci:

  • Si la suite Cipher contient SHA1 - ce n'est pas acceptable (par exemple ECDHE-RSA-AES256-SHA)
  • Si la suite Cipher utilise un cryptage 128 bits - ce n'est pas acceptable (par exemple ECDHE-RSA-AES128-GCM-SHA256)

Pour autant que je sache, même avec les récentes conclusions de la vulnérabilité, cela ne semble pas être une prémisse sonore pour un ensemble de normes TLS. HMAC avec SHA est toujours considéré comme acceptable et AES128-GCM est considéré comme assez robuste (autant que je sache).

J'ai une chance de discuter pour une exception à cette règle (que j'aimerais faire, car la conformité implique la suppression d'un important fournisseur de CDN du site). Est-ce que quelqu'un a des réflexions sur la raison pour laquelle le retrait des suites de chiffrement répondant à ces critères serait préjudiciable à l'utilisateur final du site (compatibilité client, performance, etc.).

2
Mark Kelly

Premièrement, il est inutile d'un point de vue de sécurité. HMAC-SHA1 et AES-128 sont plus ou moins corrects. C'est idiot. N'écrivez pas les politiques de sécurité idiotes.

Deuxièmement, tu vis firefox. Firefox 46 prend en charge AES-128 avec HMAC-SHA1 ou GCM, et AES-256 avec HMAC-SHA1. AES-256-GCM n'est pas une option.

Firefox 47 a également ajouté CHACA20-POLY1305, qui est un excellent chiffrement de 256 bits, mais c'est assez nouveau, pas largement supporté par des serveurs et vous ne l'avez pas mentionné.

Firefox 49, actuellement prévu pour la libération du 13 septembre, devrait obtenir l'AES-256-GCM, mais c'est à l'avenir, et vous voudrez continuer à soutenir les versions plus anciennes pour que Dieu sait de toute façon.

Troisièmement, là est une bonne raison de préférer les suites de chiffrement non-HMAC: http/2 l'encourage . La mise en œuvre de la liste noire de la suite Cipher est facultative, mais Chrome et firefox le font les deux. Si vous activez http/2, vous avez absolument besoin de suites de chiffrement acceptables (qui incluent AES-GCM avec DHE ou ECDHE Echange de clé, mais pas HMAC, quelle que soit la taille de la clé). Vous êtes libre de garder des suites chiphériques obsolètes activées, mais vous devez donner la préférence à des meilleurs lors de la négociation avec les clients HTTP/2.

ETA: Vous pouvez les signaler à Mozilla Guide TLS du serveur TLS et Générateur de configuration SSL et dites "C'est une bonne idée de copier cette recommandation d'experts solide et bien étudiée." Ce serait vrai, et il garderait le soutien de l'AES-128. (Certaines variantes suppriment réellement HMAC-SHA1, mais elles gardent tous HMAC-SHA256 et HMAC-SHA384.)

3
Matt Nordhoff

La mise à niveau vers AES-256 se produit et que de nouveaux serveurs l'offrent comme une option 1 er. Pour vous illustrer comment cela se fait ici est la liste des nouveaux chiffres de SSL httpd (test avec NMAP), voir ci-dessous.

Maintenant, la chose est que si le navigateur ne pourrait pas utiliser de variante forte, il peut utiliser tout autre chiffre pris en charge plus faible. Les chiffres sont essayés du protocole TLS le plus élevé pris en charge, puis des variantes du haut en dernier en dernier.

La configuration suivante fait de bons clients à l'aide de chiffres forts mais conserve le pouvoir avec des personnes âgées afin que personne ne soit affectée.

Après avoir changé à cela, on peut analyser les journaux SSL pour voir quelles variantes peuvent être supprimées et combien d'utilisateurs seront affectés, mais s'il s'agit de la grande entreprise, la liste ci-dessous devrait fonctionner pour tout le monde pour le début.

En ce qui concerne les CDN, le passage de l'AES-128 à 256 est un changement énorme qui coûte des coûts importants $$$. Cependant, un tel changement devra se passer une fois qu'ils mettront à niveau le logiciel au plus récent qui se produira sûrement dans les années à venir.

Donc, avec ce serveur Firefox utilise TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, OpenSSL utilise le meilleur choix TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, Google Chrome dit TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA, tout avec TLS 1.2.

Le faire différemment va contrarier de nombreux utilisateurs.

nmap --script ssl-enum-ciphers -p 443 127.0.0.1

443/tcp open  https
| ssl-enum-ciphers: 
|   TLSv1.0: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (secp256r1) - C
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 2048) - C
|     compressors: 
|       NULL
|     cipher preference: server
|   TLSv1.1: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (secp256r1) - C
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 2048) - C
|     compressors: 
|       NULL
|     cipher preference: server
|   TLSv1.2: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (secp256r1) - C
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 2048) - C
|     compressors: 
|       NULL
|     cipher preference: server
|_  least strength: C
3
Aria

Vous pouvez faire l'argument selon lequel la suppression du cryptage SHA1 et 128 bits provoquera des problèmes de compatibilité, même si SHA1 est en cours d'élimination progressive. Les conseiller à compter sur [~ # ~] NIST [~ # ~ ~] pour les choix d'algorithmes.

0
ztk