it-swarm.dev

Quanto sono sicure le password fatte di frasi interamente in inglese

Leggo spesso come un consiglio per costruire password complesse, solo per pensare a una frase e poi prendere le lettere iniziali. Ad esempio, prendi una frase senza senso come "Guardo Grey's Anatomy alle 9.40" che mi dà la password "IwG'[email protected]".

Quanto è sicuro se prendo al posto di questa solo l'intera frase (compresi gli spazi bianchi). Per essere più concreti:

Quanto è sicuro usare solo una normale frase inglese come password con in particolare rispetto a

  • un sofisticato attacco alla directory
  • un attacco a forza bruta

Se è una buona idea farlo, ci sono delle regole che dovrei seguire per costruire la frase? (Numero di parole, va bene se è una citazione di una persona famosa o deve essere una frase senza senso ...)

In che modo le password di questo tipo si confrontano con un passwort appena scelto casualmente costituito da lettere minuscole e maiuscole, numeri e simboli di lunghezza n?

Ho in mente quattro punti in cui applicare questo schema:

  1. Il tuo computer di casa
  2. Account Internet (e-mail, negozi online, social network, ...)
  3. Banca online
  4. Memorizzazione di dati altamente sensibili

La password deve essere sufficientemente sicura da seguire i progressi tecnici nel cracking delle password e nell'hardware del computer per almeno due anni.

Quanto è appropriato lo schema di costruzione della password descritto in quei casi, come si cambiano le raccomandazioni sulla lunghezza della frase, ecc., In quale area viene utilizzata la password?

Sarebbe bello se la risposta contiene alcuni calcoli che stimano la sicurezza della password e alcuni riferimenti su questo argomento.

31
student

Sarebbe bello se la risposta contiene alcuni calcoli che stimano la sicurezza della password e alcuni riferimenti su questo argomento.

Di recente ho risposto quasi alla stessa identica domanda qui: Confuso circa l'entropia (password)

Il tempo necessario per decifrare la password è esattamente uguale al tempo necessario per testare una singola password moltiplicata per il numero di password che saranno provato prima del tuo. Dal momento che stai tentando di prevedere il comportamento di qualcun altro, è davvero tutto ciò che puoi dire.

Ci sono altre stime che provano a capire quale sarà questo numero in alcuni casi generali, ma quelli sono necessariamente sempre sbagliati, poiché l'attaccante non deve seguire qualunque modello matematico che costruisci. Chiaramente la password verrà indovinata rapidamente se l'attaccante sta uscendo da un elenco di sequenze di tasti dal tuo computer e chiaramente la password sarà mai indovinata se il dizionario utilizzato dall'aggressore non contiene il tuo password a tutti.

Occasionalmente le persone useranno il concetto di entropia per fare questo tipo di stima, ma, ancora una volta, nel mondo reale quanto regge? Una password composta dalla lettera "a" ripetuta 27 volte ha un'entropia molto bassa, ma resisterebbe a quasi tutti gli attacchi del dizionario di uso comune ... fino a quando le password a lettera singola estremamente lunghe diventeranno di gran moda e gli aggressori inizieranno a cercarlo.

Più un modello di password diventa comune, più è probabile che gli aggressori lo cerchino.

In generale, gli attacchi con password provano le password in questo ordine:

  1. password comunemente usate
  2. semplici password basate su dizionario (solo lettere minuscole),
  3. password basate su dizionario più complesse (maiuscole/minuscole, cospargere di numeri e punteggiatura secondo alcuni schemi comuni)
  4. ricerca esaustiva dell'intero spazio delle chiavi a partire da password brevi e passando a quelle lunghe

Se riesci a resistere ai primi 3 tipi e hai una password ragionevolmente lunga, sei praticamente a casa perché una ricerca esaustiva di uno spazio di queste dimensioni è impossibile. La maggior parte degli attacchi si interrompe dopo il tipo 1, solo gli attacchi concertati tentano persino il tipo 3 e il tipo 4 è disperazione.

