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 2
MySql 03-04-2019 2 Risposte 1762 Visite +3

Risposte ( 2 approvate )

  1. Giacomo Barrile
    +1
    03-04-2019 22:54:22
    Rispondi

    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".

  2. Michele Brughese
    0
    03-04-2019 22:59:15
    Rispondi

    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:

    $salt = "il mio salt";
    $password = "L4Mi4Password";
    $hash = sha1($salt.$password);

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

Andrea De Sposito

Andrea De Sposito

Autore di questa domanda

 Domanda Precedente

 Elenco Domande 

Domanda Successiva