Vai al contenuto principale

Blog/L'ABC della sicurezza onlineBusiness/

Salting delle password: un metodo per migliorarne la sicurezza

Ruta Tamosaityte

Autrice di contenuti

an image with the NordPass branding and the headline saying "Password Salt"

Creare una password complessa è un ottimo punto di partenza, ma la sua sicurezza dipende anche da quella del servizio presso il quale è memorizzata. Anziché salvare le credenziali come testo in chiaro, la maggior parte dei provider utilizza un processo chiamato "hashing" per trasformare una password in una stringa di caratteri detta "hash della password". Il problema è che la stessa password genererà sempre lo stesso identico hash: i criminali informatici che hanno a disposizione elenchi di hash di password rubate possono quindi decifrarle in blocco senza difficoltà.

È qui che entra in gioco il salt. Si tratta di una misura di sicurezza che aggiunge un valore univoco a ogni password prima che venga sottoposta a hashing, garantendo che anche le credenziali identiche abbiano hash completamente diversi. Quindi, come funziona esattamente il salting delle password e in che modo migliora la tua sicurezza? Scopriamolo insieme.

Cos'è il salting delle password?

Il salt è una sequenza casuale di bit che viene aggiunta a una password prima che venga sottoposta ad hashing delle password mediante un apposito algoritmo. Poiché il salt è diverso per ogni utente, anche gli hash assegnati a ciascuna password sono univoci. La principale finalità del salting è quindi garantire che anche le password identiche abbiano valori di hash completamente diversi.

Come funziona il salting delle password?

Immagina che due persone diverse scelgano una delle password più comuni, ad esempio "giallo". In assenza di salting il sistema genererebbe lo stesso identico hash crittografico, o valore di hash, per entrambi gli account: tutt'altro che l'ideale per la sicurezza.

Il salting risolve questo problema aggiungendo una serie di caratteri univoci e casuali, detta "salt", a ogni password prima che venga sottoposta a hashing. Quindi, riprendendo l'esempio precedente, la password di un utente diventerà qualcosa di simile a "giallo#1Gn%", mentre quella dell'altro "giallo9j?L". Il risultato è che, anche in caso di password identiche, i loro valori di hash finali saranno completamente diversi. Dopodiché il sistema memorizza insieme nel proprio database sia l'hash che il salt univoco, associati all'account dell'utente.

Quando l'utente tenta di accedere, come di consueto inserisce la sua password; il sistema recupera dal database il salt associato a quell'utente, lo combina con la password appena digitata e controlla se il valore di hash risultante corrisponde a quello memorizzato. Grazie a questo semplice passaggio, per i criminali informatici è molto più difficile violare le password, anche se riuscissero ad accedere al database.

hashing-scheme

Quali tipi di attacchi si possono contrastare con il salting delle password?

Violare una password è, fondamentalmente, come risolvere un indovinello con un ritmo frenetico. I criminali informatici usano computer molto potenti e tecniche specializzate per risalire alla combinazione giusta. Riescono a farlo in tre modi principali:

Attacco di forza bruta

Gli attacchi di forza bruta sono il metodo più semplice per cercare di violare le password sottoposte a hashing. Consiste nel cercare di indovinare ogni possibile combinazione di password, provandole tutte attraverso un programma informatico che testa un numero pressoché infinito di abbinamenti. Una volta ottenuta una corrispondenza, i malintenzionati sanno qual è la password originale. I metodi di forza bruta sono uno dei motivi principali per cui è bene che le password contengano almeno 12 caratteri: di solito, infatti, questi attacchi hanno maggiore successo con le password più brevi. Più sono lunghe le password e maggiore è la potenza di calcolo necessaria per violarle.

Attacchi a dizionario

Gli attacchi a dizionario rappresentano una versione più sofisticata del metodo di forza bruta. Invece di cercare di indovinare a caso, il computer prova le parole e le combinazioni di caratteri più comuni. Questo è il motivo per cui gli attacchi a dizionario diventano più efficienti dopo ogni violazione di dati: i criminali riescono infatti a capire meglio come creiamo le nostre password.

Tabelle arcobaleno

Un attacco con tabelle arcobaleno è una variante di un attacco di forza bruta, in cui gli hacker utilizzano le cosiddette tabelle arcobaleno – ovvero database precompilati di password con hash decifrate – per violare gli hash delle password contenute in uno specifico database. Gli hacker cercano nelle loro tabelle arcobaleno per trovare l'hash desiderato. Proprio come avviene nel caso degli attacchi a dizionario, anche le tabelle arcobaleno diventano sempre più efficienti dopo ogni violazione di dati.

Come il salting difende le tue password

Il salting delle password contrasta in modo diretto tutti questi attacchi, in particolare il metodo estremamente efficace delle tabelle arcobaleno. È bene però ricordare che non tutti i metodi di salting sono uguali:

Salting statico: una difesa limitata

Questo approccio prevede l'aggiunta di un salt fisso a ogni password nel sistema. Benché avere un salt sia meglio che niente, così facendo si crea un singolo punto di vulnerabilità: se un criminale riuscisse a scoprire il salt statico, potrebbe creare una nuova tabella arcobaleno specifica per quel salt, rendendo così l'intero database di password memorizzate di nuovo vulnerabile.

Salting dinamico: lo standard di riferimento

Il salting dinamico è un metodo impiegato nei sistemi moderni e più sicuri, che genera un salt univoco e casuale per ogni singolo utente. Questo salt viene conservato insieme alla password dell'utente sottoposta a hashing.

Questo approccio rende inutili le tabelle arcobaleno, dal momento che ogni utente ha un salt univoco; di conseguenza, due persone con la stessa identica password avranno valori di hash completamente diversi nel database. Una tabella precalcolata è perfettamente inutile quando non ci saranno mai due hash corrispondenti. Ciò costringe inoltre i criminali informatici a usare metodi più lenti: non potendo usare la scorciatoia delle tabelle arcobaleno, dovranno cercare di violare una per una tutte le password memorizzate, il che è un processo molto più tedioso e complicato.

Le buone prassi per il salting delle password

I requisiti che rendono robusto il salt di una password sono simili a quelli di una password forte: deve essere univoco, lungo, complesso e impossibile da prevedere. Ecco cosa fare per assicurarti che il salt delle tue password sia affidabile:

  1. Rendilo casuale: per il salt di una password non usare mai parole reperibili su un dizionario, oppure nomi di utenti.

  2. Rendilo complesso: crea combinazioni di lettere maiuscole e minuscole, numeri e caratteri speciali come &, @, # e così via.

  3. Fai in modo che sia lungo: la lunghezza ideale del salt di una password dovrebbe corrispondere a quella dell'output dell'hash.

  4. Evita i salt già usati in precedenza: per essere sicuro, ogni salt di password deve essere impiegato una sola volta. Un utente dovrebbe generare un nuovo salt ogni volta che modifica una password o crea un nuovo account.

  5. Mantieni gli hash al sicuro: conserva gli hash e i salt corrispondenti in un formato sicuro e crittografato. È fondamentale utilizzare solide misure di sicurezza per proteggere il database in cui sono memorizzati i salt e gli hash, così da impedire gli accessi non autorizzati.

Gli errori comuni da evitare quando si effettua il salting delle password

Il salting delle password può essere un valido strumento per migliorare notevolmente la sicurezza generale. Tuttavia, è importante tenere in considerazione le insidie più comuni che possono pregiudicare l'efficacia di questo metodo: comprendere tali errori è fondamentale se si vuole implementare una strategia di salting realmente efficace. Ecco alcuni degli errori più comuni da evitare quando si effettua il salting delle password.

Hash brevi e prevedibili

Anche se il salting aggiunge un ulteriore livello di sicurezza, la forza dell'hash finale rimane sempre un aspetto importante. Se l'hash è eccessivamente breve o semplice, indebolisce la sicurezza complessiva della conservazione delle password. Il motivo è presto detto: un hash breve limita il numero di possibili valori di hash, il che a sua volta rende più facile per i malintenzionati usare dei metodi di forza bruta per violare le password. Lo stesso discorso vale per gli hash semplici e prevedibili. Quando effettui il salting, assicurati che l'algoritmo di hashing selezionato generi un output lungo e complesso.

Hash utilizzati più volte

Uno dei principi fondamentali per utilizzare in modo efficace il salting delle password è l'unicità; ogni password dovrebbe infatti avere il proprio salt univoco. Riutilizzare gli stessi hash per molteplici elementi è sostanzialmente paragonabile a usare una sola password per diversi siti e servizi. Il riutilizzo degli hash consente ai malintenzionati di sfruttare con grande efficienza tecniche di attacco come quelle basate su tabelle arcobaleno.

Database open source

Anche se l'utilizzo di un database open source per conservare le password può avere i suoi vantaggi, è fondamentale essere consapevoli del fatto che, in assenza di ulteriori configurazioni di sicurezza, questi database possono diventare una gallina dalle uova d'oro per i criminali informatici. Molto spesso i malintenzionati hanno familiarità con le configurazioni comuni dei database open source e possono facilmente sfruttarne le vulnerabilità note. Se perciò stai usando un database open source, o hai intenzione di farlo, assicurati di implementare robuste misure di sicurezza, di personalizzare le impostazioni in modo diverso da quelle predefinite e, ultimo ma non meno importante, di mantenere sempre aggiornato il software.

Le buone prassi per la sicurezza delle password

  • Creare password complesse e univoche

Le fondamenta di un'eccellente sicurezza delle password poggiano sulla creazione di sequenze complesse per ogni account. Una password forte deve avere una lunghezza di almeno 12 caratteri e contenere una combinazione di lettere maiuscole e minuscole, numeri e simboli. Le password univoche sono importanti poiché garantiscono che, anche in caso di violazione di una password, tutti gli altri account rimarranno al sicuro.

  • Abilitazione dell'autenticazione a più fattori nella sicurezza delle password

L'autenticazione a più fattori (MFA) aggiunge un ulteriore livello di sicurezza, poiché richiede agli utenti di fornire due o più fattori di verifica per accedere ai propri account. Nella maggior parte dei casi, l'autenticazione MFA combina qualcosa che conosci (le tue password) e qualcosa che possiedi (il tuo smartphone, tablet, ecc.) e, in alcuni casi, qualcosa che ti contraddistingue fisicamente (dati biometrici come impronte digitali o volto). L'MFA riduce notevolmente il rischio di accessi non autorizzati, anche se una password dovesse essere violata.

  • Educare gli utenti all'igiene delle password

Le persone devono essere consapevoli e comprendere chiaramente i rischi associati alle password deboli. Dovrebbero inoltre capire perché le buone prassi in materia di sicurezza, come non riutilizzare le credenziali per account diversi e usare un gestore di password per i propri dati sensibili, permettono di rimanere più al sicuro. Le attività di formazione possono aiutare a sensibilizzare sull'importanza di gestire correttamente le proprie password.

  • Integrare il salting delle password nelle politiche di sicurezza dell'azienda

Il salting delle password dovrebbe essere una parte integrante della strategia di sicurezza generale della tua azienda. Le aziende dovrebbero adottare misure e implementare politiche in base alle quali i salt delle password siano univoci per ogni utente, e garantirne la conservazione sicura.

  • Utilizzo di un gestore di password affidabile

Un gestore di password affidabile come NordPass può migliorare notevolmente la tua vita online. Strumenti come NordPass ti permettono di  conservare in modo sicuro le password e altri dati sensibili come informazioni personali, carte di credito e file. Per le aziende, un gestore di password come NordPass Business può migliorare in modo significativo la sicurezza globale, aiutare l'azienda a soddisfare i requisiti di conformità e, in generale, ridurre il rischio di accessi non autorizzati.

FAQ