27
tylerl

Penso che il miglior riferimento sia NIST SP 800-63 Appendice A , che espone la teoria e i calcoli. Il NIST presume che la strategia difensiva dominante sia l'entropia, e che le password con la massima entropia sono le più forti. i covoni di password di Steve Gibson sfida tale ipotesi e afferma che la lunghezza è più importante della complessità o dell'entropia (in parte a causa della magia dell'hashish). pensare che sia sufficiente supporre che la forza di una credenziale di autenticazione (password/passphrase/ecc.) derivi sia dalla lunghezza che dall'entropia.

Una frase è più forte perché è più lunga. Certo, il testo inglese è estremamente ridondante circa 1 bit di entropia/carattere , la maggior parte degli aggressori non trarrà vantaggio da tale entropia. Sono stato fuori dal pentimento per circa cinque anni ormai, ma al momento in cui ho fatto l'ultimo pentimento, gli strumenti di attacco presumevano che la password fosse più simile a una Parola che a una frase. La lunghezza della password per l'entropia non è una funzione lineare per ragioni che Henning Klevjer ha spiegato abbastanza bene e che gli strumenti di attacco sfruttano queste limitazioni. (IIRC, i problemi sollevati da Klevjer possono comportare un aumento di 100 volte della velocità di cracking della password).

Sulla base di tali presupposti, la frase come passphrase è particolarmente forte. Come altri hanno sottolineato, i ricercatori hanno attaccato le passphrase, ma non sono a conoscenza delle informazioni pubblicate che gli aggressori del mondo reale hanno fatto.

Tuttavia, esiste una limitazione significativa alla passphrase. La parte facente affidamento (il sito in cui si sta eseguendo l'autenticazione), deve accettare una passphrase. Nella mia esperienza personale una frazione significativa, forse la maggior parte dei siti di autenticazione non accetterà una frase come passphrase. (Gradirei chiunque possa indicarmi numeri concreti su questo) Molte implementazioni di password rifiutano esplicitamente password di più di 16 caratteri, oppure troncano passphrase più lunghe alla lunghezza desiderata.

Esame a turno dei casi d'uso: 1) computer di casa: dipende dal sistema operativo in uso, ma esistono meccanismi di autenticazione senza password che sono molto più potenti e molto più semplici. (token biometrici e hardware, ad es. Yubikey ) 2) Account Internet (e-mail, negozi online, social network, ...) - Dubito che sarai in grado di utilizzare una frase di frase. Molti se non la maggior parte di questi non accetteranno una passphrase: l'unica speranza è massimizzare l'entropia della password fornita e evitare di riutilizzare la password 3) Internet Banking - Come sopra, è improbabile che accetta una passphrase. Tuttavia, un numero crescente di siti Web accetta l'autenticazione a due fattori da RSA o Yubikey o softkey come l'autenticatore di Google. 4) Memorizzazione di dati altamente sensibili - Non sono sicuro di cosa intendi qui. Se stai memorizzando dati altamente sensibili, la tua scommessa migliore è offline o crittografata. Se stai parlando di crittografia reale, una frase dovrebbe essere più forte, se il prodotto di crittografia lo accetterà. Personalmente, vorrei fare un'autenticazione a due fattori qui e saltare la password.

Si noti inoltre che la forza della password non ha senso se la parte relying ha un'implementazione cerebrale - per esempi vedere Sarah Palin Hack o Mat Honan . La tua massima entropia non può proteggerti da una parte negligente. Se rendi le credenziali di autenticazione abbastanza forti, un utente malintenzionato mirato ricorre a un metodo alternativo (ovviamente puoi costargli tempo e scoraggiare l'attaccante opportunista). In tali casi è necessario dedicare attenzione sia alla prevenzione del compromesso sia al rilevamento/recupero dal compromesso. Ma questo è al di fuori dell'ambito della tua domanda.

Non distrarti dall'obiettivo: se il tuo obiettivo reale è un'autenticazione forte, la soluzione migliore è utilizzare un credenziale di identità federata con un livello elevato di sicurezza e utilizzare un'autenticazione a due fattori per quell'identità.

15
Mark C. Wallace

Le frasi complete per le password, con o senza spazi sono note come passphrase . Sono più sicuri semplicemente perché la loro lunghezza disabilita qualsiasi attacco di forza bruta contemporanea. Ciò richiede, tuttavia, che l'attaccante non sia a conoscenza della struttura della passphrase. Una politica di password scritta in modo folle può richiedere "una passphrase composta da almeno due parole" che semplifichi il tutto. Supponi che ci vogliono X secondi per indovinare ogni passphrase inglese di una sola parola, fare lo stesso per due parole richiede X2. Gli attacchi del dizionario alle passphrase, quando l'attaccante è a conoscenza della struttura, possono essere molto efficienti.

Una buona idea è quella di utilizzare una passphrase come "Spero che nessuno nota il mio odore dei piedi" e aggiungere alcuni errori di ortografia casuali o caratteri speciali. Quindi "Hope naune nytices mafit odor" è una password migliore se l'attaccante può indovinare o conoscere la struttura . Questo è più importante per le frasi più brevi. "Yikes! Duperlarge% Dactionery" non sarà vulnerabile agli attacchi del dizionario ed è abbastanza lungo da sfuggire agli attacchi di forza bruta.

Cattive pratiche (elenco non esaustivo):

  • Password brevi
  • Poche parole del dizionario
  • Sostituzione di caratteri con segni simili (ad esempio pa $$ w0rd). "Pissword" è quasi altrettanto buono ..

  • Numeri in sequenza

Storicamente, una password complessa è lunga e casuale. Dal momento che non tutti siamo in grado di ricordare "% W¤GHAF034jio43Q¤ #% q3æPÅJ (%" e "LookattemGo, thefatteys!", Suggerisco passphrase. E scriverli se è possibile farlo in modo sicuro.

Per rispondere pienamente, è possibile utilizzare un preventivo, ma non "non autenticato". In il caso LinkedIn (LinkedIn ha perso molti hash delle password), le citazioni della Bibbia e i film scritti direttamente come password sono stati decifrati con successo.

Conclusione: pensa alla citazione "Non esiste una buona tassa". e renderlo qualcosa di simile. "No_sych_thang: taxorama", non dirlo direttamente.

"Tua madre odora di spray alle mandorle", per lunghezza è sufficiente, ma ancora una volta, se la politica della password dice "Passphrase dovrebbe essere di sette parole e offensivo per il parente di qualcuno" ...

Per il tuo computer di casa, se usi Windows, puoi avere Ctrl + backspace come password, e probabilmente nessuno lo proverà.

5
Henning Klevjer

Ciò che conta non è la lunghezza della password, ma la sua entropia. L'entropia di una password è il numero previsto di tentativi che un utente malintenzionato dovrà provare prima di trovare la password in un tentativo di forza bruta. (Numero di tentativi "previsti" perché un modello realistico dell'attaccante è probabilistico. Se sapessi esattamente in quale ordine l'attaccante avrebbe elencato i candidati alla password, sceglieresti uno che è abbastanza lontano nell'elenco in modo che " non l'ho mai trovato in vita.)

Se si applica una trasformazione prevedibile a un modello di password, l'entropia della password non cambia di molto. Se la trasformazione è molti-a-uno, l'entropia diminuisce di conseguenza. L'importo con cui l'entropia potrebbe aumentare rappresenta la propensione dell'attaccante a mettere in pericolo la supposizione che si possa applicare questa trasformazione. Trasformazioni memorabili come prendere la prima lettera o parlare 1337 probabilmente saranno tentate abbastanza velocemente (indovinate un po ', le persone che scrivono strumenti per decifrare le password non sono né stupide né ignoranti). Quindi una trasformazione come la descrivi potrebbe aggiungere al massimo un paio di entropia, oppure potrebbe ridurre considerevolmente l'entropia: se l'attaccante decide che è più probabile che le persone applichino tali trasformazioni, proverà prima la forma abbreviata; e se la trasformazione comprime molte passphrase in una sola, ciò riduce di conseguenza il numero di tentativi.

