L'hash di una password salata rende più semplice l'eliminazione di un hash non salato della stessa password?

2

Mi è stato chiesto di implementare un sistema per impedire il riutilizzo delle password sullo stesso account.

Il modo più sicuro che conosco per fare questo è confrontare gli hash della password + un sale noto. bcrypt.hash(sha256(password), user.savedSalt))

Il resto del sistema utilizza uno sha256 salato separato - bcrypt.hash(sha256(password), 10) .

Questi due hash rivelano diverse informazioni sulla password originale.

Avere entrambi rende più semplice cracking l'hashish salato?

    
posta Michael Cole 04.05.2018 - 01:13
fonte

2 risposte

3

Se si memorizzano gli hash di più password con lo stesso sale, si sta vanificando lo scopo dell'utilizzo di un sale. Salt deve essere unico per ogni password, altrimenti un utente malintenzionato potrebbe calcolare H (password || salt) solo una volta per ogni password candidato e confrontare il digest risultante con ogni hash nel tuo database, perché usano tutti lo stesso salt .

Inoltre, come menzionato nei commenti, sembra che tu stia confondendo il parametro di costo per qualcos'altro. Il "10" specifica quanti calcoli eseguiranno l'operazione bcrypt. Un valore maggiore aumenta il costo per gli attaccanti rendendo l'operazione più dispendiosa dal punto di vista computazionale.

Se si desidera verificare la presenza di password duplicate, non è necessario elaborare uno schema homebrew come questo. Se lo desideri, puoi prendere la password fornita, concatenarla con il salt del primo utente e cancellarla e confrontarla con l'hash memorizzato. Se non corrisponde, fai lo stesso per il secondo utente e così via. Ciò significa che ogni nuova password impostata richiederà l'attraversamento dell'intero database, ma rileverà le password che sono duplicati esatti.

    
risposta data 04.05.2018 - 01:50
fonte
-1

"L'hash di una password salata rende più semplice l'eliminazione di un hash non salato della stessa password?"

Ho trovato alcuni posti in cui la gente diceva che questo era teoricamente vero, ma nessuno ha citato alcun lavoro su di esso o qualcosa di pratico.

"Il sale deve essere univoco per ogni password ..."

Questo non è vero. Impostiamo un valore per utente che ricorda le ultime password degli utenti. I sali servono a sconfiggere le tabelle arcobaleno e il calcolo di una tabella arcobaleno per utente per 3 password sembra inefficiente come il calcolo delle tabelle per una password.

    
risposta data 07.05.2018 - 03:45
fonte

Leggi altre domande sui tag