Novembre 14, 2026

Quando un database aziendale viene bucato, la prima domanda che gli esperti di cybersecurity si pongono non è se gli hacker hanno rubato le password, ma come quelle password erano conservate.

Salvare una password in “chiaro” (es. password123) in un database oggi equivale a lasciare le chiavi di casa attaccate alla porta. Per proteggere le identità digitali, la crittografia moderna si affida a due concetti fondamentali: l’Hashing e il Salting.

Ecco come funzionano, spiegati in modo semplice, con un approfondimento tecnico per gli addetti ai lavori.

1. Cos’è l’Hashing? (L’impronta digitale della tua password)

L’hashing non è una “cifratura” tradizionale, ma una funzione matematica unidirezionale. Immagina un frullatore: se inserisci una mela (la tua password) e lo accendi, otterrai un frullato (l’Hash). È impossibile fare il procedimento inverso e ritrasformare il frullato in una mela.

Quando crei un account, il sistema non salva la tua password reale, ma il suo “frullato”.

  • Lunghezza fissa: Non importa se la password è “ciao” o una frase di 50 caratteri, l’hash generato avrà sempre la stessa lunghezza (ad esempio 64 caratteri).
  • Controllo degli accessi: Quando fai il login, il sistema “frulla” la password che hai appena digitato e controlla se il risultato coincide con il frullato salvato nel database. Se combaciano, sei dentro. Il sistema sa che hai la password giusta, senza averla mai conosciuta.

Il Punto Debole dell’Hashing: Le “Rainbow Tables”

Se l’hashing è unidirezionale, come fanno gli hacker a rubare le password? Semplice: non fanno il percorso inverso, procedono per tentativi. Se la tua password è 123456, il suo hash (usando il vecchio algoritmo MD5) sarà sempre e10adc3949ba59abbe56e057f20f883e. Gli hacker possiedono enormi elenchi (chiamati Rainbow Tables) contenenti milioni di password comuni già convertite in hash. Quando rubano un database, incrociano i dati: se trovano quell’hash esatto, sanno istantaneamente che la password è 123456. Inoltre, se due utenti scelgono la stessa password, avranno lo stesso identico hash nel database, rendendo il lavoro dell’attaccante ancora più facile.

2. Cos’è il Salting? (Il granello di sicurezza)

Per distruggere l’efficacia delle Rainbow Tables, i crittografi hanno inventato il Salting (dall’inglese salt, sale).

Il “Salt” è una stringa di testo completamente casuale (es. x9K#pL!2) che viene aggiunta alla tua password prima di essere frullata. Se la tua password è 123456, il sistema aggiunge il salt e crea: 123456x9K#pL!2. Solo a questo punto ne calcola l’hash.

Perché è geniale?

  1. Unicità: Ogni singolo utente nel database riceve un Salt diverso generato casualmente.
  2. Password uguali, Hash diversi: Se Mario e Luigi usano entrambi la password 123456, i loro hash nel database saranno completamente diversi, perché conditi con due Salt differenti.
  3. Morte delle Rainbow Tables: Le liste pre-calcolate degli hacker diventano inutili. Per decifrare le password, l’attaccante dovrebbe ricalcolare l’intero dizionario per ogni singolo utente del database, un processo che richiederebbe secoli di potenza di calcolo.

3. Dietro le quinte: Per i Professionisti (Sviluppatori e Sysadmin)

Se sei uno sviluppatore o gestisci database (ad esempio su architetture PHP/MySQL), comprendere la teoria non basta. Ecco le Best Practices attuali:

  • Evita algoritmi obsoleti: Non usare MAI MD5 o SHA-1 per le password. Sono algoritmi progettati per essere veloci, il che è un difetto fatale per le password: un hardware moderno può calcolare miliardi di hash MD5 al secondo (Brute Force).
  • Usa algoritmi “lenti” (Key Derivation Functions): Devi usare algoritmi che richiedono uno sforzo computazionale (Cost Factor) regolabile, per rallentare gli attacchi hardware (GPU/ASIC). Gli standard odierni sono Bcrypt e Argon2 (Argon2id è l’attuale vincitore della Password Hashing Competition).
  • Implementazione nativa (Es. PHP): Non inventare la ruota creando sistemi di salting manuali. Usa le funzioni native del linguaggio, come password_hash() in PHP, che gestiscono automaticamente la generazione crittograficamente sicura del Salt, l’algoritmo (Bcrypt/Argon2) e il fattore di costo, salvando tutto in un’unica stringa sicura pronta per il database:

Conclusione

L’Hashing protegge il server dal conoscere la tua password, ma da solo non basta più. Il Salting protegge l’Hashing dalla potenza dei moderni cyber-attacchi. Che tu sia un utente che naviga sul web o un ingegnere che progetta portali per la Pubblica Amministrazione, esigere sistemi che implementino correttamente queste due tecnologie è la linea di demarcazione tra un sistema sicuro e un disastro annunciato.