Perché esistono requisiti di rafforzamento della password?

39

La sicurezza della password ora è tutto, e ti costringono a trovare password con cifre, caratteri speciali, lettere maiuscole e quant'altro. Oltre ad essere un incubo di usabilità (anche io come sviluppatore lo odio quando un sito web richiede una password complessa), quali sono i vantaggi reali di avere password complesse (per l'autenticazione del sito Web)? Ecco i prerequisiti di un sistema che gestisce correttamente l'autenticazione:

  • memorizza le password utilizzando bcrypt (o almeno usa salt + hash) - difficile trovare la password originale quando un utente malintenzionato ottiene il database
  • blocca i successivi tentativi di password con un tempo di recupero in aumento - nessuna forza bruta tramite il sito
posta Bozho 25.06.2012 - 12:54
fonte

8 risposte

28

Perché, come rivelato da LinkedIn e altre recenti perdite di password, le password più comuni per i siti Web sono "password", "dio", "123456", ecc. Quindi puoi eseguire la brute-force con una lista davvero breve delle password più comuni . Tuttavia, puoi semplicemente mettere al bando queste password o richiedere una password lunga - poiché le possibili combinazioni crescono in modo esponenziale con la lunghezza e richiedere una password lunga è meglio che richiedere una password "strong" per impedire la forza bruta. Ma troppe persone seguono ciò che ritengono sia una buona pratica senza metterla in discussione, quindi - ottima domanda in effetti!

    
risposta data 25.06.2012 - 13:19
fonte
15

Perché nessuno è mai stato licenziato per aver creato requisiti di sicurezza delle password. Per l'amministratore, è fondamentalmente l'approccio a basso rischio, anche se queste restrizioni sono molto fastidiose per l'utente e non offrono alcuna sicurezza reale.

    
risposta data 25.06.2012 - 13:25
fonte
9

Ecco un paio di illustrazioni pertinenti di xkcd! Su ciò che è considerato strong è in realtà debole perché le persone sono umane e non si impegneranno, e l'altra è la pigrizia anche se usano una password "strong", viene riutilizzata ovunque. Non puoi vincere!

Forza password

E

Riutilizzodellapassword

    
risposta data 25.06.2012 - 22:08
fonte
8

Se consenti password corte senza requisiti di forza, ti stai lasciando aperto a qualcuno che sta eseguendo un attacco stile arcobaleno sui nomi utente. Ad esempio:

admin,password
fred,password
bob,password
...keep doing this until the cooldown window expires...
admin,god
fred,god
bob,god
...repeat as needed...

Molti sistemi non hanno intenzione di contrassegnare questo pattern come un problema, e non ne ho mai visto uno che lo catturerebbe davvero se lo facessi attraverso una botnet e lo strozzassi in modo appropriato.

    
risposta data 25.06.2012 - 14:48
fonte
3

Esistono diversi tipi di attacchi a cui le password sono soggette, così come esistono numerose difese che possono essere implementate.

bcrypt e / o il blocco della password sono solo due delle molte difese possibili.
Forza della password è un articolo abbastanza decente.

Per rispondere in modo specifico alla domanda sul motivo per cui sono necessarie le combinazioni: è l'unico mezzo disponibile per forzare la selezione di una password complessa. Una password strong significa davvero alta entropia (cambio) tra i caratteri della password. Maggiore è l'entropia, maggiore è la gamma di bit disponibili per la crittografia (ad esempio con bcrypt). Una password bassa entropia (debole) non utilizza lo spazio completo disponibile per la crittografia. Quello che pensavi fosse la crittografia a 128-bit o 256-bit finisce per essere molto meno perché non è stato usato l'intero range per le chiavi.

Alcuni numeri potrebbero aiutare a spiegare le cose in modo più chiaro. Useremo una password di 8 caratteri per l'esempio. Tutte le password in minuscolo hanno solo 26 combinazioni diverse. Quindi sono 26 ^ 8 o 2.1x10 ^ 11 combinazioni diverse.
L'aggiunta di caratteri maiuscoli raddoppia il nostro spazio (ora 52 non 26) ma ci compra molte più combinazioni. 52 ^ 8 o 5.3x10 ^ 13, che è un guadagno di circa 250x.
Inizia ad aggiungere numeri o caratteri speciali e puoi facilmente vedere gli effetti di forzare più entropia nello spazio chiave.

In realtà, non abbiamo ancora lo spazio chiave completo poiché qualcosa che è in grado di essere ricordato generalmente non ha molta entropia in esso. Ma i requisiti aiutano a spingere più entropia nella password.

    
risposta data 25.06.2012 - 14:07
fonte
2
  • store passwords using bcrypt (or at least use salt+hash) - hard-to-impossible to find the original password when an attacker gets the database

Se hanno compromesso il tuo server, hai cose molto peggiori di cui preoccuparti.

An Analogy:

Il ladro irrompe nella tua casa. Ma tutte le tue chiavi sono archiviate in modo sicuro. E allora? è a casa tua!

  • lock subsequent password attempts with a growing cooldown - no brute-force via the site

Questo rallenta il problema solo se la password è debole, ad esempio "password". E questo è il primo tentativo, quindi la tua schiena al punto di partenza.

Avere una password sicura è una buona idea (tm)

    
risposta data 25.06.2012 - 13:50
fonte
1

Un motivo che non viene menzionato altrove è che potrebbe essere che tu abbia un interesse più grande per la sicurezza dell'account utente rispetto agli utenti stessi.

Ad esempio, se stai utilizzando un sistema completamente non critico come ad esempio un forum di discussione online, gli utenti potrebbero non preoccuparsi affatto se i loro account sono compromessi, tuttavia, se il 5% degli utenti ha password 123456 'e' password ', quindi avrai problemi perpetui con spammer che usano account compromessi; se stai gestendo una rete scolastica, una parte significativa degli utenti potrebbe non preoccuparsi se i loro account subiscono abusi, ma i tossicodipendenti ti causeranno dei problemi se provare le password top-5 più comuni può ottenere in modo affidabile l'accesso a una dozzina di account ogni volta .

Per questo scenario di attacco (prova una password banale per tutti i nomi di account che riesci a trovare) non hai bisogno di accedere al database, e i blocchi non ti aiuteranno finché saranno disponibili "freschi" indirizzi IP sufficienti.

    
risposta data 25.02.2014 - 23:49
fonte
0

Il problema con le tue soluzioni sono:

  • L'uso di hash + seed non protegge dalla supposizione della password brute-force.

  • Il blocco protegge fino a un certo punto, ma ha il problema che può essere utilizzato come attacco denial of service nei confronti di utenti autentici, soprattutto se si utilizza un tempo di blocco crescente. E un attaccante intelligente può passare al targeting di più account, utilizzando più indirizzi IP e / o aspettando un tempo tra ogni ipotesi.

Al contrario, insistere su password forti (più difficili da indovinare) significa che l'attaccante deve usare più ipotesi (in media) per rompere un account.

    
risposta data 25.06.2012 - 14:42
fonte