hackweb
appunti di hacking e tecnologia
IT EN
menù principale
menù utente
non sei loggato

Length extension: perché H(secret||msg) non è un MAC

22 novembre 2025 · 1 min di lettura · #crypto #hash #mac

Le funzioni hash Merkle-Damgård (MD5, SHA-1, SHA-2) elaborano a blocchi mantenendo uno stato interno che è anche l'output finale. Questo permette di continuare l'hash.

L'attacco

Chi autentica con tag = H(secret || message) è vulnerabile: conoscendo tag e la lunghezza del segreto, l'attaccante inizializza lo stato dell'hash a tag e aggiunge dati, producendo un tag valido per message || padding || extra — senza mai conoscere il segreto.

hashpump -s TAG -d "message" -a "&admin=true" -k 16

Difesa

Non costruire MAC così. Usa HMAC, progettato per resistere (doppio hash con chiave). SHA-3/BLAKE2 non hanno il difetto, ma HMAC resta lo standard interoperabile.


« torna alla home

ultimi post
 
il tuo indirizzo IP:
216.73.216.108
visitatore #0
MOTD:
Ogni astrazione perde da qualche parte.
Qui guardiamo dove.
argomenti