Domanda:
Le password errate producono hash salati scadenti?
Crizly
2014-10-28 02:14:41 UTC
view on stackexchange narkive permalink

Quando hai una password archiviata in un database che è stato fortemente sottoposto a hashing e salato, è davvero importante se la password utente sottostante è debole?

Se imposti funzionalità come limitare la possibilità di indovinare l'accesso e utilizzare captcha per smetti di indovinare automaticamente puoi effettivamente compensare una password debole come " password "?

Immagino che la mia domanda sia se usare una password come "password" rende l'hash salato più debole rispetto all'utilizzo di una password più lunga come " fish& * n0d1cTionaRYatt @ ck "? - Tutti gli hash salati sono altrettanto sicuri o dipende dal fatto che la password sia valida?

Penso che tu stia confondendo i modelli di minaccia.
@schroeder Presumo che il tuo punto sia che captcha e sali vengono utilizzati per proteggere da due scenari di minaccia completamente distinti.
Le password deboli saranno le prime che un utente malintenzionato utilizzerà quando proverà a indovinare la tua password ... Salt / hash non ha importanza qui.
Mettiamo da parte il fatto che mentre "fish & * [email protected]" è una * più * * password, è probabilmente altrettanto cattiva o peggiore di "password", la prendo?
Bene, sono * quasi * ortogonali, ma non del tutto: è più probabile che le password deboli si trovino nelle tabelle arcobaleno che incorporano i valori salt.
Sette risposte:
#1
+86
Xander
2014-10-28 02:23:16 UTC
view on stackexchange narkive permalink

Gli hash salati sono progettati per proteggere dagli aggressori che possono attaccare più hash contemporaneamente o creare tabelle arcobaleno di valori hash precalcolati. Questo è tutto. Non fanno nulla per migliorare la forza sottostante della password stessa, debole o forte.

Ciò significa anche che non sono progettati per difendersi dagli attacchi online, quindi non hanno alcun impatto sulla capacità di un utente malintenzionato di manipolare il modulo di accesso, dove il sale è irrilevante, perché un utente malintenzionato non sta elaborando hash direttamente, ma inserendo le password candidate in un modulo che può essere (come hai detto) limitato o protetto da un captcha.

Le password deboli sono deboli. Le password complesse sono forti. I sali non influenzano in alcun modo questa equazione.

#2
+38
Alexander
2014-10-28 13:00:07 UTC
view on stackexchange narkive permalink

Devi considerare due vettori di attacco:

  • Attacco online
  • Attacco offline

Limitare le ipotesi di accesso aiuta contro gli attacchi online.
Supponiamo che siano tre volte, ciò significa che un utente malintenzionato può testare TUTTI gli account per le tre password più comuni che si adattano alla tua politica sulle password (che ne dici di "password", "12345678" e "12345 "?).

Il saling aiuta contro gli attacchi offline
Gli stessi hash non salati sono la stessa password in chiaro. Quindi ogni hash deve essere calcolato una volta, non una per ogni sale. Anche con un sale, l'attaccante può ancora provare un attacco con dizionario e nessuno (tranne il suo limite di potenza di calcolo) lo fermerà, perché la tua regola dei "tre colpi" non si applicherà qui.

Le password deboli riducono la sicurezza in entrambi i casi
Attacco online : se consenti password comuni (come "password" o "12345"), gli aggressori potranno violare 5 % dei tuoi account in tre ipotesi.
Attacco offline : qui proveranno anche prima le password più comuni, ovviamente. Quindi, se calcolano 3 hash per utente, hanno già infranto il 5% degli account ...

"proveranno prima anche le password più comuni" +1 questo è molto importante, soprattutto se il sale non è per utente
#3
+7
Abe Miessler
2014-10-28 02:23:34 UTC
view on stackexchange narkive permalink

Salting / hashing è ottimo se il tuo database viene rubato, ma non ha nulla a che fare con gli attacchi al dizionario che potrebbero avvenire attraverso la normale procedura di login.

Come hai detto, limitare il numero di tentativi di login e usare CAPTCHA può rendere inefficaci gli attacchi a dizionario che avvengono tramite la normale procedura di login, ma il salting (o meno) non avrà alcun effetto su quel tipo di attacco.

Anche con i tentativi di accesso limitati e CAPTCHA in atto, consentire password super deboli non è una buona idea e se un utente malintenzionato è abbastanza determinato o vede abbastanza valore, può trovare modi per sfruttare quella debolezza.

#4
+4
DavidF
2014-10-28 02:22:57 UTC
view on stackexchange narkive permalink

No, un punto dell'hashing salato è ottenere una buona casualità nell'hash indipendentemente dal materiale di partenza.

Tuttavia, questo non ci libera di usare password errate. Un buon hashing protegge solo da un vettore di attacco: quello in cui l'intruso ruba il file con gli hash. Esistono così tanti altri vettori di attacco alle password ... spallamento, forzatura bruta, forzatura bruta modificata (con ipotesi iniziali intelligenti e così via) ... che le buone password sono ancora importanti.

L'hashing salato proteggerà buone password ma non ti salveranno da quelle cattive.

#5
+1
user3799089
2014-10-28 02:27:53 UTC
view on stackexchange narkive permalink

In generale, la cosa più importante è la lunghezza della password. Ma è vero che una password facile potrebbe essere scomposta più facilmente di una casuale. Ad esempio, quando stai cercando di indovinare un hash utilizzando tabelle arcobaleno. Se è una parola normalmente usata come "gatto", è più probabile che tu possa averla in questa tabella che "07OFmy3HOY3l9e1gCNww7nNpd5lQ8I9an"; D

#6
+1
djechlin
2014-10-28 04:56:06 UTC
view on stackexchange narkive permalink

In teoria:

se l'attaccante non ha creato una tabella arcobaleno, se una password di una certa forza può essere violata in 1 unità di tempo, allora N password di quella forza possono essere violate in O ( 1) tempo senza sale e tempo O (N) con sale. Questo è ciò che fa il sale. Nessun vantaggio su una password fissa; mostra un vantaggio rispetto a più password.

Se l'attaccante ha una tabella arcobaleno, senza sale, una password debole - in questo caso "debole" significa "già nella tabella arcobaleno" - è buona quanto nuda. Con il sale sarà comunque necessario decifrarlo in tutti i secondi che potrebbero richiedere.

In pratica: la forza della password è molto più importante di tutto questo. A volte i tavoli arcobaleno sono mera comodità; se hai un milione di password così deboli, sono permeabili anche salate.

#7
+1
gnasher729
2014-10-28 17:45:34 UTC
view on stackexchange narkive permalink

Se hai scelto una delle tre password deboli "love", "dog" e "cow" e un database di password è andato perso: senza sali, posso provare queste tre password e trovare immediatamente tutti nell'intero database utilizzando queste tre password deboli. Con la salatura, devo provare ad amare + il tuo sale, il cane + il tuo sale, la mucca + il tuo sale per decifrare la tua password se era ridicolmente debole, quindi ripetere lo stesso con tutti nel database.

Se un hacker ti attacca in modo specifico, il salting non aiuta. Aiuta solo rendendo impossibile attaccare l'intero database, richiedendo invece un attacco contro ogni singolo utente nel database.

-1 per l'uso della parola "impossibile" in un contesto di sicurezza / crittografia.
Questo è semplicemente sbagliato. Se un hacker ha già una tabella arcobaleno - cosa che probabilmente fa - la tua password potrebbe essere una ricerca hash per rompere non salata ma forte come la sua entropia salata.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...