La punteggiatura non rende intrinsecamente una password più sicura. Il vantaggio di una trasformazione come quella che descrivi è che rende la tua password più breve da digitare. Si noti che potrebbe essere più difficile digitare anche se è più breve, specialmente su dispositivi mobili con tastiere su schermo su cui la punteggiatura è in qualche modo fuori portata. L'intera frase ha almeno altrettanta entropia e rimuovere tutta la sua punteggiatura, spazi e impostare tutte le lettere in minuscolo non riduce significativamente l'entropia.

Un buon schema di password è prendere diverse parole del dizionario casuali e metterle insieme. Nota che è fondamentale che le parole del dizionario siano scelte a caso. L'uso di una frase significativa aiuta la memorizzazione, ma aiuta anche l'attaccante. Un vantaggio dell'utilizzo di un semplice schema di generazione di password casuali è che puoi valutarne facilmente l'entropia. Se il tuo dizionario ha 2 ^ D parole (D ≈ 10 per l'inglese di base, D ≈ 14 per le parole ragionevolmente comuni, D ≈ 19 per l'OED) e scegli N parole per la tua password, allora la tua password ha N D bit di entropia. Poiché la generazione della password è casuale, non è possibile che l'attaccante ottenga ulteriori informazioni, quindi dovrà effettuare in media 2 ^ D N/2. Se alcuni sistemi richiedono caratteri speciali nelle password, inserisci un 1 alla fine o una lettera maiuscola all'inizio: l'entropia deriva dalle parole casuali, non da caratteri speciali. Questo meccanismo di generazione della password è illustrato in XKCD 936 , con un confronto con 1337speak (molto peggio); il fumetto è stato lteriormente discusso in questo sito .

Cosa farebbe t, se dovessi decifrare una password e non hai il tempo di provare ogni possibile combinazione? Probabilmente faresti qualcosa del genere:

  1. prova combinazioni spesso usate come "admin" o "12345"
  2. prova singole parole da un dizionario
  3. prova combinazioni casuali fino a circa 7 caratteri
  4. prova coppie di parole da un dizionario
  5. Prova citazioni ben note

L'uso di più parole invece di una singola password è in realtà una buona idea, ma solo perché ci sono tante parole possibili disponibili. Puoi calcolare tu stesso le possibili combinazioni:

Random characters:
26 characters in alphabet ^ 8 places = 2.0E11 combinations
52 case sensitive characters ^ 8 places = 5.3E13 combinations

Sentence with words:
135'000 words in dictionary ^ 4 places = 3.3E20 combinations

Quindi usare passphrase è buono, purché non vengano usati spesso (ben noti). Meno parole usi, più è facile decifrare, 4 parole mi sembrano minime.

Usare solo le prime lettere delle parole di una passphrase è più comodo, perché devi digitare meno. È buono finché questo porta ad usare più parole. Se la tua passphrase utilizza poche parole, la tua password rientrerà nella categoria 3 (combinazioni casuali fino a? Caratteri).

2
martinstoeckli

Il problema con il cracking di questo tipo è che non sai in quale contesto afferrare le frasi per abbinare il contesto che la persona ha usato per scegliere la password.

Questo diventa terribilmente difficile quando si usano testi che hanno fonti diverse come PDF, TXT, documenti Word ecc.

Ad esempio, supponiamo che io abbia un libro e abbia le seguenti due frasi:
Mary aveva un agnellino il cui vello era bianco
come neve. Mary ha quindi deciso un giorno di fare l'agnello
spezzatino e quindi Mary non aveva più un agnellino.

Quindi, per la mia password scelgo la frase 1 "Mary aveva un agnellino che era in pile bianco"

