Verschlüsselung

Des Poodles Kern: Wie „Poodle“ funktioniert & Sie sich schützen

29. Juni 2015
  • Verschlüsselung

SSLv3 ist so veraltet, dass sich Verbindungen, die damit geschützt werden sollen, dechiffrieren lassen. Ein Angreifer kann das Einsetzen des schwachen Protokolls erzwingen, wie Forscher von Google herausfanden.

Poodle: Angriffsszenario durch 15 Jahre altes Protokoll

15 Jahre ist das Protokoll SSLv3 alt, und noch immer wird es als Fallback-Option von nahezu allen Servern und Browsern unterstützt. Forscher aus dem Hause Google stellten jüngst einen neuen Angriff mit dem Namen Poodle vor (PDF), der diesen Fallback ausnutzt: Fast alle verschlüsselten Verbindungen im Web lassen sich durch Poodle knacken. Ein Angreifer kann den Einsatz des veralteten SSLv3-Protokolls erzwingen. Dafür ist das Eingreifen in den SSL-/TLS-Verbindungsaufbau vonnöten. Wenn sich Client und Server darauf geeinigt haben, sich über SSLv3 zu verbinden, kann die Verschlüsselung angegriffen und wichtige Daten dechiffriert werden. Angreifer können so beispielsweise Sitzungscookies klauen und sich am Anwender-Account frei bedienen. Die Bezeichnung der Schwachstelle, Poodle, kommt aus der Ähnlichkeit zur BEAST-Attacke (PDF) von vor drei Jahren: Das nicht ausreichend gesicherte Padding im CBC-Modus leitet die Abkürzung Poodle („Padding Oracle On Downgraded Legacy Encryption“) ab.

Konkret: Wie funktioniert Poodle?

Der Angreifer befindet sich in der Man-in-the-Middle-Position, also genau dort, wo sämtliche Netzwerkpakete vorbeikommen. In dieser Position kann sich ein Geheimdienst genauso befinden wie jeder andere Mensch, der sich wie Sie im selben WLAN eingebucht hat. Ein Fallback auf SSLv3 muss für Poodle erreicht werden, und das ist nicht sonderlich schwer, da noch immer nahezu sämtliche Server und Clients ein solches Fallback unterstützen (s. Grafik). Nur wenn wenigstens Client oder Server dem Fallback nicht zustimmen, kann ein Angriff verhindert werden. Weiter ist es nötig, dass der Angreifer auf dem Gerät des Opfers Script-Code ausführen kann. Als Man-in-the-Middle ist auch das nicht schwer: Code kann auf unverschlüsselten Websites eingebaut werden, die der Anwender gerade ansteuert. Die meisten Browser führen den eingeschleusten Code auch aus.

Um das tatsächliche Problem zu verstehen, müssen die Aufgaben eines Secure Socket Layer klar sein: Neben dem Verschlüsseln von Daten ist SSL auch fürs Sicherstellen der Integrität verantwortlich. Heißt: Nachträgliche Änderungen und Manipulationen sollen verhindert werden. Dieses Sicherstellen der Integrität geschieht durch den Message Authentication Code, dem MAC. Als das SSL-Protokoll eingeführt wurde, musste man sich auf eine Reihenfolge einigen und seither wird MAC-then-encrypt als Standard genutzt, also erst die Integritätsprüfung, dann die Verschlüsselung. An die Klartextdaten, die es mittels Verschlüsselung zu schützen gilt, wird der MAC berechnet und angehängt. Anschließend wird das Gesamtpaket verschlüsselt. Dieses Verfahren führte bereits häufiger zu Problemen.

Dies hängt damit zusammen, dass oft in Blöcken verschlüsselt wird, deren Länge konkret festgelegt ist; denken Sie an AES oder 3DES. Die tatsächliche Länge der verschlüsselten Daten erreicht selten die gesamte Blockgröße, sodass hinter dem MAC noch aufgefüllt werden muss, um die nötige Länge zu erreichen. Dieses Verfahren nennt sich Padding. Das Padding wird mitverschlüsselt, aber nicht durch den MAC abgesichert – es fehlt also die Integritätsprüfung; die Prüfung gegen Manipulationen. Nun erlaubt es SSLv3 dem Angreifer, das Padding fast schon frei zu wählen, lediglich das letzte Byte muss die Paddinglänge richtig benennen. Ist die Längenangabe falsch, wird der MAC an der falschen Stelle ausgegeben, sodass seine Überprüfung nicht gelingt.

