Questa password è migliore di altri schemi ingenui che generano password come Texas89, ddddd, zxczxc, Judges12: 6, purple1 o 65432? Sì, molto meglio. Lo consiglierei ad un amico? Probabilmente no.
Un buon schema di generazione di password bilancia le priorità di trilioni o più password univoche (non solo migliaia) ed è facile da ricordare e digitare. Questo schema di password, specialmente come descritto dalla BBC, rende troppo facile creare una password non sicura per quanto siano difficili da ricordare.
Qual è il nostro modello di minaccia?
- Un hacker sta usando una password trapelata da qualche altra parte per vedere se l'hai usata? Lo schema suggerito semplifica la generazione di molte password uniche memorizzabili rispetto ad altri schemi (come l'aggiunta di 0 a una parola casuale), quindi puoi proteggerti qui finché ricordi le centinaia di password che stai creando.
- Un amico, un collega o un ingegnere sociale sta cercando di indovinare la tua password in base alla tua conoscenza di te? In questo caso probabilmente non indovinerebbero mai la password anche se hanno indovinato correttamente che era basata su una delle tue canzoni preferite.
- Un hacker sta cercando di violare la tua password offline (ad esempio dopo una perdita di database)? Questa è la minaccia più pericolosa e quella con le implicazioni più complesse sulla politica delle password. Ne discuteremo più dettagliatamente.
- Esistono anche metodi come il phishing, la reimpostazione della password e il furto di un database in chiaro. In tutte queste minacce non importa quanto sia complicata la tua password; è andato comunque.
Tuttavia, vale la pena sottolineare che l'utilizzo efficace di un gestore di password è una soluzione migliore a tutte le minacce di cui sopra, sebbene introduca un piccola minaccia aggiuntiva di perdita del database del tuo gestore di password.
Che vantaggio c'è nell'usare solo la prima lettera?
Ci sono migliaia di parole in lingua inglese e solo ventisei lettere. Anche le frasi inglesi naturali e non casuali ti danno più entropia rispetto alla raccolta delle loro prime lettere (vedi più sotto). "ijamwnsasth" potrebbe significare "Sono solo un uomo che aveva bisogno di qualcuno e di un posto dove nascondersi", "è solo una bellissima camicia e gonna nuova che aveva" o "immagina che chiunque possa lavorare vicino a Seattle e mostrarglielo qui", "in un modo che le è sembrato soddisfacente" o centinaia di altre frasi.
Ovviamente, i cracker di password a volte hanno database di testi di canzoni da cui attingere, quindi questo schema di password suggerito sta probabilmente tentando aggirare gli attacchi basati su tali database. Il problema è che stanno riducendo significativamente la complessità del processo. Puoi aggiungere forza a una password togliendo lettere (ad esempio, letein è migliore della password estremamente comune letmein), ma questo schema suggerito sembra eliminare troppa casualità per rendere la password più forte.
L'unico motivo realistico che posso vedere per utilizzare questo schema invece di utilizzare le parole complete è se il servizio utilizzato ha una lunghezza massima della password. Poiché molte password sono compromesse da metodi diversi dal cracking offline, una lunghezza massima della password elevata è talvolta considerata non necessaria dalle aziende. Molte aziende hanno ancora 16 caratteri o meno per la lunghezza massima della password, nonostante i consigli di OWASP in merito.
Entropia della password
Gli esseri umani sono piuttosto cattivi nel dire quanto sia complessa una password guardandola, quindi non fidarti solo del tuo giudizio. Possiamo misurare la complessità della password in bit di entropia e ci sono diversi modi per farlo. Il modo più ingenuo è presumere che l'aggressore stia tentando di forzare la password utilizzando tutti i caratteri nel set di caratteri consentito, nel qual caso la lunghezza della password e il set di caratteri consentito sono gli unici criteri. L'entropia a piena conoscenza, d'altra parte, presuppone lo scenario peggiore in cui l'attaccante comprende appieno il tuo schema di generazione della password. In pratica la vera difficoltà della tua password di solito sta da qualche parte tra le due, di solito più vicina all'entropia a piena conoscenza a causa della sofisticazione dei moderni cracker.
Per quanto riguarda l'entropia cieca, questo schema sembra sufficiente quando una password lunga si usa. Tuttavia, l'articolo della BBC non indica alcun suggerimento per la lunghezza della password , che considero una svista importante. Poiché la difficoltà di cracking della password aumenta in modo esponenziale, specialmente quando si forza brute-force un grande set di caratteri, l'aggiunta di solo due caratteri casuali alla tua password può rendere la tua password 1000 volte più difficile da decifrare. Sia la password suggerita qui che sul sito della BBC sono lunghe almeno dieci caratteri, fornendo una grande quantità di entropia.
La prima lettera è davvero migliore dell'intera parola?
Noi sapere da Claude Shannon e da risultati più moderni che la lingua inglese ha almeno 1,1 bit di entropia per carattere non spaziale, possibilmente fino a 1,75 bit (vedere anche qui). Altri studi mostrano che si può stimare che ogni parola aggiunga 5,97 bit di entropia.
In confronto, l'entropia delle lettere casuali nell'alfabeto inglese è di 4,7 bit e l'entropia delle prime lettere è di circa 4,1 bit per lettera. Ciò significa che le prime lettere in una frase di 6 parole scelta a caso sono casuali quanto le prime quattro parole intere nella stessa frase, o che anche una singola lettera casuale è complessa quanto circa quattro lettere di una frase normale. (Nota che queste cifre non si applicano quando le singole parole vengono scelte casualmente, come nello schema xkcd.)
Ma i testi delle canzoni non sono più prevedibili? Non molto più prevedibile di altre frasi inglesi purché i testi siano scelti a caso. Un'attenta analisi della distribuzione di frequenza del set di dati MusixMatch rispetto ad altri corpora inglesi mostra che le differenze non sono enormi e alcune delle differenze possono probabilmente essere attribuite a differenze nei metodi di conteggio . Vedi la tabella qui sotto. Tuttavia, tutto questo presuppone che stiamo scegliendo le nostre frasi in modo completamente casuale da ciascuna fonte. Se scegli una frase comune da entrambi potresti essere beccato.
Quindi, in sintesi, anche se l'attaccante sa che stai scegliendo 10 lettere abbastanza casuali e il tuo vicino ne sta scegliendo 10 intere parole dai testi, la password del tuo vicino è più complessa, supponendo che i testi siano scelti a caso. Cambiare le maiuscole o usare la sostituzione dei caratteri comuni maschera solo questo problema.
Perché sostituire i caratteri con i numeri e cambiare le maiuscole?
Potresti dire a te stesso "L'inglese di 26 caratteri è un set di caratteri troppo piccolo. Sostituirò @ con a e l'attaccante sarà costretto a usare dozzine di simboli nel set di caratteri". In realtà, gli hacker sanno che farai sostituzioni come questa, quindi p @ ssw0rd è ancora una password orribile. Quindi sì, cambiare maiuscole e minuscole in modo casuale e sostituire i caratteri renderà la tua password più casuale, ma non aspettarti che la tua password sia più di 2-4 volte più difficile da indovinare per carattere quando si utilizzano entrambi questi metodi.
Detto questo, la maggior parte dei servizi ora ti obbliga a utilizzare una password alfanumerica e questo ti assicura di soddisfare tali vincoli. Tuttavia, sono cauto nell'usare i simboli come metodo principale per applicare la complessità della password poiché rendono molto più difficile ricordare la password, gli hacker sanno che farai queste sostituzioni e diversi studi hanno dimostrato che aumentare la lunghezza, non complessità dei caratteri, è spesso il modo migliore per generare password sicure. (vedi questo studio o questo)
Actual Password Cracking
La tua password dello schema BBC verrebbe probabilmente violata usando plain forza bruta. Una password viene in genere violata eseguendo ogni combinazione di un set di regole di composizione su ogni password con hash nel database rubato. Le regole di composizione della password includono dizionari di parole comuni, numeri e sostituzioni di caratteri. Puoi saperne di più qui.
Ad esempio, se hai usato diverse parole intere e la tua password era abbastanza breve, l'aggressore potrebbe eventualmente decifrarla usando un attacco dizionario. Nel libro Financial Cryptography and Data Security, i ricercatori hanno condotto un esperimento in cui il 37% delle loro password crackate corrispondevano ai testi, ma solo il 5% di queste password dei testi non è stato trovato utilizzando attacchi basati su dizionario o altri database di password.
Tuttavia, poiché i tuoi personaggi sono abbastanza casuali, non credo che nessuna delle regole comunemente usate possa aiutare qui. L'approccio migliore sarebbe la forza bruta sul set di caratteri di caratteri alfanumerici e simboli di sostituzione comuni come @. Non sono esperto nella stima del tempo di cracking, ma in base ai risultati come questi qualsiasi password di questo tipo di 6 o meno caratteri sarebbe molto insicura, ma qualsiasi password in questo schema di 11 o più caratteri dovrebbe essere ok per l'utente medio. Una tale password sarebbe così difficile da usare con la forza bruta che un utente malintenzionato dovrebbe eseguire un hardware personalizzato, avere enormi quantità di tempo / denaro e / o decifrare un hash insicuro come md5.
Quindi, in sintesi: sì, se scegli i testi delle canzoni nel modo più casuale possibile e ti assicuri che sia abbastanza lungo, questo schema suggerito dalla BBC genererebbe un sicuro (ma difficile da ricordare ) parola d'ordine. È meglio della maggior parte degli schemi ingenui che le persone comuni usano per le password. Tuttavia, si basa su alcuni principi traballanti, come presumere che la prima lettera sia migliore dell'intera parola, e l'articolo della BBC omette alcuni dei punti più importanti come l'importanza della lunghezza. Esistono modi migliori per creare e gestire le password. Non lo consiglierei a un amico.