Capire l'MD5: a cosa serve davvero ancora oggi

Per gli insegnantiPer studenti
MD5 trasforma qualsiasi file o testo in una breve impronta digitale usata per individuare corruzioni accidentali. Scopri a cosa serve ancora e dove non va mai usato.

Cosa verifica realmente un hash MD5, dove funziona ancora e perché password e protezione da manomissioni richiedono qualcosa di più robusto.

Quando un file scaricato deve essere affidabile, non solo apribile

Un insegnante scarica un grosso pacchetto di materiali da un disco condiviso della scuola e il file richiede diversi tentativi prima di aprirsi senza errori. Un referente informatico riceve da un fornitore il programma di installazione di un software e deve verificare che corrisponda al file effettivamente pubblicato dal fornitore, non a una copia danneggiata o alterata. Una classe di informatica sta studiando come un dato possa essere rappresentato da un'impronta di dimensione fissa, e l'insegnante vuole un esempio che gli studenti possano provare in prima persona. In tutti i casi la domanda vera è la stessa: come si fa a sapere che un file è esattamente il file che dichiara di essere?

È a questo che serve una funzione di hash come MD5. Non cifra il file, non lo nasconde e non impedisce di leggerlo. Ricava dal contenuto del file un'impronta breve, di lunghezza fissa. Se cambia anche un solo byte del file, l'impronta cambia completamente. Confrontare le impronte è un modo rapido di controllare se uno scaricamento è andato a buon fine o se un file corrisponde alla versione che qualcuno si aspetta.

MD5 (Message-Digest Algorithm 5) è una delle funzioni di hash più antiche e più conosciute. Viene usata ancora oggi per controlli di integrità di base, anche se da molti anni non è più considerata sicura per le password o per la protezione crittografica. Capire che cosa fa davvero MD5, dove è ancora utile e dove non va mai usata aiuta insegnanti, studenti e personale informatico della scuola a decidere meglio sulla sicurezza dei file.

Generatore di hash MD5 che trasforma un testo in ingresso in un'impronta esadecimale di lunghezza fissa

Che cosa fa davvero MD5

MD5 accetta in ingresso dati di qualsiasi dimensione — un testo breve, un paragrafo o un intero file da diversi gigabyte — e produce un risultato di dimensione fissa: un valore a 128 bit, scritto quasi sempre come una stringa di 32 caratteri fra lettere e numeri. Questo risultato si chiama hash, digest o checksum.

Tre proprietà lo rendono utile:

  • Il risultato ha sempre la stessa lunghezza. Un file di testo di una riga e un PDF di 500 pagine producono entrambi un hash MD5 di 32 caratteri.
  • Lo stesso input produce sempre lo stesso output. Calcolare l'hash di un file due volte su due computer diversi deve dare un risultato identico, se il file è identico.
  • Una minima modifica dell'input produce un risultato del tutto diverso. Cambiare un solo carattere, uno spazio o un byte in qualunque punto del file cambia l'hash per intero, non solo una sua parte.

È quest'ultima proprietà a rendere MD5 utile per la verifica. Se un insegnante pubblica un pacchetto di materiali insieme al suo hash MD5 e la copia scaricata da uno studente produce un hash diverso, allora qualcosa è cambiato durante lo scaricamento, il file è incompleto oppure non è lo stesso file. L'hash non può dire che cosa è cambiato, soltanto che è cambiato.

Vuoi generare un hash MD5 dal tuo testo o dai dati di un tuo file?

Prova il generatore di hash MD5

Dove MD5 è ancora davvero utile

MD5 ha una brutta fama nei discorsi sulla sicurezza, e in certi contesti a ragione, come si vede più sotto. Ma liquidarla del tutto fa perdere di vista i casi in cui fa ancora un lavoro ragionevole.

Caso d'uso MD5 è una scelta ragionevole? Perché
Controllare che uno scaricamento sia arrivato intero Sì Nessuno sta cercando di falsificare una corrispondenza di proposito; l'obiettivo è solo intercettare errori accidentali.
Verificare che due file siano copie identiche Sì Un modo rapido di confrontare file grandi senza aprirli e leggerne ogni byte a mano.
Conservare le password degli account di studenti o personale No MD5 è veloce e per impostazione predefinita non usa sale, quindi le password conservate così si attaccano facilmente. Meglio un algoritmo nato per questo scopo (vedi sotto).
Verificare che un file non sia stato manomesso deliberatamente da un attaccante No Le collisioni MD5 si possono costruire di proposito, quindi un attaccante determinato può creare un file diverso con lo stesso hash.
Insegnare il concetto di hash in una lezione di informatica Sì MD5 è semplice, veloce e molto documentata, quindi funziona bene come primo esempio prima di introdurre SHA-256.

