Length Extension Attack

Die Length Extension Attack

Die Length Extension Attack ist eine kryptografische Attacke, die sich gegen Hashfunktionen richtet, die die Merkle-Damgård-Konstruktion verwenden. Hierzu gehören beliebte Hashfunktionen wie MD5 und SHA-1. Der Angriff nutzt die Art und Weise aus, wie diese Hashfunktionen Eingaben verarbeiten, indem sie diese in Blöcke unterteilen und den internen Zustand iterativ aktualisieren. Der Ausgabewert der Hash-Funktion ist in der Regel der endgültige Zustand nach der Verarbeitung der gesamten Eingabe.

Funktionsweise der Length Extension Attack

Die Length Execution Attack läuft in folgenden Schritten ab:

  1. Voraussetzungen: Der Angreifer kennt die Länge der Originalnachricht und den Hash dieser Nachricht.
  2. Der Angreifer fügt zusätzliche Daten (die Erweiterung) zur Originalnachricht hinzu, ohne deren Inhalt zu kennen.
  3. Der Angreifer berechnet dann den neuen Hash, indem er den internen Zustand der Hashfunktion mit dem bekannten Hashwert initialisiert und den Hashing-Prozess mit der angefügten Erweiterung fortsetzt.
  4. Da die Hashfunktion die Länge der Eingabe verwendet, um den internen Zustand zu bestimmen, kann der Angreifer den Zwischenzustand der Hashfunktion nach der ursprünglichen Nachricht berechnen und dann mit dem Hashen der Erweiterung fortfahren.
  5. Der resultierende Hash aus Schritt 4 ist nun der Hash der ursprünglichen Nachricht, konkateniert mit der Erweiterung, obwohl der Angreifer den Inhalt der ursprünglichen Nachricht nicht kennt.

Dieser Angriff ist möglich, weil die Merkle-Damgård-Konstruktion die Länge der Eingabe nicht als Teil der Hashausgabe enthält. Daher kann ein Angreifer einen gültigen Hash fälschen, indem er die Eingabe erweitert und den Hash neu berechnet, beginnend mit dem bekannten Hash.

Um Längenerweiterungsangriffe zu verhindern, wird empfohlen, Hash-Funktionen zu verwenden, die mit integrierten Schutzmechanismen entworfen wurden, wie zum Beispiel die SHA-3-Familie (z.B. SHA3-256, SHA3-512) oder die SHA-2-Varianten (z.B. SHA-256, SHA-512). Diese Hashfunktionen verwenden unterschiedliche Konstruktionen, die die Anfälligkeit für Längenerweiterungsangriffe, die bei auf der Merkle-Damgård-Konstruktion basierenden Hash-Funktionen vorhanden ist, nicht aufweisen.

Weitere Informationsquellen

Wikipedia contributors. (2023, October 6). Length extension attack. In Wikipedia, The Free Encyclopedia. Retrieved 22:20, February 8, 2024, from https://en.wikipedia.org/w/index.php?title=Length_extension_attack&oldid=1178904337