Condividi
Cos'è salt quando parliamo di crittografia sha e password in MySql
Cosa è "salt" quando ci si riferisce all'algoritmo di crittografia sha1 (Secure HAsh Algorithm) di MYSQL? Non ho idea di cosa sia questo Salt quando si tratta di crittografie con password sha1. Qualcuno può spiegarmi cos'è?
In Corso
1
MySql
03-04-2019
2 Risposte
1792 Visite
+3
Risposte ( 2 approvate )
Il "salt" è un valore o termine che viene aggiunto ad una password che si desidera criptare in un certo modo, aumentandone la robustezza e conseguentemente la sicurezza, può essere messo prima, dopo o da qualche parte all'interno della password, a condizione che la sua posizione e il suo valore siano coerenti per una determinata password fornita.
Il "salt" è particolarmente indicato per aumentare la sicurezza contro gli attacchi a dizionario, ossia ripetizioni automatizzate di accesso basati su liste (enormi) di password (spesso anche comuni). Se ogni password viene irrobustita con un "salt" di default, sarà molto più difficile per il maleintenzionato riuscire a craccarle.
Per quanto riguarda MySQL in particolare si è soliti fornire un salt quando si esegue l'hashing di una password, bisogna però ricordarsi non solo di memorizzare quel salt, ma anche in quale parte questo si combina con la password, poiché sottolineamo che poi non è possibile risalire alla password in chiaro una volta che questa è stata criptata con sha.
Quindi, quando un utente tenta l'autenticazione, si combina il valore salt registrato con la password e se l'hash risultante corrisponde alla password corretta allora il login viene effettuato correttamente, aumentandone di parecchio la sicurezza senza che l'utente utilizzatore si accorga di nulla, questo è il "salt".
Aggiungo alla abbondante spiegazione data da Giacomo su cos'è il salt e l'uso che se ne fà, un banale esempio di generazione di una password con salt: