Gli attacchi alle password sono una minaccia reale?

1

Ci sono tonnellate di domande, risposte, articoli, documenti, vignette ecc. sul tema di come scegliere una password in modo tale che sia difficile indovinare o crackare con un attacco basato sul dizionario.

Non capisco perché un sistema mi permetta di provare questo tipo di attacco, quindi mi chiedo cosa mi manca di quel tipo di attacco - o qualsiasi altro tipo di attacco che comporta provare gazillions di password diverse fino a quando uno funziona.

Perché qualcuno dovrebbe voler un sistema per consentire centinaia o addirittura milioni di tentativi di accesso con lo stesso nome utente e password diverse in un tempo relativamente breve? Apprezzo che mi venga dato un po 'di gioco se non riesco a ricordare la mia password o se mi manca la chiave giusta quando la digito, ma non ho bisogno - né voglio - di provare a fallire 100 volte con lo stesso nome utente e alla massima velocità.

In altre parole, quanto sarebbe difficile progettare un sistema in modo tale che dopo un tentativo di accesso fallito il prossimo non possa aver luogo prima che sia trascorso un certo periodo di tempo che è proporzionale al numero di login falliti per quel nome utente? Sto pensando decimi di secondo o qualcosa come un secondo in più per ogni tentativo fallito, che non influirebbe sui tentativi di un utente reale ma nella mia comprensione limiterebbe seriamente la fattibilità degli attacchi di dizionario.

In generale, ad eccezione di alcune nicchie che posso immaginare di esistere, non sarebbe relativamente banale e innocuo per la grande maggioranza dei sistemi rendere questo tipo di attacchi non fattibile?

    
posta SantiBailors 03.02.2016 - 13:14
fonte

2 risposte

6

Dipende da cosa ti stai difendendo davvero.

  1. Cercando di accedere a un'applicazione Web, i tentativi dovrebbero in effetti essere limitati in qualche modo. La restrizione della velocità IP è un buon inizio, la restrizione del livello del nome utente è migliore, la combinazione dei due è ancora migliore. Tuttavia, immagina di avere una lunga lista di nomi utente e password da una precedente violazione non correlata. Se ho accesso a una botnet (andare sulla darknet e navigare per qualche minuto - è possibile acquistare l'accesso per un po ') e un po' di conoscenza della programmazione, posso facilmente impostare una situazione in cui ogni indirizzo IP prova un singolo nome utente con una sola password, quindi aspetta un po 'prima di provare un nome utente e una password diversi. Con un numero sufficiente di macchine, sarei abbastanza fiducioso di ottenere un successo con una manciata di password comuni e un elenco ragionevolmente ampio di nomi utente.

    Se le password sono tutte forti, però, mi ci vorrà molto più tempo, il che significa che c'è molta più possibilità che qualcuno se ne accorga.

  2. Cercando di rompere gli account dopo una violazione. In questo caso, vengono bypassati tutti i sistemi a disposizione per limitare la velocità di attacco. Ho una copia degli hash delle password, quindi posso inserirli nella mia password cracking rig e aspettare un po '. Le password comuni saranno di nuovo le prime a rompere, con quelle davvero forti che richiedono età (queste sono grandi età. Pensa alle età geologiche, piuttosto che aspettare un'età di consegna della pizza).

    In questo caso, non mi interessano le tue restrizioni. Potrei avere i dati di violazione senza che tu te ne accorga, nel qual caso, posso solo accedere con le password che trovo e cancellare qualsiasi cosa abbia valore in questi account. Oppure potresti aver notato che ho ricevuto i tuoi dati, nel qual caso sto correndo contro i legittimi proprietari per accedere prima. Ad ogni modo, mi ci vuole un solo tentativo per entrare se lo faccio.

Nel caso 1, aggiunge complessità all'attacco, ma aggiunge anche complessità al metodo di autenticazione. Purtroppo, la complessità del codice tende ad aumentare il numero di problemi, quindi vorresti essere sicuro che non abbia effetti collaterali indesiderati, come gli attacchi temporali, o il potenziale DoS (immagina di avere un IP condiviso, come un provider di telefonia mobile potrebbe usare e io causerò che sia bloccato per un periodo di utilizzo massimo).

Nel caso 2, è irrilevante. Non ha importanza per me Non vederlo mai.

Come per tutto ciò che riguarda la sicurezza, si tratta di bilanciare i rischi. Se disponi di account con un valore elevato, vale la pena di fare un salto di più, ma dovresti essere in grado di sostenere una procedura di test molto rigida. Se disponi di account con un valore basso, potrebbe essere più sicuro vivere con tale rischio, al fine di impedire il funzionamento di altri vettori di attacco.

    
risposta data 03.02.2016 - 13:46
fonte
0

Il sistema è la causa di una violazione del sistema. Se consentono milioni di accessi al secondo e un utente non autorizzato ha ottenuto l'accesso, l'IMO è su di essi. Se il sistema decide di non crittografare i dati personali delle persone (guardando il tuo OPM), allora questa colpa è sul sistema. Utilizzo di sistemi operativi e software obsoleti; quella colpa è sul sistema. Penso che tu abbia capito il punto.

Tuttavia, l'utente ha la responsabilità di proteggere il proprio account da una violazione. La password fornita è molto probabilmente utilizzata per derivare una chiave che crittografa e protegge le loro informazioni private. Se un sistema ha correttamente protetto i propri dati, qualsiasi informazione sull'account che viene presa è protetta. Se un utente sceglie una password errata che consente all'utente malintenzionato di accedere ai propri dati privati che non possono essere biasimati sul sistema.

I sistemi hanno vulnerabilità. Non importa quanto avanzato o ben protetto. Possono fare del loro meglio per mitigare le violazioni, ma dare la colpa a loro quando un account viene rubato perché un utente ha deciso di usare "password" per me è fasullo.

    
risposta data 03.02.2016 - 14:59
fonte

Leggi altre domande sui tag