# Poodle

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. Es handelt sich um einen Downgrade-Angriff.

## 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 Einstellung security.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.