Un résultat d'analyse de sécurité avant le déploiement d'une application Web sur Windows Server 2008 R2 a généré le message ci-dessous:
Les suites de chiffrement SSL faibles sont prises en charge
Reconfigurez le serveur pour éviter l'utilisation de suites de chiffrement faibles. Les modifications de configuration sont spécifiques au serveur.
SSLCipherSuite HIGH: MEDIUM:! MD5! EXP:! NULL:! LOW:! ADH
Pour Microsoft Windows Vista, Microsoft Windows 7 et Microsoft Windows Server 2008, supprimez les suites de chiffrement identifiées comme faibles de la liste des suites de chiffrement prises en charge en suivant ces instructions:
http://msdn.Microsoft.com/en-us/library/windows/desktop/bb870930 (v = vs.85) .aspx
J'ai essayé de comprendre les informations MSDN mais je suis totalement perdu là-dedans.
Tout d'abord, je ne comprends pas quelle est la suite de chiffrement qui doit être supprimée ou désactivée.
Alors, comment suis-je censé exécuter le code en donnant un exemple pour supprimer une suite de chiffrement?
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
void main()
{
SECURITY_STATUS Status = ERROR_SUCCESS;
LPWSTR wszCipher = (L"TLS_RSA_WITH_RC4_128_SHA");
Status = BCryptRemoveContextFunction(
CRYPT_LOCAL,
L"SSL",
NCRYPT_SCHANNEL_INTERFACE,
wszCipher);
}
Il peut être très difficile de déterminer les suites de chiffrement à supprimer. Pour Windows, j'ai utilisé l'outil gratuit IIS Crypto dans le passé:
IIS Crypto is a free tool that gives administrators the ability to enable or disable
protocols, ciphers, hashes and key exchange algorithms on Windows Server 2003, 2008
and 2012. It also lets you reorder SSL/TLS cipher suites offered by IIS, implement
best practices with a single click and test your website.
Cela exploite non seulement les connaissances expertes de quelqu'un en ce qui concerne les algorithmes plus ou moins sécurisés, mais prend également la peine de trouver comment implémenter réellement le changement dans Windows (indice: c'est un tas d'entrées de registre).
Pour désactiver les protocoles créez un client et un Clé serveur avec la version du protocole et ajoutez DisabledByDefault = 1 (DWord) et Activé = 0 (DWord) valeurs.
Exemples ou clés: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Client HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server
Pour désactiver Chiffres créez une clé avec le nom de la suite et ajoutez Activé = 0 (DWord) valeur
Exemple de clés: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128 HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168
Sur les systèmes Win 2016 et au-dessus, il y a Disable-TlsCipherSuite
applet de commande. Sur les systèmes d'exploitation antérieurs, il existe une valeur de registre Fonctions qui contient la liste complète des suites de chiffrement acceptées. Ces valeurs sont situées sous des sous-clés des chemins suivants:
HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\Default HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL
Cependant, selon Microsoft:
L'équipe Microsoft SCHANNEL ne prend pas en charge la manipulation directe des emplacements de la suite Stratégie de groupe et Chiffrement par défaut dans le Registre.
Cela peut également être réalisé via un GPO situé ici: Configuration ordinateur\Modèles d'administration\Réseau\Paramètres de configuration SSL\Ordre de la suite de chiffrement SSL
La désactivation des chiffrements faibles semble se faire par configuration d'application.
Un guide vers les configurations de chiffrement du serveur Web et du serveur proxy est activement maintenu par Hynek Schlawack (comprend Apache/httpd, nginx, HAProxy et les notes générales).
Depuis le 16/01/2015, sa chaîne de "suite de chiffrement" recommandée est:
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
Je crois que l'équivalent de Tomcat est [edit: ma liste précédente ne comprenait aucun chiffre qui fonctionnait avec les versions actuelles de Firefox ]:
ciphers="TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_256_GCM_SHA384,
TLS_RSA_WITH_AES_128_GCM_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA,
TLS_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_EMPTY_RENEGOTIATION_INFO_SCSV"
Formatage à partir de Tomcat How To: SSL Ciphers et chiffrements disponibles à partir du code en cours d'exécution fourni par un email de Christopher Schultz .
En ce qui concerne les suites de chiffrement à supprimer, je voudrais d'abord vous indiquer ma réponse à Maintenant que nous sommes en 2015, quelles suites de chiffrement SSL/TLS doivent être utilisées dans un environnement HTTPS de haute sécurité? pour un aperçu détaillé.
La version courte, courte, courte est: