login LOGIN
CHIUDI chiudi
Il mio profilo

mostra
Hai dimenticato la password?
Inserisci l'indirizzo email di registrazione per reimpostare la password.
Segui le istruzioni che ti abbiamo inviato per posta elettronica.

Password hashing, cos'è e cosa serve

Tecnica di crittografia, permette di proteggere le password sostituendole con delle stringhe di testo casuali

password hashing

Ormai sembrano non fare quasi più notizia. I furti di password da parte di hacker sono all'ordine del giorno. Nonostante tutte le misure di sicurezza che gli utenti mettono in campo e gli accorgimenti per difendersi da furti di identità, i pirati informatici sembrano essere sempre un passo avanti rispetto sia agli utenti sia agli esperti di sicurezza assunti dalle varie società che operano nel web. Ad essere sotto attacco, così, non sono le singole password, quanto piuttosto i database dei servizi online nei quali sono contenute le credenziali di accesso degli utenti.

A questo punto entra in gioco una particolare tecnica di difesa cibernetica nota come password hashing. Grazie a questa tecnica, anche in caso di furto informatico, gli hacker si ritroverebbero in mano, in luogo di una vera password "in chiaro", un lungo elenco di caratteri casuali praticamente inutilizzabile.

Che cos'è l'hashing delle password

 

come funziona l'hashing

 

Sia da un punto di vista teorico sia da un punto di vista pratico, il password hashing è un'operazione apparentemente semplice. Pur trattandosi di una tecnica crittografica, non si basa sullo scambio di chiavi pubbliche e chiavi private come accade, ad esempio, nel caso della crittografia end-to-end. La protezione delle nostre credenziali è affidata ad algoritmi teoricamente irreversibili che, a parità di condizioni iniziali, sono in grado di restituire sempre lo stesso risultato (la stessa stringa di caratteri apparentemente casuali) partendo dalla stessa password iniziale.

Nel momento in cui si crea l'account di un servizio web e si accede per la prima volta al proprio profilo, il sistema crittografico del servizio genera, a partire dalla password che abbiamo scelto, una stringa univoca di caratteri chiamata hash. A ogni nuovo accesso, verrà generata una nuova stringa di caratteri usando sempre gli stessi algoritmi applicati alla password immessa, il risultato verrà poi confrontato con hash l'originale: nel caso le due stringhe combacino, si sarà inserita la chiave di accesso corretta e quindi si completerà la procedura di autenticazione, nel caso invece le stringhe non coincidano vorrà dire che si è sbagliato ad immettere la password.

Hard hashing versus soft hashing

 

l'hashing

 

In via del tutto teorica, come detto, né gli hacker né gli stessi gestori del servizio web potrebbero essere in grado di "invertire" il processo di password hashing e ricavare così "in chiaro" le credenziali di accesso degli utenti. Come accade, però, con i sistemi di sicurezza per la connessione Wi-Fi, non tutti gli standard hash hanno la stessa capacità di resistere a operazioni di "ingegneria inversa". Capita così che password protette con algoritmi SHA1 possano essere scoperte ugualmente, anche se il lavoro richiesto per farlo è lungo e alquanto complesso.

Nel caso in cui all'algoritmo SHA1 siano applicati altri sistemi di sicurezza, la vita per gli hacker e pirati informatici sarà molto più dura. È il caso di bcrypt, un sistema di sicurezza che consente di utilizzare algoritmi di crittografia estremamente complessi da decifrare. Secondo Rick Redman, esperto di sicurezza informatica e Senior Security Consultant per Korelogic (tra le più importanti società attive nel settore della sicurezza web), dal momento in cui viene scoperta la falla e vengono trafugate le informazioni sotto forma di elenco di stringhe hash i tempi per intervenire e mettere al sicuro i propri dati dipendono molto dal tipo di chiave crittografica utilizzata. Nel caso di SHA1 la finestra temporale per cambiare password prima che i pirati informatici riescano a risalirvi tramite decrittazione della nostra stringa hash è molto breve (questione di qualche giorno, se non di poche ore); se lo SHA1 è rafforzato da bcrypt, allora gli utenti hanno parecchio più tempo per cambiare credenziali e, eventualmente, chiudere i loro account.

 

cosa è l'hashing

 

Va ricordato, infatti, che in caso di data breach (furto dei database con credenziali da parte degli hacker) è necessario che l'utente cambi la password non solo del profilo compromesso, ma anche degli altri. Solo in questo modo, infatti, potrà esser certo che i propri dati siano al sicuro. Per verificare di non esser stato vittima di un furto di identità, si può utilizzare il portale have I been pwned: si inserisce la propria password e si scopre così se per caso fa già parte di uno dei database trafugati dagli hacker nel corso degli anni.

Come hackerare l'hashing password

Come afferma lo stesso Redman, gli hacker che riescono a decodificare gli hash non sono né stregoni né tantomeno utilizzano magia nera. Semplicemente hanno molta pazienza e sono dotati di computer (o botnet) estremamente potenti. Una volta trafugato il database con le credenziali difese da SHA1 e bcrypt, sfruttano la potenza di calcolo delle GPU per tentare di risalire alle password iniziali "in chiaro".

 

hacker hashing

 

A loro disposizione, oltre a un comparto hardware adeguato, hanno dei veri e propri dizionari composti da parole di senso compiuto e algoritmi hash utilizzati dagli stessi fornitori di servizi web. Dando in "pasto" i dizionari di svariati linguaggi a questi algoritmi e confrontando i risultati ottenuti con le voci del database trafugato, sono in grado di risalire alle password (in tal caso parole di senso compiuto in una qualche lingua nota) e utilizzarle per i loro scopi. In alternativa, sfruttano elenchi già compilati, composti da hash di frasi e sequenze di caratteri alfanumerici casuali, da mettere poi a confronto con gli elementi che compongono il database ottenuto in maniera fraudolenta: anche in questo caso gli hacker potranno trovare le corrispondenze tra le stringhe hash e risalire così alle password "in chiaro". A questo punto utilizzare i dati ottenuti o vendere i risultati al miglior offerente (magari nel dark web) diventa un gioco da ragazzi.

Partita a scacchi

Gli esperti di sicurezza informatica, ovviamente, non stanno a guardare. Come se si fosse in una vera e propria partita di scacchi, al tentativo di attacco degli hacker corrisponde la mossa difensiva da parte delle società che si occupano di difendere le credenziali degli utenti. Così, per rendere più "avvincente" la sfida, aggiungono un po' di "sale" al loro algoritmo per l'hashing password.

 

password

 

La tecnica del salting (da salt, sale in inglese) consiste nell'aggiungere informazioni casuali (e inutili) alla password prima dell'hashing e successivamente archiviarle all'interno del database. Se, ad esempio, alla password "provaprova" corrisponde l'hash "afoiq252kgwwngklnv29y382", con il salting la password potrebbe essere trasformata in "provaprova12345", a cui corrisponde l'hash "aigh305y130t2g293jhnoi3r": due stringhe assolutamente differenti e, di fatto, non riconducibili l'una all'altra. Così facendo, anche se un hacker dovesse riuscire a impossessarsi dell'elenco delle credenziali di accesso degli utenti, potrebbero farci ben poco dal momento che l'hash creato non corrisponderebbe esattamente alla password degli utenti ma soltanto ad una sua versione "edulcorata".

Tecniche come bcrypt e Argon2, invece, rendono più sicura l'archiviazione delle credenziali effettuando migliaia di "passaggi" attraverso diversi algoritmi di hashing: in questo modo le operazioni di decifrazione si prolungano di parecchio, rendendo così impossibile (o comunque davvero molto lungo) il processo di cracking delle password.

A cura di Cultur-e
Prompt engineering
Immagine principale del blocco
Prompt engineering
Fda gratis svg
Come interrogare le intelligenze artificiali
Iscriviti al corso gratuito

Iscriviti
all'area personale

Per ricevere Newsletter, scaricare eBook, creare playlist vocali e accedere ai corsi della Fastweb Digital Academy a te dedicati.