Il numero minimo di cifre migliora la sicurezza della password?

8

Alcuni sistemi di password impongono almeno X di un tipo di carattere - uno comune che vedo è "minimo 3 caratteri numerici". Per quanto ho capito, il semplice fatto di consentire alcune classi di caratteri, come i numeri, aumenta notevolmente lo spazio della password (ad esempio (26 * 2) +10 possibilità per ciascun carattere alfanumerico sensibile al maiuscolo / minuscolo vs (26 * 2) solo alfabetico), quindi non vedi come avere un minimo di 3 cifre fa qualcosa per migliorare la sicurezza della password / entropia.

La mia ipotesi è che sia semplicemente lì per imporre una certa varietà nelle password in modo che gli utenti non utilizzino solo parole di dizionario semplici.

Il mio pensiero è corretto? passwordABC e password123 non sono ugualmente (un) affidabili quando il set di caratteri disponibile è lo stesso? (Questi esempi inventati sarebbero probabilmente provati e trovati presto da qualsiasi attacco, ovviamente)

O ci sono alcuni motivi tecnici per cui un minimo di X cifre, caratteri speciali, qual è una buona politica?

    
posta Alex 16.08.2012 - 15:27
fonte

7 risposte

12

La sicurezza della password non riguarda in realtà ciò che gli utenti sono autorizzati a scegliere, ma ciò che gli utenti effettivamente scelgono in media .

L'utente malintenzionato tenta di indovinare la password scelta dall'utente e lo farà prima tentando le password più probabili. "Molto probabile" qui indica una specie di studio psicologico eseguito dall'attaccante; in parole povere, questo significa che l'attaccante proverà nomi di famosi giocatori di calcio / baseball / hockey perché molti utenti, lasciati a se stessi, usano questi nomi come password.

L'utente ideale seleziona la sua password in modo totalmente casuale, con probabilità uniforme sullo spazio delle possibili password (ad esempio tutte le password che possono essere digitate e accettate dalla macchina). La maggior parte degli utenti non lo farà, però. Anche se possono usare le cifre nelle loro password, preferiranno non usare le cifre, se gli viene data la scelta; perché gli utenti, come tutti gli altri, cercano di massimizzare il proprio comfort ed efficienza, quindi desiderano password facili da digitare e facili da ricordare. Una password in full-alfabetico è più facile da ricordare rispetto a una password con numeri misti e anche più facile da digitare, specialmente sugli smartphone (ad esempio la tastiera di base di Android mostra lettere e numeri su schermi separati).

Un vincolo su un numero minimo di cifre è un tentativo di rendere gli utenti più casuali: impedisce loro di usare password full-alfabetiche, perché, quando tecnicamente autorizzato a farlo, gli utenti si affidano a password di entropia molto basse (quelli che sono facili da indovinare). Applicando l'inclusione di alcune cifre, un amministratore di sistema può spingere gli utenti (leggermente) fuori dalla loro zona di comfort e costringerli a scegliere una password in cui un nome semplice di calciatore non è una password valida.

Fatto con moderazione e gusto , aumenta la sicurezza rendendo le password, in media, meno probabili. Non ci sprechiamo troppe speranze, tuttavia: molti utenti aggiungeranno "111" alla fine della loro password e si faranno fuori con esso. Anche l'attaccante lo sa. Inoltre, più limiti si aggiungono, più è probabile che l'utente diventi un nemico . Alla gente non piace essere cacciato dalla propria zona di comfort. Se li spingi troppo, reagiranno in modo abbastanza creativo, ad esempio scrivendo le password fatte su un pezzo di carta (nascosto, come da tradizione immemorabile, sotto la tastiera) e l'attaccante lo sa, ovviamente). Gli utenti non possono essere biasimati per questo, ma l'effetto netto è che la sicurezza può diminuire quando vengono applicati i vincoli ben intenzionati.

    
risposta data 16.08.2012 - 19:22
fonte
6

Sull'argomento dei caratteri non alfabetici nelle password, esiste un famoso fumetto XKCD. Leggi anche il thread di follow-up su questo sito . Fai attenzione che alcune delle risposte mancano il punto; Raccomando in particolare le risposte Thomas Pornin , AviD e Mike Hamburg .

)

Questo è solo un lato della medaglia, comunque. La maggior parte degli utenti non cerca una password difficile da indovinare, preferisce attenersi a qualcosa di memorabile, come il nome del loro primo figlio. Costringendoli ad avere una cifra si aggiungono un paio di bit di entropia: certo, molti ne aggiungeranno 1, ma alcuni useranno la loro data di nascita. Gli utenti che digitano su una tastiera mobile che richiede un cambio di modalità tra lettere e cifre sono particolarmente propensi a inserire la (e) cifra (e) alla fine.

È comunque più probabile che la punteggiatura aggiunga entropia. Mentre un . alla fine è un carattere di punteggiatura "ovvio", alcuni utenti selezioneranno una passphrase di due parole con una punteggiatura intermedia.

Esiste anche un aspetto del cinema di sicurezza: se documenti nella tua politica di sicurezza che le password devono avere almeno X caratteri tra cui 1 cifra e 1 lettera maiuscola , sembra che tu stia facendo qualcosa per migliorare la sicurezza. Anche se ci sono metodi migliori con password tutto in minuscolo.

    
risposta data 18.08.2012 - 00:41
fonte
2

Hai ragione nel fatto che l'obiettivo di forzare gli utenti ad avere un numero in una password aumenta il set di caratteri e quindi la forza crittografica, come imporre capitali e caratteri speciali. Penso che l'applicazione di 3 cifre in una password sia controproducente in quanto la maggior parte degli utenti inserirà semplicemente 3 numeri alla fine di una password per mantenere le cose semplici. Se la maggior parte delle password è passw123 o qualcosa567, in realtà riduce la complessità introducendo un pattern.

    
risposta data 16.08.2012 - 15:35
fonte
2

Come utente ci sono due regole per usare la password:

1). Non riutilizzare mai la stessa password con entità diverse (ad esempio, non utilizzare la stessa password sulla tua banca online come un webforum gratuito creato da qualche individuo anonimo). Qualsiasi sito registra potenzialmente le password in testo semplice (anche le password per altri siti accidentalmente digitate) e potenzialmente potrebbe utilizzare tali password per attaccare gli utenti su altri siti. [1] .

2). Seleziona le passwords / passphrase ad alta entropia (preferibilmente generate casualmente e solo leggermente modificate) che non verranno trovate in un attacco di dizionario o in un elenco di password comuni.

Un sistema in cui gli utenti archiviano localmente un elenco crittografato protetto da passphrase di password generate casualmente e sincronizzato tra tutti i tuoi computer è un'ottima soluzione, ma non puoi aspettarti che la maggior parte degli utenti faccia questo.

Come programmatore che imposta le regole della password per un sistema è un atto di bilanciamento. Regole più rigide significano generalmente un'esperienza utente più difficile (UX). Se le tue regole sono particolarmente rigide, gli utenti ignoreranno in qualche modo le tue regole. Lo scriveranno dal loro computer, lo salveranno in chiaro sul desktop, o smetteranno di usare il tuo servizio, o si lamenteranno incessantemente per i rialzisti, o useranno il meccanismo di reimpostazione della password ogni volta per accedere (che potrebbe finire per essere un legame molto più debole). Forse hai bisogno di un numero nella loro password, prendono una parola di dizionario comune e aggiungono un 1 alla fine. Le password devono essere cambiate ogni tre mesi e non riutilizzate e l'utente finale ruota la propria password in Spring2012 , Summer2012 .

Al contrario, non avere regole significa che troverai molti utenti idioti che sceglieranno una password che si trova in un elenco dei migliori elenchi di password 100/1000.

Le regole personalizzate sono belle, in quanto è possibile impostare un minimo indispensabile per la lunghezza / complessità e inoltre possono impedire il riutilizzo della password se le regole sono piuttosto particolari (ad esempio, nessun simbolo speciale, ma almeno due numeri e una maiuscola / minuscola) . Tuttavia, dovresti assicurarti che le tue regole personalizzate non escludano passphrase forti, che sono un buon modo per ottenere password memorabili ad alta entropia. Inoltre, l'invalidazione delle password comuni e deboli può aiutare a proteggere la tua applicazione. Ad esempio, se non si consente all'utente di impostare una password che è una parola del dizionario più un numero alla fine, o una password da un elenco di password comuni, ciò potrebbe rafforzare la sicurezza. (Anche se di nuovo un utente malintenzionato può utilizzare tali informazioni per sapere quali password non provare e gli utenti potrebbero trovare il minimo indispensabile che passa le regole).

