C'è una soglia per una password così a lungo che non diventa più sicura o addirittura diventa insicura?

88

Ho sempre sentito "Una lunga password è buona, una password più lunga è migliore". Ma esiste una " La password è così lunga che diventa pericolosa " o " La password è abbastanza lunga, il che renderà più a lungo non avrà importanza "?

Sono interessato alla sicurezza della password per quanto riguarda il solo cracking.
Non se è può causare un DoS sovraccaricare i server durante l'hashing, o se il venditore pensa diversamente .

Assumi anche che la password non contenga alcun dizionario sarebbe comunque nei commenti parole, è memorizzati utilizzando le migliori pratiche , ha un strong e unique salt e entropia rilevante per carattere. Come l'utente ricorderà / ricorda / memorizza la password non ha importanza.

Accetto che più lungo / password / sono più sicuri . Sto chiedendo il limite superiore .

Esiste una lunghezza (o dimensione di entropia) in cui rendere la password più lunga non è più (sic) o addirittura indebolisce la sua sicurezza? So che dipende dall'algoritmo di hashing, se esiste il limite superiore per un determinato algoritmo ed è noto, che cos'è?

    
posta Mindwin 24.03.2016 - 14:43
fonte

10 risposte

79

128 bit (di entropia)

Lo scopo principale di una password più lunga è prevenire gli attacchi di forza bruta. È generalmente accettato che 128 bit sono al di là della capacità di chiunque a forza bruta, e rimarrà tale per il prossimo futuro. Vedete questa figura in alcuni punti, ad es. Le crittografie SSL con una lunghezza della chiave di 128 bit o superiore sono considerate "ad alta sicurezza" e OWASP consiglia che i token di sessione siano almeno di 128 bit. Il ragionamento è lo stesso per tutti questi: 128 bit prevengono gli attacchi di forza bruta.

In pratica, se una password è composta da lettere maiuscole e minuscole, numeri e un po 'di punteggiatura, ci sono circa 6 bit di entropia in ogni carattere, quindi una password di 128 bit è composta da 22 caratteri.

Una password può essere compromessa in modi diversi dalla forza bruta. Forse c'è un keylogger sul sistema client o l'utente viene phishing. La lunghezza della password non fa praticamente nessuna differenza per questi attacchi: anche una password di 1000 bit verrebbe catturata allo stesso modo. E questi attacchi sono comuni nella pratica, quindi non vale la pena usare password troppo lunghe.

In effetti, puoi farla franca con meno di 128 bit. Se la password è sottoposta a hash con una lenta funzione hash come bcrypt, questo rende un attacco di forza bruta più difficile, quindi 100-bit (o meno) previene completamente gli attacchi di forza bruta. Se ti preoccupi solo degli attacchi online e il sito dispone di una politica di blocco, puoi farla franca di meno: i 64 bit impedirebbero completamente un attacco brute force online a velocità limitata.

    
risposta data 24.03.2016 - 15:17
fonte
37

Una password può essere così lunga da non essere sicura? Sì.

Quando guardi l'ampia immagine della sicurezza nella tua organizzazione, la sicurezza non significa solo "proteggere gli account con password non guidabili". La sicurezza deve proteggere l'intera organizzazione con la "Triade della CIA" di Riservatezza, integrità e disponibilità. Oltre una certa soglia di lunghezza della password, la riservatezza e l'integrità non migliorano statisticamente, mentre la disponibilità diminuisce a causa della scarsa usabilità. Un sistema a cui non puoi accedere è altrettanto non disponibile di uno che è inattivo.

Se costringi il tuo utente a digitare una password di 22 caratteri composta da lettere maiuscole, numeri casuali e simboli casuali, i tuoi utenti saranno più inclini agli errori. Considera che un utente potrebbe essere sotto stress per rispondere immediatamente a una situazione critica. Fumare con una password lunga può causare un blocco di 3 tentativi e richiedere all'utente così tanto tempo per resettare che non è in grado di affrontare la situazione in modo tempestivo e si verifica un disastro. Quella lunga password ha impedito la disponibilità; invece di proteggere l'organizzazione, ha causato danni.

Quanto tempo sprecano gli utenti a inserire le password? Più lunga è la password, più lenta è la voce. Sottrarre tale spesa direttamente dalla linea di fondo. Questo fa parte del costo della sicurezza, denaro che avrebbe potuto essere speso altrove. Una password di 100 caratteri ti costerebbe più di una password di 20 caratteri, senza fornire alcuna diminuzione misurabile del rischio. Tempo e denaro sono risorse e una password troppo lunga li spende senza produrre ulteriori vantaggi.

