Poodle (Abkürzung für englisch Padding Oracle On Downgraded Legacy Encryption) ist eine schwerwiegende Sicherheitslücke in verschiedenen Internet-Protokollen, wodurch über verschlüsselte Verbindungen private Daten von Clients und Servern ausgelesen werden können.
Die Sicherheitslücken werden in CVE-2014-3566 und CVE-2014-8730 beschrieben.
Beschreibung
Das von Netscape entwickelte Protokoll SSL 3.0 (RFC 6101) wurde 1999 von TLS 1.0 (RFC 2246) sowie später von TLS 1.1 (RFC 4346), TLS 1.2 (RFC 5246) und TLS 1.3 (RFC 8446) abgelöst. Aktuelle Webbrowser haben SSL deaktiviert und zeigen bei TLS 1.0 und TLS 1.1 eine Warnung an. Angreifer können bei alter Software oder falscher Konfiguration Verbindungen mit TLS ablehnen, um Verbindungen mit SSL 3.0 zu erzwingen (englisch: Protocol Downgrade Attack bzw. SSL 3.0 fallback).
Der Poodle-Angriff missbraucht das Padding-Verfahren (aus dem Englischen to pad, „auffüllen“). Hierunter versteht man Fülldaten, mit denen man einen Datenbestand vergrößert. Bei symmetrischen Blockchiffren dient Padding dazu, einen Klartext an eine feste Blocklänge anzupassen. Die Betriebsart Cipher Block Chaining Mode (CBC) erfordert hierbei als Eingabe einen Klartext, dessen Länge ein Vielfaches der Blocklänge ist. Vor dem Verschlüsseln eines Klartextblocks wird dieser mit dem im vorhergehenden Schritt erzeugten Geheimtextblock per XOR (exklusives Oder) verknüpft.
Mit JavaScript-Code in einer beliebigen im Browser geladenen Website kann ein Angreifer verschlüsselt übertragene Daten (z. B. HTTP-Session-Cookies) dechiffrieren, indem diese Byte für Byte mehrfach modifiziert an den Server gesendet werden. Sowohl das Einfügen des bösartigen JavaScript-Codes als auch das Abfangen der verschlüsselten Daten kann dabei durch einen Man-in-the-Middle-Angriff erfolgen.
Die Sicherheitslücke war bereits seit 1999 – dem Jahr der Einführung von TLS 1.0 – anwendbar.
Gegenmaßnahmen
Da durch Man-in-the-Middle-Angriffe vielfältige Internet-Dienste gefährdet sind, ist die Abschaltung der SSL-Version 3.0 auf allen Servern als auch in allen Client-Anwendungen notwendig. Falls dies aus Kompatibilitätsgründen nicht möglich ist, empfehlen die Entdecker der Sicherheitslücke, die Cipher Suite TLS_FALLBACK_SCSV zu unterstützen. Diese verhindert das Erzwingen von SSL-3.0-Verbindungen. Zugleich wird ein Rückfall von TLS 1.2 bzw. TLS 1.3 auf eine TLS-1.1- oder TLS-1.0-Verbindung verhindert.
Auch manche TLS-Implementierungen akzeptieren beliebige Auffüll-Bytes. Das ist laut der TLS-Spezifikation erlaubt, da das Prüfen der Auffüll-Bytes optional ist. Als sicher gelten daher nur Verfahren, die AES im Galois/Counter-Modus (GCM) nutzen (ab TLS 1.2).
Webbrowser
- Mozilla Firefox ab Version 34 (Okt 2014) deaktiviert SSL 3.0. In älteren Firefox-Versionen (sowie in Mozilla Thunderbird und SeaMonkey) muss über
about:config
die Einstellungsecurity.tls.version.min
auf den Wert „1“ gesetzt werden. - In Google Chrome und Chromium wird SSL 3.0 manuell auf der Kommandozeile mit dem Parameter
-ssl-version-min=tls1
abgeschaltet. Ab Version 40 (Jan 2015) kann Chrome ohne diese Parameter-Eingabe abgesichert betrieben werden. - Im Internet Explorer muss unter „Internetoptionen“ → „Erweitert“ → „Sicherheit“ der Haken bei „SSL 3 verwenden“ entfernt werden. Beim mit Windows XP ausgelieferten Browser Internet Explorer 6 muss das Nachfolge-Protokoll TLS 1.0 an gleicher Stelle aktiviert werden.
Weblinks
- Offizielle Seite
- Hanno Böck: Verschlüsselung Poodle gefährdet Verbindungen mit altem SSL. Golem.de, 15. Oktober 2014.
- Hanno Böck: Poodle kann auch TLS betreffen. Golem.de, 9. Dezember 2014.
- Bodo Möller, Thai Duong, Krzysztof Kotowicz: This POODLE Bites: Exploiting The SSL 3.0 Fallback. (PDF; 0,2 MB) openssl.org
- Empfehlungen zur POODLE-Schwachstelle in SSL 3.0. (Memento vom 21. Oktober 2014 im Internet Archive) BSI.
- RFC – TLS Fallback Signaling Cipher Suite Value (SCSV) for Preventing Protocol Downgrade Attacks. (englisch).
Einzelnachweise
- ↑ CVE-2014-3566 Detail. NIST, abgerufen am 21. September 2019 (englisch).
- ↑ CVE-2014-8730 Detail. NIST, abgerufen am 21. September 2019 (englisch).
- ↑ RFC – The Secure Sockets Layer (SSL) Protocol Version 3.0. August 2011 (englisch).
- ↑ RFC – The TLS Protocol Version 1.0. Januar 1999 (englisch).
- ↑ RFC – The Transport Layer Security (TLS) Protocol Version 1.1. April 2006 (englisch).
- ↑ RFC – The Transport Layer Security (TLS) Protocol Version 1.2. August 2008 (englisch).
- ↑ RFC – The Transport Layer Security (TLS) Protocol Version 1.3. August 2018 (englisch).
- ↑ Christopher Wood: Deprecation of Legacy TLS 1.0 and 1.1 Versions. In: WebKit. 15. Oktober 2018, abgerufen am 18. August 2020.
- ↑ Martin Thomson: Removing Old Versions of TLS. Abgerufen am 18. August 2020 (amerikanisches Englisch).
- ↑ TLS 1.0 and TLS 1.1. In: Chrome Platform Status. Abgerufen am 18. August 2020.
- ↑ Bodo Möller: This POODLE bites. exploiting the SSL 3.0 fallback. 14. Oktober 2014, abgerufen am 13. November 2014 (englisch).