Verschlüsselung: Encrypt-then-MAC für TLS standardisiert
Eine neue TLS-Erweiterung ermöglicht es, die Reihenfolge zwischen Authentifizierung und Verschlüsselung zu ändern. Die bisherige Methode führte zu Sicherheitsproblemen wie der Lucky-Thirteen-Attacke.

Die TLS-Arbeitsgruppe der Internet Engineering Task Force (IETF) hat einen Standard veröffentlicht, der ein seit langem bekanntes Problem von verschlüsselten TLS-Verbindungen beheben soll. Als RFC 7366 wurde ein Mechanismus namens Encrypt-then-MAC nun verabschiedet.
Der Hintergrund ist die Reihenfolge, in der bei einer TLS-Verbindung Verschlüsselung und Authentifizierung stattfinden. Eine mit TLS abgesicherte Verbindung soll für die beteiligten Nutzer zwei Dinge gewährleisten: Die Daten sollen für einen Angreifer nicht lesbar sein und ein Angreifer soll nicht in der Lage sein, die Daten auf dem Transportweg zu manipulieren.
Angriff mittels Padding Oracle
Die meisten Verschlüsselungsalgorithmen von TLS nutzen hierfür eine Kombination aus einer Blockverschlüsselung (heute üblicherweise AES) im CBC-Modus und dem Authentifizierungsverfahren HMAC. Klassischerweise kombiniert TLS diese Verfahren in der Reihenfolge MAC-then-Encrypt: Zuerst wird mittels HMAC ein Authentifizierungstoken gebildet, anschließend werden Nachricht und HMAC-Token mittels eines Paddings aufgefüllt und verschlüsselt.
Das Problem dabei: Beim Empfänger können hier bei fehlerhaften Paketen zwei verschiedene Fehler auftreten. Entweder ist das Padding fehlerhaft oder die HMAC-Prüfung scheitert. Genau diesen Unterschied kann ein Angreifer ausnutzen und damit im schlimmsten Fall den geheimen, temporären Schlüssel einer TLS-Verbindung knacken. Dieser Angriff, der als Padding Oracle bekannt ist, wurde bereits 2002 auf der Eurocrypt-Konferenz vorgestellt. Um ihn zu beheben, wurde eine kleine Änderung eingeführt: Statt zwei unterschiedlichen Fehlermeldungen wird, egal welcher Fehler auftritt, dieselbe Fehlermeldung verschickt.
Unzureichender Workaround
Doch selbst bei identischen Fehlermeldungen gibt es für den Angreifer eine Möglichkeit, die beiden Fehler zu unterscheiden: Der Empfänger benötigt unterschiedlich lange Pakete, um einen Padding-Fehler oder einen HMAC-Fehler zu erkennen. Anhand der Antwortzeit kann ein Angreifer also weiterhin die beiden Fehlertypen unterscheiden und erhält Informationen über den Schlüssel - ein typischer Timing-Angriff. 2008 bei der Verabschiedung des TLS 1.2-Standards war die Problematik des Padding Oracles samt Timing bekannt und es gab bereits Gegenmaßnahmen - allerdings nur unzureichende. Das war den Autoren auch bewusst, sie hielten das Problem aber für nicht ausnutzbar. So schrieben sie: "Dies lässt einen kleinen Timing-Kanal bestehen [...], aber wir glauben nicht dass dieser groß genug ist um angreifbar zu sein [...]" (RFC 5246, Seite 23).
Das erwies sich als fataler Irrtum: Einige Jahre später gelang es Sicherheitsforschern, genau dieses bereits im Standard erwähnte Problem praktisch auszunutzen. Dieser Angriff wurde als Lucky-Thirteen-Attacke bekannt. Gegen die Lucky-Thirteen-Attacke wurden Workarounds in die gängigen Browser und TLS-Bibliotheken eingebaut, aber trotzdem gab es den Wunsch, das Problem generell zu beheben.
Zuerst verschlüsseln
Während es früher noch strittig war, welche Reihenfolge für kombinierte Verschlüsselung und Authentifizierung die korrekte ist, sind sich Kryptographen heute weitgehend einig, dass zuerst verschlüsselt und anschließend authentifiziert werden sollte. Der Grund: Wenn ein Angreifer irgendwelche Fehler in das Datenpaket einschleust, schlägt zuerst die Authentifizierung fehl. Solange ein sicheres Authentifizierungsverfahren verwendet wird, gibt es keine Möglichkeit, dass manipulierte Datenpakete weiterverarbeitet werden. Probleme wie das Padding Oracle oder die Lucky-Thirteen-Attacke sind somit von vornherein ausgeschlossen.
In der entsprechenden IETF-Arbeitsgruppe gab es daher eine längere Debatte darum, Encrypt-then-MAC für TLS einzuführen. Peter Gutmann, ein IT-Sicherheitsforscher von der Universität Auckland, hatte Anfang 2013 einen Entwurf für eine entsprechende Erweiterung vorgelegt. Diese Erweiterung wurde nach mehreren Änderungen jetzt offiziell verabschiedet.
Weitere Lösungen
Neben Encrypt-then-MAC gibt es weitere Möglichkeiten, die Probleme der Kombination aus Authentifizierung und Verschlüsselung zu beheben. So gibt es Verfahren, bei denen Authentifizierung und Verschlüsselung gleichzeitig durchgeführt werden. In TLS ist bislang dafür das Galois-/Counter-Mode-Verfahren (GCM) für AES spezifiziert. Auch der Einsatz von Stromverschlüsselungsverfahren verhindert Angriffe wie Lucky Thirteen. Allerdings hat der einzige bislang in TLS verfügbare Stromverschlüsselungsalgorithmus RC4 andere Sicherheitsprobleme, die noch gravierender sind. Die Standardisierung des als sehr sicher geltenden Stromverschlüsselungsverfahrens ChaCha20 ist in Arbeit und wird von manchen Browsern bereits experimentell unterstützt.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed