Domanda:
XKCD # 936: password complessa breve o passphrase del dizionario lunga?
Billy ONeal
2011-08-11 02:38:03 UTC
view on stackexchange narkive permalink

Quanto è accurato questo fumetto XKCD del 10 agosto 2011?

linked and maintained alt-text

Sono sempre stato un sostenitore del lungo piuttosto che password complesse, ma la maggior parte delle persone di sicurezza (almeno quelle con cui ho parlato) sono contro di me su quella. Tuttavia, l'analisi di XKCD mi sembra azzeccata.

Mi manca qualcosa o questa analisi della poltrona suona?

Una nota pratica: ho usato [Diceware] (http://www.diceware.com) per aiutarmi a selezionare parole casuali prima. Ho scoperto di poter ricordare 5 parole molto facilmente. Ho girato un paio di volte per trovare una sequenza che fosse piacevole da dire (nella mia testa), però, senza necessariamente avere un senso.
Nuove password più comuni: `onetwothreefour`` passwordpasswordpasswordpassword` `teenagemutantninjaturtles`
Penso che i commentatori qui abbiano già sollevato tutti questi punti ma, per la cronaca, ecco alcune elaborazioni dell'autore del fumetto, Randall Munroe: http://ask.metafilter.com/193052/Oh-Randall-you-do-confound -me-so # 2779020
Ti viene da chiederti perché alcune banche limitano la tua password a 6 o 7 caratteri.
@LotusNotes Il mio richiede esattamente CINQUE! E ogni stupido forum richiede un> 8 caratteri, maiuscolo + minuscolo + numeri + punteggiatura ...
I commenti non sono per discussioni estese; questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/30763/discussion-on-question-by-billy-oneal-xkcd-936-short-complex-password-or-long) .
In un test empirico, le passphrase non sembrano aiutare tanto quanto XKCD vorrebbe farti credere: [dl.acm.org/citation.cfm?id=2335356.2335366”(http://dl.acm.org/citation.cfm ? id = 2335356.2335366)
@wbt Interessante. È un peccato che le password con cui stavano confrontando fossero solo 5-6 caratteri. Sarebbe interessante vedere un confronto simile con la sicurezza effettiva.
Dopo altri 5 anni, questo viene finalmente preso in considerazione nelle [linee guida ufficiali per l'autenticazione del NIST] (https://nakedsecurity.sophos.com/2016/08/18/nists-new-password-rules-what-you-need-sapere/).
23 risposte:
AviD
2011-08-11 14:14:01 UTC
view on stackexchange narkive permalink

Penso che la parte più importante di questo fumetto, anche se dovesse sbagliare la matematica ( cosa che non ha fatto), sia visivamente enfatizzare che ci sono due aspetti ugualmente importanti nella selezione di un password complessa (o in realtà, una politica per le password, in generale):

  • Difficoltà da indovinare
  • Difficoltà da ricordare

Oppure, in altre parole:

  • L'aspetto del computer
  • L'aspetto umano

Troppo spesso, quando si discute di password complesse, politiche forti, scadenza, ecc (e, per generalizzare - tutta la sicurezza), tendiamo a concentrarci eccessivamente sugli aspetti del computer e ignoriamo gli aspetti umani.

Soprattutto quando si tratta di password, (e il doppio in particolare per utenti medi ), l'aspetto umano dovrebbe spesso essere la preoccupazione principale.
Ad esempio, con che frequenza vengono applicati criteri di complessità delle password rigorosi dall'IT (come quello mostrato nell'XKCD), fa sì che l'utente annoti la sua password e la leghi al suo sc reen ? Questo è il risultato diretto di concentrarsi troppo sull'aspetto del computer, a scapito dell'aspetto umano.

E penso che che sia il messaggio centrale del saggio di XKCD - sì, Facile da indovinare è un male, ma Difficile da ricordare lo è altrettanto.
E quel principio è corretto. Dovremmo ricordarlo più spesso, AKA Regola di usabilità di AviD :

La sicurezza a scapito dell'usabilità va a scapito della sicurezza.

La tua ultima citazione merita mille voti positivi.
Per un'analisi approfondita della matematica alla base di xkcd, vedere [Risposta di Thomas] (http://security.stackexchange.com/a/6096/33) di seguito. La sua risposta mostra perché xkcd ha capito bene la matematica, un perfetto complemento del motivo per cui in realtà non ha importanza.
scrivere una password non è un gran problema. le persone che ti derubano con contanti, gioielli, oggetti leggeri e schermabili (laptop, tablet ...), ma non si preoccupano di una password su un post sulla tua scrivania. Soprattutto perché a / non hanno il login eb / non sanno a quale servizio è correlato.
@njzk2 Suona molto come una frase che le persone che conservano le proprie password su un postino da scrivania userebbero per rassicurarsi illudendosi di essere al sicuro. Se la mia casa venisse derubata, sarei molto più preoccupato per i ladri che hanno la mia password bancaria che per aver perso i miei soldi, gioielli, ecc; soprattutto se scopro il furto solo quando torno a casa a fine giornata. L'unica giustificazione potenzialmente sostenibile da remoto per mantenere le password sulla scrivania post-it è che sono password per qualcosa di non importante, quindi non è un grosso problema se qualcuno le ruba.
@SantiBailors avere una sequenza casuale di parole su un pezzo di carta da qualche parte è ben lungi dal darti accesso a qualsiasi cosa. potrebbe essere un suggerimento, potrebbe essere una password, potrebbe essere obsoleto, potrebbe essere una trasformazione della password, e anche allora non sai a quale account appartiene, né qual è il nome utente.
@njzk2 Sì, potrebbero essere molte cose, ma le cose che interessano un ladro sono pochissime, quindi il ladro probabilmente darà f.ex. il tuo internet banking alcuni scatti con quella come password. E altre cose che hanno rubato da casa tua probabilmente daranno via ciò che è la tua banca, da cui è facile scoprire che tipo di nomi utente utilizza quel sistema, e se non usa nomi utente standard (ad esempio il mio usa il mio numero di previdenza sociale), è probabile che il nome utente sia scritto sullo stesso post-it. Sto solo dicendo che se scrivo le mie password non le lascerei sulla scrivania.
@SantiBailors ha concordato, non è una buona pratica. Ma penso che sia meglio per qualcuno che avrebbe difficoltà a ricordare una buona password piuttosto che scegliere qualcosa di banale, come il nome del proprio cane.
Generalizzerei "difficoltà a ricordare" a "difficoltà da usare", che contiene sia "difficoltà a ricordare" che "difficoltà a entrare".
Ottima citazione!Mi dispiace usarlo in una pagina infosec interna dell'azienda (con url sorgente)?
@johanvdPluijm per favore fallo!Apprezzerei l'attribuzione o chiamerei la regola con il suo nome proprio :-)
@AviD: L'ho anche inserito nel mio rapporto di stage sulla consapevolezza della sicurezza delle informazioni: "Altri aspetti chiave erano la pertinenza e l'usabilità:" La sicurezza a scapito dell'usabilità va a scapito della sicurezza "(AviD, 2011)."Ecco qua.Ho rettificato l'uso di questa fonte in base al numero di voti positivi.Ora fai parte di un numero limitato di persone che oso citare nella mia relazione di stage (+/- 30 atm)
Un'altra cosa che rende migliore il metodo di pinzatura della batteria (tramite l'osservazione di AviD sull'usabilità) è il numero crescente di dispositivi mobili.Su una tastiera mobile, il metodo "leetspeak" richiede molte beccate e lo spostamento avanti e indietro della tabella dei simboli, mentre il metodo di pinzatura della batteria può essere digitato molto più facilmente con meno rischi di errore.Prova a misurare la velocità con cui puoi inserire una delle due password di esempio sulla tastiera dello schermo di un iPhone.
Non sono sicuro che questo mi sia chiaro.da che parte stai?
Un vantaggio per le password completamente incomprensibili: se qualcuno ne guarda una sullo schermo, non è memorizzabile senza molto lavoro.
Per la cronaca, la regola di usabilità di AviD è simile a "I Hate You Maxim 2" di Roger G. Johnston: _Più una data tecnologia causa problemi o infastidisce il personale di sicurezza, meno efficace sarà_.Puoi trovare questa e altre massime di sicurezza intelligente in [questo PDF] (http://www-personal.umich.edu/~rsc/Security/security_maxims.pdf).
Thomas Pornin
2011-08-11 02:54:22 UTC
view on stackexchange narkive permalink

Ecco una spiegazione approfondita della matematica in questo fumetto:

Le piccole scatole nel fumetto rappresentano l ' entropia in scala logaritmica, cioè "bit". Ogni scatola significa un po 'di entropia in più. L'entropia è una misura del costo medio per ottenere la password corretta in un attacco di forza bruta. Partiamo dal presupposto che l'attaccante conosca il metodo esatto di generazione della password, comprese le distribuzioni di probabilità per scelte casuali nel metodo. Un'entropia di n bit significa che, in media, l'attaccante proverà 2n-1 password prima di trovare quella giusta. Quando le scelte casuali sono equiprobabili , hai n bit di entropia quando ci sono 2n possibili password, che significa che l'attaccante, in media, ne proverà la metà. La definizione con il costo medio è più generica, in quanto coglie i casi in cui le scelte casuali prese durante il processo di generazione della password (quella che di solito si verifica nella testa dell'utente umano) sono non uniformi. Vedremo un esempio di seguito.

Il punto di utilizzare "bit" è che si sommano. Se hai due metà della password che generi indipendentemente l'una dall'altra, una con 10 bit di entropia e l'altra con 12 bit, l'entropia totale è di 22 bit. Se dovessimo usare una scala non logaritmica, dovremmo moltiplicare: 210 scelte uniformi per la prima metà e 2 12 sup> scelte uniformi per l'altra metà compensano 2 10 · 2 12 = 2 22 scelte uniformi. Le aggiunte sono più facili da trasmettere graficamente con piccole scatole, da qui il nostro utilizzo di bit.

Detto questo, vediamo i due metodi descritti nel fumetto. Inizieremo con il secondo, che è più facile da analizzare.

Il metodo "cavallo corretto"

Il processo di generazione della password per questo metodo è: prendere un dato elenco (pubblico) di 2048 parole (presumibilmente parole comuni, facili da ricordare). Scegli quattro parole casuali in questo elenco, in modo uniforme e indipendente l'una dall'altra: seleziona una parola a caso, quindi seleziona di nuovo una parola a caso (che potrebbe essere la stessa della prima parola), e così via per una terza e poi una quarta parole. Concatena tutte e quattro le parole insieme e voilà! hai la tua password.

Ogni selezione di parole casuali vale 11 bit, perché 2 11 = 2048 e, soprattutto, ogni parola è selezionata uniformemente (tutte le 2048 parole hanno la stessa probabilità di 1/2048 di essere selezionate) e indipendentemente dalle altre parole (non scegli una parola in modo che corrisponda o no -corrisponde alle parole precedenti e, in particolare, non si rifiuta una parola se risulta essere la stessa scelta di una parola precedente). Dal momento che gli umani non sono affatto bravi a fare scelte casuali nella loro testa, dobbiamo presumere che la selezione casuale delle parole sia effettuata con un dispositivo fisico (dadi, lanci di monete, computer ...).

l'entropia totale è quindi di 44 bit, corrispondenti alle 44 caselle del fumetto.

Il metodo "troubador"

Per questo, le regole sono più complesse :

  1. Seleziona una parola a caso in un dato ampio elenco di parole significative.
  2. Decidi in modo casuale se mettere in maiuscolo la prima lettera o meno.
  3. Per le lettere che possono beneficiare di "sostituzioni tradizionali", applicare o meno la sostituzione (decidere in modo casuale per ogni lettera). Queste sostituzioni tradizionali possono essere, ad esempio: "o" -> "0", "a" -> "4", "i" -> "!", "E" -> "3", "l" -> "1" (le regole forniscono un elenco esaustivo pubblicamente noto).
  4. Aggiungi un segno di punteggiatura e una cifra.

La parola casuale è valutata a 16 bit dal fumetto, il che significa selezione uniforme in un elenco di 65536 parole (o non uniforme in un elenco più lungo). Ci sono più parole di quelle in inglese, apparentemente circa 228000, ma alcune di esse sono molto lunghe o molto brevi, altre sono così rare che le persone non le ricorderebbero affatto. "16 bit" sembra essere un conteggio plausibile.

Mettere in maiuscolo o non maiuscolo la prima lettera è, nominalmente, 1 bit di entropia (due scelte). Se l'utente fa quella scelta nella sua testa, allora questo sarà un equilibrio tra la sensazione di sicurezza dell'utente ("le maiuscole sono ovviamente più sicure!") E la pigrizia dell'utente ("le minuscole sono più facili da digitare") . Anche in questo caso, "1 bit" è plausibile.

Le "sostituzioni tradizionali" sono più complesse perché il numero di lettere ammissibili dipende dalla parola di base; qui, tre lettere, quindi 3 bit di entropia. Altre parole potrebbero avere altri conteggi, ma sembra plausibile che, in media, troveremo circa 3 lettere idonee. Questo dipende dalla lista delle "sostituzioni tradizionali", che si presume essere una data convenzione.

Per il segno di punteggiatura e la cifra extra, il fumetto fornisce 1 bit per la scelta di quale viene o il segno di punteggiatura), quindi 4 bit per il segno e 3 bit per la cifra. Il conteggio delle cifre merita una spiegazione: questo perché gli umani, quando viene chiesto di scegliere una cifra casuale, sono per niente uniformi; la cifra "1" avrà da 5 a 10 volte più possibilità di essere selezionata rispetto a "0". Tra i fattori psicologici, "0" ha una connotazione negativa (vuoto, buio, morte), mentre "1" è visto positivamente (vincitore, campione, alto). Nel sud della Cina, "8" è molto popolare perché la parola "otto" è pronunciata allo stesso modo della parola "fortuna"; e, allo stesso modo, "4" viene evitato a causa dell'omofonia con la parola "morte". L'aggressore proverà prima le password in cui la cifra è un "1", consentendogli di beneficiare della non uniformità delle scelte dell'utente.

Se la scelta della cifra non è fatta da un cervello umano ma da un dispositivo imparziale, allora otteniamo 3,32 bit di entropia, non 3 bit. Ma è abbastanza vicino a scopo illustrativo (capisco perfettamente che Randall Munroe non volesse disegnare riquadri parziali).

Quattro bit per la punteggiatura sono un po 'sottostimati; ci sono 32 segni di punteggiatura in ASCII, tutti relativamente facili da digitare su una comune tastiera. Ciò significherebbe 5 bit, non 4. Anche in questo caso, se il segno è scelto da un essere umano, alcuni segni saranno più comuni di altri, perché gli umani raramente pensano a "#" o "|" come "punteggiatura".

Il totale generale di 28 bit è quindi giusto, sebbene dipenda dai dettagli precisi di alcune selezioni casuali e dall'elenco delle "sostituzioni tradizionali" (che influisce sul numero medio di lettere ammissibili). Con una password generata dal computer, possiamo sperare in circa 30 bit. È ancora basso per quanto riguarda i 44 bit del metodo "cavallo corretto".

Applicabilità

I paragrafi precedenti mostrano che la matematica nel fumetto è corretto (almeno con la precisione che ci si può aspettare in queste condizioni - questo è un webcomic , non un articolo di ricerca ). Richiede ancora le seguenti condizioni:

  • Il "metodo di generazione della password" è conosciuto dall'aggressore. Questa è la parte in cui @Jeff non crede. Ma ha senso. Nelle grandi organizzazioni, i responsabili della sicurezza pubblicano tali linee guida per la generazione di password. Anche quando non lo fanno, le persone hanno Google e colleghi e tenderanno a utilizzare una delle circa una dozzina di regole. Il fumetto include disposizioni per questo: "Puoi aggiungere qualche bit in più per tenere conto del fatto che questo è solo uno dei pochi formati comuni".

    Conclusione: anche se mantieni il tuo metodo " segreto ", non sarà quel segreto perché seguirai più o meno consapevolmente un metodo" classico ", e non ce ne sono molti.

  • Le scelte casuali sono casuali e uniformi . Questo è difficile da ottenere con gli utenti umani. Devi convincerli a usare un dispositivo per una buona casualità (una moneta, non un cervello), e ad accettare il risultato. Questo è il succo della mia risposta originale (riprodotta sotto). Se gli utenti modificano le scelte, se non altro generando un'altra password se quella che hanno ottenuto "non gli piace", allora si discostano dall'uniformità casuale e l'entropia può essere solo abbassata (la massima entropia si ottiene con casualità uniforme; non è possibile migliora, ma puoi peggiorare molto).

La risposta giusta è ovviamente quella di @AviD. I calcoli nel fumetto sono corretti, ma il punto importante è che le buone password devono essere sia difficili da indovinare e facili da ricordare. Il messaggio principale del fumetto è mostrare che le comuni "regole di generazione delle password" falliscono in entrambi i punti: rendono difficile ricordare le password, che tuttavia non sono così difficili da indovinare.

Illustra anche il fallimento delle menti umane nel valutare la sicurezza. "Tr0ub4dor&3" sembra più casuale di "correcthorsebatterystaple"; e le stesse menti daranno buoni punti a quest'ultimo solo per il motivo sbagliato, cioè la convinzione diffusa (ma fuorviante) che la password lunghezza faccia forza . Non è così. Una password non è forte perché è lunga; è forte perché include molta casualità (tutti i bit di entropia di cui abbiamo discusso fin dall'inizio). La lunghezza extra consente più forza, dando più spazio alla casualità; in particolare, consentendo una casualità "gentile" facile da ricordare, come la cosa del cavallo elettrico. D'altra parte, una password molto breve è necessariamente debole, perché c'è solo tanta entropia che puoi inserire in 5 caratteri.

