Wie konfiguriert man Apache 2.x für Perfect Forward Secrecy

Aus SSLplus
Wechseln zu: Navigation, Suche

Perfect Forward Secrecy einrichten bei Apache 2.x

Gegenwärtig ist es auf Debian von Haus aus nur mit Mehraufwand möglich, auf Perfect Forward Secrecy (PFS) mit den Eliptic Curve Algorithmus (ECDHE) umzustellen.
Die gegenwärtigen Stable Versionen von Debian unterstützen aber den langsameren Algorithmus DHE für den sicheren Schlüsselaustausch mit Diffie-Hellman.

PFS mit Apache 2.2

Um diesen nutzen zu können, sollte die Datei "/etc/apache2/mods-available/ssl.conf" angepasst werden, bzw. alternativ die Konfigurationen der verschiedenen VHosts, wenn nicht bei allen dieses Feature freigeschaltet werden soll:

#   SSL Cipher Suite:
#   List the ciphers that the client is permitted to negotiate.
#   See the mod_ssl documentation for a complete list.
#   enable only secure ciphers:

SSLCipherSuite HIGH:MEDIUM:!ADH

#   Use this instead if you want to allow cipher upgrades via SGC facility.
#   In this case you also have to use something like 
#        SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
#   see http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html.en#upgradeenc

#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

# enable only secure protocols: SSLv3 and TLSv1, but not SSLv2
SSLProtocol all -SSLv2

Eine Lösung mit Apache 2.4

Alternativ kann man aus dem Experimental Zweig für Wheezy/Squeeze Pakete nach installieren, um auf Apache 2.4 umzustellen. Dafür müssen die Paket Repositories von https://www.d7031.de/ eingebunden werden.

Unnötig zu erwähnen sollte sein, dass man wissen muss, was man tut, wenn man diese Pakete installiert. Es kann jederzeit vorkommen, dass diese Pakete beschädigt sind, bzw. Installationsskripte nicht wie gewünscht funktionieren, oder Software, die gegenwärtig genutzt wird, nicht mit diesen Paketen harmoniert. Daher sollten diese Pakete dringend in einer Testumgebung zuvor auf die gewünschte Funktionalität geprüft werden.

Die Datei /etc/apt/sources.list muss dafür angepasst werden:

deb http://www.d7031.de/debian wheezy-experimental main

Anschliessend müssen unter anderem folgende Apache2 Pakete aktualisiert werden:

apache2
apache2-bin
apache2-data
apache2-mpm-{worker||prefork}
apache2-suexec


Gegebenenfalls müssen noch weitere Pakete ersetzt werden.
Während der Installation sollte die ssl.conf auf jeden Fall ersetzt werden. Änderungen können aus dem Backup später – sofern notwendig – rückgängig gemacht werden.

Nach der erfolgten Installation muss noch die ssl.conf Datei angepasst werden:

        #   SSL Cipher Suite:
        #   List the ciphers that the client is permitted to negotiate. See the
        #   ciphers(1) man page from the openssl package for list of all available
        #   options.
        #   Enable only secure ciphers:
#        SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

SSLCipherSuite EECDH+AES:EDH+AES:-SHA1:EECDH+RC4:EDH+RC4:RC4-SHA:EECDH+AES256:DHE+AES256:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5

SSLHonorCipherOrder on

Diese Änderung bewirkt, dass die schnellen Mechanismen mit Eliptic Curve gegenüber den anderen für den Schlüsselaustausch bevorzugt werden sollen.