it-swarm.com.de

Wie aktiviere ich auf Apache standardmäßig die Geheimhaltung der Weiterleitung?

Warnung: Bitte verwenden Sie nur die Empfehlungen für die Apache-Konfiguration aus den folgenden Antworten. Für welche Verschlüsselung (en) verwendet werden soll (en) - Sicherheitsnormen ändern sich im Laufe der Zeit und einige der folgenden Sicherheitshinweise sind bereits veraltet.

Nach den jüngsten Ereignissen habe ich mein Apache-Setup überarbeitet. Derzeit sieht meine Apache-Site-Konfiguration ungefähr so ​​aus:

 <IfModule mod_ssl.c>
    <VirtualHost *:80>
            ServerName example.com
            ServerAlias www.example.com
            Redirect permanent / https://example.com
    </VirtualHost>

    <VirtualHost *:443>
            ServerAdmin [email protected]
            ServerName example.com

            DocumentRoot /var/www-wordpress
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www-wordpress>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride FileInfo
                    Order allow,deny
                    allow from all
            </Directory>

            ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
            <Directory "/usr/lib/cgi-bin">
                    AllowOverride None
                    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                    Order allow,deny
                    Allow from all
            </Directory>

            ErrorLog ${Apache_LOG_DIR}/error.log
            LogLevel warn

            CustomLog ${Apache_LOG_DIR}/ssl_access.log combined
            SSLCertificateFile    /etc/ssl/certs/example.com.crt
            SSLCertificateKeyFile /etc/ssl/private/example.com.key
            SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                    SSLOptions +StdEnvVars
            </FilesMatch>
            <Directory /usr/lib/cgi-bin>
                    SSLOptions +StdEnvVars
            </Directory>

            BrowserMatch "MSIE [2-6]" \
                    nokeepalive ssl-unclean-shutdown \
                    downgrade-1.0 force-response-1.0
            BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    </VirtualHost>

Was muss ich tun, um die Geheimhaltung der Zukunft zu gewährleisten? Wie kann ich standardmäßig die perfekte Vorwärtsgeheimnis für SSL aktivieren? Wie könnte ich es durchsetzen?

66
Jannik Jochem

Wie wäre es mit:

SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite EECDH+AES:EDH+AES:-SHA1:EECDH+RC4:EDH+RC4:RC4-SHA:EECDH+AES256:EDH+AES256:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5

Beachten Sie das Hinzufügen des Flags -SSLv3, um SSLv3 zu deaktivieren. Dies wird hinzugefügt, um vor dem POODLE-Angriff zu schützen.

Dies wird eine perfekte Vorwärtsgeheimnis vorziehen, jedoch nicht auf Kosten der Anfälligkeit für den BEAST-Angriff. Da es in Apache an einer Möglichkeit fehlt, die Verschlüsselungspräferenz basierend auf der Protokollversion zu konfigurieren, täusche ich dies vor, indem ich mich auf Verschlüsselungen beziehe, die nur in den neueren Protokollen verfügbar sind. Insbesondere war AES nur mit SHA1-Hashing bis TLSv1.2 verfügbar. Die Liste beginnt also mit den ephemeren TLSv1.2-Diffie-Hellman-Chiffren, dann mit RC4 (zuerst mit ephemerem DH, dann ohne) und schließlich mit einer BEAST-anfälligen AES-Option. Das Ausschließen von Authentifizierung/schwacher Verschlüsselung/schwacher Hash-Verarbeitung am Ende dient nur der Hygiene und kann weggelassen werden, da keine derartigen Verschlüsselungen eingeführt wurden. Wenn die Leistung ein Problem darstellt, verwenden Sie nur EECDH und lassen Sie EDH weg.

In Kombination mit Apache 2.2 (also kein EECDH, wie @Bruno sagt), per https://www.ssllabs.com/ssltest/analyze.html , wird PFS nur für iOS Safari erreicht. IE und Firefox sind TLSv1.0, daher erhalten sie RC4, um BEAST zu vermeiden. (Leider gibt es EDH RC4 nicht. Ohne EECDH geben Sie also PFS auf.) Das ist, ich Ich glaube, das Beste, was man mit diesen Browsern auf Apache 2.2 erhoffen kann. Chrome ist der einzige, der schlecht bedient wird, da er TLSv1.1 unterstützt und EDH AES verwenden kann, ohne für BEAST anfällig zu sein. Stattdessen RC4-RSA wie Firefox und IE. Ein Upgrade von Apache, um EECDH RC4 zu aktivieren, sollte PFS für Firefox, IE und Chrome erhalten.

Update 09.11.2013:

Ich habe ein paar alternative Empfehlungen im Internet gefunden. Sie legen weniger Wert auf den Schutz von BEAST (vielleicht weise; BEAST ist jetzt meistens auf der Client-Seite ) und mehr auf die Geheimhaltung der Zukunft. In unterschiedlichem Maße haben sie auch eine stärkere Präferenz für GCM und eine größere Zurückhaltung, RC4 zu akzeptieren.

Besonders hervorzuheben sind meines Erachtens die folgenden Empfehlungen:

Persönlich werde ich mit Mozilla OpSec gehen. Ihre Argumentation ist auf ihrer Seite gut erklärt. Bemerkenswerterweise bevorzugen sie AES128 gegenüber AES256. In ihren Worten: " [AES128] bietet gute Sicherheit, ist sehr schnell und scheint resistenter gegen Timing-Angriffe zu sein."

Bemerkenswert in der Empfehlung von Ivan Ristic und Geoffroy Gramaize ist, dass SSLv3 deaktiviert ist. Ich denke, dass dies meistens nur IE6 bricht, obwohl einige sicherheitsrelevante Unterschiede zwischen SSLv3 und TLS v1.0 auf Wikipedia erwähnt sind.