Nota che "difficile da indovinare" e "facile da ricordare" non coprono tutto ciò che è da dire sulla generazione di password; c'è anche "facile da usare", che di solito significa "facile da digitare". Le password lunghe sono un problema sugli smartphone, ma le password con cifre e segni di punteggiatura e maiuscole / minuscole sono probabilmente anche peggiori.


Risposta originale:

Il fumetto presume che la selezione di una parola "comune" casuale produca un'entropia di circa 11 bit, il che significa che ci sono circa 2000 parole comuni. Questo è un conteggio plausibile. Il trucco, ovviamente, è avere una selezione davvero casuale. Ad esempio, le seguenti attività:

  • seleziona quattro parole a caso, quindi ricordale nell'ordine che ha più senso;
  • se le quattro parole sembrano troppo difficili da ricordare, eliminali e selezionane altri quattro;
  • sostituisci una delle parole con il nome di un calciatore (l'attaccante non lo indovinerà mai!);

... tutto ridurre l'entropia. Non è facile convincere i tuoi utenti a utilizzare effettivamente la casualità e ad accettare il risultato .

Gli stessi utenti probabilmente si lamenteranno del fastidio di digitare una password lunga (se la digitazione comporta uno smartphone, devo dire che li capisco abbastanza). Un utente infelice non è mai una buona cosa, perché inizierà a cercare contromisure che gli rendano la vita più facile, come conservare la password in un file e "digitarla" con una copia&paste. Gli utenti possono spesso essere sorprendentemente creativi in ​​questo modo. Pertanto, le password lunghe tendono a ritorcersi contro, dal punto di vista della sicurezza.

I commenti non sono per discussioni estese; questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/30766/discussion-on-answer-by-thomas-pornin-xkcd-936-short-complex-password-or-long) .
Una cosa cruciale che credo manchi a questa risposta è una menzione degli attacchi al dizionario.Può essere ovvio a chiunque sia esperto in queste cose che gli attacchi del dizionario sono considerati nel calcolo dell'entropia, ma ogni volta che ho sentito qualcuno criticare questa striscia xkcd, è sulla base del fatto che l'autore considera solo gli attacchi di forza bruta e che un verol'autore dell'attacco può utilizzare un attacco dizionario più sofisticato.Il pensiero è sbagliato, ma penso che gli attacchi del dizionario necessitino di una menzione solo per negare gli oppositori e chiarire la confusione qui.
Un errore qui: una stringa di 4 parole scelte a caso dal tuo dizionario ... è anche una stringa di caratteri scelti dall'alfabeto di 26 lettere ... e la sua entropia deve essere vista anche a questo riguardo.Quindi il numero totale di lettere nella stringa deve essere tale da non ridurre l'entropia vista da un punto di vista "Parola".
@Score_Under Al contrario, questa risposta presuppone un attacco del dizionario, così come il fumetto.
Adoro il modo in cui tu e AviD vi collegate alle risposte l'uno dell'altro.
@NH [Succede.] (Https://xkcd.com/978/)
@ARi Usando il metodo della forza bruta che hai menzionato, e supponendo che tu usi almeno quattro parole di 5 lettere, il secondo metodo avrebbe almeno [112,4 bit] (https://www.wolframalpha.com/input/?i=log2 ((5 * 4)% 5E26)) di entropia.(L'uso di un attacco con dizionario lo riduce a 44 bit, come mostrato.) Naturalmente, tutto ciò presuppone che l'aggressore conosca la lunghezza della password, rendendola un po 'ottimista.
@Score_Under Vedi sopra per il metodo della forza bruta.(L'ho scoperto per caso.)
@ARi sei sicuro che sia "una stringa di caratteri scelti dall'alfabeto" in modo tale da aumentarne l'entropia?non è specificamente NON quello?So cosa intendi: è una stringa di caratteri, ma non è una stringa di caratteri * casuali *.La forza non è 26 ^ 25.
"c'è solo così tanta entropia che puoi inserire in 5 caratteri."- Unicode definisce> 100k caratteri, dando a un carattere un'entropia simile a una parola del dizionario inglese (~ 17 bit).5 caratteri di Unicode casuale hanno più entropia (~ 85 bit) di 6 parole di Diceware (~ 78 bit).Tuttavia, più difficile da inserire su alcuni dispositivi.
@LukeSawczak Esattamente!Questo è quello che dice Score_Under ... Per favore usa la frase "attacco dizionario" per essere ancora più chiaro.È davvero facile pensare erroneamente che i calcoli siano basati sulla forzatura bruta carattere per personaggio.
Per quanto riguarda lo smartphone, presento che la password del tipo `` cavallo corretto '' sarà più facile da inserire rispetto a quella del trovatore perché * non è necessario continuare a passare da minuscolo, maiuscolo, lettere, numeri e simboli ogni altra lettera *.E come bonus, riduce anche notevolmente la possibilità di errori di punti, perché sono parole che sai scrivere, quindi la tua memoria muscolare individuerà correttamente gli errori che commetti anche quando non puoi vedere cosa stai digitando.
"Troubador" non si scrive con un "nostro"?quindi "ou" con "o" è una sostituzione?in caso contrario, 1 lettera è stata cancellata e non contabilizzata.
Jeff Atwood
2011-08-11 04:34:29 UTC
view on stackexchange narkive permalink

Le due password, basate sul controllo della sicurezza della password di rumkin.com:

  • Lunghezza: 11
  • Forza: Ragionevole - Questa password è abbastanza sicura dal punto di vista crittografico e gli hacker esperti potrebbero aver bisogno di una buona potenza di calcolo per decifrarla. (Dipende molto dall'implementazione!)
  • Entropia: 51,8 bit
  • Dimensione set di caratteri: 72 caratteri

e

graffetta corretta della batteria del cavallo

  • Lunghezza: 28
  • Forza: Forte - Questa password è in genere abbastanza buono per proteggere in modo sicuro informazioni sensibili come i registri finanziari.
  • Entropia: 104,2 bit
  • Dimensione set di caratteri: 27 caratteri

È certamente vero che la lunghezza, a parità di altre condizioni, tende a creare password molto complesse, e lo vediamo confermato qui.

Anche se i singoli caratteri sono tutti limitati a [az] , l'esponente implicito in "abbiamo aggiunto un altro carattere minuscolo, quindi moltiplica per 26 ancora " tende a dominare i risultati.

In altre parole, 72 11 < 27 28 .

Ora, ciò che non è chiaramente affrontato:

  1. le password devono essere inserite manualmente? A In caso affermativo, quanto è difficile, meccanicamente, inserire un carattere della password? Su una tastiera è facile, ma su uno smartphone o una console ... non così tanto.

  2. Quanto sono facili queste password da ricordare ?

  3. Quanto sono sofisticati gli attacchi alle password? In altre parole, cercheranno effettivamente schemi comuni come "parole del dizionario separate da spazi", o "una frase completa con punteggiatura", o "sostituzione numb3r" come implicito in xkcd? Fondamentalmente, questo è il modo in cui XKCD giustifica il taglio della metà dell'entropia della prima password!

Il punto 3 è quasi senza risposta e penso personalmente altamente improbabile nella pratica. Mi aspetto che sarà una forza bruta da testa di cervello per tutto il percorso per ottenere il frutto a bassa pendenza, e il resto ignorato. Se non c'è alcun frutto di password basso (e oh, ce n'è sempre ), passeranno semplicemente al prossimo servizio potenziale vittima.

il fumetto è materialmente accurato in termini di matematica, ma gli attacchi predittivi con password divini che implica sono in gran parte un mito. Il che significa, IMHO, che queste due password specifiche sono una sorta di lavaggio in pratica e offrirebbero livelli di protezione simili.

@Jeff, questa risposta è viziata. Ti affidi a Rumpkin per la stima dell'entropia della password, ma le stime di Rumpkin sono apparentemente false. Guarda di nuovo il fumetto xkcd: rappresenta visivamente la giustificazione per la sua stima dell'entropia (questo è ciò che stanno facendo le piccole scatole). Le stime dell'entropia di xkcd mi sembrano giuste e le tue stime dell'entropia sembrano sbagliate (eccessivamente ottimistiche). Sono totalmente in disaccordo con la tua conclusione e non vedo da dove l'hai presa.
I commenti non sono per discussioni estese; questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/30767/discussion-on-answer-by-jeff-atwood-xkcd-936-short-complex-password-or-long- d).
nealmcb
2011-08-11 04:28:31 UTC
view on stackexchange narkive permalink

Sono d'accordo che la lunghezza è spesso preferibile alla complessità. Ma penso che la controversia sia meno su questo, e più su quanta entropia si vuole avere. Il fumetto dice che un "attacco plausibile" è di 1000 tentativi al secondo:

"Attacco plausibile a un servizio web remoto debole. Sì, rompere un hash rubato è più veloce, ma non è quello medio l'utente dovrebbe preoccuparsi di "

Ma vedo più consenso sul fatto che gli operatori di siti web non possono mantenere i loro database hash protetti nel tempo dagli aggressori, quindi dovremmo progettare le password e gli algoritmi hash per resistere a rubare gli hash per attacchi offline. E un attacco offline può essere massiccio, come descritto in Come eseguire l'hashing sicuro delle password?

Ciò rende il problema ancora più difficile e i siti dovrebbero davvero esaminare le opzioni oltre a richiedere agli utenti di memorizzare le proprie password per ogni sito web, es tramite OpenID e OAuth. In questo modo l'utente può ottenere un buon metodo di autenticazione (forse anche coinvolgendo un token hardware) e sfruttarlo per l'accesso al Web.

Ma un buon hashing della password può essere eseguito anche tramite buoni algoritmi, un po 'più di lunghezza e strumenti bookmarklet. Usa le tecniche descritte alla domanda sopra sul server (ad esempio bcrypt, scrypt o PBKDF2) e il consiglio su Esiste un metodo per generare password specifiche per il sito che possono essere eseguite nella mia testa? sull'uso di SuperGenPass (o SuperChromePass) da parte dell'utente / client.

interessante, quindi questo significa dal punto di vista dell'utente, la scelta della password è quasi - tranne che per i danni cerebrali di tipo "Password1" - irrilevante!
Bene, dipende da quale sia la minaccia. Potrei semplicemente iniziare a scrivere rischio = minaccia x vulnerabilità x esposizione su ogni domanda. E per Thomas quelle sono operazioni multidimensionali su prodotti incrociati, e sto assumendo un sistema di coordinate destrorso nello spazio euclideo.
@jeff Niente affatto. La password principale usata per supergenpass dovrebbe essere ancora buona, e dovresti usare anche la loro password "invisibile" e più di 10 password di caratteri tramite la loro opzione "personalizzata", nel tuo javascript. Perché come al solito si presume che l'attaccante possa provare password basate su supergenpass, ad es. forse perché sanno che lo usi. Ma l'utente deve solo memorizzare una buona password.
Non hai bisogno di una password complessa per il sito web. Basta forzare un ritardo di `2 ^ tentativi` di millisecondi tra due tentativi di accesso consecutivi o bloccare la password dopo 10 tentativi errati. 10.000 password diverse sono sufficienti per una protezione decente se abbiamo solo bisogno di proteggere un sito web.
@Elazar Leibovich: L'attacco descritto (offline) viene eseguito contro il database compromesso; non sarà limitato dai tuoi ritardi. Inoltre, introduci un metodo DDOS.
@MSalter, se temi che il tuo database venga compromesso di tanto in tanto, costringi gli utenti a cambiare la password ogni mese. Se usano una password molto breve non gli dispiacerà così tanto. bcrypt può anche aiutare a proteggere anche le password a bassa entropia. A proposito, se il tuo DB perde troppo spesso, invertire gli hash è l'ultima delle preoccupazioni dei tuoi utenti ...
@Elazar Ho avuto accesso a tutti i tipi di database nei miei vari lavori. Nella maggior parte di essi, nessuno si accorgerebbe se scaricassi una copia su un file e uscissi con esso, invertissi quelle password brevi e irrilevanti che gli utenti hanno facilmente riutilizzato su altri siti, per poi passare da lì. La compromissione del database da parte di un attore esterno non è l'unico motivo per l'hashing corretto delle password o per gli utenti che scelgono password complesse.
@Ninefingers, ma se nessuno si accorgesse che scarichi la tabella degli utenti, nessuno si accorgerebbe che hai cambiato l'hash dell'utente per alcune ore o che scarichi le sue informazioni personali. Quindi, finché la talpa lavora lì, i tuoi dati sono compromessi. Quando smetterai di lavorare lì, l'utente cambierà la sua password. E come accennato, invertire un buon schema hash non è banale. Indipendentemente dalle password deboli.
@elazar Stai ignorando il disagio per l'utente derivante da frequenti controlli di password e il danno fatto durante il 1/2 mese in cui l'attaccante ha accesso all'account dell'utente, per non parlare del tempo più lungo in cui l'attaccante ha accesso ad altri account in cui l'utente ha riutilizzato la password. Evitare le password o ridurre il numero di password univoche con cui un utente deve occuparsi può aiutare in molti modi, incluso il consentire loro di concentrarsi su una o alcune di quelle veramente valide.
`` @nealmcb @elazar non è solo una cosa di convenienza. Se permetti password deboli o forti, le persone usano le password in schemi, come "tuototalmente non indovineresti questo01" e poi "tuototalmente non indovinerebbe questo02". Inoltre, se i servizi aggiuntivi non applicano la stessa restrizione, vengono influenzati. Un buon hashing è quindi fondamentale: il piano è se il database è già compromesso. Anche se hai ragione che se stai effettivamente riscontrando frequenti compromessi, probabilmente hai problemi più grandi.
@elazar - come da punto di nealmcb. Dai un'occhiata a http://security.stackexchange.com/q/4704/665 che discute i pro ei contro dei tempi di scadenza delle password brevi / lunghi.
Dovremo ancora sopportare il danno cerebrale sotto forma di hash NTLM per il prossimo futuro. Che sono banalmente rilevabili in ambiente LAN. Tutto in nome della retrocompatibilità!
Chris Cudmore
2011-08-11 21:32:03 UTC
view on stackexchange narkive permalink

Penso che la maggior parte delle risposte qui non capisca il punto. Il frame finale parla di facilità di memorizzazione. il corretto fiocco della batteria del cavallo (digitato dalla memoria !!) elimina il pericolo fondamentale della sicurezza delle password - La nota Post-IT.

Usando la prima password, ho una nota Post-IT nel mio portafoglio (se sono intelligente) o nel cassetto della scrivania (se sono stupido), il che è un enorme rischio per la sicurezza.

Supponiamo che l'opzione della passphrase sia sicura solo quanto l'opzione della parola di base mungata, quindi sto già meglio perché ho eliminato il fallimento umano nella memorizzazione delle password.

Anche se annotassi la passphrase, non sembrerebbe una password. Potrebbe essere una lista della spesa - Sciroppo di uova di latte e pane. Ma 5t4ck3xCh4ng3 è ovviamente una password. Se mi imbattessi in questo, sarebbe la prima cosa che proverei.

Ho problemi con lo strano ordine delle parole. La cosa divertente è che penso che l'immagine FINALE del fotogramma, con "Cavallo: è una graffetta della batteria. Io: corretto!" è ancora più semplice e facile da ricordare poiché è il modo in cui funzionerebbe la frase effettiva. E molto più forte ..
Forse dovremmo solo introdurre password grafiche, in cui devi disegnare il cavallo e la graffetta della batteria nell'immagine del fotogramma finale. ;-)
Assolutamente, come ho detto anche nella mia risposta: la sicurezza delle password non riguarda * solo * l'entropia, riguarda l'aspetto umano e il modo in cui l'utente lo ricorda (o no). L'entropia è assolutamente importante, ma non è la fine della storia.
Avere un post-it con una password molto complessa sicuramente batte avere una password errata memorizzata. Di solito ti stai proteggendo da attacchi remoti, non da qualcuno che si intrufola sulla tua scrivania (questo è un problema per la sicurezza dell'ufficio). Inoltre, con i post-it puoi facilmente mascherare la password o modificarla leggermente ("ogni 1 è un 2", o la password è solo la metà di ciò che è scritto ecc.) Per renderla inutile per chiunque altro. Stai semplificando eccessivamente. (Inoltre, mi sono appena reso conto di quanti anni ha questo, scusa, ma penso ancora che si applichi)
6 anni dopo dalla memoria: "Correct Horse Battery Staple".(Scorri verso l'alto e seleziona - SÌ!)
@pzkpfw Stai assumendo che un attaccante remoto sia più probabile.Tuttavia, quali sono le possibilità che un utente malintenzionato remoto sia più interessato alla tua password rispetto (ad esempio) a un collaboratore risentito?
@jpaugh il punto è che quando si parla di sicurezza, è un assioma ben noto che "accesso fisico = game over".Proteggersi dai propri colleghi comporta un insieme di procedure completamente diverso (sicurezza fisica, casseforti, lucchetti, ecc.) - Per motivi di semplicità le discussioni sulle password dovrebbero concentrarsi sugli aggressori remoti perché è normalmente ciò da cui le password sono progettate per proteggersi.Questo non significa che gli attacchi remoti siano gli unici attacchi esistenti, ma solo che è una discussione molto ampia.
@pzkpfw Usare un post-it è un passaggio fondamentale da "qualcosa che conosci" a "qualcosa che hai".Si rompe 2FA.
Misha
2011-09-02 02:25:00 UTC
view on stackexchange narkive permalink

Per aggiungere all ' eccellente risposta di Avid, gli altri messaggi chiave del fumetto sono:

  • il modo appropriato per calcolare l'entropia di un algoritmo di generazione di password è calcolare l'entropia dei suoi input, non per calcolare l'entropia apparente dei suoi output (come fanno rumkin.com, grc.com ecc.)
  • variazioni minori dell'algoritmo come sostituzioni "1337-5p34k" e "pre / append punct & digits "aggiunge meno entropia di quanto la maggior parte degli utenti (o amministratori di sistema) pensi
  • (più sottilmente) l'entropia della passphrase dipende dalla dimensione dell'elenco di parole (e dal numero di parole), non dal numero di caratteri, ma può comunque fornire entropia facilmente sufficiente per proteggere dagli attacchi di forza bruta "generatori di algoritmi consapevoli"

A quei messaggi potremmo voler aggiungere:

  • come utente puoi " t generalmente controlla se l'operatore del sito web utilizza salting, bcrypt / scrypt / PBKDF2, mantiene gli hash delle password al sicuro, o anche se l'hash delle password in primo luogo - quindi probabilmente dovresti scegliere passwo rds che contano sulla base del fatto che non (ad es. assumere 10 ^ 9 tentativi al secondo quando si dimensionano password / frasi, non riutilizzare le password e non utilizzare semplici tecniche di "aggiunta del nome del sito") - il che probabilmente rende inevitabile l'utilizzo di LastPass / KeePass / hashpass
  • parole lunghe e complicate non aggiungono molto all'entropia a meno che non ne usi più di un paio (ci sono solo ~ 500.000 parole in inglese, che sono solo 19 bit - solo 8 bit in più di una parola dall'elenco di 2048 parole di Randall )
  • le "parole casuali" devono essere veramente casuali affinché funzioni: scegliere testi di canzoni / citazioni di film / versi della Bibbia dà un'entropia molto inferiore (ad esempio, anche con una scelta perfettamente casuale, ci sono solo 700.000 parole nella Bibbia, quindi ci sono solo frasi bibliche di ~ 4M 5-10 parole, che sono solo 22 bit di entropia)
Hai considerato che dalla Bibbia ci sono potenzialmente dozzine di traduzioni diverse? King James, NIV, New American Standard, Strong's Concordance, la lista potrebbe continuare. E questo è solo inglese. Supponiamo che un americano conoscesse diversi versi in klingon (con accenti appropriati, se appropriato). Anche il rovescio della medaglia è un concetto interessante. Le biblioteche di cracking delle password possono diventare i depositi (fuori uso) di tutta la conoscenza, perché saranno inclusi i seminari universitari, le trasmissioni di notizie e tutto il resto.
@killermist.[Esiste già.] (Https://libraryofbabel.info/bookmark.cgi?vodqkovajzfg,.p.oxnd182) (Cerca Klingon al link)
dr jimbob
2011-08-11 10:10:26 UTC
view on stackexchange narkive permalink

Amo xkcd e sono d'accordo con il suo punto di base: le passphrase sono ottime per aggiungere entropia, ma penso che abbia minimizzato l'entropia sulla prima password.

Vediamola:

  • Parola del dizionario casuale. xkcd: 16 bit, Me: 16 bit. Una parola casuale da un dizionario con ~ 65000 parole è lg (65000) ~ 16. Molto ragionevole
  • Aggiungere in maiuscolo. xkcd: 1 bit, Me: 0 bit (trattate nelle sottostazioni comuni). 1 bit significa che c'è o non c'è - il che sembra molto basso per la complessità aggiunta aggiungendo le maiuscole a una password - generalmente quando le lettere maiuscole a una password sono in un posto casuale o posso pensare ad altri molti possibili schemi di capitalizzazione (capitalizza tutto , metti in maiuscolo l'ultima lettera). Lo raggrupperò con sostituzioni comuni.
  • Sostituzioni comuni. xkcd: 3 bit, Me: 13 bit. Solo 8 scelte per le sostituzioni di leet speak, anche se usate solo a volte? Posso pensare in media a ~ 2 modi per alterare ogni lettera (come da a a @ , 4 ; da b a 8 , 6 ; da c a (, [, < ) e aggiungi la lettera originale o maiuscola, quindi per una lettera di 9 password, ho aumentato l'entropia di 18 (lg (4 ** 9) = 18), se scelgo casualmente ogni lettera da modificare o meno. Tuttavia, è troppo alto per questa password. Un approccio più ragionevole sarebbe diciamo di aver scelto a caso diciamo 4 lettere a "sostituzioni comuni" a (una delle due opzioni di leet, più le maiuscole per tre opzioni per ogni lettera che viene sostituita). Quindi arriva a lg (nCr (9,4) 3 * 4) ~ 13 bit.

  • Aggiunta di due caratteri casuali "&3" alla fine. xkcd: 8 bit, Me: 15 bit. Lo considero come due caratteri in uno di ~ 4 posti (diciamo prima della parola, uno prima e uno dopo, entrambi dopo o entrambi nel mezzo della parola). Lascerò anche caratteri non speciali in queste due lettere aggiunte. Quindi, assumendo un dizionario di 88 caratteri (56 caratteri + 10 cifre, più 32 simboli) aggiungi lg (4 * 80 ** 2) ~ 15 bit di entropia.

Quindi ho il calcolo come se non fosse 16 + 2 + 2 + 8 = 28 bit di entropia, ma essendo 16 + 13 + 15 = 44 bit molto simile al suo passphrase.

Inoltre non penso che 3 giorni a 1000 tentativi / sec siano in alcun modo "facili" da indovinare o il meccanismo di attacco plausibile. Un servizio Web remoto dovrebbe rilevare e rallentare un utente che prova più di 10000 ipotesi in un periodo di un giorno per un utente specifico.

Molto più probabili sono altri attacchi (es. key logger su computer pubblici, un amministratore malizioso di un servizio che registra le password e le riutilizza, intercetta se ssl non viene utilizzato, ottiene in qualche modo l'accesso al server (es. SQL iniezione; irruzione nella sala server; ecc.).

Uso una passphrase quando è necessaria, ad esempio una crittografia avanzata (e non 44 bit più come 80 bit, in genere una passphrase diceware di 8 parole più due o tre modifiche - ad esempio, scrivere in modo errato una parola o sostituire una parola con una parola non diceware che inizia con le stesse due lettere; ad esempio, se hai scritto "yogurt", sostituiscilo con "yomama"). Per i siti web (senza denaro o permessi di sicurezza), non mi interessa che le password banali vengano generalmente utilizzate.

Noto che per le password usate spesso, sono molto più bravo a digitare le password che a digitare le mie passphrase (il che diventa fastidioso quando devi ridigitare una frase di ~ 50 caratteri alcune volte). Anche per le password, spesso preferisco trovare una frase casuale (come il testo di una canzone casuale - a una canzone che nessuno assocerebbe a te che non sia particolarmente significativa) e trovare una password basata sulle parole (come a volte usa la prima lettera; ultima lettera; o sostituire una parola per un simbolo; ecc.). Per esempio. L ^ # g&B9y3r da "Carica le armi e porta il tuo" da Smells Like Teen Spirit.


TL; DR : Randall ha ragione, se tu (a) supponi di poter controllare le password a 1000 / s per tre giorni senza subire rallentamenti e (b) puoi fare molte supposizioni sulla password: costruita sulla base di una parola del dizionario rara, che è maiuscola, ha alcune sostituzioni leet per alcune lettere comunemente sostituite e ha un simbolo e un numero aggiunti alla fine. Se generalizzi solo leggermente le sostituzioni consentite (come ho fatto io) e i caratteri aggiunti alla fine, ottieni un'entropia simile alla passphrase.

In sintesi, entrambi sono probabilmente sicuri per la maggior parte degli scopi con un basso livello di minaccia. Sei molto più vulnerabile da altri exploit, qualcosa con cui Randall sarebbe probabilmente d'accordo [538] [ 792]. In generale, avere requisiti per la password come avere un simbolo / numero superiore / inferiore / è buono, a condizione che siano consentite anche passphrase ad alta entropia. Forza la complessità aggiuntiva per le password più brevi, ma consenti che più di 20 caratteri siano tutti minuscoli. Alcuni utenti sceglieranno passphrase scadenti proprio come scelgono password scadenti (come "questo è divertente", che viene assurdamente affermato essere ridicolmente sicuro qui o utilizzando il nome del loro bambino o della loro squadra sportiva preferita). La richiesta di caratteri speciali può rendere non banale indovinare facilmente (diciamo con un fattore di 100-1000 - cambiare una password da 10 probabili ipotesi a 10000 è molto significativo). Sicuramente non impedirà a nessun bot su un servizio web debole che consente migliaia di tentativi di accesso errati al secondo, ma impone l'aggiunta di un livello di sicurezza modesto che ostacolerebbe gli sforzi sui siti che limitano gli accessi errati o dal non sofisticato indovinare manualmente la password. Un po 'come il modo in cui una serratura standard a 5 pin è fondamentalmente insicura poiché chiunque può imparare a prenderla in pochi minuti (o rompere il vetro della finestra); tuttavia in pratica chiudere la porta è utile in quanto fornisce una certa sicurezza contro i non sofisticati che non hanno strumenti a portata di mano (e rompere le finestre comporta il rischio di avvisare gli altri).

"Un servizio web remoto dovrebbe rilevare e rallentare un utente che prova più di 10000 ipotesi in un periodo di un giorno per un utente specifico." <- Nota che la striscia dice "servizio web insicuro". Ovviamente un servizio web sicuro rallenta le cose. Tuttavia, non tutti i servizi web sono sicuri.
il fumetto sta dicendo che tutte queste cose che potrebbero aumentare l'entropia sono fatte stupidamente dagli utenti (solo la prima lettera maiuscola; usa una parola e aggiungi solo numeri e simboli casuali alla fine; ecc.).
@DanBeale: Se non ti fidi che gli utenti creino una password in modo opportunamente casuale, come ti fidi di loro per creare una passphrase in modo opportunamente casuale? "questo è divertente" o "fammi entrare" o "soffice è gonfio".
@Billy ONeal: Ho letto la parte del servizio web insicuro, ma penso che sia irrilevante. La maggior parte dei servizi in cui vale la pena hackerare (banche, principali account di posta elettronica, principali venditori (amazon), ecc.) Dovrebbero eseguire la limitazione dell'accesso di base. http://stackoverflow.com/questions/549/the-definitive-guide-to-forms-based-website-authentication/477578#477578 I servizi web non sicuri non lo faranno; ma poi di nuovo probabilmente non dovresti fornire alcuna informazione a servizi web insicuri in ogni caso - potrebbero memorizzare la tua password in chiaro su computer con noti ben noti exploit che richiederebbero a qualcuno molto meno di 3 giorni per decifrare.
@Billy ONeal: A meno che tu non abbia fatto qualcosa per renderti un target specifico, nessuno spenderà 300 milioni di tentativi su Internet per ottenere la tua passphrase per il tuo login. Dopo alcuni minuti di tentativi, passeranno al nome utente successivo cercando di ottenere frutti bassi. (A meno che, ovviamente, non si tratti di hacking offline; nel qual caso 28 bit e 44 bit non sono entrambi sicuri per qualsiasi tentativo reale.)
@dr jimbob: Non lo faccio. Vediamo in questa stessa pagina un utente che dice di generare una passphrase diceware, ma che lancia un paio di volte per ottenere una passphrase più facile da ricordare. Quindi, i: genera le frasi e stampale su banconote da $ 50 ii: ricerca utilizzando persone reali vedendo quante volte tirano per ottenere un passaggio diceware che useranno, e quanto piccolo sia il dizionario "reale" sarebbe una buona cosa.
@DanBeale Penso che il punto sia che (alcuni) utenti faranno sempre il minimo richiesto e che i servizi che costringono gli utenti a utilizzare una password "forte" con almeno un numero, una lettera maiuscola, un segno di punteggiatura, ecc. controproducenti (anche se sembrano davvero buoni per la direzione!)
@RoundTower - benvenuto in SecuritySE! Sono d'accordo; Ho detto lo stesso in qualche altro commento sopra. I criteri per forzare le password "forti" in alcuni casi si avvicinano al teatro di sicurezza.
DanBeale
2011-08-11 15:12:43 UTC
view on stackexchange narkive permalink

Guardando il fumetto XKCD e gli esempi di password del mondo reale, vediamo che la maggior parte degli utenti ha password molto più deboli dell'esempio XKCD.

Un gruppo di utenti farà esattamente come il primo pannello dice: prenderanno una parola del dizionario, metteranno in maiuscolo la prima lettera, sostituiranno delicatamente, quindi aggiungeranno un numero e un simbolo alla fine. È piuttosto brutto, specialmente se riutilizzano quella password (perché pensano che sia forte) o se il loro account ha dei privati.

Come è stato menzionato nei commenti, Diceware è un bel modo per generare una passphrase. Mi piacerebbe vedere la versione di facile lettura di un'analisi formale di Diceware. (Sospetto che anche se l'aggressore ha il tuo dizionario e sa che la tua passphrase è lunga 5 o 6 parole, Diceware è migliore di un mucchio di altri sistemi di generazione di password.

Ma, qualunque password abbiano, molti gli utenti possono essere persuasi a cambiarlo con un valore noto:

http://passwordresearch.com/stories/story72.html

Durante una valutazione della sicurezza informatica, i revisori sono stati in grado di convincere 35 dirigenti e dipendenti dell'IRS a fornire loro il proprio nome utente e modificare la password con un valore noto. Gli auditor si sono presentati come personale IT dell'IRS che tentava di correggere un problema di rete.

buon vecchio ingegneria sociale ... l'hack per sempre. http://www.codinghorror.com/blog/2007/05/phishing-the-forever-hack.html
L'entropia misura fondamentalmente il numero di possibili password consentite dallo schema utilizzato per generare la password. Puoi farlo prendendo il logaritmo in base 2 del numero di password consentite dal tuo schema. Se il tuo schema consente ~ 2 ^ 10 = 1024 password, ha 10 bit di entropia; ogni bit in più raddoppia il numero di password consentite e raddoppia il tempo necessario per indovinare con la forza bruta. Ok, quindi se la tua passphrase diceware viene generata tirando 5 dadi a sei facce (il dizionario ha 6 ^ 5 = 7776 parole), ogni parola aggiunge 13 bit di entropia (log (6 ^ 5) / log (2) = 12,9 ). Quindi 4 parole sarebbero 52 bit.
E per altre domande: http://world.std.com/~reinhold/dicewarefaq.html
Non sono sicuro del motivo per cui desideri un'analisi "formale" di Diceware. Il concetto è semplice e funziona. Non è necessaria alcuna matematica elaborata. Il suo dizionario ha quasi 8000 (= 2 ^ 13) parole, quindi una passphrase casuale di quattro parole ha circa 52 bit di entropia (cioè, ci sono circa 2 ^ 52 possibili passphrase, tutte ugualmente probabili; cioè, un utente malintenzionato dovrebbe prova circa 2 ^ 52 tentativi per trovare la tua passphrase).
@D.W. Diceware è buono, ma gli utenti sono poveri. C'è un commento su questa pagina di qualcuno che dice di tirare più di una volta per ottenere una passphrase memorabile. Quindi, se le frasi fornite agli utenti vanno bene, ma cosa succede se gli utenti sono autorizzati a utilizzare il diceware da soli? Quante ripetizioni? Quali parole dictioary diceware sono meno / più popolari?
Un'analisi utile potrebbe essere quella di vedere quante di quelle 2 ^ 52 passphrase vengono sempre abbandonate dagli utenti perché non facili da ricordare. Ciò potrebbe ridurre notevolmente lo spazio.
@DanBeale, rilanciare un paio di volte non danneggia in modo significativo l'entropia. (Se si ritira fino a 4 volte, la diminuzione dell'entropia è al massimo di 2 bit, da 52 bit a 50 bit. Non è un grosso problema.) Nel complesso, la pratica di ripetere il rollio per trovare una passphrase memorabile è probabilmente positivo, perché rende le passphrase più facili da ricordare e quindi aumenta la probabilità che gli utenti utilizzino / continuino a utilizzare lo schema Diceware. Come dici tu, la sfida più grande è l'usabilità; per questo, ciò che serve è uno studio sull'usabilità, non un'analisi matematica formale.
@D.W. - grazie per le informazioni. È rassicurante sapere che uno o due ripetizioni vanno bene.
@DanBeale: anche ripetere il rollio 16 volte riduce l'entropia di 4 bit, da 52 a 48. Sei ancora pochi ordini di grandezza meglio delle password l33t-speak.
wisty
2011-08-11 19:22:24 UTC
view on stackexchange narkive permalink

Il problema è ancora, purtroppo, umano.

Spingere gli utenti a utilizzare password alfanumeriche + punteggiatura sarà più sicuro o password più lunghe?

Se le dici all'utente alpha + numeri, scriveranno il loro nome + compleanno. Se dici loro di usare anche la punteggiatura, sostituiranno una "a" con "@", o qualcosa di altrettanto prevedibile.

Se dici "usa quattro semplici parole", scriveranno "i amo mia madre "," amo tua madre "," grazie a dio è venerdì "o qualcos'altro banalmente prevedibile.

Non puoi vincere. Il vantaggio delle password di quattro parole è che possono memorizzarle, quindi se stai costringerai gli utenti ad avere password complesse (che tu generi), almeno loro vinceranno " Non è necessario scriverlo su un post-it, o inviare la password tramite posta elettronica o qualcos'altro di stupido.

Ma quello che ti sei perso è che il fumetto xkcd stava probabilmente sostenendo che una password casuale di quattro parole fosse generata per l'utente campionando casualmente da un dizionario di 2048 parole, * non * chiedendo all'utente di scegliere quattro parole arbitrarie. Questo potrebbe non essere stato ovvio se non hai familiarità con la storia del campo, ma l'idea di base è stata discussa in precedenza dai crittografi.
Mike Hamburg
2011-08-12 01:02:13 UTC
view on stackexchange narkive permalink

Randall ha per lo più corretto qui. Alcune aggiunte:

Ovviamente devi scegliere le parole in modo casuale. Il metodo classico è Diceware, che prevede di tirare 5d6, fornendo quasi 13 bit di entropia per parola, ma le parole sono più oscure.

Potrebbero esserci 2048 parole comuni in inglese, ma non 2048 brevi parole comuni in inglese. L'elenco Diceware (che ha 6 ^ 5 = 7776 parole di lunghezza inferiore a 6 lettere) contiene alcune cose piuttosto oscure, oltre a nomi, plurali, combinazioni di due lettere, combinazioni di due cifre, 19xx, ecc. E non credo il quarto superiore sarebbe molto meglio. Se prendi solo la prima parola 2k in inglese, ottieni cose come "moltiplicazione", che è un po 'lunga come parte di una password di 4 parole. Quindi sarei interessato a vedere l'elenco di parole suggerito da Randall.

Ci sono variazioni più ovvie delle password di tipo "Tr0ub4dor&3" rispetto a quelle Diceware, quindi in pratica le prime avranno un paio di bit di entropia in più . Inoltre, nella mia esperienza, le password di tipo "Tr0ub4dor&3" non sono in realtà così difficili da ricordare se le usi spesso. In passato, ho generato diverse password con strings / dev / urandom e non ho avuto problemi a usarle come password di accesso. Oggi, però, non saprei dirti quale delle lettere fosse maiuscola. D'altra parte, non sono sicuro di poter recitare alcune delle mie password Diceware senza confondere omofoni, pluralizzazione, ecc.

Se il database delle password viene rubato, un rafforzatore come PBKDF2 aggiungerebbe una parola o più alla lunghezza effettiva di una di queste password, ma molti siti non la utilizzano. 5 parole + una per il rinforzo produrrebbe circa 66 bit, che è probabilmente troppo grande per una tabella arcobaleno. Questo ti mette fuori dalla portata degli aggressori occasionali, quindi a meno che tu non abbia qualcosa di veramente importante sul tuo account dovresti stare bene.

In sintesi, le password di tipo Diceware sono ideali per le cose che digiti occasionalmente, ma non necessariamente tutti i giorni. Se usi una password ogni giorno, Diceware funzionerà, ma una password strings / dev / urandom sarà più breve e dovresti essere in grado di memorizzarla comunque. Se accedi raramente, scegli una password nel modo che preferisci, inseriscila nel tuo gestore di password (che dovresti usare anche per le password più comunemente usate) e dimenticala.

Se un site ha qualche strana restrizione, come "nessuno spazio, almeno una lettera maiuscola e almeno un numero", quindi stringa le parole insieme con 5s tra di loro e cap la prima lettera. Ciò perde l'entropia epsilon per Diceware e nessuna per lo schema di Randall.

Penso che tu sopravvaluti la capacità della persona media di memorizzare dati casuali.
Per il database delle password, dovresti comunque usare un salt, quindi le tabelle arcobaleno non servono.
L'output di esempio di `strings -n 10 / dev / urandom` contiene cose come` t! AF | r) WlB`, `<^ p! * P, gvv` e` -WAWkG;]%> (`. Are you * davvero * affermando che puoi * ricordare * qualcuno di questi? La `birra di base della batteria del cavallo corretta` suona come un vincitore per me e ha ancora più o meno la stessa entropia.
La [Lista di parole mnemoniche] (https://github.com/jasimmonsv/Mnemonic-Word-List) ha 1626 parole (entropia: 10,66 bit / parola) con una lunghezza media di 5,76 caratteri (4-7 caratteri / parola). Tutte le parole sono reali, riconoscibili a livello internazionale e foneticamente diverse. Come madrelingua inglese, li trovo abbastanza facili da capire. Informazioni su Diceware: utilizzo il metodo Diceware con elenco di parole finlandesi per generare passphrase che digito molte volte al giorno al lavoro (la lunghezza non è un problema per me). L'elenco delle parole finlandesi è molto migliore dell'originale perché tutte le parole sono reali e ci sono molte meno stranezze.
sarnold
2011-08-12 12:51:40 UTC
view on stackexchange narkive permalink

Lo strumento Openwall Linux pwqgen genera password con una quantità specifica di entropia proprio lungo queste linee.

Tuttavia, invece di utilizzare spazi per separare le parole, vengono utilizzati caratteri di punteggiatura e cifre. Ecco dieci esempi con 49 bit di entropia:

  Cruise! Locus! Frametehran! Commit6churchSeller7Fire3singSalt&Render4exportForget7Driver = TriedGreat5Noun + Khakihale8Clung&doseBlaze5 parole chiave  a: più difficile da leggere senza i loro spazi, ma negli anni in cui ho utilizzato le password generate con questo strumento, non ho trovato la punteggiatura difficile da ricordare. 
Grazie per il puntatore! Ma penso che tu abbia un errore di battitura lì. Immagino che tu stia fornendo un elenco con 44 bit di entropia, non 64. Inizia a generare frasi di 4 parole a 48 bit. E per la cronaca, tramite `for i in {26..81}; echo -n $ i ""; pwqgen casuale = $ i; done`: A 26 bit ha 2 frasi di parole, a 27 aggiunge separatori di punteggiatura, a 31 ha 3 frasi di parole, con punteggiatura a 40, a 48 ha 4 frasi di parole, con punteggiature a 53, a 65 si sposta a 5 frasi di parole, con punteggiatura a 66, fino a 81 bit. Sembra un po 'strano lì.
Il [codice sorgente passwdqc] (http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/passwdqc/passwdqc/) rivela un ** minuscolo dizionario di 4096 parole **, che significa la vera entropia di questi Gli esempi "64 bit" sono ** in realtà 49,8 bit **: `log₂ (⟨4096 × 2⟩ × 42 × ⟨4096 × 2⟩ × 42 × ⟨4096 × 2⟩)` (2x per la prima lettera in maiuscolo, 42 caratteri non alfabetici stampabili su una tastiera en_US). [Diceware] (http://world.std.com/~reinhold/diceware.html) è di 7776 parole e un dizionario standard è di 100k parole. passwdqc avrebbe bisogno di 155k parole per 64 bit di entropia. Vedi anche la mia [tabella entropia pw] (https://security.stackexchange.com/a/93628/42391).
@AdamKatz, yikes. Ho sempre pensato che usasse `/ usr / share / dict / words` sul mio sistema, che è ~ 100k parole, il che avrebbe portato a ~ 60 bit di entropia per questo formato. Modificherò la mia risposta. Grazie.
nullnvoid
2011-08-11 05:10:36 UTC
view on stackexchange narkive permalink

Non sono un esperto di sicurezza, ma penso che qui ci sia un errore.

Il punto del fumetto sembra indicare che aumentando la lunghezza della password, aumenterai la complessità.

La complessità di una password di quattro parole è in realtà notevolmente ridotta. Essenzialmente hai scambiato 8-11 caratteri selezionati in modo semi casuale per 4 parole selezionate casualmente. La lunghezza della passphrase è meno importante del numero di parole . Tutto ciò che serve è che l'aggressore tenti varie combinazioni di parole da un dizionario. È probabile che le parole usate siano abbastanza comuni se devono essere ricordate e che siano brevi se devono essere digitate.

Gli attacchi a dizionario sono già utilizzati con grande efficacia. Non usiamo comunemente 260.000 parole. Conosciamo solo dalle 12.000 alle 20.000 parole. Di questi ne usiamo comunemente meno di 8.000. Non riesco a immaginare che gli utenti normali creeranno password che contengono parole lunghe e complicate da digitare, il che riduce ulteriormente il sottoinsieme di parole possibili. Supponendo che tutti iniziassero a utilizzare questo metodo di selezione della password, gli attacchi al dizionario sarebbero effettivamente diventati molto più efficaci.

Ora, una combinazione dei due potrebbe essere più sicura, anche se questo sfida il punto dell'esercizio .

Gli attacchi a dizionario sono già utilizzati con grande efficacia. Il punto che stavo cercando di sottolineare era che la lunghezza non è la misura della complessità in questo sistema. Ad ogni modo, non usiamo comunemente 260.000 parole. Conosciamo solo dalle 12.000 alle 20.000 parole. Di questi ne usiamo comunemente meno di 8.000. Non riesco a immaginare che gli utenti normali creeranno password che contengono parole lunghe e complicate da digitare, il che riduce ulteriormente il sottoinsieme di parole usate.
11 bit di entropia sono considerati per una parola del dizionario. Ciò si traduce in 2000 parole, molto meno di 8K che hai menzionato in precedenza. Quindi, l'argomento sarebbe ancora valido.
Questa risposta ignora i numeri utilizzati nell'analisi XKCD e quindi è completamente infondata!
* "il fumetto sembra indicare che aumentando la lunghezza della password, aumenterai la complessità" * - No, non è affatto quello che dice il fumetto. Leggilo di nuovo, questa volta più attentamente.
Penso che tu stia confondendo tra "complessità" e "entropia". Il punto del fumetto è che la passphrase * abbassa * la complessità, offrendo al contempo * entropia * più alta. La complessità colpisce gli esseri umani, non i computer, mentre l'entropia è ciò che impedisce la forza bruta.
Sono completamente d'accordo con questa risposta. Se fosse pratica comune utilizzare password più lunghe composte da parole più lunghe, i metodi di attacco del dizionario potrebbero essere facilmente ottimizzati per questo.
Puoi scegliere tra 96 ​​^ NumOfChars o 7776 ^ NumOfWords. (7776 è la dimensione del dizionario di Diceware.) 96 ^ 11 == buono ma difficile da ricordare. 7776 ^ 6 == migliore e più facile da ricordare.
Non sono certo un esperto in questo campo e non ho mai incontrato Entropy prima. Noto che un certo numero di persone dice "Penso che 11 bit di Entropia per parola suonino bene", ma non ho notato che nessuno si sia espanso su come questo è stato calcolato. Qualcuno ha un buon articolo introduttivo al calcolo dell'entropia? Ho esaminato alcuni che erano destinati agli studenti di matematica.
nullnvoid, un dizionario di 2048 parole ha, beh, 2048 = 2 ^ 11 parole. Se ne scegli uno uniformemente a caso, ci sono 2 ^ 11 possibilità. Quindi, 11 bit di entropia. Un attaccante dovrebbe provare circa 2 ^ 11 ipotesi per trovare la tua parola (2 ^ 10 in media, 2 ^ 11 nel peggiore dei casi). Puoi trovare maggiori dettagli sui calcoli dell'entropia in altre risposte e commenti in questa pagina.
@DanBeale Perché "7776 ^ 6`" è migliore "? "96 ^ 11 - 7776 ^ 6 = -214691526415214947860480> 0" non è?
@kizzx2 - sì. 96 ^ 11 è minore di 7776 ^ 6. Pertanto, una password casuale di 11 lettere, scelta tra 96 ​​caratteri diversi, sarà difficile da usare ma abbastanza buona; mentre una passphrase casuale di 6 parole (scelte da un elenco di 7776 parole) sarà facile da usare e più forte.
@nullnvoid Il fatto è che il sottoinsieme delle 10.000 parole * che * conosci * è diverso dall'insieme che * io * conosco. Sono un diagramma di Venn - e dato che stiamo frequentando entrambi questo sito, probabilmente c'è più sovrapposizione che con due persone scelte a caso - ma non sono la stessa cosa. Nello scenario con cui stiamo lavorando, si presume che l'attaccante non sappia nulla del bersaglio specifico.
@AviD L'altra cosa che il poster della risposta sembrava mancare è che i controllori di password non forniscono realmente (a condizione che non siano FUBAR) feedback "troppo breve" o "troppo lungo", e invece forniscono solo "No."
PearsonArtPhoto
2011-08-11 04:06:02 UTC
view on stackexchange narkive permalink

Leggendo il commento, ho alcuni pensieri.

  1. Il conteggio dell'entropia sulla password è valutato piuttosto basso. Per lo meno, dovresti aggiungere altri 1-3 bit per le sostituzioni di caratteri. In questo esempio, sembra che la formula esatta sia nota, il che sembra un po 'improbabile.
  2. Il conteggio dell'entropia della password più lunga mi sembra corretto.
  3. La parola base sembra sii "Troubador", se decifro correttamente le sostituzioni comuni. Non penso che sia una parola comune, quindi limitare l'entropia di una parola basata sul dizionario a soli 11 bit di entropia è un po 'bassa. Immagino che sarebbe ancora in un dizionario, ma dovrebbe essere espanso ad almeno un'entropia di 15 bit o una selezione di 32.000 parole. Questo sembra essere più o meno il livello che sarebbe quando si utilizza un attacco basato sul dizionario.

È vero che in linea di principio, una password lunga composta da parole casuali è almeno altrettanto buona di una password come una password breve con più caratteri, ma le parole devono essere casuali. Se inizi a citare una frase ben nota, o anche qualsiasi cosa che potrebbe essere una frase o parte di una, limita fortemente l'entropia.

Il fumetto xkcd presume che ci siano circa 8 sostituzioni comunemente usate che un utente malintenzionato dovrebbe provare (3 bit di entropia). Sembra che tu stia sostenendo che ci sono circa 128-256 sostituzioni comunemente usate che un utente malintenzionato dovrebbe probabilmente provare (7-8 bit di entropia). Dov'è la tua giustificazione per questo? Personalmente, penso che la stima di xkcd sia migliore della tua.
La giustificazione è che puoi usarli o meno. Se a volte sostituisci 0 con o, è 1 bit di sostituzione. Se potresti usare * e -, ad esempio, sono 2 bit di sostituzione per ogni volta che trovi un carattere del genere, poiché ci sono quattro combinazioni. Penso che 1-2 dopo aver riflettuto sia più accurato, dando 4-5 bit invece di 3.
Stai assumendo che ogni password abbia 8 lettere diverse che forniscono ciascuna un'opportunità indipendente per le sostituzioni. Per la maggior parte delle password, prevedo che non sarà così.
Punto 1: se presumi che un utente malintenzionato non sia in grado di indovinare il tuo schema di password, puoi effettivamente rafforzare la tua presunta sicurezza della password.Tuttavia, a) gli aggressori sono più bravi a indovinare gli schemi che a inventarli tu;b) le politiche di password obbligatorie rendono più facile indovinare gli schemi;c) dovresti anche chiederti se un utente malintenzionato conosce la lunghezza e il dizionario esatti della passphrase, quindi anche quella diventa più forte. Punto 3: Randall ha effettivamente concesso a "Troubadour" 16 bit di entropia per essere una parola insolita, rispetto ai soli 11 bit per le sue "parole comuni".
WBT
2015-11-02 19:30:51 UTC
view on stackexchange narkive permalink

In un test empirico, le passphrase non sembrano aiutare tanto quanto XKCD vorrebbe farti credere: dl.acm.org/citation.cfm?id=2335356.2335366

Gli utenti tendono a creare password facili da indovinare, mentre le password assegnate dal sistema tendono a essere difficili da ricordare. Le passphrase, insiemi di parole in linguaggio naturale delimitati da spazi, sono state suggerite come sicure e utilizzabili per decenni. In uno studio online con 1.476 partecipanti, abbiamo esplorato l'usabilità di passphrase assegnate dal sistema a 3 e 4 parole rispetto alle password assegnate dal sistema composte da 5 a 6 caratteri casuali e password pronunciabili assegnate dal sistema a 8 caratteri. Contrariamente alle aspettative, le passphrase assegnate dal sistema si sono comportate in modo simile alle password assegnate dal sistema di entropia simile nelle metriche di usabilità che abbiamo esaminato. Passphrase e password sono state dimenticate a velocità simili, hanno portato a livelli simili di difficoltà e fastidio per l'utente e sono state entrambe scritte dalla maggioranza dei partecipanti. Tuttavia, le passphrase hanno richiesto molto più tempo per l'inserimento dei partecipanti e sembrano richiedere la correzione degli errori per contrastare gli errori di immissione. L'usabilità della passphrase non sembrava aumentare quando abbiamo ridotto il dizionario da cui erano state scelte le parole, ridotto il numero di parole in una passphrase o consentito agli utenti di cambiare l'ordine delle parole.

[La versione completa e gratuita] (https://www.ece.cmu.edu/~lbauer/papers/2012/soups2012-passphrases.pdf) è disponibile dal loro sito.
Cyberherbalist
2011-08-12 01:49:56 UTC
view on stackexchange narkive permalink

Molte delle risposte a questa domanda sollevano l'ovvio punto che, anche se chiedi agli utenti di utilizzare più parole separate da spazi per la leggibilità, troppi utenti sceglieranno parole in frasi "banali", come "amo mia mamma" , che, se i cracker sapessero che frasi così semplici sono di uso comune, verrebbero rapidamente decifrate. Presumo che alcuni cracker possano già farlo, dopotutto non sono stupidi! Ma non tutto è perduto.

Troppi siti web con cui ho rapporti di accesso mi richiedono di rendere la mia password più complessa (usando leetspeakish e altri requisiti di combinazione per maiuscolo / minuscolo, numeri e simboli). Impongono di rendere le mie password difficili da ricordare.

E se invece di richiedere complessità, fosse stato eseguito un controllo di convalida della password che prima controllava un dizionario delle password riconosciuto e, una volta che un attacco del dizionario fosse stato eliminato come problema, calcolare la forza contro un attacco bruteforce e richiedere solo che una password sia in grado di tenere a bada un attacco bruteforce per un trilione di anni? In quel caso, Tr0ub4dor&3 non passerebbe: il calcolatore dello spazio di ricerca di Steve Gibson su https://www.grc.com/haystack.htm afferma che potrebbe essere forzato in soli 1,83 miliardi di secoli, ma "tenere il vino ben freddo" potrebbe resistere per 1,43 miliardi di miliardi di secoli.

Quello che sto cercando di dire qui è di smetterla di costringere gli utenti a inventare combinazioni di caratteri bizzarre e di controllare le loro password contro dizionario e attacchi di forza bruta. Penso che la sicurezza possa solo migliorare di conseguenza.

O semplicemente costringere le persone a utilizzare strumenti come Keepass: fa il lavoro in modo eccellente.
Benvenuto in securitySE! Sono tentato di -1 per aver menzionato GRC. Ma hai un buon punto.
Eh. E cosa c'è di sbagliato in GRC, esattamente? :-)
@Cyberherbalist, benvenuto in [security.se]! Purtroppo Steve Gibson è riconosciuto come un incapace e un ciarlatano, almeno secondo [attrition.org] (http://attrition.org/errata/charlatan/steve_gibson/) ...
@AviD - Ritornare tardi, ma anche Madre Teresa ha dei nemici. Gibson potrebbe non essere all'altezza degli standard di alcune persone, ma il suo lavoro mi ha effettivamente aiutato in alcune occasioni. E SpinRite mi ha risparmiato una volta quando ha contato. Purtroppo, alla fine tutti sono fuori moda e obsoleti.
@Cyberherbalist Non si tratta di avere haters, si tratta di essere un marketer migliore di qualsiasi altra cosa, anche se non capisce le parole che sta ripetendo fuori contesto o inventando del tutto. Ma qui non è davvero il luogo per una discussione sulla sua esperienza ...
@AviD: Certo, questo non è il posto giusto. Faccio notare che non ho appiccato il fuoco. Ma già abbastanza detto.
user93353
2013-06-12 09:29:03 UTC
view on stackexchange narkive permalink

Bruce Scheiner ama le passphrase lunghe, ma da molti anni sottolinea anche le difficoltà pratiche di una passphrase lunga. Le password non vengono visualizzate sullo schermo quando vengono digitate. Vedi un asterisco o un grosso e grosso punto nero sullo schermo per lettera. Anche durante la digitazione di password di 7-8 caratteri, a volte ti chiedi nel mezzo se l'hai digitato correttamente. Quindi fai il backspace di tutto e ricomincia. Di tanto in tanto ci dimentichiamo dove siamo nel mezzo della password & conta il numero di caratteri già digitati e confrontandola mentalmente con la password per capire dove ci troviamo. Sarebbe ancora più difficile farlo con una passphrase lunga se non viene ripetuta. Penso che le passphrase lunghe verranno visualizzate solo dopo che questo problema è stato risolto in modo efficace.

Ho usato passphrase "semplici" (come, solo lettere minuscole, parole reali) esclusivamente negli ultimi anni. Anche se ne inserisco di diverse almeno 6 volte al giorno, non devo riportare indietro l'intera passphrase a causa di un errore di battitura più di una volta alla settimana. Sono ragionevolmente sicuro che questo sia il caso di chiunque scriva regolarmente usando la tastiera ...
Ho dovuto cambiare la tua password WiFi, perché era troppo complessa da digitare su un iPhone!
Mi chiedo quali sarebbero le implicazioni sulla sicurezza di avere la logica di immissione della password per vedere se una parola è duplicata e, se una password non funziona, provare la password che risulterebbe cancellando qualsiasi parola duplicata e qualsiasi cosa tra i duplicati ? Quindi "il corretto fiocco della batteria del cavallo" verrebbe trasformato in "il corretto fiocco della batteria del cavallo"?
RobIII
2011-08-11 05:10:15 UTC
view on stackexchange narkive permalink

Sono d'accordo con Jeff Atwood. Inoltre, ho preso un (non il ) dizionario inglese che ho qui in MSSQL con 266.166 parole (e anche 160.086 parole tedesche e 138.946 olandesi) e ho preso una parola casuale selezione di 10 parole per ogni lingua.

Questi sono i risultati per l'inglese:

  1. mano intelligente
  2. wolframinium
  3. muth
  4. non vulcanico
  5. contraddittorio
  6. desperadoism
  7. senza pretese
  8. placabilità
  9. ricondensazione
  10. Remi

Ora prendi qualsiasi combinazione di parole che ti dia abbastanza entropia e sei a posto. Ma come potresti vedere da questo esempio non è molto facile creare qualcosa di facile da ricordare con questa parola jumbo. Quindi l'entropia diminuisce molto quando cerchi di creare "frasi comprensibili (non corrette o logiche) ".

Per completezza risultati (casuali) per tedesco e olandese :

Tedesco:

  1. torlos
  2. Realisierung
  3. hinterhaeltigsten
  4. anbruellend
  5. Orthograpie
  6. vielsilbigen
  7. lebensfaehig
  8. drang
  9. festgeklebtes
  10. Bauernfuehrer
  11. ol >

    Olandese:

    1. spats
    2. bijstander
    3. Abcoude
    4. vergunningsaanvraag
    5. schade- eis
    6. ammoniakuitstoot
    7. onsentimenteel
    8. ebstand
    9. radiaalband
    10. profielschets
Questo non ha argomenti tecnici e fraintende la proposta xkcd. La proposta di xkcd * non * è quella di selezionare 4 parole a caso da un dizionario di 200.000 parole. Piuttosto, seleziona 4 parole a caso da un dizionario più piccolo delle 2000 parole più comuni. Se segui ciò che xkcd * effettivamente * consiglia, scoprirai che le passphrase risultanti sono più facili da memorizzare.
La maggior parte delle parole suggerite per il tedesco non fanno comunque parte di un vero dizionario. Con "reale" intendo il tipo di dizionario a cui la gente comune pensa, non quello usato dal software per il controllo ortografico e il cracking delle password.
"Le idee verdi incolori dormono furiosamente." Chomsky.
@TRiG: Questa è la combinazione che ho sul mio bagaglio!
"Orthograpie" dovrebbe essere "Orthographie", in realtà. (Non sono sicuro se l'hai digitato male o se il tuo dizionario contiene già questo errore.)
Quindi siamo d'accordo: i tedeschi hanno bisogno di due parole, il resto di noi ha bisogno di quattro parole? :)
@D.W. "_Piuttosto, è selezionare 4 parole a caso da un dizionario più piccolo delle 2000 parole più comuni ._" Non lo vedo da nessuna parte nel fumetto, né nel "suggerimento" del fumetto xkcd originale? Inoltre: come un ditionary più piccolo migliora l'entropia (di cui parla il fumetto) ??
@PaŭloEbermann Non ne ho idea; tutte le parole provengono da un database casuale "Dizionario" che avevo in giro. Il mio commento non riguarda l'ortografia perfetta, ma non "semplicemente" la possibilità di creare "frasi" facili da ricordare (indipendentemente da eventuali errori di battitura che potrei aver fatto).
Scusa per il mio commento, è stato un po 'strano che tu abbia scritto male la parola "ortografia corretta". Non è realmente correlato alla sicurezza del tuo sistema (anche se le passphrase scritte a destra saranno più facili da ricordare, credo).
@user3992, è un po 'sottile. Devi leggere attentamente il fumetto xkcd e avere familiarità con la letteratura sulla sicurezza e il lavoro passato in quest'area (ad esempio, Diceware). Suggerimenti per creare il fumetto xkcd: 1. Un pannello dice "quattro parole comuni casuali". 2. Il pannello successivo dice "44 bit di entropia", che implica 11 bit di entropia per parola - il che a sua volta suggerisce che si propone di scegliere ogni parola a caso da un dizionario di circa 2000 parole comuni. (Non un dizionario di 266.000 parole; sarebbero 72 bit di entropia, anziché 44 come citato nel fumetto.)
@D.W. Ah, era così sottile che mi mancava! Grazie per la segnalazione!
Inoltre, @RobIII nota che "ciò di cui parla il fumetto" NON è * solo * sul miglioramento dell'entropia, riguarda il compromesso tra maggiore entropia e memorabilità (usabilità) - e come la soluzione tipica è un compromesso all'indietro.
Jeff
2012-01-12 20:45:45 UTC
view on stackexchange narkive permalink

Mi sono interrogato anche su questo, e vorrei analizzarlo non da un punto di vista filosofico (se gli utenti scrivono le loro password, diventa qualcosa che hai invece di qualcosa che conosci ... 2 fattori diventa 1 fattore), ma da un punto di vista matematico e scientifico.

Recentemente ho scaricato un software di cracking delle password della GPU con cui giocare. Vorrei decifrare entrambe queste password usando quella (dato che è il mio nuovo giocattolo) e determinare qual è la migliore.

Per un'ipotesi, vorrei anche eliminare una possibile variazione: l'attaccante potrebbe sapere che usi solo parole del dizionario e non imponi simboli e numeri (diminuendo lo spazio chiave).

Scenario 1

  - Attaccante sa che hai usato solo parole del dizionario. (Keyspace = 26 lettere + 26 maiuscole + 1 spazio = 53) .- Il requisito della password deve contenere 4 parole del dizionario con un minimo di caratteri totali di 20. 

Scenario 2 b>

  - Come lo scenario 1, tranne per il fatto che l'attaccante non sa che vengono utilizzate solo parole del dizionario (lo spazio delle chiavi aumenta).  

Contro 2 gruppi di controllo in cui le password casuali contengono 2 numeri, 2 caratteri speciali e sono lunghe 16 caratteri.

Questo sarebbe un test appropriato? In caso contrario, fammelo sapere e modificherò i parametri.

Non proprio un test appropriato; perché la prima password casuale scelta dalla GPU potrebbe benissimo essere la password. C'è una natura probabilistica qui che dovrebbe essere considerata affinché funzioni.
Immagino che un "test" più appropriato sarebbe solo quello di mostrare quale è più lungo tramite la matematica?
Non capisco da dove hai preso quei requisiti di lunghezza. Non mi sembrano ragionevoli. (L'effetto di casualità può essere facilmente controllato ripetendo il test alcune volte.)
Dick99999
2013-10-15 18:13:18 UTC
view on stackexchange narkive permalink

Il fumetto XKCD non descrive esplicitamente che le passphrase possono contenere simboli di separazione tra le parole. Una scelta naturale è aggiungere lo stesso simbolo tra tutte le parole. Se l'app ha un'opzione Mostra password, la frase può essere facilmente rossa. In teoria che aggiunge 5 bit di forza, declassati a 4 bit, vedi Il metodo "troubador" di spiegazione della matematica in questo fumetto

L'esatto declassamento dipende anche dalla facilità con cui spetta a un utente malintenzionato indovinare il simbolo o prima provare simboli separatori specifici. Ecco perché utilizzo 3 distinti set di simboli per calcolare questo tipo di rafforzamento. Set1: 13 simboli dai simboli numerici dell'iPhone, 31 simboli per tutti loro e un set speciale di 3, per i simboli separatori usati spesso: spazio - _

Uso quanto segue per il calcolo ( Notazione di Excel, solo se viene utilizzato un separatore):

strength = >> vedi sotto per una semplificazione = log (NumWordsInCurrentDict * ((sepaClassSize ^ (SepratorLen) +1) * (NumWordsInCurrentDict) ^ ( nWordInPhrase-1)), 2)

4 Le parole Diceware danno i seguenti punti di forza: Nessun separatore: 51,7 bit; Un separatore di spazio: 53,3 bit; e un separatore da tutti i 31 simboli come ^: 56,7 bit

============= edit en edit2: dimenticato il registro 2, corretto

Il la formula semplificata per quella sopra è: log (((sepaClassSize + 1) ^ SepratorLen) * (NumWordsInCurrentDict ^ numWordsInPhrase), 2)

Il fumetto XKCD descrive ampie opzioni di modifica / sostituzione per le password. La Home page della passphrase di Diceware menziona una modifica speciale che non si trova nella parte della passphrase dei fumetti: inserisci solo 1 lettera casuale in una sola delle parole della frase scelta. Ciò aggiungerebbe altri 10 bit di entropia (vedi la sezione "Cose opzionali che non hai davvero bisogno di sapere")

Alois Mahdal
2015-07-25 05:01:44 UTC
view on stackexchange narkive permalink

Sembra che la maggior parte concordi sul fatto che per quanto riguarda la matematica, il metodo Horse è superiore - fino a che punto sembra riguardare principalmente limitazioni come quanto siano uniformi le scelte, o quali sono queste frasi "facili da ricordare" o "facili da digitare".

Giusto, ma ti insegnerò un trucco magico su come rendere "un po '" meno rilevanti queste limitazioni:

  1. Usa il metodo Horse come piattaforma per creare nuove frasi. Usa un metodo casuale per scegliere le parole. Questo potrebbe farti trovare alcune parole difficili che non hai mai sentito e che potresti trovare difficili da ricordare, ma ...

Questo è per seguire ciecamente il metodo Horse. Il trucco magico è che non ti fermi qui . A meno che tu non sia una persona disperatamente noiosa e poco creativa, puoi ottenere un grande vantaggio dai passaggi successivi.

  1. Usa il tuo cervello.

    Voglio dire, non solo pensare, lascia che il tuo cervello scoreggi parole completamente nuove per te, o metodi completamente nuovi per distorcere quelle esistenti.

    Ti è permesso ( o anche incoraggiato) per sostituire alcune parole nella frase con queste.

    Inoltre, questa regola si applica anche a tutto ciò che scrivo d'ora in poi: basta andare avanti e cambiare i metodi arbitrariamente;)

  2. Utilizza le tue altre lingue.

    La maggior parte di noi conosce più di una lingua. Mescolali come meglio credi.

    (Un caso speciale può essere l'utilizzo di un layout di tastiera diverso utilizzato nel tuo paese. Ad esempio, nel layout ceco, le lettere con segni diacritici condividono i tasti con i numeri --- il riga sopra la parte alfabetica. Questo, infatti, crea una mappatura di lettere e numeri che può integrare o sostituire la "tradizionale" L33T. Pensa a come puoi trarne vantaggio.

  3. Inventa i tuoi metodi.

    ... come distorcere ulteriormente la frase. Puoi riutilizzare il metodo per nuove password, tutto dipende dalla complessità del metodo che creerai --- più complesso, più riutilizzabile ma senza esagerare :)

  4. Rendi il processo divertente!

    La generazione di una password non deve essere noiosa. In effetti, più è divertente, più è probabile che tu ricordi la password.

    Ma non fraintendermi: non renderlo divertente a costo dell'unicità. di divertente che è divertente solo per te (chiedi al tuo cervello).

    (Oh e non renderlo troppo divertente - non vorrai ridacchiare e arrossire ogni volta che digiti la tua passphrase;))

Se fatto bene, tutto quanto sopra darà al metodo Horse un grande vantaggio.

Il cervello umano è fortemente prevenuto contro la casualità e verso i modelli, e noi siamo solo terribili nel generare o verificare la casualità. Quindi no, convincere l'umano a scegliere le proprie parole arbitrarie non migliorerà l'entropia di una passphrase veramente casuale.
fwgx
2011-08-11 18:19:29 UTC
view on stackexchange narkive permalink

Penso che qui ci sia un problema con il fumetto XKCD. Presume un attacco di forza bruta alla tua password. Se scegli una singola parola del dizionario potresti semplicemente attaccarla con il dizionario, è un dato di fatto. Potresti anche forzare una parola di 8 caratteri in poco tempo. In ogni caso è facile.

Aumentare il numero di parole aumenta la quantità di entropia, ma se cambi il modo di attacco non è buono come un attacco di forza bruta. cioè, se il tuo cracker sospetta che usi più parole del dizionario, userà semplicemente le parole del dizionario concatenate insieme e non eseguirà affatto un attacco di forza bruta.

Anche se l'aggressore sa esattamente quale elenco di parole hai usato, è comunque un lavoro enorme per trovare quali parole hai usato e in quale ordine. Con 2000 parole nel dizionario e 4 parole, sono 2000 ^ 4 = 1,6 * 10 ^ 12 permutazioni da controllare. Sono 1,6 trilioni (USA)! Più parole e / o un dizionario più grande offrono probabilità ancora migliori. Vedi http://world.std.com/~reinhold/dicewarefaq.html#someoneknows per maggiori informazioni
Ti manca il punto del fumetto, non conta l'entropia per l'intera lunghezza della password, ma solo per ogni parola.
Le permutazioni 2000 ^ 4 sono banali usando le GPU, che possono fare * 10 miliardi * di chiavi MD5 al secondo. Se l'attaccante conosce il dizionario e la password è composta da 4 parole minuscole concatenate, il tempo massimo di crack è ridotto a soli 1600 secondi!
@Andy, questo era il mio punto. Se sospetti che la password sia un numero di parole, non devi eseguire un attacco di forza bruta completo che inizia con "aaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaab" ecc., Scegli semplicemente dal dizionario. OK, quindi ci sono ancora poche possibilità, ma è molto meno di tutte le possibili combinazioni di lettere.
Sì, qualsiasi conoscenza della password riduce notevolmente la sua sicurezza. 4 parole da un dizionario di 2000 parole sono effettivamente un numero di 4 cifre in base 2000. Anche se le parole sono "133t3d", è altrettanto insicuro.
@Andy, ha letto il fumetto. Come afferma il fumetto: "... 1000 ipotesi / sec. (Attacco plausibile a un servizio web debole. Sì, rompere un hash rubato è più veloce, ma non è ciò di cui l'utente medio dovrebbe preoccuparsi.)" Randall Munro aveva già anticipato e ha confutato il tuo commento sul cracking offline degli hash delle password rubate.
DW, grazie per il promemoria, anche se penso che anche 1000 tentativi / sec siano ottimisti e verrebbero notati rapidamente e protetti da firewall, o almeno dovrebbero esserlo. 2000 ^ 4 combinazioni dovrebbero essere più che adeguate a questa frequenza anche se lo schema della password è noto.
"Sì, rompere un hash rubato è più veloce, ma non è quello di cui dovrebbe preoccuparsi l'utente medio". Forse nell'11 questo era esatto, ma non oggi.
Se hai un dizionario di 30.000 parole, ogni parola casuale aggiuntiva aggiungerebbe un'entropia di 14,9 bit. Cinque parole (5 x 14,9 = 74 bit) andrebbero bene per un account offline. Tre parole sarebbero sufficienti per un account online in cui la forza bruce è rilevabile.
yelvington
2011-08-11 05:56:09 UTC
view on stackexchange narkive permalink

Totalmente sbagliato. C'è molto di più che matematica al lavoro qui. Esseri umani che creano password dal linguaggio umano! = Bot che creano stringhe casuali da secchi di caratteri. Se parti da questo presupposto, l'entropia si riduce radicalmente come fattore del tempo necessario per decifrare la password. Come diceva Don Corleone, il grande filosofo: pensa come le persone che ti circondano.

Se leggi il fumetto XKCD, noterai che ti suggerisce di selezionare le parole comuni del dizionario a caso (cioè da un bot). L'entropia è ancora lì, dal momento che sono scelti a caso da un insieme di migliaia di possibilità. Sono solo possibilità che gli umani sono bravi a riconoscere.
Sì, il sistema XKCD sarà debole quanto altri approcci, se permetti agli utenti di scegliere la password. Se * generi * la password per gli utenti (l'IT aziendale, a volte), l'approccio XKCD è ottimo, poiché è più probabile che l'utente la ricordi.
Andreas
2011-08-12 06:11:10 UTC
view on stackexchange narkive permalink

Come alcune persone hanno già affermato (quindi non lo ripeterò), dipende dal meccanismo degli attacchi di forza bruta e dagli attacchi del dizionario utilizzati.

Prima di tutto, il modo migliore impedire a un attaccante di attaccare significa in primo luogo togliere il bersaglio. Nessuno dei miei server ha SSH in esecuzione sulla porta 22 e il login di root è quasi sempre disattivato nella configurazione sshd. Ma questo è solo un esempio. Non rivelare il nome utente e risparmierai un sacco di problemi.

Questa è la matematica più semplice: evita gli attacchi degli altri nascondendoti :)

Quindi, per il resto: coloro che effettivamente indovinano il nome utente giusto e trovano il tuo servizio, proveranno attacchi di forza bruta molto comuni. Le password brevi sono sempre una cattiva idea, perché non è necessario un dizionario. Passare in rassegna tutte le combinazioni alfanumeriche in lettere minuscole e maiuscole e "sale" comuni come virgole, punti e virgola e così via richiederebbe alcuni giorni per decifrare. In base alla mia esperienza (avevo una vecchia macchina di instradamento OpenBSD impostata, ma la password del provider Internet è cambiata e non avevo accesso fisico alla macchina). La password si è rivelata essere [Firstname] [Lastname] [Number] di una celebrità.

Ero curioso, quindi ho provato diversi strumenti di cracking. Uno basato sul nome ha impiegato solo sei ore per decifrare la stessa password. Immagino che si trattasse di combinazioni di nomi / numeri comuni.

Il trucco con quegli attacchi di forza bruta è sapere con cosa hai a che fare. Una password basata su qualcosa di personale, che è crittografata con il tuo metodo è ancora al sicuro dalla maggior parte degli attacchi del dizionario e può essere indovinata solo da un semplice attacco di forza bruta, che richiederebbe anni per scorrere tutte le possibilità.

Ti faccio un esempio: mi chiamo Andreas, quindi la mia password è abbastanza sicura.

MyN4me, A-> PwKndSf

Secondo rumkin, questo è abbastanza sicuro :) 87,1 bit di entropia. Wow. Non male come primo tentativo. In realtà lo ricordo e la maggior parte dei meccanismi non tenterà di "indovinare" quel tipo di password, perché non ha alcun senso per nessuno dei sistemi.

O è breve e complesso, come L5q3CR , -F - che è un po 'difficile da ricordare ma facile da indovinare, oppure consiste in variazioni di parole effettivamente esistenti. È una debolezza umana, aiutare te stesso a ricordare le cose o scegliere qualcosa di veramente semplice o comune.

Lo so, questo è un po 'fuori tema, ma: se non vuoi diventare un vittima di un attacco di forza bruta, chiudi prima la maggior parte delle porte, o meglio ancora: rimuovi / nascondi le porte :)

  • non offrire i meccanismi di accesso che i cracker si aspettano, se puoi .
  • proteggi i servizi web con l'autenticazione del client
  • se sei totalmente paranoico, filtra anche l'accesso al tuo servizio in base all'indirizzo IP
  • sicuro e totalmente configurazione paranoica: (questo è ingiusto per i cracker :))) dopo un tentativo di password fallito, per i successivi 5 secondi, anche ogni tentativo successivo per lo stesso utente (anche quello corretto) fallirà.

Se qualcuno riesce a aggirare tutto ciò, hai comunque a che fare con professionisti :) ma mantieni la tua password sicura facendo qualcosa di umano, che nessuno si aspetta e nessun computer può indovinare o prevedere: fai le tue cose, ricorda e basta che la tua cosa deve essere lunga eno ugh per evitare i semplici attacchi e rimanere fuori dal dizionario per la maggior parte. Usa qualcosa che abbia senso solo nel TUO cervello e spargi alcuni caratteri speciali.

Per un cracker, un modo veloce per indovinare una password è offerto solo quando fai qualcosa di prevedibile, come usare qualcosa di breve, è facile da memorizzare o qualcosa che consiste in parole comuni o combinazioni di lettere che trovi nei dizionari.

Stai lontano da quelle e puoi persino continuare con i calcoli dei rumkins.

Sfortunatamente, rumkin non è un giudice affidabile della forza della password.
Non mi nascondo. Le mie porte SSH sono su 22. Se qualcuno non riesce ad accedere a un account 10 volte entro 5 minuti, il suo indirizzo IP viene protetto da un firewall con iptables e viene inviato un messaggio al proprio ISP che lo avverte della presenza di una macchina compromessa sulla propria rete.
Correzione: il modo ** peggiore ** per impedire a un attaccante di attaccare è togliere il bersaglio in primo luogo. Spostare il tuo server su una porta diversa pulirà solo un po 'i tuoi registri, ti salverà solo dagli aggressori che sono alla ricerca dei frutti più bassi e non entrerebbero in un ambiente ragionevolmente sicuro (tutte le patch di sicurezza applicate, nessuna password incredibilmente stupida) sistema comunque.
Congratulazioni, hai appena inventato Security by Obscurity :). E relegò le protezioni di base (serrate a tempo) nel regno del totalmente paranoico ...
Qualcuno dovrebbe scrivere uno strumento in grado di scoprire su quale porta stai eseguendo ssh! ;) Mi scuso per lo snark.
@rox0r: esiste già, si chiama `nmap`
@HubertKario Qualcuno dovrebbe dirti cosa significa snark, o, um, sarcastico.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...