SSL ontving een zwakke efemere Diffie-Hellman-sleutel: dit probleem oplossen
In sommige gevallen, zoals wanneer het SSL-certificaat niet correct is geïnstalleerd op de server, verschijnt de volgende waarschuwing in de browser: er is een fout opgetreden tijdens het verbinden met www.site.com. SSL ontving een zwakke efemere Diffie-Hellman-sleutel in het handdrukbericht 'Exchange keys server'. (Error code: ssl_error_weak_server_ephemeral_dh_key).
- De pagina die u probeert te openen kan niet worden weergegeven omdat de authenticiteit van de ontvangen gegevens niet kon worden geverifieerd.
- Neem contact op met de eigenaren van de website om hen hierop te wijzen.
De reden achter dit probleem is dat de server probeert een beveiligde verbinding tot stand te brengen met een zwakke coderingssleutel (minder dan 1024 bits). De aanbevolen grootte van de coderingssleutel is 2048 bits. De eenvoudigste manier om dit soort verbeterde coderingssleutel te genereren is het gebruik van OpenSSL:
Openssl dhparam -out dhparams.pem 2048
Om het probleem met verschillende servers op te lossen, moet u onderstaande stappen volgen:
- Specificeer veilige cijfersets
- Bepaal de juiste parameters voor het Diffie-Hellman-algoritme
Oplossing voor Apache:
SSL-parameters kunnen globaal worden gedefinieerd in het bestand httpd.conf of in specifieke virtuele hosts.
Cijfersets
Schakel SSLv2- en SSLv3-ondersteuning uit en schakel TLS-ondersteuning in door bepaalde cijfers expliciet toe te staan/uit te schakelen in de opgegeven volgorde:
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
Diffie-Hellman-parameters:
In recente versies van Apache (2.4.8 en nieuwer), evenals OpenSSL 1.0.2 en nieuwer, kunt u rechtstreeks een bestand met Diffie-Hellman-parameters opgeven:
SSLOpenSSLConfCmd DHParameters "{path to dhparams.pem}"
Als u Apache gebruikt met LibreSSL of werkt met versies van Apache 2.4.7 of OpenSSL 0.9.8a of nieuwer, kunt u de eerder gegenereerde Diffie-Hellman-parameters toevoegen aan het einde van uw certificaatbestand.
Voer de configuratiereset uit:
Sudo service apache2 reload
De oplossing voor Nginx
In het serverblok in de siteconfiguratie (/etc/nginx/sites-enabled/default) voegt u het volgende toe:
Cijfersets:
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
Diffie-Hellman-parameters
Ssl_dhparam {path to dhparams.pem}
Configuratie opnieuw laden:
Sudo nginx -s reload
Microsoft IIS
1. Open Groepsbeleidsobjecteditor (voer gpedit.msc uit in de opdrachtregel).
2. Ga naar Computerconfiguratie, Administratieve sjablonen, Netwerk en klik vervolgens op SSL-configuratie-instellingen.
3. Open in de sectie SSL-configuratie-instellingen de parameter SSL Cipher Suite Order.
4. Set van stabiele cijfers. De lijst met cijfers kan worden bekeken op de Microsoft-website of op de Mozilla-pagina.
Lighttpd
Er worden wijzigingen aangebracht in /etc/lighttpd/lighttpd.conf.
Cijfersets:
ssl.cipher-list = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA "
Diffie-Hellman-parameters
Ssl.dh-file = "{path to dhparams.pem}"
Configuratie opnieuw instellen:
Sudo service lighttpd restart
Apache Tomcat
In het bestand server.xml (voor JSSE)
Cijfersets:
<Connector
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_SHA,TLS_ECDHE_RSA_WITH_AES_256_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_SHA384,TLS_ECDHE_RSA_WITH_AES_256_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_128_SHA,TLS_DHE_DSS_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_256_SHA256,TLS_DHE_DSS_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_256_SHA"
/>
Opmerking: Als u AES 256-bits cijfers wilt gebruiken, moet u JCE-beleidsbestanden voor onbeperkte sterkte installeren. U kunt die vinden met de volgende koppeling.
Postfix SMTP
Beide parameters moeten in /etc/postfix/main.cf zijn gespecificeerd.
Cijfersets:
smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CBC3-SHA, KRB5-DES, CBC3-SHA
Diffie-Hellman-parameters
smtpd_tls_dh1024_param_file = ${config_directory}/dhparams.pem
Configuratie opnieuw instellen:
sudo postfix reload
Sendmail
Aanpassingen kunnen worden gemaakt in de sectie LOCAL_CONFIG van het bestand /etc/mail/sendmail.mc.
Cijfersets:
O CipherList=ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
Diffie-Hellman-parameters
O DHParameters={path to dhparams.pem}
Configuratie opnieuw instellen:
sudo service sendmail restart
Dovecot
Aanpassingen kunnen worden gemaakt in /etc/dovecot.conf
Cijfersets:
ssl_cipher_list=ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_prefer_server_ciphers = yes (Dovecot 2.2.6 of nieuwer)
Diffie-Hellman-parameters:
#regenerates every week
ssl_dh_parameters_length = 2048
Configuratie opnieuw instellen:
sudo doveadm reload
HAProxy
Aanpassingen kunnen worden gemaakt in de sectie global van de configuratie.
Cijfersets:
ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
Diffie-Hellman-parameters:
Voeg onderaan het .crt-bestand de Diffie-Hellman-parameter toe die met OpenSSL is gegenereerd.
Opmerking: ondanks de optie tune.ssl.default-dh-param, waarmee u de maximale grootte van de voor DHE gebruikte priemgetallen kunt opgeven, zal het plaatsen van willekeurige parameters in uw certificaatbestand deze waarden overschrijven.
Configuratie opnieuw instellen:
sudo haproxy -f haproxy.cfg -p $(</var/run/haproxy-private.pid) -st $(</var/run/haproxy-private.pid)
Amazon Elastic Load Balancing
De laatste reeks vooraf gedefinieerde SSL-parameters (2015-05) gebruikt ECDHE-sleutels, niet DHE, die bestand zijn tegen LogJam-aanvallen. Meer details vindt u in de documentatie.
OpenSSH
Het SSH-protocol is beschermd tegen LogJam-aanvallen, waarbij een aanvaller een verbinding kan overschakelen op een zwakkere cryptografie. Veel SSH-implementaties, waaronder OpenSSH, gebruiken echter priemgetallen, bijvoorbeeld 1024-bit Oakley Group 2. Er zijn verschillende manieren om dit probleem op te lossen. De eerste en eenvoudigste methode is om klanten het Diffie-Hellman-algoritme op elliptische krommen te laten gebruiken. Met name Curve 25519. U kunt dit doen door sleuteluitwisselingsalgoritmen in te stellen:
KexAlgorithms curve25519-sha256@libssh.org
Als u het niet-elliptische Diffie-Hellman-algoritme wilt blijven ondersteunen, moet u de ondersteuning van groep 1 uitschakelen door diffie-hellman-group1-sha1 te verwijderen. U kunt diffie-hellman-group14-sha1 die 2038-bits priemgetallen gebruikt, laten staan.
U kunt ook nieuwe Diffie-Hellman-groepen genereren:
ssh-keygen -G moduli-2048.candidates -b 2048
ssh-keygen -T moduli-2048 -f moduli-2048.candidates
U moet dan de moduli-2048 installeren in uw systeemmoduli-bestand. In Debian/Ubuntu vindt u dat in /etc/ssh/moduli. SSH selecteert (op willekeurige wijze) de groepen uit dit bestand, dus u moet de nieuwe gegenereerde groepen toevoegen aan het moduli-bestand en de oude verwijderen.
Mocht u nog vragen of problemen hebben, neem dan gerust contact op met het LeaderTelecom-ondersteuningsteam via de contactgegevens op de website.