Auch bevor ich nicht über VERBRECHEN und VERLETZUNG gesprochen habe. Deaktivieren Sie zum Schutz vor CRIME die SSL-Komprimierung. Dies ist in den verlinkten Beispielen enthalten. Um vor BREACH geschützt zu sein, müssen Sie die Komprimierung auf HTTP-Ebene deaktivieren. Führen Sie dies für Apache 2.4 nur einmal global aus:

<Location />
  SetEnvIfExpr "%{HTTPS} == 'on'" no-gzip
</Location>

Fügen Sie dies für ältere Versionen von Apache in jeden VirtualHost ein, in dem SSLEngine aktiviert ist:

<Location />
    SetEnv no-gzip
</Location>

Update 2014-10-14: Der Mozilla OpSec-Leitfaden ist jetzt in Empfehlungen für die Kompatibilität mit alten, mittleren und modernen Versionen unterteilt. Mit den Einstellungen von Intermediate oder Modern haben Sie SSLv3 deaktiviert. Das schützt vor dem POODLE-Angriff.

93
Lorrin

Nach meinem eigenen Verständnis müssen Sie SSLHonorCipherOrder aktivieren und SSLCipherSuite mit ECDHE und DHE Chiffren aus openssl ciphers -v Voranstellen.

Aus meinem /etc/Apache2/mods-available/ssl.conf:

SSLHonorCipherOrder on
SSLCipherSuite ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:DHE-RSA-CAMELLIA128-SHA:AES128-SHA:RC4-SHA:HIGH:!aNULL:!MD5:!ADH

Zum Testen Ihrer Website können Sie Folgendes verwenden: https://www.ssllabs.com/ssltest

Hinweis: Eliptic Curve DHE scheint nur mit Apache 2.3.3 oder höher zu funktionieren (siehe Quelle und Brunos Kommentar).

6
kunnix

Geben Sie diesen Chiffriercode in Ihre httpd.conf in der main/core conf Direktive ein:

SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off 
SSLUseStapling on 
SSLStaplingCache "shmcb:logs/stapling-cache(150000)" 

Sie können den Status der Sicherheit sogar unter folgender Adresse überprüfen: https://www.ssllabs.com/ssltest/analyze.html ?

3
VaTo

Die Cipher Suites, die Perfect Forward Secrecy bereitstellen, verwenden eine kurzlebige Form des Diffie-Hellman-Schlüsselaustauschs. Ihr Nachteil ist ihr Overhead, der durch die Verwendung der elliptischen Kurvenvarianten verbessert werden kann (siehe Vincent Bernat's Blog .)

Die Chiffresuiten in Apache Httpd (vorausgesetzt, Sie verwenden mod_ssl mit OpenSSL kompiliert) werden mit SSLCipherSuite konfiguriert, wodurch eine Liste erstellt wird, wie Sie sie bei Verwendung von openssl ciphers Befehl. Wenn Sie sich die OpenSSL-Manpage ansehen, werden Sie feststellen, dass kEDH genau das ist, wonach Sie suchen. (Sie können Cipher Suites auch einzeln auflisten.)

3
Bruno

Versuchen Sie diesen Code in Ihrer ssl.conf:

SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:AES256-GCM-SHA384:AES256-SHA256:CAMELLIA256-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:CAMELLIA128-SHA

Apropos,

Expertentipp: Der (1/n-1) Split-Record-Trick ist seit einiger Zeit in Firefox implementiert. Auf diese Weise können Sie RC4 in Firefox im erweiterten Konfigurationsmenü sicher deaktivieren. Geben Sie dazu "about: config" in Ihre Adressleiste ein, suchen Sie nach "rc4" und setzen Sie alle gefundenen Werte auf "false". Wenn Verbindungsprobleme auftreten, setzen Sie diese Parameter auf true zurück.

https://cc.dcsec.uni-hannover.de/

Auf dieser Website finden Sie Informationen zu den SSL-Verschlüsselungssätzen, die Ihr Browser zur Sicherung von HTTPS-Verbindungen unterstützt.

2
huuu

Dieser Artikel hilft Ihnen beim Konfigurieren der Forward-Sicherheit und informiert Sie über die aktuellen Standards - https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-Apache-nginx-and- openssl-for-forward-secretcy

Ab dem 16.09.2015 erhalten Sie ein A für die Testergebnisse von SSLLabs.

SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4
2
Mike M

Schauen Sie sich https://cipherli.st an

Dort finden Sie Copy & Paste-Konfigurations-Snippets für mehrere Dienste, die starke SSL-Sicherheitseinstellungen gewährleisten sollen.

2
Adam

Ich habe eine Note A (Sept. 2016) für SSLLabs und unterstütze weiterhin Windows XP/Internet Explorer 8 mit dieser ssl.conf-Konfiguration unter Apache:

SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite EECDH+AESGCM:AES256+EECDH:DES-CBC3-SHA

Kurz gesagt: Nur TLS ist zulässig: Alle Versionen werden aus Kompatibilitätsgründen unterstützt, und DES-CBC3-SHA-Verschlüsselung ist auch aus Kompatibilitätsgründen zulässig. Die ersten beiden bevorzugten Chiffren verwenden Elliptische Kurve Diffie-Hellman , die letzte wurde als Fallback hinzugefügt, da dies eine gute Option unter den verfügbaren Chiffren XP/IE . Wenn Sie die letzte verfügbare OpenSSL-Version installiert haben, reicht dieser Mix aus, um zum Zeitpunkt des Schreibens ein A zu erhalten.

Hoffe das ist hilfreich.

0
chirale