L'aggiunta di parole del dizionario alle password li indebolisce?

10

Questa potrebbe sembrare una domanda stupida, ma ascoltami. Se sto crittografando le mie informazioni finanziarie e i dati sensibili tramite un programma come TrueCrypt, la forza della password sarà molto importante.

Il consiglio comune è di non usare parole del dizionario. Lo capisco. Ma cosa succede se uso parole comuni su una password / passphrase già valida? La mia teoria è che aggiunge complessità alla password aggiungendo alla sua lunghezza. Ma ricordo anche un programma Windows che usava crackare le password di Windows trovando le parole del dizionario all'interno della password più grande. Quindi non sono sicuro se sto aiutando o facendo del male aggiungendo parole comuni a una password.

Password A :, 74 {x4K79 * ER2R [=} @ PR

Password B: , 74 {x4K79 * ER2R [=} @ PRCorrectHorseBatteryStaple

Quale dei due è più strong teoricamente e nel mondo reale?

Se è importante, supponiamo che abbia intenzione di crittografare i miei dati con la crittografia AES-Twofish-Serpent a cascata con l'hashing Whirpool.

Grazie in anticipo.

    
posta 31.01.2013 - 18:26
fonte

7 risposte

7

Non ci sono problemi con le parole del dizionario per creare passphrase; è un ottimo metodo per creare una password ad alta entropia che puoi effettivamente ricordare. Raccomando di usare quattro parole casuali come minimo dell'orso; In genere utilizzo 6-10 diceware per crittografare le mie chiavi ssh e gli elenchi di password crittografate (circa 80-128 bit di entropia se fuori da un dizionario di ~ 7000 parole o 100-166 bit con un dizionario di ~ 100000 parole).

Se la tua password sopra è stata generata in modo casuale da un set di 80 simboli ed era lunga 21 caratteri, avrebbe avuto un'entropia ~ 132 bit. *

Sì, è risaputo che non si dovrebbe usare solo una parola del dizionario (o due o tre) con solo piccole modifiche (capitalizzando una o due lettere, aggiungendo un numero o un carattere casuale alla fine), poiché crea password di bassa entropia.

Le tue maggiori preoccupazioni con le password sono (a) il riutilizzo della password (non condividere mai le stesse password con entità diverse), (b) le password vengono registrate o costrette a uscire da te (non usare password su sistemi in cui potresti essere keyloggato) e (c) utilizzando password entropiche molto basse (ad esempio, utilizzando una parola del dizionario con un paio di numeri alla fine). Raccomando di utilizzare un sistema di gestione delle password come keepassx condiviso tra i tuoi computer fidati in forma crittografata, con una password univoca generata casualmente per ogni specifica applicazione che usi; e crittografare quella lista di password con una frase d'accesso ad alta entropia.

* Come digressione, questa password specifica non sembra essere stata generata casualmente. La mia ipotesi è stata digitata su una tastiera per generarla come due pattern molto improbabili accaduti nei dati: 18 dei 21 caratteri (tutto tranne , K e x ) provenivano dalle prime due righe della tastiera (tasti dalle file in basso dovrebbe essersi verificato circa la metà delle volte), e c'era solo una lettera minuscola (dovrebbe essere avvenuta circa 1/3 del tempo). Per una password veramente casuale, questi tipi di eventi rari (o peggio, ad es. Zero lettere minuscole o meno di tre caratteri dalle righe inferiori) avrebbero dovuto verificarsi solo lo 0,07% del tempo e lo 0,3% del tempo rispettivamente. Certo, devi scartare leggermente che ci sono molti test da applicare (ad es. Solo il lato sinistro della tastiera, ecc.). La generazione di una password non casuale riduce potenzialmente l'entropia in modo significativo se l'utente malintenzionato può sfruttarla.

    
risposta data 31.01.2013 - 20:29
fonte
4

Il secondo è più strong, teoricamente e nel mondo reale. Una lunga password è più sicura di una breve, a meno che non si tratti di tutte le parole del dizionario.

fh438&^&*g8 è più debole di fh438&^&*g8AllSortsOfStuffAdded perché ci sono più possibilità in una password più lunga, quindi ci vorrà più tempo per indovinare.

Se ci sono parole del dizionario solo o se sostituisci le parole del dizionario per numeri e simboli, sarà più facile indovinarlo.

    
risposta data 31.01.2013 - 18:40
fonte
3

L'aggiunta di qualsiasi a una password non può renderla più debole (tranne se il sistema è sufficientemente stupido da troncare le password - i vecchi sistemi Unix e Windows hanno fatto proprio questo).

Una password è tanto strong quanto "non percettibile" che viene misurata nel numero di tentativi che un utente malintenzionato deve compiere prima di colpire il "giusto". Si chiama entropy e l'entropia si somma (perché è una scala logaritmica): se si ha una password di entropia di 20 bit (che significa: in media, gli hacker la troveranno dopo mezzo milione di tentativi) e un'altra password di entropia 25 bit (32 volte più strong dell'altro), quindi la concatenazione di entrambe le password risulta in una grande password con 45 bit di entropia.

Naturalmente, sostituire parti di una password con un'altra può indebolire il tutto. Ma semplicemente aggiungendo, no, non lo farà.

    
risposta data 31.01.2013 - 20:34
fonte
1

L'aggiunta delle parole del dizionario rende la password più strong perché aumenta l'entropia (casualità), ma se hai intenzione di creare una password casuale di quella lunghezza in ogni caso puoi usare anche caratteri casuali per l'intera password perché questo è pari più strong.

    
risposta data 31.01.2013 - 18:42
fonte
1

Qualsiasi cosa che renda la password più lunga è buona. Ovviamente, se stai usando una password che sarà mumbo jumbo, trasformarla in più mumbo jumbo è sempre migliore (invece di virare sulle parole del dizionario).

Ma c'è un piccolo vantaggio nell'aggiungere x caratteri di simboli casuali su x caratteri di parole del dizionario, se la password contiene almeno alcuni simboli. Perché? Semplicemente perché i cracker di password in genere non considerano questa possibilità. Sono ben equipaggiati per brevi password mumbo jumbo e password di dizionario di medie dimensioni con pochi simboli. Una password lunga con entrambi i simboli e del dizionario, tuttavia, non sarà mai decifrata sia da un cracker di forza bruta che da un cracker di dizionario che consente di inserire alcune stringhe casuali in ogni ragionevole quantità di tempo. La password che hai dato è molto lunga e contiene un sacco di simboli. L'unico pericolo che si ha è se comunichi a qualcuno il formato della tua password (simboli quindi parole del dizionario) - questo rende possibile personalizzare un password cracker in quel formato. Ci vorrà ancora molto tempo e probabilmente non sarà fattibile.

Se si desidera una password estremamente sicura e facile da ricordare, utilizzare una stringa casuale di parole (io userò "Corretto fermaglio a batteria corretto" qui) e alcune sequenze di simboli che puoi ricordare Ad esempio, userò questa piccola stringa di pesci come oggetti: <><~ . Ora, inserisci un simbolo ogni x caratteri. Quindi, ottieni Corre<cthor>sebat<terys~taple (x = 5 qui). Fallo con un personaggio più speciale (e rendi x più piccolo), e hai qualcosa che è praticamente impossibile da decifrare tramite qualsiasi attacco di forza bruta / dizionario. Ancora meglio, dispositivo il tuo algoritmo per la miscelazione di simboli e parole.

    
risposta data 31.01.2013 - 19:26
fonte
1

Entropia è la misura o casualità nella password. Una password sicura ha un'alta entropia che rende difficile indovinare perché ci sono più cose che dovrebbero essere indovinate. L'aggiunta di ulteriori informazioni a una password non diminuirà l'entropia della password. Potrebbe non aumentare di molto, ma è sempre leggermente più difficile da indovinare anche se si aggiunge semplicemente "thisismystackexchangepassword" alla fine. La quantità di sicurezza aggiuntiva potrebbe non valere il tempo extra necessario per digitare qualcosa di semplice, ma il concetto chiave è che non puoi ridurre l'entropia aggiungendo ulteriori informazioni.

    
risposta data 31.01.2013 - 20:18
fonte
1

Dal momento che altri hanno spiegato in dettaglio il problema della entropia della password, parlerò della tua altra preoccupazione:

But I also remember a windows program that used to crack windows passwords by finding dictionary words within the larger password.

È vero che - supponendo che un utente malintenzionato abbia accesso a un computer che hai usato - alcuni programmi possono eseguire la scansione dell'archiviazione persistente alla ricerca di candidati validi per le password. Questo è possibile non solo in caso di password scritte, ma c'è anche la possibilità che una password una volta presente nella memoria del computer (solo dopo essere stato digitato, ad esempio) finisce nella memoria virtuale, scambia file, core dump, ecc.

L'unico programma di questo tipo che conosco, Toolkit Forensic di AccessData , esegue la scansione del disco rigido per "ogni stringa di caratteri stampabili", come descritto in questo post di Bruce Schneier . In linea di principio, non rende le password contenenti parole del dizionario più deboli (dato che le tutte password sono costituite da "caratteri stampabili"), tuttavia il modo in cui il programma ordina questa serie di stringhe prima di alimentare a un indovino della password potrebbe avere un impatto sulla probabilità di essere trovato. Citando il post:

When attacking programs with deliberately slow ramp-ups, it's important to make every guess count. A simple six-character lowercase exhaustive character attack, "aaaaaa" through "zzzzzz," has more than 308 million combinations. And it's generally unproductive, because the program spends most of its time testing improbable passwords like "pqzrwj."

In altre parole, avere un enorme set di stringhe non ti aiuterà necessariamente anche se una di esse è la password che stai cercando, dal momento che non hai modo di riconoscerla come password prima di testarla (contro un hash o un servizio online). Ma se si ordina questo set in base ad alcune euristiche che dettano "quanto sia probabile che questa stringa sia una password", allora includendo parole del dizionario potrebbe spostarlo più vicino alla cima dell'elenco di priorità, aumentando la probabilità che venga trovato in modo tempestivo .

Ecco perché sostengo l'uso delle prime lettere di ogni parola in una frase, invece di usare le parole stesse. Certo, avresti bisogno di una frase più lunga per raggiungere un livello simile di entropia, ma finirai per produrre una password che "sembra" spazzatura, invece di una che sembra promettente. Ma YMMV.

    
risposta data 01.02.2013 - 09:21
fonte

Leggi altre domande sui tag