Attacco di estensione della lunghezza
L'attacco di estensione della lunghezza è un possibile attacco alle funzioni di hash quando vengono usate per autenticare un messaggio concatenando un segreto al messaggio da autenticare. Tale attacco permette di ottenere un MAC valido partendo da un messaggio validato e dal suo MAC.
Sono vulnerabili tutti gli algoritmi basati sulla costruzione di Merkle-Damgård, come MD5, SHA-1 e SHA-2. Non sono, invece, vulnerabili gli algoritmi a costruzione sponge (come SHA-3), le funzioni di hash più recenti (come BLAKE2 e BLAKE3) e in generale tutti gli algoritmi utilizzati all'interno della costruzione HMAC, compresi quelli vulnerabili.
Di cosa si tratta
[modifica | modifica wikitesto]Nelle funzioni di hash vulnerabili all'estensione della lunghezza, il digest finale coincide con l'output dello stato interno al termine dell'elaborazione dell'input. Poiché il risultato espone la configurazione interna della funzione, è possibile ricostruirne lo stato e utilizzarlo come base per processare ulteriori dati. Questa peculiarità consente di sferrare attacchi di estensione della lunghezza in cui un utente malintenzionato può riprendere il calcolo dal digest originale e aggiungere informazioni arbitrarie. Il risultato finale è un nuovo hash che appare come una firma autentica e valida per il messaggio modificato, nonostante il contenuto originale (o una eventuale chiave segreta) rimanga ignoto.
Fonti
[modifica | modifica wikitesto]- Everything you need to know about hash length extension attacks, su blog.skullsecurity.org (archiviato dall'url originale il 9 dicembre 2019).