Rallentamento degli attacchi con password ripetute

4

Ho letto suggerimenti per utilizzare formule dispendiose in termini di tempo per controllare le password dai tentativi di accesso, in modo da rallentare gli attacchi ripetuti.

Non sarebbe sufficiente dormire un po 'nella funzione che controlla la password?

Esempio semplificato:

function check_password($user) {
  usleep(1000);
  return crypt($_POST["password"], $user->password) == $user->password;
}
    
posta forthrin 21.08.2013 - 17:56
fonte

2 risposte

5

hashing lento ha lo scopo di rendere l'attività più difficile per gli aggressori offline , che potrebbero afferrare una copia del database delle password con hash. Un utente malintenzionato offline esegue la funzione di hash sulle proprie macchine. Un ritardo sul server è buono solo contro gli aggressori online , che "provano le password" inviando richieste al server onesto.

In pratica vuoi entrambi: un meccanismo di regolazione per bloccare gli attaccanti online (ad esempio un ritardo, ma preferibilmente qualcosa di un po 'più complesso per ostacolare gli attaccanti che provano molte password su molti account in parallelo), e un hashing lento (con sali) come seconda linea di difesa, contro gli attaccanti che potrebbero ottenere una vista di sola lettura delle password con hash memorizzate sul server.

    
risposta data 21.08.2013 - 18:01
fonte
1

Per aggiungere l'eccellente risposta di Tom, ciò che puoi fare con un servizio online è aggiungere l'euristica di rilevamento degli attacchi. Potresti decidere che tre tentativi di paasword falliti in un periodo di 10 minuti comporteranno un blocco di 10 minuti o un'e-mail di avviso al titolare dell'account. È possibile contrassegnare più tentativi di password simultanei che provengono da più di due indirizzi IP o da più di due sessioni univoche. Puoi tar tarare l'indirizzo IP di qualcuno che sembra troppo appassionato di provare password sbagliate. Oppure potresti inventare una nuova strategia intelligente.

Essere on line ti consente di ridurre al minimo la disponibilità del tuo servizio come oracle di test delle password. Si consiglia di implementare più di un semplice ritardo.

    
risposta data 21.08.2013 - 18:20
fonte

Leggi altre domande sui tag