Perché i siti non implementano un sistema in cui una password errata provoca un ritardo di 3 secondi?

5

Sono in bitcoin in questo momento e le minacce per le password mi spaventano un po '...

Non tanto per me, perché uso LastPass e generi nuove password a 20 caratteri e include simboli, lettere maiuscole e minuscole e numeri. Tuttavia, so che ci stiamo avvicinando a un periodo in cui 100 miliardi di password al secondo possono essere tentate come una forza bruta e stavo pensando alla quantità di persone che usano Teddy567 o qwertyqwerty per le password e penso che per rendere Internet più sicuro dovremmo venire con un modo per fermare gli attacchi di forza bruta.

Quindi, puoi aiutarmi a capire perché i siti non possono implementare un ritardo di 3 secondi o un inferno, anche un ritardo di 1 secondo in qualsiasi password dimenticata. Questo, nella mia mente, porrà completamente fine a tutti gli attacchi di forza bruta. Inoltre, non sarebbe nemmeno visibile dagli umani

    
posta Campy 25.09.2014 - 17:21
fonte

3 risposte

5

In genere bloccare gli account come proposto da raz è una cosa molto brutta: porta al carico dell'helpdesk, a clienti annoiati e non è necessario per impedire effettivamente attacchi di forza bruta.

Le sospensioni temporanee sono utilizzate da un numero sempre maggiore di sistemi, spesso ritardano la forza bruta, come 5 o 30 minuti, o usando una scala crescente, ad esempio raddoppiando il timeout per ogni tentativo di accesso fallito.

    
risposta data 25.09.2014 - 17:36
fonte
4

Il forzante bruto viene normalmente utilizzato nel contesto di un attacco offline , in cui l'utente malintenzionato conosce già gli hash delle password e può utilizzare tutta la potenza del suo sistema (GPU) per trovare una corrispondenza le password.

Stai parlando di attacchi online , un ritardo crescente renderebbe davvero imprevedibile la forza bruta, anche se non è così facile da implementare come potrebbe sembrare. Un utente malintenzionato potrebbe quindi ad es. bloccare un utente da un login riuscito. Forzare forzatamente un sistema online non consente comunque sufficienti tentativi.

    
risposta data 25.09.2014 - 17:43
fonte
1

Attacchi bruteforce online

In effetti, i siti che non implementano alcuna forma di protezione contro gli attacchi bruteforce online stanno perdendo le password dei loro utenti. Molti siti non hanno alcuna forma di protezione e molti altri lo fanno.

Il blocco semplice ha problemi:

  • Se blocchiamo l'IP dell'utente dopo x tentativi falliti, un botnet strong da 10'000 riesce a provare le password x * 10'000. A 100'000 tentativi molte delle password più deboli sono già state violate.
  • Se blocchiamo l'account dell'utente dopo x tentativi falliti, qualsiasi utente malintenzionato può bloccare l'account di qualsiasi utente.

Ciò implica che la difesa deve essere più sofisticata, oppure possiamo semplicemente ignorare la difesa e provare a incolpare l'utente quando alla fine esplode, il che è meno che etico. Gli schemi più sofisticati utilizzano una combinazione di rilevamento di attività sospette e requisiti di accesso condizionatamente più rigorosi.

Per rilevare attività sospette, tracciamo i segni positivi in base agli accessi riusciti effettuati con esito positivo, come gli ISP dell'utente e alcuni identificatori dei dispositivi con cui l'utente ha effettuato l'accesso in precedenza. Possiamo anche utilizzare segni negativi come IP da ISP o paesi "contaminati" o un rapido aumento dei tentativi di accesso.

In termini di requisiti di accesso più rigorosi, possiamo utilizzare brevi timeout, captcha, autenticazione a più fattori e persino blacklist.

Attacchi bruteforce offline

Tutte le misure di cui sopra sono inutili quando il nostro amministratore di sistema scontento vende una copia del nostro database delle password sul mercato nero, perché in tal caso l'hacker può solo inserire la password e vedere se corrisponde al database. Craccare gli hash può essere economico, facile o facile ma molto costoso, a seconda di come abbiamo cancellato le password Vedi: Come fare in modo sicuro le password di hash?

Salt: Per rendere più difficile all'utente malintenzionato di crackare l'intero database, utilizziamo un sale, che rende ogni hash un po 'unico. Ogni utente ha un sale diverso, che viene memorizzato accanto all'hash. Ciò significa che l'attaccante non può semplicemente calcolare l'hash di una password e confrontarla con l'hash di ogni utente, ma l'attaccante deve calcolare un nuovo hash per ogni password che prova contro ogni utente. L'utilizzo di un sale non aumenta il costo per ottenere la password di un singolo utente.

Hash costoso: nessun attaccante può bruteforce 100 miliardi di password al secondo, a meno che lo schema di hashing sia stato creato da un deficiente (che è plausibile). Alcuni utenti malintenzionati possono calcolare 100 miliardi di hash di base come sha256 al secondo, ma la soluzione è semplicemente non usare un hash di base per cancellare la password. Una soluzione banale è che il nostro hash non è in realtà hash =sha256(password, salt) , invece è hash =sha256(sha256(sha256(.......(password, salt)...)password, salt)password, salt) , dove usiamo circa 100'000 iterazioni di sha256, rendendo ogni attacco 100'000 volte più costoso. In realtà questa difesa è troppo semplice per rompere con l'hardware specializzato, quindi in pratica usiamo funzioni di derivazione chiave speciali tike bcrypt e scrypt per mescolare più hash di base in modi che sono costosi da calcolare per qualsiasi attaccante, indipendentemente dall'hardware.

    
risposta data 21.07.2015 - 02:03
fonte

Leggi altre domande sui tag