Stavo inciampando e mi sono imbattuto in questo saggio di Bruce Schneier sostenendo che Lo schema di password XKCD era effettivamente morto.
I moderni cracker di password combinano parole diverse dai loro dizionari : […]
Questo è il motivo per cui lo schema XKCD spesso citato per la generazione di password: unisci le singole parole come ” correcthorsebatterystaple ” – non è più un buon consiglio. I cracker di password stanno facendo questo trucco.
Laggressore inserirà tutte le informazioni personali a cui ha accesso sul creatore di password nei cracker di password. Un buon cracker di password verificherà i nomi e gli indirizzi dalla rubrica, le date significative e qualsiasi altra informazione personale in suo possesso. […] se il tuo programma lo ha mai memorizzato in memoria, questo processo lo catturerà.
La sua tesi sembra essere quella perché è noto che le persone possano costruire le proprie password in modo tale da renderle suscettibili di attaccare, ma sembra che la forza risieda esclusivamente nel potere degli esponenti. Presumo che stia alludendo a persone che non scelgono le parole in modo veramente casuale, il che forse non è “T del tutto falso, poiché” ho rilanciato un paio di volte per ottenere qualcosa che non è “t tutti gli avverbi e gli aggettivi. Tuttavia, presumo che abbassare lentropia di un fattore 2-10 non sia” t veramente significativo (se lelenco delle parole è raddoppiato a 4000, non è così difficile, la perdita è più che recuperata).
Laltra battuta su ” se il tuo programma lha mai memorizzata in memoria ” è un po sconcertante anche se … non sono tutte le password archiviate in memoria contemporaneamente? Questo sembra un po esagerato; a cosa si riferisce effettivamente a?
Commenti
Risposta
The Holy War
Penso che scoprirai che il modo corretto per generare password potrebbe iniziare una guerra santa in cui ogni gruppo pensa che laltro stia facendo un semplicissimo errore matematico o manca il punto. Se metti 10 professionisti della sicurezza informatica in una stanza e chiedi loro come inventare password valide, otterrai 11 risposte diverse.
Lincomprensione
Uno dei tanti motivi nessun consiglio coerente sulle password è tutto si riduce a una questione di modellazione delle minacce . Da cosa stai cercando di difenderti esattamente?
Ad esempio: stai cercando di proteggerti da un utente malintenzionato che ti sta prendendo di mira e conosce il tuo sistema per la generazione di password? O sei solo uno dei milioni di utenti in un database trapelato? Stai difendendo dal cracking delle password basato su GPU o solo da un server web debole? Sei su un host infettato da malware [1]?
Penso che dovresti presumere che laggressore conosca il tuo metodo esatto per generare password e ti stia solo prendendo di mira. [2] Il fumetto xkcd presuppone in entrambi gli esempi che tutti i dettagli della generazione siano noti.
La matematica
La matematica nel fumetto xkcd è corretta e non cambierà .
Per le password devo digitare e ricordare che uso uno script python che genera password in stile xkcd che sono veramente casuali. Ho un dizionario di 2 ^ 11 (2048) parole inglesi comuni, facili da scrivere. Potrei dare il codice sorgente completo e una copia del mio elenco di parole a un aggressore, ci saranno ancora 2 ^ 44 possibili password.
Come dice il fumetto:
1000 ipotesi / secondo Attacco plausibile a un servizio web remoto debole. Sì, rompere un hash rubato è più veloce , ma non è ciò di cui dovrebbe preoccuparsi lutente medio.
È un buon equilibrio tra facile da ricordare e difficile da decifrare.
E se provassimo più potenza ?
Certo 2 ^ 44 va bene, ma il cracking della GPU è veloce e diventerà ancora più veloce. Hashcat potrebbe decifrare un hash debole [3] di quella dimensione in pochi giorni, non anni. Inoltre, ho centinaia di password da ricordare. Anche lo stile xkcd diventa difficile dopo pochi.
È qui che entrano in gioco i gestori di password, mi piace KeePass ma ce ne sono molti altri che sono sostanzialmente gli stessi. Quindi puoi generare solo una passphrase xkcd più lunga che puoi memorizzare (ad esempio 10 parole). Quindi crei una password univoca a 128 bit veramente casuale per ogni account (esadecimale o 64 base sono buoni). 128 bit saranno abbastanza forti per un molto tempo. Se vuoi essere paranoico, ingrandisci, non è un lavoro extra generare password esadecimali a 256 bit.
[1] Qui è dove il memor Se ti trovi in un host compromesso, hai perso. Non importa se lo digiti o usi un programma come KeePass per copiarlo e incollarlo se un utente malintenzionato può registrare / leggere la memoria.
[2] Piuttosto che il più debole (ma più probabile) presupposto che laggressore abbia appena scaricato un dizionario chiamato ” Top Passw0rdz 4realz 111! “.
[3] Sicuramente dovremmo tutti usare PBKDF2, ecc … ma molti siti sono ancora su SHA1. (E sono quelli buoni)
Commenti
- @ Dick99999 le moderne GPU possono avere 6 GB di memoria su una singola scheda (anche se ci vorrebbero 2 slot) e possono facilmente memorizzare un dizionario di poche migliaia di parole.
- @NateKerkhofs Questo è spaventoso e sorprendente nello stesso tempo. La mia prima macchina (programmabile) aveva 1 mhz e 64 kb di ram e tu parli di 6 GB di memoria video …
- ” password veramente casuale a 128 bit … ” Veramente casuale? ‘ non è ancora pseudocasuale?
- Questo dovrebbe essere il risposta accettata se non altro per la parte della Guerra Santa.
- @Doorknob Una volta scelte combinazioni significative, la maggior parte dellentropia scompare. Non ho ‘ tentare di stimare quante frasi potresti scegliere, ma questo è probabilmente più vicino a uno su un miliardo che a uno su 2 ^ 44.
Risposta
Schneier scrive questo:
Questo è il motivo lo schema XKCD spesso citato per la generazione delle password – unire insieme parole singole come “correttahorsebatterystaple” – non è più un buon consiglio. I cracker di password stanno facendo questo trucco.
ma la chiave per capire cosa sta realmente cercando è un po più avanti nel suo saggio:
Cè ancora uno schema che funziona. Nel 2008, descrivevo lo “schema Schneier “
così è tutto. Ole “Bruce vuole affermare che il suo schema è lUnico e Solo, il migliore, il vincitore, lo schema definitivo. Pertanto, deve dire cose denigratorie sui” concorrenti “, indipendentemente dal fatto che tali le affermazioni sono scientificamente valide o no.
In questo caso, si è sempre stato assunto che il metodo di generazione della password fosse noto allattaccante. Questo è il punto centrale dei calcoli dellentropia ; consulta lanalisi . Il fatto che gli aggressori stiano “seguendo questo trucco” non cambia nulla (quando un attaccante conosce il metodo di generazione della password, il calcolo dellentropia descrive esattamente la forza della password; quando lattaccante è incompetente e non conosce il metodo di generazione della password, la forza della password è solo più alta, di un importo quasi impossibile da quantificare).
La battuta sulle “password in memoria” è solo più incoerente divagazioni. Le password vanno necessariamente nella RAM a un certo punto, sia che le digiti o le copi e incolla da una cassaforte per password o qualcosa di simile.
La mia ipotesi è che Bruce fosse ubriaco.
Aggiorna : Schneier è stato specificamente invitato a commentare la sua condanna della passphrase in un AMA di Reddit che ha avuto luogo il 2 agosto 2016. Ha continuato a sostenere il suo sistema di creazione della password come un alternativa superiore alle passphrase delle parole casuali. Schneier ha detto che il suo schema “ti dà più entropia per carattere memorizzabile rispetto ad altri metodi”, il che è vero se paragonato ai personaggi che compongono le parole. Ma questo è anche irrilevante quando un sistema fa affidamento sulla memorizzazione di parole piuttosto che di caratteri e ti è consentito combinare abbastanza parole per generare unadeguata “entropia” per la tua passphrase nel suo insieme.
Commenti
- Sì, ho pensato che i suoi commenti fossero una strana deviazione dal suo tipico buon consiglio.Il suo schema consigliato probabilmente non è ‘ male, ma ‘ non è stato sottoposto a molti test effettivi. Lapproccio della passphrase è abbastanza facile da testare in confronto, e ‘ penseresti che questo piacerebbe al crittografo che è in lui. Forse ha appena passato in rassegna le notizie su come decifrare passphrase in linguaggio naturale e ‘ non ha visto una distinzione tra quelle e le passphrase di parole casuali.
- denigrare la concorrenza fallisce, poiché subito dopo aver descritto il suo schema, dice ” Ancora meglio è usare password alfanumeriche casuali non memorizzabili (con simboli, se il sito le consente), e un gestore di password come Password Safe per crearli e archiviarli “.
- @wfaulk Password Safe è Bruce Schneier ‘ s creazione, quindi la sua tesi sulla concorrenza è ancora valida. La tua dichiarazione di errore fallisce 😉
- @AviD: Non lo sapevo assolutamente. 😳
- Quello che ‘ ti manca, e a quanto pare anche Schneier, è che non ci sono ” trucco ” per ” prendere “. La sicurezza di Diceware presume già che lattaccante conosca lo schema , infatti presume che il dizionario stesso sia noto. ‘ non importa se laggressore ha il tuo dizionario esatto e il numero di parole: ci sono semplicemente troppe combinazioni da seguire per effettuare qualsiasi tipo di attacco riuscito prima che il sole esploda.
Answer
[Divulgazione: lavoro per AgileBits, i creatori di 1Password]
Uno dei motivi per cui ho sostenuto uno schema simile a XKCD (prima che fosse chiamato così) in Toward Better Master Passwords nel 2011 è proprio perché la sua forza lo fa non fare affidamento sul fatto che lattaccante sappia quale schema hai usato. Se posso citare me stesso
La cosa grandiosa di Diceware è che sappiamo esattamente quanto sia sicuro anche supponendo che lattaccante conosca il sistema utilizzato. La sicurezza deriva dalla genuina casualità del lancio dei dadi. Luso di quattro o cinque parole dovrebbe essere sufficiente contro gli attacchi plausibili nei prossimi anni data la velocità osservata dei cracker di password [contro 1Password Master Password]
Ciò che il fumetto XKCD non comunica efficacemente è che la selezione di parole deve essere (uniformemente) casuale . Se chiedi agli umani di scegliere parole a caso, ottieni un forte pregiudizio per i nomi concreti. Tali pregiudizi possono e saranno sfruttati.
Quanta forza vuoi
In un mondo perfetto, vorremmo che la forza della nostra password sia forte quanto le chiavi con cui stiamo proteggendo esso. Dì 128 bit. Ma nonostante queste tecniche, gli esseri umani non ci riusciranno. Quindi guardiamo realisticamente agli attacchi e a cosa possiamo far fare ai nostri piccoli cervelli.
Con la lista di parole Diceware originale di 7776 voci, ottieni circa 12,9 bit per parola che usi. Quindi, se vuoi almeno 64 bit per la tua password, allora cinque parole lo faranno.
Indovinare le password è più lento che indovinare le chiavi
In questa sezione arrivo a un resoconto molto approssimativo della busta stima che per un importo costante di dollari è 2 ^ 13 volte più lento testare una password rispetto a testare una chiave AES.
Si noti che testare una password è molto più lento del testare una chiave. Se vengono utilizzati i tipi corretti di schemi di hashing delle password, è possibile mantenere la maggior parte degli aggressori al di sotto di 100.000 tentativi al secondo. Quindi, anche se potremmo non voler mai usare chiavi a 50 bit, usare password a 50 bit potrebbe comunque avere senso.
Se non ci limiteremo a tirare i dadi come in Arnold Reinhold “s schema Diceware originale del 1995, quindi possiamo utilizzare un elenco di parole più lungo. Il generatore di password complesse in 1Password per Windows utilizza un elenco di 17679 parole inglesi comprese tra 4 e 8 lettere incluse (prive di parole tabù e parole che implicano un apostrofo o trattini). Ciò fornisce circa 14 bit per parola. Quindi quattro di questi ti danno 56 bit, cinque ti danno 70.
Di nuovo, devi prestare attenzione alle velocità di cracking. Deep Crack nel 1997 era in grado di eseguire 92 miliardi di test DES al secondo. Supponendo che un PC specializzato di fascia alta possa eseguire un milione di tentativi al secondo contro una password con hash ragionevolmente corretto potrebbe fare 1 milione di tentativi al secondo, allora le password oggi sono circa 16 bit più difficili da decifrare rispetto alle chiavi DES nel 1997.
Quindi esaminiamo questa stima di Stack Exchange per un processore dual core da 3,8 GHz: 670 milioni di chiavi al secondo.Se dovessimo ipotizzare $ 5000 in hardware, possiamo facilmente superare i 10 miliardi di chiavi al secondo. Quindi, a un costo hardware simile, il cracking delle chiavi è ancora più di 2 ^ 13 volte più veloce del cracking delle password.
Obiettivi di sicurezza delle password rivisti
Lavorando sulla mia stima che sia 2 ^ 13 volte più costoso testare una password con hash corretto che testare una chiave AES, dovremmo considerare una password con hash ragionevolmente ben 13 bit più forte della sua effettiva entropia rispetto al cracking. Se vogliamo ottenere 90 bit di “forza effettiva”, allora dovrebbero bastare 77 bit di forza della password. Ciò si ottiene con una password Diceware di sei parole (77,5 bit) dallelenco originale e 84,6 bit con sei parole tratte da un elenco di 17679 parole.
Non mi aspetto che la maggior parte delle persone utilizzi password che Mi aspetto che le persone useranno cose che sono lunghe 4 o 5 parole. ma se sei sinceramente preoccupato che lNSA vada dietro alle tue password, allora sei parole dovrebbero essere sufficienti supponendo che tu usi uno schema di hashing delle password decente.
Solo stime molto approssimative
Non ho dedicato molto tempo alla ricerca di costi e benchmark. Ci sono molte cose nelle mie stime su cui cavillare. Ho cercato di essere conservatore (pessimista sullo schema che sto sostenendo). Sono stato anche vago riguardo alle “password ben codificate”. Di nuovo, sono molto prudente riguardo allhashing della password in 1Password. (Per il nostro nuovo formato di dati, gli aggressori sono stati tenuti a meno di 20.000 tentativi al secondo e per il nostro vecchio formato di dati hanno raggiunto 300.000 tentativi al secondo per più -Macchine GPU. Nelle mie stime qui, “ho scelto 1 milione di tentativi al secondo per una” password con hashing ragionevolmente corretto “.)
Qualche nota storica
lidea per le password “simili a XKCD” risale almeno al S / Key one time password dei primi anni 80. Usavano un elenco di 2048 una attraverso parole di quattro lettere. Una password di sei parole S / Key ti ha portato a 66 bit. Non so se questa idea di usare parole selezionate a caso da un elenco per una passphrase sia precedente a S / Key.
Nel 1995 , Arnold Reinhold ha proposto Diceware . Non so se fosse a conoscenza di S / Key in quel momento. Diceware è stato proposto nel contesto dello sviluppo di passphrase per PGP. Era anche prima che la maggior parte dei computer avesse generatori di numeri casuali crittograficamente appropriati. (Anche se mi fido dei CSPRNG sulle macchine che uso, mi diverto ancora a “creare una nuova password”).
Nel giugno 2011, ho ravvivato linteresse per Diceware in Verso migliori password master con alcune modifiche aggiuntive. Ciò ha portato ai miei 15 minuti di fama. Dopo luscita del fumetto XKCD, ho prodotto una edizione geek che ha esaminato alcuni dei calcoli matematici.
Nel luglio 2011, Randall Monroe si era concentrato su schemi simili a Diceware e aveva pubblicato il suo famoso fumetto . Dato che non sono linventore dellidea, non mi dispiace per niente essere messo in ombra dal fumetto. In effetti, come ho detto nel mio articolo di follow-up
Cosa mi ha preso quasi 2000 parole da dire in termini non tecnici, Randall Monroe è riuscito a riassumere in un fumetto. Questo mostra solo il potere della matematica …
Ma cè una cosa su come è stato interpretato il fumetto che mi preoccupa. È chiaro a me e alle persone che hanno già compreso lo schema che le parole devono essere scelte attraverso un processo casuale uniformemente affidabile. Scegliere parole “a caso” dalla tua testa è non un processo affidabile e uniforme .
Commenti
- Fantastico che tu abbia menzionato Diceware in una prospettiva storica e allo stesso tempo riconosci lottimo lavoro di marketing svolto da XKCD per le passphrase. Riguardo al tuo schema modificato, è spiegato da qualche parte perché le parole di 3 o 2 lettere non sono incluse in quegli elenchi di parole? vedi blog.agilebits.com/2013/04/16/… . È perché le parole come ‘ off ‘ e ‘ riga ‘ potrebbe essere attaccato anche da 1 parola offline? Vedi i miei commenti sul post di Raestloz. Lelenco originale di Diceware contiene molte parole di 1, 2 e 3 lettere.
- Ottima domanda! Il mio pensiero (forse errato) allepoca era che volevo anche che le passphrase fossero di lunghezza minima. Volevo assicurarmi che se qualcuno avesse usato una passphrase di tre parole, avrebbe superato un minimo di 12 caratteri. Noto che S / Key consente anche parole di 1, 2 e 3 lettere.
- Ho controllato rapidamente le liste di parole utilizzate dal mio generatore di passphrase SimThrow e dal tester.Lelenco Diceware originale contiene almeno 1400 di queste collisioni come ‘ qualsiasi ‘ ‘ come ‘ e ‘ comunque ‘. Ciò può degradare una frase di 4 parole a 3 parole, se non viene utilizzato alcun separatore. È ‘ un numero di collisione elevato perché lelenco include tutte le lettere e 2 combinazioni di lettere. Quindi sembra che tu abbia fatto la scelta giusta di non includere parole di 2 lettere. Diceware consiglia una lunghezza minima della frase di 17. Il mio generatore stima i tempi di recupero basati su parole e caratteri, per far fronte a siti che consentono solo password brevi (20).
- Ho anche controllato le seguenti liste di parole. S / Key : > 93 collisioni, espanse-dicelist Stati Uniti : > 190 e il mio elenco dei Paesi Bassi: > 750. Un modo per gestire questo problema è consigliare di includere un carattere separatore tra le parole di una frase.
- Attenzione, tirare i dadi non è perfettamente casuale. forbes.com/sites/davidewalt/2012/09/06/… e insidescience.org/blog/2012/09/12/…
Risposta
Lo schema delle password XKCD è più buono che mai. La sicurezza non deriva dallessere sconosciuti, ma dal fatto che è un buon modo per generare password memorabili da un ampio spazio di ricerca. Se selezioni le parole da utilizzare invece di generarle casualmente, questo vantaggio è perso: non sono bravi a essere casuali.
La parte relativa alla memoria è mal definita, ma è una preoccupazione: se il malware che ruba password arriva sul tuo computer, ” spazzare via tutto ciò che è simile al testo dalla RAM e dal disco rigido per usarlo in un attacco diretto ai tuoi account.
Commenti
- +1 I don ‘ Non credo che la tecnica XKCD sia morta: ‘ non è ‘ un trucco ‘ che i cracker ‘ sono su ‘. Puoi conoscere la tecnica alla rovescia, ma non è così ‘ t renderlo più crackabile se ‘ è abbastanza casuale.
- @PiTheNumber se tu ‘ stai usando poche parole o un dizionario minuscolo, quindi ‘ non applichi affatto la tecnica xkcd; ma no, anche nel fumetto xkcd è ‘ esplicitamente chiaro che NON stai perdendo il tuo vantaggio se lo dici a tutti ” hey, io ‘ utilizzo la password corretta in stile horsebatterystaple ” – la quantità di veriazioni / entropia bit è superiore alla maggior parte delle password normali anche se il metodo è noto.
- A condizione che non ‘ utilizzi anche XKCD ‘ generatore di numeri casuali (ho vinto ‘ t link, lo sanno tutti).
- @PiTheNumber il concetto di ‘ La password di 11 lettere veramente casuale ‘ è irrilevante, in quanto non è unalternativa ragionevole alle passphrase. Le passphrase sono alternative alle password memorizzabili e sono esattamente deboli come descrive xkcd. Certo, se utilizzi una password memorizzata in un gestore di password, le password sono completamente casuali, ma in tal caso ‘ essenzialmente non ‘ la tua password ‘ come in qualcosa che tu useresti o vedresti, ma piuttosto una ‘ chiave casuale generata automaticamente token ‘ simile alle chiavi ssh.
- @PiTheNumber Le parole non sono scelte dalluomo, sono scelte casualmente. Il dizionario da cui vengono scelte le parole è esso stesso scelto dalluomo, ma questa è una questione diversa. Non cè “molto probabile”: la matematica nel fumetto xkcd è corretta.
Risposta
Come gli altri detto, lattacco descritto da Bruce Schneier è efficace quando lutente sceglie più parole da solo, senza usare uno strumento. Schneier di solito scrive a un pubblico generale, che è improbabile che cogli la differenza tra parole “casuali” scelte da sé e parole casuali scelte dal programma.
Aggiungerò che anche se usi una sceneggiatura o altro strumento per scegliere a caso le parole da un dizionario, devi usare la prima sequenza che ti dà . Se decidi, ” Non mi piace, e lo eseguo di nuovo finché non ti piace, non è più una passphrase casuale , è scelta dalluomo.
Inoltre, anche se usi uno script, e anche se non danneggi la casualità scegliendo la tua preferita tra più sequenze, cè ancora la possibilità che un attaccante possa sfruttare il tuo PRNG (pseudo-casuale generatore di numeri) .Se lattaccante può apprendere quando hai creato la password e quale PRNG hai usato, e forse altre informazioni sul tuo PRNG come il traffico di rete che è stato prodotto utilizzando il tuo PRNG nello stesso periodo, ciò potrebbe ridurre lentropia effettiva di la tua passphrase casuale.
Forse un po esoterico, ma se il tuo PRNG è sfruttabile, la cifra 2 ^ 44 non sarà completamente realizzata. (E se presumi “nessuno proverà a sfruttare il mio PRNG”, perché ti interessa usare una passphrase veramente sicura?)
Commenti
- +1 Angolo interessante. Lo sfruttamento del PRNG è ovvio nel contesto della crittografia chiavi: ‘ è interessante che qui sembri essere praticamente un ripensamento. Immagino che le password tipiche siano così pessime che i PRNG si sentono sicuri al confronto. Presumibilmente, se un utente malintenzionato può rubare un elenco di password con hash, trovare pwdChangedTime o equivalente sarebbe banale? Un altro motivo per porre fine alla pratica dellinvecchiamento delle password?
- Indietro veloce della busta. Se aggiorni la password entro un minuto dalla generazione e lunica fonte di entropia nel tuo PRNG è lora di sistema, potresti cercare di ridurre le cose fino a 2 ^ 35 per una risoluzione in nanosecondi. Sembra ragionevole?
- Supponiamo che io rifiuti una frase perché ‘ t mi piace una parola e lo faccio 1000 volte. Poi ho ridotto il dizionario di 1000 parole. La scelta da quel dizionario ridotto è ancora casuale? Se lo è ancora, una frase di 4 parole da un dizionario Diceware di 7776 parole così ridotto fornisce ancora (7776-1000) ^ 4 = 2,1E15 / 50,9 possibilità / bit di entropia, giù da 3,7E15 / 51,7 possibilità / bit di entropia per il pieno dizionario. Non sono in grado di giudicare linfluenza del generatore casuale. Uso quello di www.random.org
- @ Dick99999 Non ‘ penso che ‘ sia davvero sul numero di scelte offerte che escludi nella scelta di una password. ‘ riguarda lo schema di quali frasi escluderesti , se ti venissero presentate. Un utente malintenzionato potrebbe supporre che lutente preferirà parole più brevi, parole più facili da digitare su una tastiera QWERTY e parole senza maiuscole o punteggiatura; questa strategia potrebbe ridurre notevolmente lo spazio delle passphrase da esplorare. Fondamentalmente, ‘ è lo stesso problema di indovinare le squadre sportive preferite, i compleanni e i nomi dei bambini ‘.
- @wberry Non ‘ penso che la matematica funzioni su questo. Supponi di rifiutare 1000 passphrase prima di trovarne una che ti piace. Quindi ‘ è una stima ragionevole che ti piace solo 1/1000 dello spazio possibile per la password. Supponiamo ora che un utente malintenzionato sia in grado di indovinare completamente quale 1/1000 dello spazio è il tuo preferito: ciò riduce il numero di possibilità da 2 ^ 44 a 2 ^ 34, il che è significativo ma non così tanto che una parola in più può ‘ per eliminare la perdita. Inoltre, se limiti i tuoi rifiuti anche questo non è necessario.
Rispondi
Dipende. Una cosa che devi capire è che non si tratta di sicurezza per oscurità: i valori di entropia usati nel fumetto presumono che lattaccante sappia già che stai usando questo metodo . Se laggressore non sa come stai “generando la passphrase, allora lentropia aumenta enormemente.
Il trucco per il metodo XKCD è che devi effettivamente utilizzare un generatore di numeri casuali e un buon elenco di parole: non scegliere mai le parole te stesso, nemmeno “a caso” (tra virgolette perché gli esseri umani sono davvero pessimi nel scegliere le cose a caso, motivo per cui non dovresti “non farlo). Diceware dispone di strumenti per aiutarti a fare questo, e porta anche lelemento casuale fuori dalla portata del computer usando normali dadi.
Contro un attacco di vasta portata, il tipo di cosa in cui un utente malintenzionato ha ottenuto un elenco di password da un sito Web e non sa nulla delle password presenti nellelenco, questo è più forte che mai. Proprio come dici tu, la sua forza deriva dalla potenza degli esponenti (e da un buon elenco di parole).
Lattacco di Schneier può funzionare, ma solo in un contesto completamente diverso. Il suo attacco presume che tu sia stato preso di mira specificamente da un attaccante che sa già molto su di te .Allinizio questo potrebbe non sembrare particolarmente preoccupante, perché lattaccante determinato e stereotipato è un agente dellintelligence dietro uno schermo, e la maggior parte di noi non deve preoccuparsi così tanto di quelli: ce ne sono solo così tanti, e ognuno può solo permettersi di prendersi cura di così tante persone. Ma in realtà è più un problema di quanto possa sembrare a prima vista, grazie allavvento di malware sofisticati. Uninstallazione di malware può permettersi di prendersi cura di te anche se lattaccante non lo fa, e così finisci comunque per affrontare un aggressore estremamente determinato. Anche più determinato di quanto potrebbe essere un essere umano, in effetti, sebbene molto meno creativo.
Il malware che raccoglie informazioni su di te darà alle parole che ti sembrano importanti una priorità molto alta nellelenco delle parole. Lo fa perché la maggior parte delle persone sceglie da sé le parole “casuali”, ma così facendo, in realtà si orientano piuttosto fortemente verso le parole che sono più importanti per loro: può ancora “sembrare” casuale, ma alcune parole hanno molte più probabilità di venire su rispetto ad altri. Per questo motivo, dare a queste parole unalta priorità spesso si traduce in risultati relativamente rapidi, e questo è il “trucco” di cui parla Schneier.
Tuttavia, puoi ancora contrastare lattacco di Schneier usando la vera casualità . Il problema è che questo richiede disciplina: tutte le decisioni su quali parole usare nella passphrase (a parte la scelta di una buona parola list) deve essere tolto completamente dalle tue mani. È qui che cose come Diceware possono aiutarti.
Commenti
- @Gilles: Il motivo per cui lentropia diminuisce se lattaccante conosce il metodo è che cambia lintera struttura della password. Se ‘ non conosci il metodo, allora ” la graffetta corretta della batteria del cavallo ” sembra 216 simboli di un alfabeto a 2 simboli: in altre parole, 216 bit. Se sai che ‘ s quattro parole inglesi (e conosci XKCD
s wordlist), quindi sembra 4 simboli da un alfabeto di 2048 simboli. 2048 ^ 4 è grande, ma ‘ è più piccolo di 2 ^ 216, che è il numero di byte di entropia che avrebbe una stringa di bit veramente casuale di quella lunghezza. Ma laffermazione di XKCD ‘ lo spiega già: 2048 ^ 4 = 2 ^ 44.
Rispondi
La forza la matematica è abbastanza semplice se la scelta della parola è casuale: (numero di parole nel dizionario) ^ (numero di parole nella frase), supponendo che lattaccante conosca il numero di nel dizionario. Quindi una frase di 5 parole che utilizza un dizionario Diceware noto ( dallautore dellattacco !) 7776 parole dizionario Diceware: ha 7776 ^ 5 = 2.8E19 o 64 bit di entropia.
Cè un elemento che non è menzionato nello schema: aggiungendo solo 1 carattere (casuale) in un punto casuale dellintera frase, lintensità aumenta di circa 10 bit , vedi Diceware, materiale opzionale .
Anche la matematica sopra non tiene conto del simbolo separatore tra le parole. Ciò può aggiungere altri 5 bit.
Commenti
- Il punto (o almeno uno di essi) del fumetto XKCD è che laggiunta di un carattere casuale in un posto casuale aumenta la difficoltà di memorizzare la password più di quanto non aumenti la difficoltà di decifrarla.
- Vero per la memorizzazione in generale, non vero per una password principale di un vault, credo. Vedo ‘ facile da digitare ‘ come il vantaggio principale. Incontro sempre più situazioni in cui i gestori di password non possono inserire la password (app, rete ospite WifI) e devo digitarla.
- @Mark – i caratteri extra casuali (o semplicemente non di dizionario) potrebbero essere lo stesso per tutte le tue password, il che significa che ‘ non la dimenticherai. ‘ guadagnerai i bit extra di entropia almeno fino a quando molte altre tue password saranno compromesse, a quel punto la password sarà ancora xkcd-strength …
- @imsotiredicantsleep – Questo è un suggerimento molto interessante. Ho sempre cercato una soluzione per rendere più facile da usare questa tecnica di rinforzo. Potrebbe essere chiamata sicurezza per oscurità perché lattaccante può beneficiare della conoscenza del carattere casuale e della posizione. Un leggero compromesso, penso tra facilità duso e sicurezza.
- @ Dick99999 assolutamente, ‘ è un compromesso. Ma fino a quando il componente costante non viene compromesso, sconfiggerà un ï attacco dizionario e ne rallenterà in modo significativo uno più sofisticato. Tuttavia, ‘ non sono daccordo che ‘ è protetto dalloscurità, perché posso dirti che sto usando la tecnica senza perdere lentropia che i valori possibili mi danno. Il punto debole principale è che una volta che la parte costante è nota, hai sacrificato lo spazio per la password che avrebbe potuto essere randomizzato.
Risposta
Vorrei anche aggiungere una risposta sì , ma per altri motivi. Non è un buon consiglio [in generale] a causa dei limiti di lunghezza:
- Siti come Skype, ING, eBay e nel mio paese Binckbank e KPN limitano le password a 20 caratteri. (Quel limite di banca è 15, ma utilizzava lautorizzazione a 2 fattori)
- Con una lunghezza media di 4,5 caratteri / parola per un breve dizionario di 3000-8000 parole, che consente di utilizzare solo frasi di 3-4 parole.
- Quando si utilizzano dizionari di grandi dimensioni la media può essere 6-7: solo 3 parole
- Se il sito insiste nellusare un simbolo e un numero nella password, sono disponibili solo 18 caratteri per la frase.
Queste lunghezze proteggono solo dagli attacchi online. Per gli attacchi offline dipende dalla derivazione della chiave e dalla funzione hash, dal numero di iterazioni e dallhardware di cracking utilizzato dal sito dellapp, se una frase di 3-4 parole offre una protezione sufficiente.
Commenti
- I siti che limitano la lunghezza delle password sono spesso un ottimo indicatore del fatto che il loro sistema di archiviazione delle password è molto insicuro. Scappa. Tutto sommato, i requisiti di sicurezza della password tendono ad essere più dannosi che utili, IMO (sia per la sicurezza che per la memorabilità).
- Aggiungi Suntrust allelenco delle password limitate a 15 caratteri. Mi chiedo che cosa sta succedendo in quel settore ..
- Daltro canto, è ‘ molto più facile digitare ‘ correcthorsebatterystaple ‘ su uno smartphone piuttosto che continuare a alternare tra minuscole, maiuscole, numeri e punteggiatura.
- I limiti di password bassi don ‘ t significa solo metodi di archiviazione delle password non sicuri: significano che le password vengono archiviate in testo normale o crittografate (non con hash). @ Á ngel Le mie password per tutti gli account relativi a Microsoft sono più lunghe di quella, quindi chiamo BS. Anni fa, prima di NTLM, le password di Windows erano limitate a 16 caratteri, iirc. Ciò è anteriore a XP ed è poco rilevante.
- @Zenexer Per quanto riguarda gli account Microsoft: gli account online Microsoft (live.com, Office 365, ecc.) Sono limitati a 16 caratteri (lettere, numeri e alcuni simboli sono consentiti ).
Risposta
È importante avere il contesto corretto. Il xkcd comic confronta Tr0ub4dor&3
con unentropia di 28 bit presunta (sebbene io calcoli è 34,6) a correcthorsebatterystaple
e si presume 44 bit di entropia (un codice diceware di quattro parole è 51,7 bit … ma una di queste parole non è “t diceware. Usando un semplice dizionario ortografico di 100.000 parole, ho calcolato che sia 66,4 bit).
Per prima cosa, rendiamolo più facile da capire. Ce ne sono 94 caratteri stampabili. Una password di un carattere ha log₂(94) = 6.55
bit di entropia. Due caratteri hanno log₂(94²) = 13.10
bit di entropia.È possibile dividere lentropia finale di uno schema di password per 6,55 al fine di determinare la complessità equivalente di una password puramente casuale misurata in caratteri.
Pertanto:
- 28 bit di entropia ≈ password di 4,3 caratteri (pessima!)
- 44 bit di entropia ≈ password di 6,7 caratteri (anche cattiva)
- 66,4 bit di entropia ≈ password di 10,1 caratteri (ok per il 2016)
Fidandosi dei numeri di xkcd, puoi capire perché Schneier era preoccupato. Questo sembra un po esagerato, poiché la maggior parte degli aggressori si arrenderà ancora dopo una decina di caratteri [citazione necessaria] : un grande cluster dovrebbe impiegare alcuni anni per rompere una password con hash MD5 di 10 caratteri, anche se ovviamente se un buon attaccante conosce il tuo schema, la lunghezza assoluta dei caratteri non è un problema.
La complessità totale dello schema è molto importante. Devi presumere il caso peggiore (che lattaccante conosca il tuo schema esatto) . “È unottima idea assicurarsi che la password contenga più di 11 caratteri ( quando consentito ), ma questa” è una priorità secondaria (e viene fornita gratuitamente con passphrase ).
Crea passphrase con quattro parole più un passcode
Ecco il mio consiglio per la creazione di passphrase (con stime di entropia):
- Crea una “frase” priva di senso di più di 4 parole di più di 4 caratteri ciascuna (100.000>)
- Nessuna di queste parole può essere collegata a voi – o lun laltro– in qualsiasi modo
- Usa maiuscole e minuscole, spazi e almeno due simboli o segni di punteggiatura (32²)
- Almeno una parola dovrebbe fallire il controllo ortografico (ad esempio leetspeak, parole straniere, 64 ciascuna)
- Includere almeno un altro “errore” (ortografia / grammatica / sintassi, entropia sconosciuta)
- Tra due parole, aggiungi un passcode “casuale” di almeno 7 caratteri (92⁷)
Questo dovrebbe essere almeno log₂(100000⁴ × 32 × 3 × 64 × 92⁵) = 112
bit di entropia (che è molto forte, ≈17 caratteri). Ho saltato le maiuscole (presumo che solo il primo carattere sia maiuscolo) e un simbolo (presumo che finisca con .
, !
o ?
, quindi il secondo simbolo ha una complessità di 3) e ho anche assunto che “random” non è “del tutto casuale e ho calcolato il codice come un equivalente di cinque caratteri (stretta aderenza a quanto sopra la formula ti darebbe 128+ bit di entropia a ≈20 caratteri).
Vale la pena ripetere questo punto finale:
Gli esseri umani sono molto cattivi nel generare casualità
Pochissimi codici di accesso “casuali” generati dalluomo anche si avvicinano alla vera casualità. Ci saranno modelli nel codice correlati alla tastiera della persona, ai numeri preferiti e / o al presupposto che una certa parola oscura non sia indovinabile.
Ho progettato questo schema per essere robusto contro la mancanza intrinseca di casualità delle persone, assumendo un vocabolario limitato (pronuncia le 2600 parole in Basi c inglese ), luso di parole correlate (penalizzato dal conteggio di sole tre parole) e un codice di accesso limitato solo allentropia di sei caratteri alfanumerici, log₂(2600³ × 62⁶)
è ancora forte a 70 bit (≈10,6 caratteri).
Non lasciare che questo annacquare la tua passphrase! Questa sezione è presente per dimostrare che questo schema ha una certa resistenza allentropia limitata scelte, non per incoraggiare scelte sbagliate.
Lunico vero problema viene dalle persone che prendono citazioni o testi come loro quattro parole. Queste passphrase sono banalmente sconfitte se la citazione o il testo possono essere indovinati (ad esempio guardando i tuoi Mi piace di Facebook) o altrimenti avrebbero unentropia di circa 6 caratteri casuali in un tempo di crack da 30 secondi (MD5) a 17 giorni (PBKDF2) .
Puoi utilizzare la mia tabella di entropia per calcola lentropia del tuo schema di passphrase.
(Non preoccuparti del fatto che le password vivono brevemente nella memoria a meno che sei uno sviluppatore)
Commenti
- Va inoltre notato che non- ASCII sono come proiettili dargento, che sconfiggono automaticamente la maggior parte degli attacchi. Una password di
•••••••••
(nove caratteri puntati) è imbarazzantemente sicura (e ha lo stesso aspetto mascherato e non mascherato!) A causa della lunghezza e delloscurità, sebbene ‘ sarebbe unidea orribile dipendere da questo fatto. Inserisci un carattere non ASCII nel passcode + 4word e la tua complessità salirà alle stelle (per calcolare, usa il suo valore Unicode), anche se forse a scapito della portabilità (cosa succede se ‘ stai utilizzando uno smartphone ‘?)
Rispondi
No, non credo.
Il vero consiglio in quel fumetto di xkcd è di utilizzare mnemonici facili da ricordare e genera la password finché riesci a ricordarla . Questi sono consigli di base per la password ovunque e rimarranno sempre veri (anche il metodo di Schneier citato utilizza questi due fatti di base). In effetti, il fumetto fa uso di parole inglesi comuni, ma la tua implementazione non deve esserlo, né il fumetto implica che dovresti.
Ovviamente, le password più sicure sono stringhe totalmente casuali come laspetto di una stringa MD5 e probabilmente puoi utilizzare un gestore di password per memorizzare tutte quelle password, ma poi quale password utilizzerai per quel gestore? ¯ \ (ツ) / ¯
Commenti
- ” Ovviamente, le password più sicure sono stringhe totalmente casuali ” NO, vedi per un confronto en.wikipedia.org/wiki/Password_strength#Random_passwords
- No, questo ‘ non è ciò che consiglia xkcd, ti suggerisco di leggerlo di nuovo – e lanalisi nella domanda pertinente qui (linkata sopra).
- La tua firma ” ¯ \ (ツ) / ¯ ” è unottima password: breve, facile da ricordare, davvero difficile da violare, difficile da rilevare come password su un registro.
- @Daniel Azuelos, … banale da aggiungere a un elenco di stringhe di uso comune …
- @Raestloz Una persona che parla una lingua che non ‘ t utilizzare caratteri che si trovano nellintervallo ASCII non ‘ utilizzerà una password ASCII. Pensi che tutte quelle persone nei paesi asiatici usino due tastiere, una per la digitazione quotidiana e una per le password? A differenza dei sistemi operativi di trentanni, come DOS, tutti i moderni sistemi operativi ‘ gestiscono correttamente Unicode e altri set di caratteri / pagine, e qualsiasi sito web dovrebbe supportarli (purché il lo sviluppatore non ‘ codifica il modulo utilizzando ogni volta un set di caratteri casuale o lascia che sia il browser a scegliere). Le password sono solo bit che significano qualcosa per gli esseri umani.
correcthorsebatterystaple
ora è molto meno sicura!correcthorsebatterystaple
, fai attenzione a non ‘ accedere a un sistema che lo tronca silenziosamente! Una password comecorrecth
è probabilmente più facile da indovinare rispetto aN#y;f8eR
.