Articolo Pubblicazioni
Collisioni MD5 (2004) e SHA-1 (2017): cosa cambiano per l’integrità della prova digitale
di Vincenzo Calabrò · Pubblicato il 20 marzo 2017
Abstract
Il 23 febbraio 2017 i ricercatori del CWI di Amsterdam e di Google hanno presentato due file PDF diversi con lo stesso valore SHA-1. È la prima collisione pratica per la funzione di hash più usata insieme a MD5, già violata nel 2004. L’articolo spiega che cosa è una collisione, perché è diversa dalla possibilità di falsificare una copia esistente, che cosa cambia per le copie forensi già acquisite e quali scelte conviene fare oggi nei verbali e nelle perizie.
La notizia di febbraio
Il 23 febbraio 2017 un gruppo di ricercatori del CWI di Amsterdam e di Google ha pubblicato SHAttered, la prima collisione pratica per SHA-1. Hanno prodotto due documenti PDF con contenuto visibilmente diverso e lo stesso valore di hash. Il calcolo ha richiesto circa nove quintilioni di operazioni SHA-1, l’equivalente di 6.500 anni di lavoro di una CPU e di 110 anni di una GPU, distribuiti sull’infrastruttura di Google. È un costo alto, ma alla portata di un’organizzazione con risorse importanti, e destinato a scendere.
Per chi lavora sulle prove digitali la notizia ha un significato preciso. SHA-1 è, con MD5, la funzione con cui da quindici anni si calcolano i valori di controllo delle copie forensi. MD5 è già stato violato nel 2004. Conviene allora chiarire quale valore abbiano oggi le copie acquisite con queste funzioni.
Che cos’è una collisione
Una funzione di hash trasforma un insieme di dati di qualsiasi dimensione in una stringa di lunghezza fissa, 128 bit per MD5, 160 per SHA-1, 256 per SHA-256. Una buona funzione deve rendere impraticabili tre operazioni:
- risalire ai dati partendo dal valore di hash (resistenza alla preimmagine);
- trovare, dato un file, un secondo file con lo stesso valore (resistenza alla seconda preimmagine);
- trovare una coppia qualsiasi di file con lo stesso valore (resistenza alle collisioni).
La terza proprietà è la più fragile, perché chi attacca può scegliere liberamente entrambi i file. È proprio questa che è stata violata per MD5 e ora per SHA-1. Le prime due, che sono quelle che contano per un file già esistente, restano integre per entrambe le funzioni.
Dal 2004 a oggi
Nell’agosto 2004 Xiaoyun Wang e i suoi colleghi presentarono collisioni per MD5 calcolate in poche ore. Negli anni seguenti gli attacchi hanno richiesto via via meno tempo. Nel 2008 un gruppo di ricercatori ha usato una collisione MD5 per creare un certificato di un’autorità di certificazione falso ma accettato dai browser, e nel 2012 il malware Flame ha sfruttato una tecnica simile per far apparire legittimo un proprio componente. Per SHA-1 le prime debolezze teoriche risalgono al 2005, e il NIST ne sconsiglia l’uso per le firme digitali dal 2011, vietandolo per la generazione di nuove firme dal 2014.
Che cosa cambia per le copie forensi
Il valore di hash di una copia forense serve a dimostrare che i dati non sono cambiati dal momento dell’acquisizione. Il rischio concreto è che qualcuno sostituisca la copia con un’altra diversa che produca lo stesso valore. Questo richiede un attacco di seconda preimmagine, perché la copia originale non è stata costruita dall’attaccante. Né per MD5 né per SHA-1 esiste oggi un attacco di questo tipo praticabile.
La collisione diventa un problema in un caso diverso, quando chi produce il documento è anche chi potrebbe volerlo sostituire. Chi prepara due versioni di un contratto con lo stesso hash può farne firmare una e poi sostenere che il valore depositato corrisponde all’altra. In ambito forense è uno scenario più raro, ma non da escludere quando una parte consegna file da lei stessa preparati.
Le copie acquisite in passato con MD5 o SHA-1 conservano quindi il loro valore, soprattutto se accompagnate da una catena di custodia documentata. Per le nuove acquisizioni conviene però cambiare abitudini.
Le scelte da fare oggi
- calcolare almeno SHA-256 per ogni nuova copia forense, che gli strumenti principali supportano già;
- continuare ad affiancare MD5 o SHA-1 quando servono per confrontare la copia con acquisizioni precedenti o con banche dati di file noti;
- riportare nel verbale le funzioni usate e i valori completi, senza abbreviarli alle prime cifre;
- calcolare i valori sia sull’originale sia sulla copia e verificarli a ogni consegna, documentando l’esito;
- per i file prodotti da una parte, chiedere se possibile l’acquisizione diretta dalla fonte e non soltanto il file con il suo valore.
Calcolare due funzioni diverse sulla stessa copia ha un vantaggio pratico. Una collisione simultanea per due funzioni indipendenti è molto più difficile di una collisione per una sola, e la doppia verifica rende ancora più remoto lo scenario della sostituzione.
Gli strumenti
La maggior parte dei programmi di acquisizione, commerciali e open source, calcola già più funzioni di hash in una sola passata, con un costo in tempo trascurabile rispetto alla lettura del disco. Il passaggio a SHA-256 richiede quindi soltanto l’aggiornamento dei modelli di verbale e delle procedure interne, senza nuovi investimenti. Conviene verificare anche gli strumenti usati per controllare le copie nel tempo, perché un programma datato potrebbe gestire solo MD5.
Come spiegarlo in un’aula di tribunale
Nei prossimi mesi capiterà che una difesa contesti una copia forense perché calcolata con SHA-1, citando la notizia di febbraio. La risposta tecnica è chiara. SHAttered dimostra che chi controlla entrambi i file può costruirli con lo stesso valore, ma non permette di prendere una copia esistente e crearne un’altra che la imiti. Chi ha acquisito l’originale non ha preparato i dati e non ha avuto modo di costruire una collisione. A questa spiegazione conviene aggiungere la documentazione della catena di custodia e, se possibile, il confronto con un secondo valore calcolato con un’altra funzione.
Una lezione più generale
Le funzioni crittografiche invecchiano. MD5 è nato nel 1992 ed è stato violato dodici anni dopo, SHA-1 è del 1995 ed è caduto nel 2017. Anche SHA-256 un giorno potrebbe mostrare debolezze. Per questo chi si occupa di prove digitali dovrebbe seguire l’evoluzione della crittografia, aggiornare le procedure quando gli enti di standardizzazione cambiano le raccomandazioni e conservare le copie in modo da poterne ricalcolare i valori con funzioni più solide quando servirà.
Vedi anche: l’articolo del 2019 Copia forense di dischi e memorie: bit a bit, hash e write blocker, l’articolo del 2026 Hash, firma digitale e marca temporale nella copia forense e l’articolo del 2002 RFC 3227 e l’ordine di volatilità.
Vincenzo Calabrò | Ingegnere informatico specializzato in sicurezza informatica e investigazioni digitali. Funzionario informatico del Ministero dell'Interno; su incarico autorizzato si occupa di sicurezza informatica e di perizie informatiche forensi. Autore di articoli e saggi. Lecturer, Speaker, Trainer.Profili: Google Scholar · ORCID · ResearchGate · Academia.edu · CyberSecurity360 · AgendaDigitale · ICT Security Magazine · LinkedIn