Capire quali sono gli hash delle password per permetterti di violare tutte le password identiche?

3

Perdonami, dato che sono molto nuovo alla crittografia, ma sembra interessante e ho una domanda.

Affermo le mie convinzioni e mi sento libero di correggermi sugli aspetti che mi sbaglio, così posso imparare:

Ecco cosa penso di sapere:

  1. Quando si tenta di proteggere una password, passa attraverso una funzione di hash (ad esempio SHA-1) e l'hash risultante viene archiviato nel database anziché nella stessa password effettiva.
  2. Ogni volta che si tenta di accedere e si digita la password, la loro voce viene sottoposta a hash e quindi confrontata con il valore hash nel database
  3. Quindi questo significa che per un dato sistema di login, se digito "password1", ha sempre lo stesso valore di hash?

  4. Se così fosse, allora non tutti i membri di un sistema di accesso che hanno la stessa password hanno lo stesso valore di hash nel database? Oppure esiste un'ulteriore forma di sicurezza / differenziazione implementata per ciascun utente, in modo che la mia "password1" non abbia lo stesso valore hash della "password1" di un altro utente?

posta user1299028 18.08.2014 - 23:16
fonte

3 risposte

7
  1. Sì, una specie di. Idealmente sono memorizzati due valori. Un unico sale e un hash del sale + password. Un sale globalmente unico viene generato e memorizzato per ciascuna password.

  2. Di nuovo, una specie di. Prima il sale per quell'account utente viene recuperato dal database, quindi la password salt + viene sottoposta a hash e confrontata con il valore hash sotred nel database.

  3. No, perché il sale sarà diverso per ogni utente, risultando in un diverso valore hash finale per ciascun utente.

  4. Vedi 3. Il sale è il componente aggiuntivo di sicurezza / differenziazione che impedisce agli hash di essere gli stessi.

risposta data 18.08.2014 - 23:24
fonte
3

True

Tutti i membri con la stessa password hanno lo stesso hash, a meno che l'hash non sia stato salato con un valore casuale.

Infatti il valore hash per "password1" è sempre lo stesso indipendentemente dall'applicazione web

    
risposta data 18.08.2014 - 23:26
fonte
1

Stranamente, a tutte le tue domande viene data una risposta con la stessa parola: salt

Un sale è in genere un valore casuale di grandi dimensioni (128 bit).

In primo luogo, viene generato un sale unico per ogni password. Ora, invece di eseguire l'hashing della password e archiviarla, aggiungiamo il sale alla password e quindi cancelliamo il risultato. Ora, memorizziamo il sale e l'hash nel database. Ogni volta che l'utente prova ad accedere, aggiungiamo il sale ed eseguiamo la stessa tecnica di hashing per assicurarci di ottenere lo stesso hash del database.

Questo ha la proprietà che ogni hash memorizzato sarà unico e ogni password (anche la stessa identica password) avrà un hash diverso (perché il sale è univoco).

    
risposta data 19.08.2014 - 11:32
fonte

Leggi altre domande sui tag