Stärkste Verschlüsselung für HTTPs

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
mrserious
Beiträge: 266
Registriert: 22.06.2013 12:12:03

Stärkste Verschlüsselung für HTTPs

Beitrag von mrserious » 03.09.2016 04:58:36

Hallo,

ich würde in meiner Apache-Konfiguraiton (dieser ist nur über HTTPS erreichbar) gern nur den stärksten Algorithmus zulassen.
Mir ist klar, dass manche Clients damit Probleme haben könnten.
Gehe ich aber recht in der Annahme, dass ich dies mit folgender Direktive erreiche?

Code: Alles auswählen

SSLCipherSuite AES256
Oder macht es Sinn, da noch weiteres einzutragen?

Die Config insgesamt sieht so aus:

Code: Alles auswählen

<virtualhost *:443>
        ServerName xxx.xxx.xxx.xxx
        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/apache-pub.pem
        SSLCertificateKeyFile /etc/apache2/ssl/apache-key.pem
        DocumentRoot /var/www/nextcloud
        CustomLog /var/log/apache2/nextcloud_apache.log combined
        ErrorLog /var/log/apache2/nextcloud_apache_error.log

        SSLProtocol All -SSLv2 -SSLv3
        SSLCompression off
        SSLHonorCipherOrder On
        SSLCipherSuite AES256
</virtualhost>
Glaube, der stärkste momentan verfügbare Algorithmus wäre ECDHE-RSA-AES256-GCM-SHA384 ?
Wie bringe ich diesen meiner SSLCipherSuite bei? Habe da Probleme mit der Syntax...

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Re: Stärkste Verschlüsselung für HTTPs

Beitrag von pdreker » 03.09.2016 22:35:10

Servus...

Mit "openssl ciphers -v 'cipher_spec'" kannst Du Dir anschauen, was mit Deiner Angabe in der Apache Config erlaubt ist...

Zum Beispiel für "SSLCipherSuite AES256" (was alles rausnimmt, was nicht AES256 macht):

Code: Alles auswählen

root@starbase01:~# openssl ciphers -v 'AES256'
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
SRP-DSS-AES-256-CBC-SHA SSLv3 Kx=SRP      Au=DSS  Enc=AES(256)  Mac=SHA1
SRP-RSA-AES-256-CBC-SHA SSLv3 Kx=SRP      Au=RSA  Enc=AES(256)  Mac=SHA1
SRP-AES-256-CBC-SHA     SSLv3 Kx=SRP      Au=SRP  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
DHE-DSS-AES256-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA256
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AECDH-AES256-SHA        SSLv3 Kx=ECDH     Au=None Enc=AES(256)  Mac=SHA1
ADH-AES256-GCM-SHA384   TLSv1.2 Kx=DH       Au=None Enc=AESGCM(256) Mac=AEAD
ADH-AES256-SHA256       TLSv1.2 Kx=DH       Au=None Enc=AES(256)  Mac=SHA256
ADH-AES256-SHA          SSLv3 Kx=DH       Au=None Enc=AES(256)  Mac=SHA1
ECDH-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
ECDH-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AESGCM(256) Mac=AEAD
ECDH-RSA-AES256-SHA384  TLSv1.2 Kx=ECDH/RSA Au=ECDH Enc=AES(256)  Mac=SHA384
ECDH-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA384
ECDH-RSA-AES256-SHA     SSLv3 Kx=ECDH/RSA Au=ECDH Enc=AES(256)  Mac=SHA1
ECDH-ECDSA-AES256-SHA   SSLv3 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA1
AES256-GCM-SHA384       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(256) Mac=AEAD
AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
PSK-AES256-CBC-SHA      SSLv3 Kx=PSK      Au=PSK  Enc=AES(256)  Mac=SHA1
Wie Du siehst ist das schon eine ganze Latte und ganz so simpel ist das nicht... ;-)

Ich würde das Ganze nicht überkomplizieren und würde daher tatsächlich einfach "SSLCipherSuite AES256" nehmen. Was davon das sicherste ist, ist eine Frage, die man nicht unterschätzen sollte.

lg,
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

mrserious
Beiträge: 266
Registriert: 22.06.2013 12:12:03

Re: Stärkste Verschlüsselung für HTTPs

Beitrag von mrserious » 04.09.2016 08:48:42

Moin und danke für deine Antwort!

Ja, genau so habe ich es momentan auch konfiguriert.
Das Problem ist: Wenn ich explizit ECDHE-RSA-AES256-GCM-SHA384 eintrage, so gibt mir mein Firefox eine Fehlermeldung.
Der Server unterstützt diese Verschlüsselung aber definitiv. Auf meinem Testsystem hier laufen Browser und Server sogar auf dem selben System ;-)
D.h. momentan habe ich AES256 eingetragen und verwendet wird immer: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA.

Oder mache ich einen Syntax-Fehler?

Code: Alles auswählen

SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Stärkste Verschlüsselung für HTTPs

Beitrag von wanne » 04.09.2016 09:22:34

mrserious hat geschrieben:Das Problem ist: Wenn ich explizit ECDHE-RSA-AES256-GCM-SHA384 eintrage, so gibt mir mein Firefox eine Fehlermeldung.
Ja. Kann der Firefox nicht.
Die haben da mehr oder weniger alle Ciphersutes rausgeschmissen. Insbesondere auch den, den die ENISA empfiehlt. ( Cmellia_128_GCM_SHA256 )
Unterstützt wird von Firefox als MAC nur SHA1 (written by NSA) als AES128/AES256 (choosen by NIST nach empfehlung von der NSA) als Mode CBC.
Zazu gibt es noch die beiden:

Code: Alles auswählen

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
(Auch hier gilt das Gleiche für MAC und Cipher. Nicht NSA-Code wurde vollständig entfernt (unnötig).

D.h. momentan habe ich AES256 eingetragen und verwendet wird immer: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA.
Jup. Das passt. Meht als das geht nicht. SHA2 bekommst du nicht mit FF und OpenSSL. Die kombo SHA256+AES256 kennt wiederum OpenSSL nicht. (Was die zwei oben genannten ausschließt.)
Deswegen hast du halt SHA1. Und SHA1 und GCM gibt es glaub nirgends. Entsprechend halt CBC.
rot: Moderator wanne spricht, default: User wanne spricht.

mrserious
Beiträge: 266
Registriert: 22.06.2013 12:12:03

Re: Stärkste Verschlüsselung für HTTPs

Beitrag von mrserious » 04.09.2016 09:35:10

Wie kommt es denn dazu?
Gerade von einem OpenSource-Projekt wie Firefox hätte ich erwartet, dass es pro sichere Verschlüsselung eingestellt ist?
Denn ein sicher konfigurierter Webserver bringt mir ja nichts, wenn der Client es nicht unterstützt...

Edit: Tatsache, selbst der olle Chrome nimmt den GCM-Algorithmus...

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Stärkste Verschlüsselung für HTTPs

Beitrag von wanne » 04.09.2016 11:36:26

Firefox nutzt als SSL-Lib NSS. Die wurde noch von netscape als das der führende Browser war entwickelt.
Das Ding gilt als ganz stabil aber extrem schwer zu erweitern. (Angeblich fehlt da ein bisschen die Modulareität) Deswegen ist es von jeher so, dass die immer ein paar Jahre länger brauchen als Openssl, um irgend was zu implementieren.
Um die Wartbarkeit zu erhöhen, hat man nach und nach massiv Ciphers aus dem Firefox raus geschmissen.
Während FF 17 noch 36 verschiedene Ciphers unterstützte sind es heute 10. (Zum Vergleich: OpenSSL unterstützt 77)
Defakto will man halt die zwei unterstützten:

Code: Alles auswählen

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) 
Und das sollen dann alle machen.
Die sind Performant, und weitestgehend das was NSA/NIST haben will/empfiehlt.
Sollte der auf irgend eine weise kaputt gehen ist man dann halt gef* und man darf da über Jahre nen kapputen cipher für die Fireffox-Leute supporten...

Denke, dass das aber auch ein Imageproblem ist:
Eigentlich ist es völlig unproblematisch ein zwei Kaputte ciphersutes an stelle 15 zu supporten. Solange das nicht der Sighning Algorithmus ist (zu 99% RSA(SHAX)) ist das völlig unproblematich, der wird nie genutzt und kann auch nicht von Angreifern erzwungen werden. (Die cipherwahl ist gesighned und wenn man die Signaturen fälschen kann, ist eh alles zu spät, in TLS, da man dann einfach eigene Keys einsetzen kann. Dann hilft der beste Algorithmus nichts.)
Trotzdem kommt man halt in die Schlagzeilen.
Drei mal ein Problem, dass 1% der Verbindungen betrifft und schnell behoben werden kann, sind 3 Schlagzeilen.
Ein mal ein Problem, dass 100% der Verbindungen betrifft und dann dank fehlender Alternativen nicht gefixt werden kann ist eben nur eine.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten