Glossario

Sale (salt)

sale della passwordsale crittografico

Un sale è un valore unico aggiunto a ogni hashing di password o derivazione di chiave per far produrre output diversi a input uguali.

Definizione

Un sale è un valore aggiunto a una password o a un altro input prima dell'hashing di password o della derivazione di chiave. Il suo compito principale è rendere unico l'output derivato anche quando due utenti scelgono la stessa password.

Di solito un sale non deve essere segreto. Viene memorizzato con l'hash o con l'output codificato in modo che il verificatore possa ripetere lo stesso calcolo in seguito.

Come funziona

Per ogni password, il sistema genera un nuovo sale casuale e passa password e sale a una funzione di hashing delle password come Argon2id, bcrypt o PBKDF2. Durante la verifica, il sale memorizzato viene riutilizzato con la password candidata.

I sali unici impediscono a password uguali di produrre hash memorizzati uguali e rendono molto meno utili le tabelle precalcolate. Non trasformano password deboli in password forti; la funzione di hashing deve comunque avere parametri di costo adeguati.

Sale, chiave, pepper e nonce

Un sale fornisce unicità pubblica, non una chiave segreta di autenticazione. Un pepper è un valore segreto separato conservato fuori dal database delle password, mentre un nonce è un numero usato una sola volta in uno specifico protocollo o in una specifica operazione di cifratura.

Nei nuovi sistemi genera sali con una fonte casuale crittograficamente sicura e, quando possibile, lascia che la libreria di hashing li memorizzi nel proprio formato codificato standard.

Domande frequenti

No. Deve essere unico e preferibilmente casuale, ma può essere memorizzato accanto all'hash.

Non dovrebbero. I sali casuali rendono improbabile il riuso e impediscono che password uguali appaiano come hash uguali.

No. Usa una funzione di hashing delle password con parametri di costo adatti, sali casuali sicuri, limitazione dei tentativi e monitoraggio.

Vedi anche