Con tutto questo, sto sostenendo una scarsa sicurezza dei PIN a 4 cifre, quindi gli utenti sono più veloci, più felici e fanno meno errori? Ovviamente no. Quello che devi fare è bilanciare l'entropia fornita dalla password con la psicologia del suo utilizzo.

Mentre la maggior parte degli utenti non sarà in grado di ricordare una password di 12 caratteri composta da 70 lettere, numeri e simboli, probabilmente potrebbero ricordare una passphrase di cinque parole; quindi considera un approccio diceware per ottenere un'entropia simile. Cinque parole casuali ma familiari sono probabilmente più facili da ricordare e digitare di 12 simboli casuali fornendo al tempo stesso quintilioni di combinazioni possibili; sei parole diceware forniscono una sicurezza ancora maggiore rispetto alle password di 12 caratteri.

Se per qualche motivo devono essere caratteri, assicurati di sceglierli dal set di caratteri non ambigui. Non forzare l'utente a ballare sul tasto Maiusc o digitare simboli casuali. Se hai bisogno dell'entropia da una password di 12 caratteri casuali che attinge da [az] [AZ] [0-9] [! - *], puoi raggiungere un livello simile di entropia usando solo [az] ed espandendolo a 15 caratteri .

Oppure prendi in considerazione altri strumenti, come l'autenticazione di token, dati biometrici o smart card e chiedi di aggiungere un PIN più breve.

I sistemi di sicurezza devono essere utilizzabili o interferiscono con l'organizzazione a proprio danno.

    
risposta data 24.03.2016 - 20:17
fonte
30

Le password sempre più lunghe non diventano insicure, ma a un certo punto smettono di diventare più sicure.

Sulla base delle ipotesi che hai citato, sembra probabile che la password sia veramente casuale e memorizzata usando bcrypt (stato di la memorizzazione della password artistica). Bcrypt ha un limite di lunghezza di da 50 a 72 caratteri , a seconda dell'implementazione. Quindi una password più lunga di quella non sarà consentita, hash usando solo i primi N caratteri, o qualcosa di simile. In sostanza, più a lungo non sarà migliore (anche se non sarà peggio).

Si potrebbe anche obiettare che, una volta che la password è protetta contro un attacco di forza bruta sull'hash delle password da ora fino alla fine dell'universo, rendere la password più lunga non la rende più sicura. Anche se si formulano ipotesi selvagge sull'hardware di un utente malintenzionato, una password veramente casuale con 20-30 caratteri sarà protetta fino alla fine dell'universo. Quindi, una password più lunga non sarà più sicura.

    
risposta data 24.03.2016 - 15:00
fonte
9

Un caso in cui una password più lunga potrebbe essere in effetti più debole del previsto è con i sistemi che tronchiano la stringa immessa come password. Considerare

passwordsogoodtahtittakestrillionyearstobreakitgoaheadtryme

Questa password è estremamente buona 1 tranne quando hai un sistema che lo vede effettivamente come

password

perché accetta solo 8 caratteri. Il resto è silenziosamente scartato in modo da digitare sempre passwordsogoodtahtittakestrillionyearstobreakitgoaheadtryme , il sistema accetta password da esso e tutti sono felici.
Compreso l'hacker che prova prima questa combinazione .

1 sì, anche perché ha parole di dizionario che rendono più facile ricordare rispetto a qualche inutile triade capital-digit-specialchars promossa da consulenti di sicurezza con problemi matematici

    
risposta data 24.03.2016 - 21:19
fonte
4

Per impostazione predefinita, la risposta di una domanda del modulo può [cosa cattiva XYZ] accade con le password è si . C'è sempre spazio per commenti specifici, ma rimane il fatto che le password sono uno dei compiti di sicurezza meno naturali dati a una persona, e quella persona, quasi sicuramente, favorirà l'efficienza rispetto alla sicurezza.

Se scegli una lunga password che non è in un dizionario, è probabile che la password sia una stringa casuale di caratteri che è difficile da ricordare. Di conseguenza, l'utente dovrà trovare scorciatoie per utilizzare effettivamente il proprio sistema senza troppa uggiolina (per gli utenti, la sicurezza è normalmente un ostacolo per ottenere le attività che effettivamente hanno un valore): scriverlo, tenerlo negli Appunti, collegare un dong USB che digita la password automaticamente ... lo chiami.

