È sicuro che un account possa usare "test123!" come loro password?

1

Sto lavorando per rafforzare la sicurezza per il livello auth della mia app e attualmente sto facendo una chiamata sulla complessità che richiedo per le password.



Esiste una raccomandazione "standard" per la complessità?

Il requisito attuale è così:

8 char minimum
a-z
At least one number
At least one of the following: !@#$%^&*

Quindi, se qualcuno dovesse scegliere test123! come propria password, la mia app consentirebbe loro di usarlo come password.

Si tratta di "due volte" la complessità richiesta dalla mia banca per l'accesso al mio account. Permettono ancora 5 char, a-z, 0-9 per le password, il che mi sembra pazzesco. Ma anche loro non sembrano soffrire di un'epidemia di attacchi, quindi deve ostacolare gli hack in modo perfetto, "in qualche modo".

Question: As an infosec professional, what minimum complexity would you require Gmail to have if it was your call?



Come utilizzare efficacemente uno stimatore di entropia?

Ho appena scoperto cos'è un Entropy Estimator e sono dei wowser fantastici. Non sono stato così influenzato dal software da molto tempo.

No, non ho inserito nessuna delle mie password in nessuna di esse.

No, non capisco davvero come funzionano.

E non sono del tutto sicuro di come usare le informazioni che mi danno. Ad esempio, ho inserito test123! nello stimatore GRC Password Haystacks e ho ottenuto questi risultati:

Haystacks per password GRC

Search Space Depth (Alphabet):  26+10+33 = 69
Search Space Length (Characters):   8 characters
Exact Search Space Size (Count): 521,354,232,876,120 
Search Space Size (as a power of 10):   5.21 x 1014

**Time Required to Exhaustively Search this Password's Space:**
Online Attack: (100,000 guesses per second) 1.66 hundred centuries
Offline Fast Attack: (100 billion guesses per second)   1.45 hours
Massive Cracking Array: (100 trillion guesses per second)   5.21 seconds

Quindi, apparentemente quelli sembrano risultati piuttosto buoni. La probabilità che uno dei miei utenti sia preso di mira da un blackhat con un% dimassive cracking array a loro disposizione sembra altamente improbabile.

Ho anche implementato il meccanismo di limitazione della velocità e un meccanismo di blocco della lista nera con la seguente configurazione:

- IP is used as the ID
- Rate-Limited with a max of 10rps from any given IP
- A maximum of 5 failed login attempts are allowed every 60s before an IP is blacklisted
- Blacklist duration is 5 minutes

Question: Considering the defences I've put in place, should I consider my login endpoint secure if any user decides to pick test123! as their password?



Che dire di un attacco di dizionario?

Ovviamente test123! verrà provato molto vicino all'inizio dell'attacco.

Se concedo 5 tentativi ogni 60 s prima di mettere in blacklist un IP, e la durata della lista nera è di 5 minuti, sembra ragionevole che un determinato attaccante proverà a limitare le proprie ipotesi a 5 al minuto e quindi sarebbe solo prendili più a lungo per afferrare questo frutto a bassa attaccatura, o se davvero, davvero volevano, potevano prendere un nuovo IP ogni 5 tentativi, o mettere insieme 10.000 macchine per attaccare con 5 tentativi ogni minuto per accelerare le cose. Altamente improbabile, ma non impossibile.

E questo mi porta a credere che non ci sia davvero alcun modo per proteggere da un attacco di dizionario, tranne per forzare Passwords of Unusual Complexity sui miei utenti, cosa che davvero non voglio fare.

E considerando che Facebook, Google, ecc. non sembrano avere questi requisiti, ci deve essere un modo per proteggersi da un attacco di dizionario a lungo termine, a bassa ipotesi al secondo? O è solo che nessuno si preoccupa davvero di farlo perché non ne vale la pena?

Question: Is there any reliable way to protect from dictionary attacks? Would adjusting the params of my rate-limit and blacklist modules improve the security of my endpoint?

Grazie in anticipo per qualsiasi aiuto o opinione.

    
posta AJB 28.12.2015 - 01:56
fonte

1 risposta

2

Hai quasi risposto alle tue domande. Innanzitutto, è importante notare che la complessità delle password in genere entra in gioco solo per gli attacchi offline. Come ha dimostrato il tuo rapporto di entropia, una password che può essere facilmente decifrata offline richiederebbe molto più a lungo come attacco online. Per quanto riguarda la tua banca che richiede solo un minimo di 5 caratteri, ovviamente le password brevi potrebbero essere facilmente incrinate in un attacco offline, e come tale si potrebbe sostenere che forse sarebbe migliore pratica per loro avere un lunghezza minima della password minima. Detto questo, come ogni banca dovrebbe, probabilmente hanno una sicurezza molto severa sui loro server e dati, il che significa che le possibilità che qualcuno ottenga l'accesso per eseguire un attacco offline sono estremamente basse. Finché dispongono di efficaci misure di prevenzione della forza bruta per le pagine di accesso (lockout e / o autenticazione a 2 fattori per dispositivi sconosciuti), ciò potrebbe spiegare perché non hanno regolarmente compromessi gli account. (Anche se probabilmente lo facessero, sarebbero account individuali e probabilmente non pubblicizzati comunque.)

Per quanto riguarda la tua domanda relativa alla prevenzione dei tentativi di password distribuiti, la soluzione semplice è invece di bloccare i tentativi da un IP dopo 5 tentativi falliti, bloccando temporaneamente l'account dopo 5 tentativi indipendentemente dagli IP. Ciò avrebbe completamente sventato un attacco distribuito. Ha lo sfortunato effetto collaterale di bloccare potenzialmente l'utente reale se qualcuno ha tentato di hackerare il suo account, ma poiché il blocco sarebbe temporaneo, l'attacco dovrebbe essere praticamente costante per l'utente, fino a quando non si noterà in primo luogo. La maggior parte degli attaccanti non guadagnerebbe nulla dal fare ciò, quindi credo che tu abbia ragione che la ragione per cui non accade più spesso è che non si preoccupano di perdere tempo in qualcosa che ha una possibilità di successo estremamente bassa.

    
risposta data 28.12.2015 - 03:32
fonte

Leggi altre domande sui tag