Ma per rispondere alla tua domanda, l'entropia di una password di 8 caratteri composta da un numero qualsiasi di cifre, lettere maiuscole e minuscole scelte casualmente è lg (62 8 ) ~ 47,6 bit (ignoriamoci simboli). L'entropia di una password di 8 caratteri in cui esattamente tre lettere sono cifre è 44,3 bit ~ lg (56 * 52 5 10 3 ) (56 = 8 scegli 3; il numero di combinazioni di tre cifre scelte tra 8 posizioni), quindi leggermente più debole. Se si rilassa la condizione, è necessario che sia di 8 caratteri e abbia tre o più cifre; quindi è ancora solo 44,6 bit. Pertanto, la richiesta di d cifre in una password lunga di simbolo N la indebolisce leggermente rispetto a consentire qualsiasi simbolo, ma solo da un paio di bit di entropia. Anche se in alternativa si confronta una password di 7 cifre senza nessun numero di numeri lg (62 7 ) ~ 41.7 bit e si aggiunge una scelta forzata di cifre inserite nello spazio a caso; la nuova password è 80 volte più potente (6,3 bit) (dieci scelte per le cifre, 8 scelte per la posizione delle cifre forzate).

    
risposta data 18.08.2012 - 08:00
fonte
2

La risposta breve è no .

Joseph Bonneau dell'Università di Cambridge ha svolto ricerche approfondite nell'area delle password scelte dall'utente. La sua tesi di dottorato, che si basa su un'analisi di 70 milioni di password effettive, è una lettura obbligata per chiunque sia interessato all'argomento.

Quanto segue è tratto dalle osservazioni conclusive di un documento IEEE che ha scritto ( PDF) :

As a rule of thumb for security engineers, passwords provide roughly equivalent security to 10-bit random strings against an optimal online attacker trying a few popular guesses for large list of accounts. In other words, an attacker who can manage 10 guesses per account, typically within the realm of rate-limiting mechanisms, will compromise around 1% of accounts, just as they would against random 10-bit strings. Against an optimal attacker performing unrestricted brute force and wanting to break half of all available accounts, passwords appear to be roughly equivalent to 20- bit random strings.

In altre parole, una password media scelta dall'utente ha circa 20 bit di entropia.

Non sono a conoscenza di alcuna ricerca fatta nell'area utente forzata di aggiunte di tre cifre alle password, ma la mia ipotesi è che la stragrande maggioranza di esse sarebbe una delle quattro opzioni: prefisso '123', '123' suffisso, prefisso '111' e suffisso '111'. In tal caso, obbligando gli utenti ad aggiungere tre cifre alla propria password, mentre si consente agli hacker di sapere che l'utente sta facendo, nel migliore dei casi aumenterebbe l'entropia media da 20 bit a 22 bit.

Ora aggiungere 2 bit di entropia è una buona cosa poiché moltiplica il tempo di attacco di un fattore quattro. Ma forzare gli utenti a farlo ha un prezzo sia nella scarsa esperienza dell'utente che (più significativamente) nella falsa autocompiacimento dell'utente. Se hai già il problema di forzare l'utente a utilizzare una specifica forma di password, è probabilmente meglio andare fino in fondo e forzare una password con un'alta entropia o, meglio ancora, una password generata dal computer.

    
risposta data 19.08.2012 - 09:07
fonte
1

La risposta breve a questa domanda è

La risposta più breve a questa domanda è la seguente:

Una password più lunga dice password e / o password123456789 è meno sicura allora forse p1a2s3s4s5w6o7r8d90 o qualcosa come P@ssW0rdT@Day24 inoltre è del tutto possibile avere una password alfanumerica sicura senza distinzione tra maiuscole e minuscole che sarà sicura quanto 'P@ssW0rdT@Day24

NESSUNO degli esempi che ho usato sono effettivamente sicuri perché sono parole d'ordine del dizionario.

Or is there some technical reason why a minimum of X digits, special chars, whatever is a good policy?

Ci sono tonnellate di ricerche online su questo argomento che non ripeterò quella ricerca.

    
risposta data 16.08.2012 - 15:33
fonte
0

La risposta è No . Mi dispiace Ramhound.

Se devo usare almeno x cifre, significa che i caratteri x della password sono cifre garantite, di cui ce ne sono solo 10. Stai riducendo lo spazio di ricerca applicando uno specifico tipi di personaggi. Come attaccante, aggiungerò volentieri le regole della password al mio strumento di cracking.

Il ragionamento dietro questi requisiti è quello di costringere gli utenti a non scegliere "password" come password. Ci sono modi migliori per farlo, ma questa è una discussione diversa.

    
risposta data 17.05.2018 - 10:35
fonte

Leggi altre domande sui tag