Ma ora come qualcuno che cerca di risolverlo, costruisco la mia lista di parole ottenendo il "BOOK" in TXT. Il file di testo è simile al seguente:
May aveva un agnellino il cui vello era bianco come la neve. Mary quindi decise
per fare lo stufato di agnello e quindi Mary non aveva più un agnellino.

Vedi il problema qui? La mia candidata sarà "Mary aveva un agnellino il cui vello era bianco come la neve. Mary ha quindi deciso" - e non importa cosa faccio a quella frase quando l'hash e il confronto non corrisponderanno mai a quello "reale" usato inizialmente.

Quindi come si potrebbe sapere dove troncare le frasi per costruirle in un dizionario? Le possibilità sono infinite: frasi con 1 parola, 3 parole, 10 parole, 9 parole?

Ovviamente, sarebbe facile passare semplicemente da un punto di punteggiatura ad un "punto" a un "punto" - ma supponendo che le persone scelgano frasi per le password basate su quello? Se lo facessero sarei sorpreso (e preoccupato) - se non lo fanno, allora di nuovo rende le possibilità piuttosto difficili.

Forse con un po 'di codice si possono generare elenchi di frasi da una fonte basata su numerose iterazioni di parole + "x" nella frase e quindi reindirizzarle in un cracker di password. Non sono sicuro dell'efficacia o della velocità però.

2
RuraPenthe

