Come trasformare un hash in una password utilizzabile?

1

Leggevo su PwdHash e mi ha ispirato a creare un piccolo progetto in cui inserisci una password principale e un alias facile da ricordare in un hash della password, come bcrypt, e quindi ottieni un hash.

Fin qui tutto bene; che l'hash dovrebbe essere abbastanza sicuro e nessuno dovrebbe essere in grado di indovinare la mia password principale da esso.

Il problema è che questo hash non è realmente una password utilizzabile. Ad esempio, il sito web ha tutti i tipi di requisiti per la password come non più di 20 caratteri, deve contenere il simbolo, il numero, la lettera minuscola e la lettera maiuscola, non deve iniziare con un numero, ecc ...

Quindi: hash + requisiti = password utilizzabile

Ma ho una preoccupazione. È possibile che applicando i requisiti all'hash per produrre una password utilizzabile, perderò parte della sicurezza che l'hash produce?

Ad esempio, supponiamo che l'hash sia composto da 60 caratteri e che la password non possa contenere più di 20 caratteri. È male prendere solo i primi 20 caratteri dell'hash? Sarebbe meglio produrre i 20 caratteri della password combinando insieme i 60 caratteri dell'hash?

Quindi la domanda generale è:

Come dovrei procedere a creare una password utilizzabile da quell'hash? Devo preoccuparmi?

    
posta Gudradain 22.01.2015 - 05:46
fonte

3 risposte

1

Per un buon algoritmo di hashing (e a meno che tu non abbia estratto il tuo hash, probabilmente ne stai usando uno abbastanza buono), tutti i bit dovrebbero essere pseudocasuali.

Una password di 20 caratteri è effettivamente più debole di una password di 60 caratteri, ma una password di 20 caratteri è ugualmente sicura di un'altra se sono ugualmente casuali. Combinare un hash di 60 caratteri in 20 caratteri non aggiungerebbe più casualità dei soli 20 caratteri.

Quando si tratta di progettare una password, le principali minacce (indovina strategica della tua password, forza bruta, prova della tua password su tutti i tuoi profili online) possono essere mitigate semplicemente usando una password diversa, lunga e casuale per ciascun sito web. Il livello di casualità fornito dal troncamento di una funzione di hashing è sufficiente.

    
risposta data 22.01.2015 - 08:01
fonte
0

Interrompi l'aggiunta della complessità inutile

Questo aggiungerebbe solo un passo per costruire la password ...

In caso di forza bruta, l'attaccante potrebbe usare lo stesso strumento che hai scelto per fare questo passo automaticamente.

In realtà, questo non aggiungerà molto lavoro per l'attaccante, ma aggiungendo il passaggio per gli utenti, potrebbero anche contribuire a rivelare la password per errore dell'utente.

Utilizza passphrase anziché password quando possibile.

    
risposta data 23.03.2015 - 09:42
fonte
-1

Per prima cosa non sono convinto delle affermazioni di PwdHash. L'idea non è male ma la loro implementazione sembra traballante. Suggerirei di creare un'implementazione specifica del sito anziché utilizzare un'estensione del browser che genera password per te. È facile da fare (lo faccio da solo). Il vantaggio di questo è che non devi saltare attraverso i cerchi per rendere la tua password compatibile con i requisiti di complessità. Inoltre, non sei bloccato in alcun algoritmo che PwdHash scelga di utilizzare. Se vieni con qualcosa da te, sarà sempre meno prevedibile rispetto a PwdHash per principio.

    
risposta data 22.01.2015 - 05:55
fonte

Leggi altre domande sui tag