Quanto sono sicure le password con lunghezza inferiore a 20 caratteri?


10

Recentemente ho ricevuto una raccomandazione per impostare la mia password a più di 20 caratteri. L'algoritmo utilizzato per la crittografia è AES con una chiave primaria a 256 bit. Quanto è sicura, diciamo, una password di 8 caratteri contro gli attacchi di forza bruta per decifrare i file crittografati?

So che questa è considerata una buona dimensione della password sulla maggior parte dei siti Web. Uno dei motivi è che possono fermare un attacco dopo circa 3 tentativi.

Risposte:


4

Questo è un interessante articolo http://www.lockdown.co.uk/?pg=combi&s=articles che descrive in dettaglio quanto tempo impiegherebbe teoricamente a forzare una password per lunghezze e set di simboli diversi.


Ok, questo è un link molto interessante. Fornisce una buona idea di quale tipo di forza hai bisogno per quale periodo di tempo. Quindi, date le risorse sufficienti, è anche possibile rompere una password di 8 caratteri, soprattutto se non è buona.
cmserv,

Ci vorranno ancora 83,5 giorni a 100.000 password / secondo. Questo non è davvero possibile per la maggior parte degli attacchi. Soprattutto se stai parlando di una password del server, piuttosto che di una passphrase pgp. Se non hanno l'hash, 8 caratteri (casuali) sono essenzialmente indistruttibili.
Cian,

Non stavo parlando delle password del server perché so che puoi usare password molto più semplici perché i server offrono una protezione aggiuntiva contro gli attacchi. Intendevo in altri casi, ad esempio la crittografia dei file.
cmserv,

Sarebbe bene aggiornare questa risposta. Il link non è più utile, offrendo un "Chiuso in modo permanente". Per chiunque voglia vedere il contenuto, la macchina del ritorno ha le spalle: web.archive.org/web/20180412051235/http://www.lockdown.co.uk/…
Howard Lince III

Conclusione che vedo: mescola alfabeti e numeri piccoli e maiuscoli. La lunghezza> 15 è buona.
Studente il


4

Guarda la risposta accettata in questo post . Mostra che anche una password di 8 caratteri che utilizza l'intera gamma di caratteri può richiedere ~ 10.000 anni per decifrare!


1
Suppongo che ti riferisci ad un attacco di classe A (10.000 password / sec). Se guardo questa tabella e penso a un istituto di grandi dimensioni di quanto potrebbe essere fattibile per 86 personaggi, 8 caratteri password, attacco di classe E o F: da 34 a 346 giorni. Non sono 10000 anni;)
cmserv,

Ad essere sincero, non ho controllato la matematica nel post!
Marko Carter,

3

Se si considera l'uso delle tabelle arcobaleno come forza bruta (le opinioni variano) quindi per 8 caratteri, utilizzando le tabelle arcobaleno che includono tutti i caratteri nella password, circa 10 secondi. Password di 20 caratteri (stessi caratteri, stesse tabelle arcobaleno), meno di 30 secondi. Il problema è che ci vuole molto tempo per generare le tabelle. Il mio ha impiegato circa un mese per generare su una macchina 3GHz l'elaborazione solo di notte. D'altra parte, devi farlo solo una volta.

Il problema di cercare di ricordare password lunghe è facilmente risolto da una combinazione di sostituzione dei caratteri e utilizzo di una frase. Anche un semplice "# Fr3ddy M3rcury #" è abbastanza complesso per la maggior parte degli usi, ma è straordinariamente facile da ricordare.


Le password MD5 usano un sale abbastanza grande. Non credo che i tuoi tavoli arcobaleno saranno abbastanza grandi da avere tutte e 8 le password di caratteri e tutti i sali per ogni possibile password.
chris,

Rischieresti la tua sicurezza su questo? I miei tavoli sono un totale di 25 GB. Sono 40 tavoli a 650 MB ciascuno. Un giorno genererò un grande set. :)
John Gardeniers,

1
Ehm, non ci sono 2 ^ 32 sali per una password MD5? Quello è 2 ^ 32 * 650mb. Buona fortuna.
chris,

Ho fatto le tabelle arcobaleni per tutti gli hash LM di caratteri ASCII 64Gb ci sono voluti quasi una settimana usando 20 nodi raggruppati nelle mie università. Impiega circa 3 minuti per passare abbastanza mentalmente. Consente il cracking di tutte le password di Windows <= 16 caratteri.
Mark Davidson,

2
Secondo Wikipedia, gli hash LM non hanno sale. Le password MD5 hanno un salt, il che significa che ogni singola password può avere hash (saltspace * password), il che significa che è necessario disporre di 1 tabella arcobaleno per salt.
chris,

2

Considera che può essere ricordata una password di otto caratteri. Una password di 20 caratteri verrà scritta.

E poi qualcuno può leggerlo.


Hai ragione. E ci possono essere anche molti altri fattori che influenzeranno il tipo di sicurezza per i file crittografati.
cmserv,

Una password molto lunga potrebbe non essere necessariamente scritta se si tratta di un insieme di 5 parole normali in inglese / lingua. I cervelli sono bravi a ricordarli e ce ne sono molti là fuori.
chris,

1
Parla per il tuo cervello. Il mio si spegne al pensiero di ricordare 20 personaggi.
John Saunders,

Se la tua password fosse "bowels dungeon metafisical pierce stagnates" probabilmente sarai in grado di ricordarla dopo averla usata un paio di volte.
chris,

No. Nessuna relazione tra le parole. Nessuna storia da raccontare che mi ricordo di raccontarmi la prossima volta che avrò bisogno della password. Uso un programma di generazione password per generare password casuali (utilizzo almeno otto caratteri in ogni momento). Continuo a generare finché non vedo una password che posso trasformare in una parola che posso ricordare, come "cinnademo" = "cannella" + "dimostrazione". Quello , posso gestirlo.
John Saunders,

2

Potresti essere interessato all'articolo " Password vs passphrase ". La loro conclusione è che una password totalmente casuale di 9 caratteri equivale a circa una passphrase di 6 parole. Ma sentono che una frase di 6 parole sarebbe più facile da ricordare.


1

Tutto dipende dai personaggi che usi, poiché questo cambia il numero di combinazioni che hai. Supponendo 8 caratteri:

  • Parola del dizionario:

    egrep "^. {8} $" / usr / share / dict / words | wc -l
    15601
  • Lettere minuscole: 26 8 o 208827064576

  • Lettere minuscole e maiuscole: 52 8 o 53459728531456

  • Inferiore, superiore e numeri: 62 8 o 218340105584896

Aggiungi punteggiatura e altri simboli e la forza bruta richiederà del tempo.

Quei numeri sono le combinazioni totali che dovranno essere provate. Ovviamente, un hacker non proverà tutte le combinazioni dopo aver ottenuto la password, quindi dividi per due per ottenere il numero medio di combinazioni richieste.

Gli hash più duri comportano un tempo di CPU più lungo per calcolare l'hash, quindi il tempo totale è più lungo. Un esempio da John:

Benchmarking: Traditional DES [64/64 BS] ... DONE
Molti sali: 819187 c / s reali, 828901 c / s virtuali
Solo un sale: 874717 c / s reale, 877462 c / s virtuale

Benchmarking: BSDI DES (x725) [64/64 BS] ... FATTO
Molti sali: 29986 c / s reali, 30581 c / s virtuali
Solo un sale: 29952 c / s reale, 30055 c / s virtuale

Benchmarking: FreeBSD MD5 [32/64 X2] ... FATTO
Raw: 8761 c / s reale, 8796 c / s virtuale

Benchmarking: OpenBSD Blowfish (x32) [32/64] ... FATTO
Raw: 354 c / s reali, 356 c / s virtuali

Benchmarking: Kerberos AFS DES [48/64 4K] ... FATTO
Corto: 294507 c / s reale, 295754 c / s virtuale
Lungo: 858582 c / s reale, 863887 c / s virtuale

Benchmarking: NT LM DES [64/64 BS] ... FATTO
Raw: 6379 K c / s reale, 6428 K c / s virtuale

Benchmarking: NT MD4 [Generic 1x] ... DONE
Raw: 7270 K c / s reale, 7979 K c / s virtuale

Benchmarking: M $ Cache Hash [Generic 1x] ... DONE
Molti sali: 12201 K c / s reali, 12662 K c / s virtuali
Solo un sale: 4862 K c / s reale, 4870 K c / s virtuale

Benchmarking: LM C / R DES [netlm] ... FATTO
Molti sali: 358487 c / s reali, 358487 c / s virtuali
Solo un sale: 348363 c / s reale, 348943 c / s virtuale

Benchmarking: NTLMv1 C / R MD4 DES [netntlm] ... FATTO
Molti sali: 510255 c / s reali, 512124 c / s virtuali
Solo un sale: 488277 c / s reale, 489416 c / s virtuale

Ovviamente tutto ciò è completamente accademico, perché gli hacker telefoneranno al tuo segretario dicendo loro che provengono dall'IT e hanno bisogno della loro password per qualcosa e la tua password sicura è inutile.


1

Io uso passphrase non banali per proteggere

* risorse importanti
* roba non soggetta ad anti-martellamento (blocco dopo ripetuti tentativi)
* roba che può essere plausibilmente esposta ad attacchi forzati / basati su dizionario / ibridi

Sono meno preoccupato per il mio account Gmail, poiché i tentativi di forza bruta di decifrare quella password semplicemente bloccheranno l'account (e chiunque abbia accesso al server sostituirà semplicemente l'hash con uno di loro scelta, non tenterà di decifrarlo).

La passphrase migliore è lunga (> 12 caratteri) e crittograficamente casuale. Tuttavia, quelli sono più difficili da ricordare. Quindi, una passphrase che combina più parole con caratteri apparentemente casuali potrebbe essere un buon compromesso (forse le prime 1 o 2 lettere delle prime due righe della tua canzone preferita).


0

C'è la sicurezza che ottieni dalla comunicazione client / server, ad esempio come hai detto, quando sei in grado di fermare gli aggressori dopo 3 tentativi (quando attaccano sulla rete, come con le applicazioni web). Con questo scenario, quasi ogni lunghezza di password può essere considerata sufficiente.

Se tuttavia un addetto ai lavori acquisisce questo database con password brevi con hash ed è in grado di aggirare la limitazione "over the net" di 3 tentativi, il gioco cambia.

Un avvertimento nel limitare il numero di tentativi per account è che ciò sarà sufficiente solo per tentativi mirati su un account specifico. È inoltre necessario proteggersi dagli attacchi su tutti gli account con una determinata password (o permutata): ciò non attiverà alcun allarme quando si limita il numero di tentativi per account. Dati i NAT e le botnet odierni, non si può nemmeno sostenere che limitare il numero di tentativi per IP sia un buon modo di pensare alla sicurezza.

Buone risorse per la lettura sono già state fornite in altre risposte.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.