Angreifer, die Poodle ausnutzen, schleusen als Man-in-the-Middle Script-Code auf eine Webseite, befeuern den Server anschließend mit extrem vielen und fast identischen HTTPS-Anfragen, die der Browser automatisiert mit entsprechenden Cookies versieht. Der Angreifer hat Kenntnis darüber, welcher der verschlüsselten Blöcke genau diesen Cookie enthält, auf den es ankommt, wenngleich er es noch nicht dechiffrieren kann. Der Angreifer ist als Man-in-the-middle allerdings in der Lage, diesen Block ans Ende der SSL-Daten zu kopieren, wo eigentlich das verschlüsselte Padding seinen Platz hat.

Ergibt das letzte Byte im dekodierten Zustand nun die richtige Länge, akzeptiert die Gegenstelle die manipulierten Daten. Dieser Wert zeigt der Gegenstelle die Position des MAC. Wenn der Server das Datenpaket annimmt, kann der Angreifer daraus schließen, dass das Byte des Cookies genau diesen Wert hat. Aber viel mehr noch: variiert der Angreifer die HTTPS-Anfragen noch etwas, kann er sämtliche Bytes des Cookies problemlos ermitteln. Adam Langley, Krypto-Experte bei Google, erklärt das an dieser Stelle ausführlicher.

Die gesamte SSLv3-Verbindung kann mittels Poodle also nicht dechiffriert werden, aber Teile, die Byte-weise ausgewählt werden können. Gerade offene Sitzungen eines Anwenders können mit einem Session-Cookie aus HTTPS-Verbindungen allerdings gekapert werden, und dann ist es möglich, den kompletten Account eines Anwenders zu übernehmen. Was daraus entstehen kann, wissen Sie.

Poodle-Angriffe abwehren: So schützen Sie sich

Der wirksamste Schutz gegen Poodle-Angriffe ist denkbar einfach: Abschalten. SSLv3 ist eine längst veraltete Protokollversion, die heutzutage nicht mehr gebraucht wird. Im schlimmsten Fall wird dadurch keine verschlüsselte Verbindung zustandekommen – dies ist ausschließlich beim Internet Explorer in der Version 6 der Fall.

Ob Ihr Browser anfällig auf Poodle-Angriffe reagiert, können Sie auf der dafür eigens aufgesetzten Seite poodletest.com des Internet Storm Centers prüfen. Arbeiten Sie mit Firefox, geben Sie „about:config“ (ohne Anführungszeichen) in Ihre Adressleiste ein. Ihr Browser sucht dann nach TLS und Sie stellen die Option „security.tls.version.min“ auf 1 ein. Ist Ihnen das – auch wenn nichts passieren kann – zu heikel, denken Sie am 25. November ans Updaten Ihres Firefox-Browsers, denn mit diesem Update auf die Firefox-Version 34 stellt Mozilla den Support von SSLv3 standardmäßig ab. Um sich in Chrome zu schützen, starten Sie Ihren Browser mit der Kommandozeilen-Option „–ssl-version-min=tls1“. Für den Schutz beim Verwenden des Internet Explorers gehen Sie in Ihre Internetoptionen unter „Erweitert“ und entfernen Sie das Häkchen bei „SSL 3.0 verwenden“. Aktivieren Sie dann auch gleich TLS in den Versionen 1.1 und 1.2.

Serverseitig wird es etwas komplizierter, denn theoretisch sperren Sie mit einer Umstellung mögliches Zielpublikum aus. Die Gefahr hält sich allerdings in Grenzen: Bedenken Sie, dass TLS in der Version 1.0 seit 15 Jahren standardisiert ist – sämtliche auch nur halbwegs aktuelle Clients unterstützen den Standard. Einzig der Internet Explorer 6 kann nicht mit TLS 1.0 umgehen – Statistiken wie diese unter browser-statistik.de zeigen Ihnen allerdings, dass der Anteil an IE 6-Nutzern im Promillebereich liegt. Ob Ihr Webserver SSLv3 unterstützt, können Sie beispielsweise mit dem Test von Qualys SSL Labs überprüfen. Wie die konkrete Konfiguration aussieht, ist je nach Server verschieden. Gute Konfigurationsanleitungen finden Sie unter Bettercrypto.org; konkret im Applied Crypto Hardening-Guide (PDF), durch den Sie Konfigurationen via Copy&Paste einrichten können. In der Apache-Konfiguration können Sie mit der Zeile „SSLProtocol All -SSLv3 -SSLv3“ arbeiten. Die Poodle-Entdecker geben den Tipp, „TLS_FALLBACK_SCSV“ zu nutzen, um Fallbacks auf veraltete Protokollversionen zu vermeiden. Damit würden zwar auch künftige Downgrade-Angriffe verhindert werden, allerdings kann bisher nicht gesagt werden, welche Clients, Server und Bibliotheken damit womöglich ausgeschlossen werden.

