Apache: Sichere SSL/TLS Settings

Achtung! Dieser Artikel ist älter als ein Jahr. Der Inhalt ist möglicherweise nicht mehr aktuell!

FREAK, BEAST, Heartbleed, POODLE und sonstige Angriffe auf Crypto und Server wurde vor etwas längerer Zeit bekannt und drehten dementsprechende Runden. Ich habe in der Zwischenzeit den Überblick über die ganzen Fixes dafür verloren. Heute habe ich mich hingesetzt und meinen Apache Server auf den aktuellen Stand gebracht.

Test-Tools

Für die Validierung der Einstellungen gibt es ein paar Tools, die man benutzen kann.

„SSL-Server Test“ von ssllabs.com

Dieses online Tool analysiert verschiedene Aspekte der Verbindung. Darunter fallen zum Beispiel:

Am Ende des Tests bekommt man dann das Zeugnis.

sslscan für Terminal-Liebhaber

Dieses Tool ist die abgespeckte Version des Online Tools und zeigt die verfügbaren Chiffren an. Der Vorteil ist, dass das Tool wesentlich schneller ist als das Online Tool, aber es gibt keinerlei Wertung über die Qualität ab.

Ist-Zustand

Bevor ich meine Änderungen durchgeführt habe, habe ich folgende Tests laufen lassen:

 

Der Test meint eigentlich, dass mein Zertifikat wertlos ist. Das kommt daher, dass keine offizielle CA es ausgestellt hat. Unter dem großen Roten T wird aber darauf hingewiesen, dass die Bewertung eigentlich die Note B wäre, wenn man den Trust-Umstand außer Acht lässt. Die Note B ist quast das Mittelfeld – Es ist nicht das schlechteste, aber auch nicht das Beste.

Die Ausgabe von sslscan zeigt, dass sehr viele Chiffren zur Verfügung stehen:

Wie man hier schön sehen kann wird neben dem angreifbaren Protokoll SSLv3 noch RC4 als Chiffre angeboten.

Fixes für Apache

Die SSL/TLS-Einstellungen sind global und werden über die Datei /etc/apache2/mods-enabled/ssl.conf geregelt.

Veraltete Protokolle abschalten

SSLv3 und SSLv2 sind veraltet und sollten entfernt werden (POODLE). Stattdessen sollte man TLSv1.x verwenden. Alle drei TLS Protokollvarianten werden bei Apache mit dem Tag TLSv1 angegeben. Es gibt keine Möglichkeit explizit TLSv1.3 als Protokoll anzugeben.

Der entsprechende Eintrag:

Damit hat man schon mal die Hälfte der Arbeit erledigt.

Chiffren aussortieren

Nach den Protokollen werden unsichere Chiffren wie zum Beispiel RC4 aussortiert. Bei den Chiffren habe ich mich auf ein paar beschränkt. Diese sind weit verbreitet und von jedem halbwegs aktuellen Clients unterstützt. Einfaches Diffie-Hellman wird explizit verboten, da man bei Apache 2.2 keine eigenen Gruppen angeben kann.

Die Angabe in der Config-Datei ist wie folgt eine einzige Zeile:

Chiffren wie RC4, MD5, DES oder EXPORT (Logjam-Attacke) werden explizit verhindert. Zudem kann man noch ein bisschen an der Chiffrenpräferenz schrauben. Normalerweise nutzt der Server die Chiffre, die vom Client präferiert wird. Mit dieser Einstellung:

kann man jedoch sagen, dass die Chiffrenpräferenz des Servers verwendet wird. In seltenen Fällen führ das zu Inkompatibilität.

Resultat

Das Resultat: Eigentlich eine A-Bewertung, aber durch das „nicht vertrauenswürdige Zertifikat“ wieder nur ein T. An der Sicherheit der Verbindung an sich kann man nun aber erst mal nicht mehr meckern.

Die verfügbaren Chiffren sind auf ein Minimum zusammengeschrumpft:

 

Nun heißt es auf die nächste Lücke warten und diesmal mit dem Patchen dran bleiben.


Du hast einen Kommentar, einen Wunsch oder eine Verbesserung? Schreib mir doch eine E-Mail! Die Infos dazu stehen hier.

🖇️ = Link zu anderer Webseite
🔐 = Webseite nutzt HTTPS (verschlüsselter Transportweg)
Zurück