Caso d'uso 1: verificare che un pacchetto di materiali condiviso sia stato scaricato correttamente

Situazione: il responsabile di dipartimento carica un grosso pacchetto di schede, presentazioni e griglie di valutazione su un disco condiviso, perché gli altri insegnanti lo scarichino prima dell'inizio del quadrimestre.

Problema: alcuni insegnanti segnalano che i file dentro la cartella non si aprono, o che un documento sembra troncato. Non è chiaro se sia fallito lo scaricamento o se il file originale fosse già rotto.

Soluzione: il responsabile genera un hash MD5 del file ZIP originale prima di condividerlo e lo inserisce nel messaggio. Gli insegnanti in dubbio sul proprio scaricamento possono generare l'hash della loro copia con il generatore di hash MD5 e confrontarlo con l'originale.

Risultato: una differenza conferma che lo scaricamento è incompleto o danneggiato, quindi l'insegnante sa di dover riscaricare invece di mettersi a cercare il guasto in un file che non è mai stato integro.

Caso d'uso 2: verificare che un programma di installazione corrisponda all'originale del fornitore

Situazione: il referente informatico di una scuola riceve il programma di installazione di un software didattico dal sito di un fornitore o da un sito terzo che lo rispecchia.

Problema: installare software non verificato sui dispositivi della scuola comporta un rischio, se il file è stato alterato o danneggiato da qualche parte fra il fornitore e il link di scaricamento.

Soluzione: molti fornitori pubblicano un checksum accanto al file da scaricare, a volte MD5, a volte un algoritmo più robusto come SHA-256. Il referente calcola l'hash del file scaricato e lo confronta con il valore pubblicato dal fornitore prima di installarlo sulle macchine della scuola.

Risultato: una corrispondenza confermata dà fiducia sul fatto che il file non si sia danneggiato durante il trasferimento. Se il fornitore pubblica esplicitamente un checksum SHA-256 invece di MD5, va usato quell'algoritmo più robusto, perché protegge anche dalle manomissioni deliberate.

Caso d'uso 3: insegnare il concetto di hash in una lezione di informatica

Situazione: un insegnante introduce l'idea delle funzioni di hash e vuole che gli studenti vedano come una piccola modifica al testo produca un risultato completamente diverso.

Problema: i concetti di crittografia restano astratti se non c'è qualcosa che gli studenti possano provare in classe.

Soluzione: gli studenti calcolano l'hash di una frase breve, poi cambiano una lettera e lo ricalcolano, confrontando i due risultati affiancati. Così si vede l'effetto valanga, in cui una minima modifica in ingresso produce un risultato che non sembra avere alcun legame col precedente, senza bisogno di capire le operazioni sui bit che ci stanno sotto.

Risultato: gli studenti si costruiscono un'idea intuitiva e concreta di che cosa sia un hash, prima di passare a come gli hash vengono usati nei sistemi reali e a dove MD5 non basta.

Perché MD5 non è sicura per le password o per usi critici

MD5 è stata progettata nel 1991 e da allora la crittografia ha fatto molta strada. Due debolezze ben documentate spiegano perché non va considerata affidabile per nulla che riguardi la sicurezza:

  • Attacchi di collisione. I ricercatori hanno dimostrato che due input diversi si possono costruire deliberatamente per produrre lo stesso hash MD5. Un attaccante può quindi creare un file dannoso che ha lo stesso hash di uno legittimo, vanificando il senso stesso della verifica quando c'è qualcuno che agisce in malafede.
  • La velocità gioca contro la sicurezza delle password. MD5 è stata progettata per essere veloce: un bene per i checksum, un male per la conservazione delle password. L'hardware di oggi può provare miliardi di ipotesi MD5 al secondo, il che rende gli hash MD5 delle password relativamente facili da forzare, soprattutto in assenza di un sale diverso per ciascuna password.

Per le password, scuole e sviluppatori dovrebbero usare un algoritmo nato per quello scopo, come bcrypt, scrypt o Argon2, lenti per scelta e pensati per resistere a tentativi su larga scala. Per verificare che un file non sia stato manomesso deliberatamente, lo standard attuale è SHA-256. MD5 resta ragionevole solo per intercettare danni accidentali, dove nessuno sta attivamente cercando di falsificare una corrispondenza.

