Hashing – CryptoWorld

Hashing

L’hashing è un processo unico di trasformazione di qualsiasi dato – indipendentemente dalle dimensioni – in un risultato unico di lunghezza fissa, noto come valore di hash o digest.

Nell’hashing non c’è una chiave, vengono crittografati direttamente i dati. In sostanza il testo in chiaro è la sua stessa chiave.

La funzione hash è quindi irreversibile, a meno che si conoscano l’algoritmo di cifratura e il testo in chiaro.

Per questo motivo l’hashing è particolarmente importante per l’amministrazione e la sicurezza di database, dati utente, gestione delle password e autenticazione degli accessi.

Componenti

I principali componenti del hashing sono:

  • Funzione hash: algoritmo crittografico che scompone completamente dati di diverse lunghezze, li risolve e li converte in sequenze di caratteri di lunghezza sempre uguale.
  • Valore hash: valori risultato della funzione hash, presentano sempre una lunghezza fissa di caratteri esadecimali.
  • Tabelle hash: tabelle in cui vengono salvati i valori hash nei database per usare meno spazio rispetto al salvataggio dei record di dati originali, nelle tabelle hash ai valori hash sono assegnati indici specifici che mostrano dove si trova il record riducendo considerevolmente il tempo di elaborazione e la potenza di calcolo nella ricerca delle informazioni.

Proprietà

  • Determinismo: la funzione hash deve sempre generare un valore hash di lunghezza fissa a prescindere dalla sequenza di caratteri di origine.
  • Impossibilità di rilettura: l’hashing trasforma i valori originali in valori hash non rileggibili.
  • Sicurezza anticollisione: non può essere assegnato lo stesso valore hash a dati diversi.
  • Non continuità: record di dati originali differenti ricevono valori hash i più diversi possibile.

Campi di applicazione

Gestione dei database

La funzione hash viene utilizzata per salvare password e dati nei grandi database.

I dati non vengono registrati nel database nella loro forma originale o semplicemente crittografati, ma  vengono scomposti in valori hash. In questo modo, in caso di furto, da soli non producono nulla senza la chiave o i mezzi necessari e vanno ad occupare nel database uno spazio molto minore rispetto alla memorizzazione delle password o dei dati originali. 

Firme digitali e checksum

L’hashing riveste un ruolo importante anche come metodo di autenticazione per la generazione di firme digitali e la creazione di account con collegate delle password.

I mittenti generano valori hash dai messaggi da inviare. A loro volta, utilizzando la stessa funzione, anche i destinatari generano un valore hash, che viene confrontato con il valore fornito, solitamente crittografato. Se i due hash generati coincidono la comunicazione è avvenuta correttamente.

Hashing e sicurezza

L’hashing è da preferire alla crittografia classica, in quanto i valori hash non contengono informazioni sui record di dati originali e non possono essere decodificati.

Anche gli attacchi di forza bruta, con cui si provano combinazioni di stringhe di caratteri fino a trovare una corrispondenza, richiedono un numero astronomico di tentativi.

Tuttavia, esistono criminali che confrontano le liste dei valori hash rubati con le tabelle arcobaleno, liste di valori hash rubati e dei relativi dati di accesso. Per questo motivo, anche con l’hashing si consiglia di cambiare regolarmente le password, di eseguire aggiornamenti periodici e di usare algoritmi nuovi o aggiornati.

  • Dati sensibili salvati e gestiti in modo sicuro e compatto.
  • Record di dati convertiti in valori hash non possono essere decodificati o riportati nella forma originale facilmente.
  • Accesso ai database è più veloce, in quanto i valori hash sono associati a posizioni nel database.
Torna in alto