Il fumetto XKCD di Battery Horse Staple è diventato famoso nel produrre password più lunghe che sono più memorabili, ma, come risultato, mettere correcthorsebaterrystaple in ogni dizionario. Quindi, in generale, è difficile produrre lunghe password utilizzabili.

Questo è tutto per la responsabilità pratica. Ora vediamo un po 'di numeri. Supponiamo che tu non archivi la tua password in testo in chiaro, ma tu l'hash e la salvi. In generale, diciamo che non esiste un modo più semplice per violare la memorizzazione della password rispetto all'ottenimento di una collisione per la password memorizzata. In tal caso, ogni hash della password avrà una lunghezza fissa: diciamo 256 bit per SHA-256. Quindi, hai al massimo 2 256 valori da memorizzare. Certo, è molto, ma è anche il tuo "limite". Se memorizzi le password con più di 256 bit di entropia, non manterrai quella entropia aggiuntiva da nessuna parte. Non è meno sicuro, ma, come indicava la risposta di Neil in relazione a bcrypt , non ci sarà alcun guadagno con password più lunghe.

    
risposta data 24.03.2016 - 15:12
fonte
4

Vedo un paio di commenti che alludono a questo, ma nessuna risposta che lo dichiari chiaramente, quindi lo aggiungerò qui.

Sì, c'è un limite alla lunghezza che è possibile aggiungere a una password prima che non si ottenga più sicurezza da essa se la password è stata cancellata (e speriamo che lo sia). Questo perché un utente malintenzionato non ha bisogno di conoscere la propria password, ha solo bisogno di conoscere una stringa che esegue lo hash sullo stesso output. Pertanto, se si dispone di una password con più entropia rispetto all'output dell'algoritmo hash, ci sarà quasi sicuramente una stringa più breve che produce lo stesso output a causa delle collisioni hash. A quel punto, non importa per quanto tempo ancora fai la password, otterrai sempre la stessa entropia dell'output.

Ovviamente ciò significa che l'attaccante dovrebbe forzare l'hash fino a quando non viene trovata una collisione, che sarà praticamente impossibile per gli hash crittografici sicuri, ma hai chiesto un limite teorico, non pratico.

    
risposta data 25.03.2016 - 19:44
fonte
4

Il Limite di Landauer specifica il numero massimo teorico possibile di modifiche a singolo bit che puoi fare con una determinata quantità di energia. Diciamo che hai accesso alle 20 più potenti centrali del mondo, tutte funzionanti a pieno regime per 100 anni. Questo ti darebbe 5 * 10 ^ 20 Joule di energia con cui fare i tuoi calcoli. Supponiamo che tu abbia un computer moderno che richiede solo un milione di volte più energia teoricamente richiesta. Con così tanta energia, che un computer si è raffreddato a -270 gradi Celsius, le leggi della fisica dicono che si può lavorare solo con combinazioni di input da 2 ^ 124.

Se si è disposti a distruggere completamente l'intero pianeta, convertendo con perfetta efficienza in energia e avere un computer che funziona al limite di Landauer di nuovo a -270 gradi Celsius, è possibile enumerare 2 ^ 213 combinazioni di input possibili.

Se puoi in qualche modo distruggere tutta la materia nell'intero universo e raccogliere tutta l'energia oscura, allora il tuo computer teoricamente perfetto può ancora funzionare solo attraverso le combinazioni 2 ^ 233.

Quindi, 2 ^ 233 combinazioni è il punto in cui un attacco di forza bruta non è più garantito per avere successo con un sufficiente investimento di tempo ed energia. Non c'è investimento possibile abbastanza grande.

C'è sempre fortuna. Non importa quanti bit hai, è possibile che un'ipotesi possa essere corretta. Si sceglie quindi un rischio accettabile. Non c'è modo di ottenere un rischio zero e nessun modo per definire "accettabile" in termini universali.

In teoria, un computer delle dimensioni della terra e che opera al limite di Bremermann per la velocità di calcolo creerebbe una password di 256 bit in meno di due minuti. Tuttavia, come appena calcolato, non c'è energia sufficiente nell'universo per fare questo sforzo. Il tempo necessario per crearsi con le apparecchiature teoricamente ideali non ci dà un limite "accettabile".