Übrigens: Nicht nur Ihre Server sind betroffen, achten Sie auch auf andere Dienste wie E-Mail oder VPNs. Auch in diesen Konfigurationen können Sie SSLv3 oder Fallbacks ausschließen. In den Mozilla-eigenen Produkten Seamonkey und Thunderbird funktioniert das genauso wie im Browser Firefox.

Erste Reaktionen auf Poodle

Insgesamt lassen sich die Reaktionen wie folgt zusammenfassen: SSLv3 gehört abgeschaltet. Allerdings können sich daraus Kompatibilitätsprobleme entwickeln, sodass Entwickler davor zurückschrecken könnten. Eine zweite Option ist der Fallback via SCSV: Dieser Standard verhindert das induzierte Herabstufen von Verschlüsselungsprotokollen. Das Problem dabei: Wenn eine Verbindung von Beginn an SSLv3 nutzt, bleibt sie angreifbar. Diese Methode wurde bereits in OpenSSL 1.0 1j, 1.0.0o und 0.9.8zc integriert. Die neue OpenSSL-Version wurde kurz nach Bekanntwerden der Poodle-Lücke veröffentlicht und bietet den SCSV-Workaround.

Auch Google setzt auf SCSV: Der Suchmaschinenriese erklärte jüngst, deshalb bereits gegen Poodle-Angriffe gefeit zu sein. Sicherheitshalber möchte Google die SSLv3-Unterstützung in den nächsten Monaten komplett entfernen. Mozilla unternimmt diesen Schritt, wie oben erwähnt, bereits im November mit der neuen Firefox-Version 34. Eine Handlungsempfehlung kommt auch vom BSI: Schalten Sie SSLv3 in Ihrem Browser komplett ab. Wenngleich sich Microsoft bislang dazu ausschweigt, ob SSLv3 aus dem Internet Explorer entfernt wird, gibt der Redmonder ebenfalls die Empfehlung, die Protokollunterstützung abzuschalten. Diesen Empfehlungen schließen auch wir uns an: Verzichten Sie auf das unsichere SSLv3-Protokoll und Sie können sichergehen, dass Poodle nicht ausgenutzt werden kann.

Update: Uralt-Protokoll SSLv3 wird verschwinden

SSL in der Version 3 (SSLv3) ist veraltet und unsicher – das steht spätestens seit Poodle fest. Die Internet Engineering Task Force (IETF) reagiert nun durch das Verabschieden des Dokuments RFC 7568, mit dem der Einsatz des einst von Netscape entwickelten Verschlüsselungsprotokolls unterbunden wird. In dem offiziellen Dokument wird eindeutig vorgeschrieben, dass weder Clients das veraltete Protokoll anbieten noch Server selbiges akzeptieren sollten. Mitarbeiter von Google, Mozilla sowie dem französischen Forschungsinstitut Inria sind an dieser Empfehlung beteiligt.

Als Reaktion auf Poodle hatten zahlreiche Websites und Programme das Protokoll bereits abgeschaltet, jedoch ist es wichtig, das Protokoll vollständig zu entfernen, um Szenarien dieser Art nicht wieder aufleben zu lassen. Immerhin existiert SSLv3 bereits seit 1996; Nachfolger sind die von der IETF weiterentwickelten Protokollversionen TLS 1.0, 1.1 sowie 1.2. Das 19 Jahre alte SSLv3 kennt zudem keine Erweiterungen, die moderne Funktionen liefern und für heutige Sicherheitsansprüche unabdingbar sind.



1 Kommentar(e)

Schreibe einen Kommentar

Auf dieses Thema gibt es eine Reaktion

  1. HTTPS als Rankingfaktor: So geht das mit dem SSL-Zertifikat - SEO-Küche GmbH & Co. KG | 20. November 2014

    […] Verbindungen häuften sich in den vergangenen Zeit: Denken Sie an Heartbleed, an ShellShock und an Poodle. Mozilla bloggt zum Poodle-Szenario, dies sei das Ende von SSL 3.0 – und tatsächlich haben neben […]

    20. November 2014 @ 14:15