Come generare e controllare un hash MD5

  1. Apri il generatore di hash MD5.
  2. Incolla il testo, o i dati del file, nell'area di inserimento.
  3. Genera l'hash e copia il risultato di 32 caratteri.
  4. Confrontalo con l'hash fornito dalla fonte originale, per esempio il checksum pubblicato da un fornitore o l'hash del file originale di un collega.
  5. Se gli hash corrispondono, il contenuto è identico. Se non corrispondono, considera il file incompleto, danneggiato o diverso dall'originale, e riscaricalo o richiedilo di nuovo.
  6. Per tutto ciò che riguarda le password o la protezione dalle manomissioni deliberate, usa un algoritmo più robusto e nato per quello scopo invece di MD5.

Problemi comuni che questo risolve

  • Un pacchetto di materiali o un programma di installazione scaricato non si apre correttamente.
  • Due persone di un gruppo non sono sicure di avere la stessa versione di un file.
  • Serve un controllo rapido di integrità senza confrontare il contenuto riga per riga a mano.
  • Una lezione di informatica ha bisogno di un esempio di hash semplice e concreto.
  • Una scuola deve capire perché MD5 non va mai usata per conservare le password.

Errori comuni da evitare

  • Usare MD5 per conservare le password di studenti o personale.
  • Dare per dimostrato, da un hash MD5 corrispondente, che un file non sia stato manomesso deliberatamente da un attaccante.
  • Trattare MD5 e la cifratura come la stessa cosa; gli hash MD5 non si possono riportare al contenuto originale, ma non lo nascondono e non lo proteggono.
  • Ignorare il checksum SHA-256 pubblicato da un fornitore a favore di un valore MD5 più facile da trovare.
  • Condividere il contenuto di file riservati pensando che un hash dia una qualche riservatezza; non è così.

Domande frequenti

Per cosa si usa MD5 oggi?

Soprattutto per controlli rapidi in assenza di malintenzionati: verificare che uno scaricamento sia arrivato intero, controllare che due file siano copie identiche, insegnare il concetto di hash. Non è consigliata per le password né per proteggersi dalle manomissioni deliberate.

MD5 è la stessa cosa della cifratura?

No. La cifratura è reversibile con la chiave giusta, quindi il contenuto originale si può recuperare. L'hash MD5 va in una sola direzione: da un hash non si torna al file o al testo di partenza. E non è pensata per tenere segreto un contenuto, soltanto per darne un'impronta.

Perché MD5 è considerata insicura?

I ricercatori hanno dimostrato che input diversi si possono costruire deliberatamente per produrre lo stesso hash MD5, cioè una collisione. Questo significa che MD5 non è affidabile per rilevare una manomissione intenzionale, ma soltanto cambiamenti o danni accidentali.

Le scuole dovrebbero usare MD5 per conservare le password?

No. MD5 è veloce e, senza protezioni aggiuntive, vulnerabile ai tentativi su larga scala. Per conservare le password serve un algoritmo dedicato come bcrypt, scrypt o Argon2, lenti per scelta proprio per resistere a questo tipo di attacco.

Che cosa usare invece di MD5 per verificare file importanti?

SHA-256 è lo standard attuale per i controlli di integrità quando la sicurezza conta, per esempio per verificare un software scaricato. MD5 resta accettabile solo per controlli di base e a basso rischio, come accertarsi che uno scaricamento non si sia danneggiato.

Due file diversi possono davvero produrre lo stesso hash MD5?

Sì, è quella che si chiama collisione. I ricercatori l'hanno dimostrata più volte ed è il motivo principale per cui MD5 non è più affidabile nelle verifiche critiche per la sicurezza, anche se una collisione accidentale resta estremamente improbabile.

È sicuro usare un generatore MD5 online per testi riservati?

Evita di incollare informazioni private, personali o riferite agli studenti in qualsiasi strumento online, se non sai come quello strumento tratta ciò che riceve. Per le dimostrazioni in classe, usa un testo di esempio neutro invece di dati reali degli studenti.

In conclusione

MD5 non è uno strumento di sicurezza nel senso moderno del termine, ma resta un'impronta pratica per intercettare i problemi accidentali dei file: scaricamenti interrotti, copie che non coincidono, trasferimenti danneggiati. Il punto è conoscerne il confine. Usala per controlli di integrità rapidi e a basso rischio e per insegnare il concetto di hash. Per le password, e per verificare che un file non sia stato alterato da qualcun altro, usa algoritmi costruiti per quello scopo.

Generatore di Hash MD5 icon Questo articolo riguarda Generatore di Hash MD5 Aprire lo strumento
Pubblicato in:
Per gli insegnantiPer studenti