Demistificare l’Hashing Crittografico: Perché è Irreversibile e come Protegge le tue Password

Demistificare l’Hashing Crittografico: Perché è Irreversibile e come Protegge le tue Password

Nel mondo della cybersecurity, l’hashing è uno dei concetti più fondamentali ma spesso fraintesi. È lo scudo invisibile che protegge le tue password, verifica l’integrità dei tuoi download e alimenta la blockchain.

Ma cos’è esattamente un hash? Perché non possiamo “decriptarlo”? E, cosa più importante, se è irreversibile, come fa un sito web a sapere che hai inserito la password corretta?


1. Cos’è una Funzione di Hash?

Una funzione di hash crittografica è un algoritmo matematico che prende un input (o “messaggio”) di qualsiasi dimensione e lo trasforma in una stringa di caratteri di dimensione fissa, che in genere appare come una sequenza casuale di lettere e numeri.

Le Regole d’Oro dell’Hashing:

  • Deterministico: Lo stesso input produrrà sempre lo stesso identico hash.
  • Veloce da Calcolare: L’algoritmo deve essere sufficientemente veloce per l’uso pratico.
  • Dimensione dell’Output Fissa: Che tu faccia l’hash di una singola parola o di un’intera biblioteca, la lunghezza dell’output rimane la stessa (es. 256 bit per SHA-256).
  • L’Effetto Valanga (Avalanche Effect): Un piccolo cambiamento nell’input (come cambiare una singola lettera) produce un hash completamente diverso.

2. Perché l’Hashing è Irreversibile?

A differenza della Crittografia, che è una strada a doppio senso (puoi criptare e poi decriptare con una chiave), l’Hashing è una strada a senso unico. Una volta ottenuto un hash, non puoi “invertirlo” per ottenere i dati originali.

L’Analogia del “Mescolare le Vernici”

Immagina di avere un secchio di vernice blu e uno di vernice gialla. Se li mescoli, ottieni il verde. Anche se è facile creare il verde da blu e giallo, è fisicamente impossibile prendere quella vernice verde e separarla perfettamente nei secchi originali blu e giallo.

La Ragione Matematica: Perdita di Informazioni

Gli algoritmi di hashing sono progettati per scartare intenzionalmente informazioni. Ad esempio, se avessi una semplice “regola di hash” che dice: “Somma i numeri e prendi l’ultima cifra”, allora:

  • Input 15 -> 1+5 = 6
  • Input 24 -> 2+4 = 6

Se vedi solo il risultato 6, non hai modo di sapere se l’input originale era 15, 24, 33 o qualsiasi altra combinazione. Negli algoritmi reali come lo SHA-256, la complessità è astronomica, ma il principio rimane: l’informazione viene condensata e scartata.


3. Se è irreversibile, come funziona il confronto delle password?

Questa è la domanda più comune: Se un sito web memorizza la mia password come hash e non può invertirlo, come fa a sapere che ho effettuato l’accesso correttamente?

La risposta è semplice: Non verificano la password; verificano l’hash.

Il Workflow di Verifica:

  1. Registrazione: Quando crei un account, il server prende la tua password (es. MiaSegreta123), ne calcola l’hash e memorizza solo l’hash nel database.
  2. Tentativo di Accesso: Quando provi ad accedere, inserisci nuovamente la tua password.
  3. Il Confronto: Il server prende la password che hai appena digitato e la passa attraverso lo stesso algoritmo di hash.
  4. La Corrispondenza: Il server confronta il nuovo hash con l’hash memorizzato.
    • Se Hash(Input) == Hash Memorizzato, la password deve essere corretta.
    • Se non corrispondono, la password è errata.

Il server non “conosce” mai veramente la tua password. Sa solo che l’input fornito produce l’impronta digitale matematica attesa.


4. Sicurezza Moderna: Aggiungere il “Salt”

Poiché l’hashing è deterministico, una password comune come password123 produrrà sempre lo stesso hash. Gli hacker usano le “Rainbow Tables” (elenchi pre-calcolati di hash per password comuni) per craccarle istantaneamente.

Per evitare questo, i sistemi moderni usano un Salt: una stringa casuale aggiunta alla tua password prima che venga calcolato l’hash: Hash(Password + Salt) = Hash Sicuro

Questo garantisce che anche se due utenti hanno la stessa password, i loro hash memorizzati appariranno completamente diversi.


Concetto Scopo Reversibilità
Crittografia Comunicazione segreta Reversibile (con chiave)
Hashing Integrità dei dati e sicurezza delle password Irreversibile

L’hashing è la pietra angolare della moderna fiducia digitale. Trasformando i dati sensibili in impronte digitali irreversibili, possiamo verificare le identità e proteggere i sistemi senza mai dover esporre i segreti originali.