Imparare il gergo della sicurezza delle password: Peppering della password

Abbiamo già spiegato perché mantenere le password in chiaro sia una pessima idea. Per soddisfare gli standard minimi di sicurezza informatica, i fornitori di servizi devono conservare le tue credenziali nel forma sottoposta a hashing. Alcuni vanno anche oltre e aggiungono un po' di condimento — un salt — a una password prima di sottoporla a hashing. Ma c'è un altro modo per aumentare la protezione delle password: i pepper.

Cos'è un password pepper?

Un pepper è un valore segreto aggiunto alla password prima dell'hashing. Può essere considerato un secondo salt, ovvero un altro input per cambiare completamente il risultato dell'hash. Tuttavia, a differenza di un salt, non viene memorizzato nel database insieme agli hash. Ma innanzitutto: perché abbiamo bisogno di salt e pepper?

La prassi comune in materia di sicurezza consiste nel far passare le password attraverso una funzione unidirezionale chiamata hashing, senza mai memorizzarle in chiaro. L'algoritmo di hashing prende i dati e li traduce in un insieme di caratteri completamente diverso e irriconoscibile: l'hash della password. Quando si tenta di accedere, l'hash della password viene confrontato con quello del database. Se corrispondono, l'accesso è possibile.

Il problema è che i criminali informatici possono far passare le password comuni attraverso gli stessi algoritmi. Quando vedono una corrispondenza con l'hash, conoscono la password originale. Quindi, per proteggere le tue password da attacchi a dizionario (ipotesi sulle parole esistenti) e tabelle arcobaleno (database di hash precalcolati), i crittografi aggiungono i salt.

Il salt è una stringa casuale di caratteri aggiunta alla password per rendere il risultato dell'hash completamente diverso. Quindi un hacker non può semplicemente cercare il valore di hash di una password "greentrees", poiché un salt la trasformerebbe in qualcosa del tipo "greentreesF&i$#u". Il malintenzionato dovrebbe utilizzare un attacco di forza bruta: indovinare ogni possibile combinazione per ogni password, con il risultato di rallentare notevolmente il processo di hacking.

Il pepper è simile al salt: una sequenza di bit casuali aggiunti alla password prima che questa venga sottoposta a un algoritmo di hashing. Ma, a differenza di un salt, non viene conservato nel database insieme al valore di hash. Di solito è codificato nel codice sorgente del sito web.

Pro e contro

Il più grande vantaggio di un pepper è il fatto di non essere conservato nel database. In questo modo, in caso di violazione dei dati, anche con l'accesso a tutte le password con hash, il pirata dovrebbe comunque usare un metodo "forza bruta" per attaccare il database.

Tuttavia, poiché il pepper è codificato in modo fisso, di solito è composto dalla stessa sequenza di bit per ogni password e non può essere modificato. Quindi, in seguito a una violazione dei dati, il pepper potrebbe creare più problemi che altro. Inoltre, la maggior parte degli algoritmi di hashing avanzati sono stati concepiti per essere utilizzati con i salt. Quindi, l'implementazione dei pepper potrebbe risultare poco pratica.

In fin dei conti, una cosa rimane chiara: bisogna utilizzare sempre password forti e complesse. Non si può mai essere certi della sicurezza dell'algoritmo di hashing utilizzato dal fornitore di servizi. E le password come il nome del tuo animale domestico o il tuo film preferito sono sempre le prime a essere decifrate.

Iscriviti alla newsletter di NordPass

Ricevi le ultime notizie e i suggerimenti di NordPass direttamente nella tua casella di posta.