Zum Inhalt springen
ecdsa.com

Length-Extension-Angriff

Ein Angriff auf Hashes nach Merkle–Damgård wie MD5, SHA-1, SHA-256 und SHA-512, der aus H(secret ‖ m) und der Länge von secret ‖ m den Wert H(secret ‖ m ‖ padding ‖ m′) berechnet, ohne das Secret zu kennen.
Auch geschrieben alslength extension attackhash length extension

Ein Digest nach Merkle–Damgård ist der vollständige interne Zustand nach dem letzten Block, daher kann ein Angreifer ihn laden und weiterhashen. Authentifiziert ein Dienst Anfragen mit SHA-256(secret ‖ params), kann jeder, der ein gültiges Tag sieht, &admin=1 anhängen (nach den Padding-Bytes) und ein gültiges Tag für die längere Nachricht berechnen. Genau daran scheiterten 2009 die auf MD5 basierenden API-Signaturen von Flickr.

Nicht betroffen sind HMAC (der äußere Hash verbirgt den inneren Zustand), SHA-3 und die SHAKE-Funktionen (die Kapazität wird nie ausgegeben), BLAKE2 und BLAKE3 sowie gekürzte SHA-2-Varianten wie SHA-384 und SHA-512/256, deren Ausgabe einen Teil des Zustands weglässt. Signaturverfahren hashen die Nachricht vor dem Signieren und sind ebenfalls nicht betroffen.

Die Regel ist einfach: Baue nie einen MAC als hash(key ‖ message) aus SHA-1 oder SHA-256; nutze HMAC, KMAC oder BLAKE2 mit Schlüssel.

Standards und Quellen

Alle Begriffe