SSLv3 steht seit lange in der Kritik und hat durch den Poodle-Bug den Todesstoß bekommen. Bislang war SSLv3 relativ unbeachtet auf fast allen Systemen durch die Default-Konfiguration mit aktiviert, doch das hat sich gestern geändert. Reihenweise wird auf Servern die Unterstützung für SSLv3 deaktiviert. Wir zeigen, wie Sie mit wenigen Handgriffen Apache, Postfix und Dovecot anpassen müssen, um gegen den SSLv3-Poodle-Bug sicher zu sein.
Deaktivieren Sie in der httpd.conf (bzw. in der ssl-global.conf oder auch im individuellen VHost-Container) die Unterstützung für SSLv3 (und natürlich auch SSLv2, was i.d.R. aber schon global deaktiviert ist):
SSLProtocol ALL -SSLv2 -SSLv3
Auch unter Postfix kann man mit einem Handgriff SSLv3 deaktivieren. Ergänzen Sie dazu in der main.cf von Postfix:
smtpd_tls_mandatory_protocols = !SSLv2 !SSLv3 smtp_tls_mandatory_protocols = !SSLv2 !SSLv3 smtp_tls_protocols = !SSLv2, !SSLv3 smtpd_tls_protocols = !SSLv2 !SSLv3
Werfen Sie anschließend noch einen Blick in die master.cf ob Sie dort auf den verschiedenen smtpd-Ports eventuell noch eine individuelle SSL-Konfiguration betreiben, die über einen "-o"-Aufrufparameter die SSL-Protokolle überschreibt.
Auch wenn Dovecot-Autor Timo Sirainen in einem Mailinglisteneintrag kaum eine Chance für einen funktionierenden Angriff über Mailprotokolle sieht, sollte man aus grundsätzlichen Erwägungen SSLv3 auch in Dovecot abschalten. So deaktivieren Sie SSLv3 in der Dovecot-Konfiguration: Suchen Sie in der Datei /etc/dovecot/conf.d/10-ssl.conf den Parameter "ssl_protocols", entfernen Sie ggf. das davorstehende Kommentarzeichen und sperren Sie SSLv3 durch ein vorangestelltes Ausrufezeichen:
ssl_protocols = !SSLv2 !SSLv3
Durch einen einfachen OpenSSL-Connect können Sie jeweils testen, ob SSLv3 noch unterstützt wird. Kommt eine SSL-Verbindung zustande UND ist dort SSLv3 als verwendetes Protokoll gelistet, so war Ihre Konfiguration noch nicht erfolgreich.
openssl s_client -ssl3 -connect www.example.com:443
Ein deaktiviertes SSLv3 sollte einen "sslv3 alert handshake failure" auslösen:
peer@booster:~> openssl s_client -ssl3 -connect mailbox.org:443 CONNECTED(00000003) 140097540155024:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1275:SSL alert number 40 140097540155024:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:598:
openssl s_client -starttls smtp -crlf -ssl3 -connect smtp.example.com:25
Ein deaktiviertes SSLv3 sollte einen "sslv3 alert handshake failure" auslösen:
peer@booster:~> openssl s_client -starttls smtp -crlf -ssl3 -connect mx2.mailbox.org:25 CONNECTED(00000003) 140546069853840:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1275:SSL alert number 40 140546069853840:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:598 [...]
openssl s_client -starttls imap -ssl3 -connect imap.example.com:143
Ein deaktiviertes SSLv3 sollte ebenfalls einen "sslv3 handshake failure" auslösen:
peer@booster:~> openssl s_client -starttls imap -ssl3 -connect imap.mailbox.org:143 CONNECTED(00000003) 139705139914384:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1275:SSL alert number 40 139705139914384:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:598: [...]
Kommentare
1 Antwort zu So deaktivieren Sie SSLv3 in Apache/Postfix/Dovecot (Poodle-Bug)
SSLv3 auf einem MTA zu deaktivieren halte ich für eine schlechte Idee. Damit erhöht man die Chance sich mit anderen E-Mail-Servern auf kein geeignetes Protokoll oder Cipher-Suite einigen zu können. Die Daten werden stattdessen dann komplett unverschlüsselt und ohne Authentifizierung durchs Internet geblasen.
Auf der anderen Seite schließt man durch das Deaktivieren von SSL3 nicht einmal eine Sicherheitslücke, denn es gibt keinen bekannten Poodle-Angriff gegen SMTP.
Ich geb ja zu dass ich ein fanatischer Verfechter opportunistischer Verschlüsselung bin, aber diese Poodle-Hysterie kann ich selbst nach Wochen nicht nachvollziehen. Nachrichtenmagazine wie zB Heise schlagen auf allen Kanälen Alarm, dass man SSLv3 sofort und über Nacht deaktivieren sollte, liefern ihre Seite dann aber weiterhin unverschlüsselt aus. Das ist doch totaler Schwachsinn, wenn man sich anschaut wie Poodle funktioniert.
<b>Notwendige</b> Voraussetzung für Poodle ist ein Man-in-the-middle-Angriff, bei dem der Angreifer die Datenströme des Clients nach Belieben lesen plus manipulieren kann.
Das heißt einen Sicherheitsgewinn durch Abschalten von SSLv3 haben 1. nur Webserver, die 2. ihr gesamtes Angebot über HTTPS zugänglich machen <b>und</b> 3. HSTS einsetzen. Bei allen Servern führt ein MITM-Angreifer einfach ein sslstrip() durch, das heißt er sorgt dafür dass die Verbindung zwischen ihm und dem Client unverschlüsselt aufgebaut wird. Das ist unendlich viel einfacher, schneller und zielführender als Poodle.
Wenn ich einen MITM-Angriff auf einen Heise-Nutzer durchführe dann kopiere ich seine Cookies einfach so, da sie unverschlüsselt bei mir vorbeikommen. Poodle benötige ich dafür nicht.