Il presidente Obama ha ordinato la creazione di un computer exaflop entro il 2025, sperando che sarà il computer più veloce del mondo quando verrà costruito. Che possibilità ha un computer exaflop di scomporre una password 2 ^ 233 bit nei 5 miliardi di anni che rimangono prima che esploda il sole? Bene, questo è 1,6 * 10 ^ 34 ipotesi o meno di 2 ^ 114 ipotesi. Questa è una possibilità in 2 ^ 119 (6 * 10 ^ 35) di screpolare la password prima che esploda il sole.

accettabile? Chi ha da dire? È molto difficile mettere tali probabilità in prospettiva poiché sono così improbabili. Vincere il jackpot della lotteria questa settimana, la prossima settimana e anche la settimana dopo? È più probabile che spaccare la password prima che il sole esploda tra cinque miliardi di anni.

233 bit di entropia possono essere rappresentati con 36 caratteri tratti dai 95 caratteri stampabili di US-ASCII. Un utente malintenzionato non può garantire di craccare una password di questo tipo con la forza bruta, anche utilizzando tutte le risorse dell'intero universo per farlo, e le probabilità che si scontrino usando solo la tecnologia esistente oggi sono molto ridotte.

Questo è l'unico limite di cui sono a conoscenza che non viene imposta la scelta dell'algoritmo o della persona che deve ricordare la password ma dalle effettive leggi fisiche dell'universo.

    
risposta data 25.03.2016 - 18:21
fonte
0

senza limiti, in realtà. Il limite sarebbe possibile per un hash noto-debole in cui un attacco di sostituzione è ben documentato e misurabile.

    
risposta data 24.03.2016 - 15:00
fonte
0

Quando parli di password è importante tenere conto di tutti i vettori.

Ad esempio la password "password" impiegherà 2,17 secondi alla forza bruta. "p455w0rd" richiede 29.02 secondi e "p455w0Rd!" richiede 2,4 mesi. Importante: stavamo parlando di forzatura bruta di una password, questi tre esempi richiederebbero meno di un secondo in un attacco basato su dizionario.

Al contrario, "questa lunga password" dura 2,5 milioni di secoli, mentre "th1sIs4l0ngPa55w0rd" dura 36,72 secoli. Tuttavia, utilizzando la password più complessa si aumenta il rischio che qualcuno possa scriverlo su una nota adesiva e attaccarlo sul monitor.

Quindi, mentre una maggiore entropia è migliore da un punto di vista della forza bruta, riduce la sicurezza di un sistema aumentando il rischio che le persone diventino persone e facciano cose insicure, aumentando così la vulnerabilità in altri vettori di attacco.

Per guardare un altro esempio, diciamo che costringi gli utenti a usare una password di lunghezza della frase. Quindi l'utente sceglie "tobeornottobe". Se un hacker andava da solo con la forza bruta, ci sarebbero voluti 9,85 mesi. Ma poiché un hacker utilizzerà attacchi di dizionario e altre euristiche, è probabile che occorra prendere dei minuetti. Se lo stesso utente usasse "2b0n2b", la forza bruta da sola impiegherebbe 0,02 secondi, ma gli attacchi al dizionario sarebbero inutili. L'obiettivo è trovare un punto d'incontro tra facile da ricordare, forza bruta e dizionario duro. Se rendi la tua politica delle password lontana da uno di questi obiettivi, allora hai reso la password generale più debole.

La risposta

Non esiste un limite superiore in cui più entropia causerà un indebolimento della password. C'è un limite massimo quando parli di usando una password nel mondo reale. Il limite superiore è il punto in cui gli utenti del sistema non possono più usare la password senza usare mezzi insicuri per ricordarselo, aprendoti così per altri vettori di attacco.

Le password di time-to-force sono basate sul link in "Scenario di attacco rapido offline"

    
risposta data 25.03.2016 - 18:37
fonte
0

Sì, c'è un caso in cui una password più lunga è meno sicura, ma nessuno dovrebbe usare le password DES in questi giorni, visto che sono banali da crackare comunque. Alcune implementazioni di DES in realtà erano meno sicure e utilizzavano meno entropia quando la password era più lunga di otto caratteri! La soluzione alternativa era di troncare la password a otto caratteri prima dell'hashing. Se si trova qualcuno che utilizza ancora hash password basati su DES, ha anche altri problemi. È anche teoricamente possibile che un difetto simile possa influire su altri algoritmi di hashing delle password (penso che alcune versioni di lanman abbiano un problema simile), ma la maggior parte delle persone che progettano hash delle password apprende dalle lezioni della storia e non sono a conoscenza di una pubblicazione moderna password hash con questo problema.

    
risposta data 28.03.2016 - 21:13
fonte

Leggi altre domande sui tag