È un algoritmo (Hash Function) che a partire da un qualsiasi stringa in input A produce una stringa B (impronta) che ha una lunghezza costante, a prescindere dalle dimensioni di A.
Le funzioni di hash sono irreversibili perché pur conoscendo l’Hash è matematicamente impossibile risalire al testo originale.
Hashing (= ottenere un hash) è una operazione sempre IRREVERSIBILE
Encrypting (= cifrare un testo) è una operazione sempre REVERSIBILE
L’input A produce e produrrà sempre lo stesso hash B (Determinismo). Se ne producesse uno diverso ci sarebbe il problema della “collisione”. Questo avveniva con MD5.
L’output prodotto dalle funzioni di hash ha sempre una lunghezza fissa espressa in bit.
L’avalanche effect, è una proprietà per cui una piccola variazione nell’input A, produce una notevole variazione negli hash B (Effetto valanga).
Esempio di Hash: Gioacchino Rossini
MD5: 2795ba32c0a01fba1bd78d0ca3b41255 (32 bit)
RipeMD128: e14407339a8b38d7a46372898694d17b (32 bit)
SHA-1: 7a40f85a28207a0f3c1c8b4ab6d92005e593ee6c (40 bit)
SHA-256: adf728d034cbe8e0c08a9fea0720782aa890e49f331fea5c483fd4fe8a03835c (64 bit)
SHA-512: ed06ef9a8197cee6d6a25604ed47a05f547d361a9094576ab6e5e1317ce78a256dcb7795780bbdf0bff2812cc5f43430544c4c27df56a440ef236dd79020f346 (128 bit)
Oggi si usa SHA-512 pere evidenti ragioni di sicurezza.
Ma adesso che sappiamo cosa sia un hash crittografico cosa ce ne facciamo?
Direttamente non ce ne facciamo niente, ma a dire il vero senza hash crittografico saremmo bloccati.
La miglior cosa è andare su un caso concreto:
Avete un account Amazon ed avete dimenticato la password. Che si fa?
Beh… semplice: si clicca su “Ho dimenticato la password” e in pochi secondi tutto è sistemato.
Ma come cavolo Amazon ha potuto sistemare tutto e senza far niente o quasi?
Adesso vi spiego come funziona.
Noi inseriamo la password per accedere ad Amazon: il sistema ne calcola l’hash e va a verificare che questo coincida con quello depositato nel server di Amazon.
Se coincide con quello conservato nel server si accede. Se non coincide NON si accede.
Se noi non ricordiamo la password ne scriveremo una sbagliata il cui hash non corrisponde a quello depositato nel server di Amazon.
Allora quando noi diciamo di voler creare una nuova password Amazon cancella l’hash che deteneva dal momento in cui abbiamo creato l’account.
A quel punto noi che vogliamo entrare scriviamo login e password.
Ogni volta che scriviamo la password viene generato un hash che va confrontato con quello depositato nel server di Amazon.
Guarda caso coincide… e adesso abbiamo il permesso di entrare.
Se invece non coincide allora la colpa è nostra: dobbiamo solo scrivere la giusta password.
Semplice davvero.