Tutti gli hash delle password non salati sono intrinsecamente insicuri?

3

Forse mi manca qualcosa di ovvio ...

Tutte le password sono memorizzate in comuni algoritmi hash non salati in grado di essere attaccati tramite le tabelle arcobaleno?

    
posta Keltari 14.01.2015 - 00:44
fonte

5 risposte

4

Non tutte le password. Quando la password è sufficientemente lunga e casuale da non apparire in una tabella arcobaleno di dimensioni ragionevoli, la salatura è davvero superflua.

Lo scopo di un sale è di aumentare la lunghezza della password ad un livello in cui le tabelle arcobaleno non sono fattibili. Quando la password ha già abbastanza entropia, il sale diventa ridondante.

Quando i tuoi sali sono a 32 bit, richiedere circa 5 caratteri in più di lettere maiuscole e minuscole, lettere e caratteri speciali senza una relazione con una parola del dizionario sarebbe equivalente.

Tuttavia, le password utilizzate dall'utente medio non hanno abbastanza entropia da essere a prova di arcobaleno. Quindi, a meno che tu non abbia la capacità e l'autorità di imporre un criterio rigoroso per le password e che capiscano che non devono cercare di trovare scappatoie (hey, Password123! è di 12 caratteri caso misto con lettere e caratteri speciali! ), dovresti comunque usare la salatura.

    
risposta data 14.01.2015 - 11:06
fonte
3

Sì, anche se alcuni hash non salati, come l'hash Windows LM obsoleto , sono ancora peggiori a causa di carenze crittografiche.

Chiedere di salare o meno significa che il richiedente è interessato a conservare e proteggere le password, non a proteggere il proprio account. Anche con password a 128 caratteri completamente casuali, un amministratore con accesso a due siti sarà in grado di vedere se la password di 128 caratteri è stata riutilizzata, a meno che non ci sia un salt. Quindi sì, tutti gli hash non salati hanno un'insicurezza intrinseca, anche se una determinata password è al riparo da un attacco con una tavola arcobaleno.

Un altro problema con hash non salati è che due utenti con la stessa password avranno la stessa password con hash. Ciò significa che se gli hash delle password sono accessibili, sia da un compromesso o da un membro malintenzionato, le password duplicate sono ovvie. Anche se non riescono a rompere l'hash, un attacco di ingegneria sociale su uno concede l'accesso a tutti. (O uno degli utenti vede che possono accedere agli altri)

La salatura è estremamente economica e non c'è motivo di implementare un sistema di memorizzazione delle password senza di essa.

Ancora meglio, chiediti se hai davvero bisogno di memorizzare le password

    
risposta data 14.01.2015 - 03:03
fonte
1

Se si fa riferimento a algoritmi di hashing della password "comuni" come SHA1 e MD5 che vengono utilizzati senza sale, non è nemmeno necessaria una tabella arcobaleno, un database di ricerca hash inverso è sufficiente per la maggior parte delle password dell'utente finale scarsamente selezionate. Ad esempio: md5("password") risulterà sempre in 5f4dcc3b5aa765d61d8327deb882cf99 , quindi quando trovi il hash 5f4dcc3b5aa765d61d8327deb882cf99 sai che sarà la password. Prova a cercare google per 5f4dcc3b5aa765d61d8327deb882cf99 o qualsiasi altro hash che ti è successo.

    
risposta data 14.01.2015 - 02:14
fonte
1

Come sempre, per prima cosa leggi la risposta di Thomas Pornin su Come fare in modo sicuro le password di hash?

Il sommario per salting, supponendo che tu abbia più di una password nel tuo database e che il database sia trapelato (vedi Sony, Adobe, Forbes, ecc.) quindi un aggressore (cracker, criminale, ricercatore di sicurezza, high school annoiato studente, squadra di cracking della concorrenza, ecc.)

  • Con un sale unico per utente e un buon hash
    • l'utente malintenzionato deve eseguire l'hash di ciascuna password candidato per utente e quindi confrontarlo con l'hash, perché c'è un risultato diverso per ogni sale.
    • Maggiore è il numero di utenti che hai con password non ancora disconnesse, più tempo è necessario per provare ciascun candidato.
    • Non è inoltre possibile stabilire quali utenti hanno la stessa password.
  • Con un singolo salt per tutti gli utenti, solitamente chiamato "epic fail"

    • L'autore dell'attacco conosce già quali utenti hanno la stessa password di un altro utente, ovvero informazioni utili
    • L'utente malintenzionato deve eseguire l'hash di ciascuna password del candidato una volta totale, quindi confrontare il singolo risultato con ogni hash della password.
      • Pertanto, questo è N volte peggiore di un unico Sali per utente, dove N è il numero di record utente
    • Se l'attaccante ottiene il tuo sale, l'attaccante può anche iniziare a calcolare gli hash delle password dei candidati PRIMA di ottenere le tue password; un grande risparmio di tempo.
  • Senza sale, o un singolo sale che è stato usato prima da quell'attaccante (come "sale")

    • L'autore dell'attacco conosce già quali utenti hanno la stessa password di un altro utente, ovvero informazioni utili
    • L'utente malintenzionato deve eseguire l'hash di ciascuna password del candidato una volta totale, quindi confrontare il singolo risultato con ogni hash della password.
      • Pertanto, questo è N volte peggiore di un unico Sali per utente, dove N è il numero di record utente
    • Se hai utilizzato un algoritmo di hashing comune, l'utente malintenzionato può semplicemente estrarre i record precedenti di hash che hanno calcolato in passato e confrontarli con il tuo database
    • L'attaccante può anche iniziare a calcolare gli hash delle password dei candidati PRIMA di ottenere le tue password; un grande risparmio di tempo.
risposta data 15.01.2015 - 05:53
fonte
0

Un sale è fondamentalmente un valore casuale che viene aggiunto a una password prima di essere sottoposto a hash e memorizzato. Il risultato è che una password di "patata" di una persona apparirà diversa dalla password di "patata" di un'altra persona.

Le tabelle di Ranbow sono un enorme elenco di hash per un lungo elenco di termini e frasi diversi, più comunemente per l'uso di password. Se la tua password patata è in una tavola arcobaleno un sale impedirà che si rompa. Se la tua password di patate non è salata E esiste nella tabella arcobaleno, probabilmente sei sfortunato.

Il grado di risparmio principale che hai contro una password non salda è la speranza che non sia contenuto nella tabella arcobaleno che ti attacca. Ad esempio, le persone possono creare tabelle arcobaleno per tutte le parole nel dizionario, ma se la tua password non è nel dizionario e non è salata, quella tabella arcobaleno non ti prenderà.

    
risposta data 14.01.2015 - 14:32
fonte

Leggi altre domande sui tag