🔎 Informatica forense

Funzioni hash e integrità delle prove digitali: guida pratica

Cosa sono le funzioni hash, perché MD5 e SHA-1 non bastano più, come si usa SHA-256 per dimostrare l'integrità delle prove digitali e quali errori evitare.

Ogni volta che si parla di prove digitali compare prima o poi una lunga stringa di lettere e numeri: l'impronta hash. È lo strumento con cui si dimostra che un file, un'immagine di disco o un archivio non sono cambiati di un solo bit dal momento dell'acquisizione. Capire come funziona aiuta a usarla bene e a spiegarla a chi deve valutare la prova.

Che cos'è una funzione hash

Una funzione hash crittografica prende in ingresso un insieme di dati di qualsiasi dimensione, da una parola a un disco da diversi terabyte, e restituisce un valore di lunghezza fissa. Per SHA-256, per esempio, il risultato è sempre di 256 bit, rappresentati come 64 caratteri esadecimali.

Le proprietà che la rendono utile sono tre:

  • determinismo: gli stessi dati producono sempre lo stesso hash, su qualsiasi computer e con qualsiasi programma che implementi correttamente l'algoritmo;
  • effetto valanga: una modifica minima, anche un solo bit, produce un hash completamente diverso;
  • resistenza alle collisioni: deve essere praticamente impossibile trovare due insiemi di dati diversi con lo stesso hash.

Grazie a queste proprietà l'hash funziona come un'impronta digitale: non permette di ricostruire i dati, ma permette di riconoscerli con certezza.

Un esempio concreto

Supponi di acquisire una chiavetta USB e di calcolare il suo SHA-256. Annoti il valore nel verbale. Sei mesi dopo, un consulente della controparte riceve una copia dell'immagine e ne ricalcola l'hash con un programma diverso. Se ottiene lo stesso valore, entrambi state lavorando sugli stessi identici dati. Se il valore è diverso, qualcosa è cambiato, e va capito che cosa.

Basta che in un documento di testo venga aggiunto uno spazio perché l'impronta cambi del tutto. Non esistono hash "quasi uguali": o coincidono o no.

Quali algoritmi usare

Non tutte le funzioni hash offrono oggi le stesse garanzie.

Algoritmo Lunghezza Stato attuale
MD5 128 bit Collisioni pratiche note; da non usare da solo
SHA-1 160 bit Collisioni dimostrate; sconsigliato
SHA-256 256 bit Considerato sicuro, scelta standard
SHA-512 512 bit Considerato sicuro, utile per grandi volumi
SHA-3 variabile Alternativa moderna, meno diffusa negli strumenti

Per MD5 e SHA-1 sono note tecniche per costruire deliberatamente due file diversi con la stessa impronta. Nella pratica forense quotidiana questo non significa che ogni hash MD5 sia inaffidabile, ma offre alla controparte un argomento facile. La soluzione più semplice è calcolare SHA-256 come riferimento principale; molti professionisti affiancano anche un secondo algoritmo, così da avere una doppia verifica.

Come si calcola

Quasi tutti i sistemi operativi permettono di calcolare un hash senza installare nulla:

  • su Windows, dal prompt di PowerShell, con il comando Get-FileHash;
  • su macOS, con il comando shasum dal Terminale;
  • su Linux, con sha256sum.

Gli strumenti di acquisizione forense calcolano l'impronta automaticamente durante la copia e la riportano nel rapporto finale. Conviene comunque verificarla con un secondo programma indipendente, per escludere errori del singolo strumento.

Dove si usano gli hash nell'informatica forense

  • verifica dell'acquisizione: si confronta l'hash dell'originale con quello della copia;
  • controlli periodici: si ricalcola l'hash prima di ogni analisi e prima della consegna;
  • elenchi di file: si produce un elenco con l'impronta di ciascun file consegnato, così che ogni elemento sia verificabile singolarmente;
  • ricerca di file noti: si confrontano gli hash con banche dati di file conosciuti, per escludere i file di sistema innocui o individuare file già noti;
  • deduplicazione: si eliminano i doppioni in grandi raccolte di documenti.

Errori comuni

  1. Calcolare l'hash troppo tardi: un'impronta calcolata settimane dopo l'acquisizione dimostra solo che il file non è cambiato da quel momento.
  2. Conservare l'hash solo accanto al file: se qualcuno altera il file, può alterare anche il file di testo con l'impronta. L'hash va riportato nel verbale, firmato e consegnato separatamente.
  3. Confondere hash del file e hash del contenitore: l'hash di un archivio compresso non coincide con quello dei file che contiene.
  4. Pensare che l'hash provi l'autenticità: l'impronta dimostra che i dati non sono cambiati dopo il calcolo, non che fossero veri o completi prima.

Quest'ultimo punto è il più frainteso. Se una chat è stata manipolata prima dell'acquisizione, l'hash della chat manipolata sarà perfettamente stabile. L'integrità è una cosa, l'autenticità un'altra, e richiede analisi diverse.

In sintesi

  • L'hash è un'impronta di lunghezza fissa che cambia completamente a ogni minima modifica.
  • SHA-256 è oggi la scelta standard; MD5 e SHA-1 non dovrebbero essere usati da soli.
  • L'impronta va calcolata subito e riportata nel verbale, non solo salvata accanto al file.
  • Fornire l'hash di ogni file consegnato permette verifiche indipendenti.
  • L'hash prova l'integrità dal momento del calcolo, non l'autenticità precedente.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica e in psicologia, unisce l'analisi tecnica alla comprensione del fattore umano.

Leggi anche