Supponiamo che l'algoritmo hash e il metodo (salato/non) siano gli stessi. Supponiamo che tu possa costruire un elenco di hash e usare un cracker GPU come ocl hashcat contro di esso (ho visto benchmark che richiedono 59 Gps per indovinare - questo è miliardi come in 55.077.000.000 di ipotesi al secondo. Ciò rompe l'intero spazio di una password di 8 caratteri usando 76 possibili personaggi in circa 3 ore.). Supponiamo di avere 3.000 parole in uso. Supponi che 300 di questi siano verbi (si basa sull'analisi lessicale pubblicata su Internet-ymmv). Supponi che i verbi si verifichino normalmente nelle prime tre posizioni di una frase. Supponiamo che parole comuni come "a, due, per, quattro, uno, vinto, cinque" ecc. Siano scambiabili con la loro controparte numerica e supponiamo che la punteggiatura sia costituita da spazi tra parole e punti, punti esclamativi e punti interrogativi (o nulla) alla fine. Supponiamo che non sia maiuscola, tranne la prima lettera. Supponi cinque frasi di parole (una media simpatica, anche le persone con una mentalità di sicurezza raramente superano le 12 a mio avviso).

Puoi spezzarlo offline in circa due mesi usando le parole come blocchi.

Ma le frasi scelte con nomi, parole non comuni, errori ortografici intenzionali, simboli diversi dallo spazio, lettere maiuscole o casuali sarebbero teoricamente più sicure perché le linee guida dell'entropia spezzerebbero i miei presupposti.

Questa è tutta teoria, ovviamente. Molte persone a cui dai la tua password non le cancellano ancora. Molti ancora non usano un sale. Molti altri usano algoritmi di hashing non sicuri. Alcune tecnologie non richiedono la rottura di un hash per poter essere abusato. Persino i provider sicuri non riescono a proteggere le risposte con suggerimenti di password o altri canali negli account. E molti buoni fornitori che provano sinceramente usano ancora cattivi captcha per "indovinare il limite umano".

Quindi, direi: il non riutilizzo (di suggerimenti, risposte o password) è più importante, la lunghezza è importante e spinge i tuoi custodi di password a utilizzare le migliori pratiche. È un uso migliore del tuo tempo rispetto a un dibattito come questo.

2

Che ne dici di passphrase generate con diceware ? Dalla discussione si discute che 5 o 6 parole scelte a caso da un elenco di 7776 parole (la chiave è che sono veramente casuali) hanno l'entropia tanto quanto l'uso dei numeri da 5 o 6 lanci di 5 dadi

2
Keith Wolters

L'entropia della password e la complessità dello spazio delle chiavi sono davvero interessanti da calcolare e sono utili per comprendere la probabile durata della sopravvivenza dell'hash della password sotto un attacco di forza bruta. Mentre questo è solo un tipo di attacco, e l'entropia è solo un aspetto di quella che può essere o meno una password "forte", merita l'esplorazione. Ecco un paio di calcoli che ho fatto di recente. Informativa completa: quanto segue proviene dal mio blog, quindi se i moderatori vogliono rifiutare questa risposta, non mi offenderò.

È strano pensare che una password tutta in minuscolo di 7 caratteri sia migliore di una alfanumerica di 5 caratteri con punteggiatura:

95^5 = 7,737,809,375
26^7 = 8,031,810,176

La password minuscola di sette caratteri ha leggermente più (294.000.801) caratteri. Ma se aumenti ogni tipo di password di un altro carattere, la password minuscola ha circa 3 volte e mezzo il numero di caratteri in meno.

95^6 = 735,091,890,625
26^8 = 208,827,064,576

Mi chiedo se vanno avanti e indietro in quel modo mentre aggiungi più caratteri alle tue password. Mi chiedo se i tempi di cracking dell'hash siano corrispondenti a questo.

1
Luke Sheppard

Se le lettere iniziali della frase danno come risultato una password abbastanza lunga da resistere a quasi tutti gli attacchi di forza bruta, a mio avviso l'utilizzo dell'intera frase può effettivamente ridurre la sicurezza della password. Le mie ragioni sono:

  1. La password potrebbe essere troncata, nel peggiore dei casi lo so risultante in 8 caratteri con bassa entropia dell'inglese.

  2. Darai agli osservatori più possibilità di osservarti con successo durante la digitazione della password. A causa della ridondanza di Englisch, le singole chiavi perse in osservazione vengono facilmente corrette. Se sei come me, inserirai la password in modo errato più spesso a causa della lunghezza pura. Ciò si traduce nuovamente in osservazioni bonus per l'attaccante.

  3. Questo è inverosimile, ma comunque: l'attaccante potrebbe essere qualcuno che è stato in grado di osservarti digitando non password per molto tempo. Ora può conoscere il ritmo con cui scrivi le parole in inglese. Non è in grado di conoscere il ritmo di una password apparentemente casuale, poiché non la digiteresti in un contesto non sicuro (ad es. Dialogo senza password). Quindi, usare frasi inglesi potrebbe rendere possibile un attacco usando solo un microfono. O forse, ora basta osservare semplicemente i tempi dei pacchetti di rete che trasportano la tua password. Questo è più difficile dell'uso di un microfono a causa di cose come Nagle's Algorithm in TCP e che necessitano di qualche tipo di funzionalità di intercettazione della rete. Potrebbe anche essere impossibile che la password venga trasmessa solo nel suo insieme o, come raccomandato , un hash.

1
Peter G.

(Numero di caratteri universali di set di password) ^ (lunghezza della password) non sempre uguale a possibili combinazioni

Perché la sicurezza delle password è fortemente influenzata dagli algoritmi relativi alle password.

Ad esempio, il sistema operativo Windows memorizza le password di meno di 14 caratteri con l'algoritmo di hash LM. L'algoritmo di hash LM riempie ogni password utente di meno di 14 caratteri con caratteri null per estenderne la lunghezza. Quindi il risultato viene quindi suddiviso in due parti di 7 caratteri, ognuna delle quali viene crittografata separatamente. Insieme a un valore di parità prevedibile, i risultati vengono sottoposti a hash, concatenati e archiviati. Quindi, dal punto di vista degli attaccanti, le peggiori combinazioni possibili sono: (Numero di caratteri universali di set di password) ^ (lunghezza della password)/2 + (Numero di caratteri universali di set di password) ^ (lunghezza della password)/2

Che è molto meno del calcolo sopra. Spero che questo ti dia un altro punto di vista quando si decide una password è abbastanza forte o no.

0