Quali sono le metodologie che possono essere utilizzate per generare password "umane" di buona qualità?
Devono garantire una buona forza e anche facile da ricordare per un essere umano.
Questo fumetto XKCD descrive un modo per generare una buona password. La qualità di tali passphrase è stata discussa in: XKCD # 936: password complessa breve o passphrase lunga del dizionario?
Ahem.
A seconda di cosa debba essere usata questa password, raccomanderei una tecnica raccomandata anche da Crypto-great Bruce Schneier:
Write it down.
Esatto - prenditi una password casuale REEAAAEEELLYYY complessa che non puoi ricordare e SCRIVI GIÙ.
Ovviamente, scrivilo in un posto sicuro, non collegato all'esterno del tuo laptop per il quale viene utilizzata la password.
Uso una frase. Una frase appropriata, con più parole e spazi, ma che posso facilmente ricordare.
"Il mio mese preferito dell'anno è il 3 °!"
Mi piace usare sposta il metodo delle dita . Prendi una passphrase facile come "stackoverflow", sposta le dita di 1 carattere a destra mentre scrivi e ottieni "dysvlpbtg; pe" che è molto più difficile da indovinare o crackare.
Anche se questo funziona abbastanza bene, è meglio aggiungere alcuni colpi di scena a questo come un numero memorabile e alcuni caratteri speciali per renderlo una password davvero strong.
'dysvlpbtg, PE 1234 $!'
Usando questo metodo è facile avere una password diversa e molto buona per ogni sito che si usa, ma per questo è ancora da ricordare.
UPDATE:
@Larry & @AviD sottolinea che se questo metodo diventa più comune diventa più probabile che venga preso in considerazione crackando dizionari e altri metodi di attacco.
Ovviamente c'è un equilibrio tra il re-memorable e il super-sicuro. A seconda dell'utilizzo dell'applicazione di alcune di queste tecniche, sarebbe utile rafforzare questo metodo.
Uso Diceware . Hai bisogno di un dado a sei facce (o un generatore di numeri casuali buono ) e un elenco di parole del dizionario .
Lancia i dadi per ottenere un numero di cinque cifre; per esempio 34512.
Guarda la parola nella lista; ad esempio jinx .
Ripeti cinque volte.
La lunghezza è l'attributo più importante di una password. Questo genererà una password abbastanza lunga.
/ Roger
Prendo una battuta da una canzone che mi piace, e poi prendo la prima lettera da ogni parola. Probabilmente questo non esiste in nessun dizionario delle password. Quindi, puoi sostituire caratteri speciali.
Ad esempio, prendi Hound Dog di Elvis Presley:
You ain't nothing but a hound dog, crying all the time
Questo diventerebbe:
yanbahd,catt
Quindi, aggiungi alcuni caratteri speciali, gioca con la custodia, ecc.
Y@nBa!^d,c@Tt
Quindi, se riesci a ricordare il testo della canzone, si spera che tu possa ricordare la password.
Usa una frase lunga nella tua lingua. È più facile rompere una password breve, illeggibile, che una lunga frase "semplice". Scegli i testi delle tue canzoni preferite, citazioni, qualsiasi cosa.
Puoi creare password lunghe (vale a dire, 40 caratteri o più) in questo modo, senza dover pensare troppo a loro.
C'è un buon consiglio al link e link
Penso che la chiave sia combinare almeno due grandi fonti di entropia apparentemente non correlate. Per esempio. parte di una parola di medie dimensioni combinata con lettere dall'inizio di una frase idiosincratica, con alcuni casi misti e numeri / simboli lanciati nel mezzo. Fatelo in modo da creare una storia strana e memorabile su tutto e assicuratevi che sia abbastanza lungo, a seconda di quanto sia importante per voi. Praticalo per un po 'e metti qualche sottile suggerimento sulla storia in un file relativamente privato.
Puoi anche andare in mare alla ricerca di una password lunga o difficile da ricordare: link
Penso a una bugia - qualcosa che non è vero, e lo trasformo in una frase corretta come "Il cielo è davvero verde!". (Questo non è uno che ho usato prima)
Sono facili da ricordare perché sono così strani.
Inizio con una passphrase, come pancakes
.
Successivamente, eseguo alcune sostituzioni: aggiungi numeri, simboli e maiuscole. pAzc@Kez
.
Infine, aggiungerò un prefisso o un suffisso per ogni sito in cui lo uso, come pAzc@KezStack
.
PS: È una buona idea avere alcune basi e alternare anche quelle.
Dichiarazione di non responsabilità: questa è non nessuna delle mie password. (Sì, sto mangiando un pancake mentre scrivo questo.)
Uso il generatore di password in Mac OS X, impostato sulla modalità "password memorizzabile".
Uso una passphrase e un generatore casuale per quella frase (cifrario di sostituzione). Rinnovo la mia carta magnetica mensile e ti tengo una copia con me. Trovo la natura pseudocasuale di esso crea per le password forti in un'autenticazione quasi-2 fattore. Qualcosa che ho è la mia chiave magnetica, qualcosa che so è la mia frase chiave. Come esempio, ho scritto una breve app per costruirle qui:
Ad esempio: la mia password bancaria potrebbe essere "bancaria" e genererebbe una password molto strong per me, sarebbe facile da cambiare e la mia password sarebbe sempre bancaria.
* Modifica: proprio come una nota, ho proposto questo metodo al /. comunità nel 2005 e non l'hanno più aggiornato da allora. Ho intenzione di eseguire alcune ricerche reali come parte del mio programma MS-ISA.
Per le password, io uso il seguente: due lettere, poi due cifre, poi due lettere, poi due cifre. Le lettere sono minuscole Le lettere e le cifre sono generate casualmente.
Si scopre che le password risultanti sono facili da ricordare (almeno, per me è facile: il tuo cervello potrebbe non essere collegato allo stesso modo del mio).
Un buon punto di tali password è che è facile calcolare la loro entropia: ci sono 26 4 x10 4 possibili password con questo formato, tutte con la stessa probabilità , quindi un'entropia di circa 32.09 bit (una determinata password ha probabilità 1/2 32.09 da selezionare). 32 bit di entropia non sono utili per gli usi tutti , ma sono abbastanza buoni per la maggior parte, incluso ogni utilizzo in cui gli attacchi sono online. Un attacco online è quello in cui l'attaccante deve fare una richiesta a un sistema "onesto" per ogni ipotesi; per esempio. un server SSH. Gli attacchi offline (in cui l'attaccante può controllare un'ipotesi "da solo", limitata solo dalla sua potenza di calcolo) sono più spaventosi e richiederebbero una password più strong.
Ricorda che sapere quanta sicurezza hai è tanto importante quanto avere una tale sicurezza.
Bonus: ecco il programma C che uso per generare quelle password (compila sotto Linux e FreeBSD, dovrebbe funzionare su altri sistemi simili a Unix):
/*
* Small utility for password generation.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
static unsigned
randval(unsigned max)
{
static int fd = -1;
unsigned char x;
if (fd < 0) {
fd = open("/dev/urandom", O_RDONLY);
if (fd < 0) {
perror("open");
exit(EXIT_FAILURE);
}
}
for (;;) {
unsigned val;
for (;;) {
if (read(fd, &x, 1) <= 0) {
if (errno == EINTR)
continue;
perror("read");
exit(EXIT_FAILURE);
}
break;
}
val = (unsigned)x;
if (val >= max * (256 / max))
continue;
return val % max;
}
}
static int
randletter(void)
{
return "abcdefghijklmnopqrstuvwxyz"[randval(26)];
}
static int
randdigit(void)
{
return "0123456789"[randval(10)];
}
int
main(void)
{
printf("%c%c%c%c%c%c%c%c\n",
randletter(), randletter(),
randdigit(), randdigit(),
randletter(), randletter(),
randdigit(), randdigit());
return EXIT_SUCCESS;
}
Per siti di media sicurezza:
porcupine
. 28
. 28-porcupine+S.S.C
Questa password è ricordabile, dal momento che devi solo ricordare 1 parola e 1 numero per tutti i siti che visiti e puoi recuperare la password per qualsiasi sito senza alcuno sforzo. Certo, puoi cambiare algoritmo, ma l'idea è usare la combinazione f(n, w, s)
dove n
e w
sono fissi e s
è generato dal nome del sito.
Per siti ad alta sicurezza (ovvero "se qualcuno accede a questo, la mia vita è rovinata") - genera una password lunga e casuale, annotala, metti questo foglio in un posto sicuro - come con i tuoi passaporti, titoli, documenti ecc. .
Sfortunatamente, molti sistemi pongono restrizioni stupide alle password, quindi lo stesso metodo di generazione di password "memorizzabili" non funzionerà sempre per me.
Molto spesso non ho bisogno di ricordare che molte password. Scrivo i più importanti in keepass
o un file di testo crittografato con PGP, o entrambi.
Tuttavia, la maggior parte di quelli che ho scelto per i miei sistemi unix si basano su linee di canzoni o solo frasi o espressioni sciocche, in cui ogni parola diventa un personaggio, con casi diversi a seconda dello stress o dell'intonazione della parola, o quali parole hanno più "significato" nella frase. Buona idea di suffisso o prefisso anche una rappresentazione del nome del sistema / del sito.
Informazioni sulla lunghezza della password: sui siti Web ho sempre scelto password con più di 8 caratteri. Il mio ragionamento è che molti progettisti di sistemi "senza tracce" archiviano solo un hash MD5 della password degli utenti senza sale. I siti Web fanno vengono hackerati e, anche se utilizzo ovunque password diverse, non voglio ancora che uno script kiddie esegua una ricerca in una tabella di hash in testo normale pregenerata e trovi il mio "casuale" password lì.
Se costretti puoi lasciare il mazzo, o nel caso del Regno Unito quando cercano la tua casa spargeranno il tuo mazzo e cancellano la tua password / chiave di crittografia.
;)
Un suggerimento per la password dovrebbe essere qualcosa che ti ricorda quale sia la tua password senza esporre la password attuale. Il che significa che dovrebbe essere qualcosa che capiresti, ma che uno sconosciuto non sarebbe in grado di capire.
Se si utilizza una password di base ma a volte si utilizzano caratteri minuscoli o talvolta speciali, è possibile utilizzare un suggerimento che spieghi semplicemente che (ad esempio, hint è "tutto in minuscolo").
Oppure usa LastPass , è il mio strumento preferito per mantenere la password che uso per quasi tutto.
Per evitare Rainbow Table attacchi, la lunghezza è la chiave. Non è raro eseguire lo sfruttamento per afferrare il file SAM o / etc / passwd ed eseguire un crack sugli hash. In passato ho usato John the Ripper per alcuni giorni per vedere quali hash potevano essere forzati brutali. In questi giorni avrei rapidamente fatto scoppiare gli hash contro un tavolo arcobaleno e avremmo il 95% di tutte le password con meno di 9 caratteri (e se volevo controllare per 10 caratteri avrei potuto scaricare la tabella anche per quella lunghezza - inizia a diventare molto grande ...)
Detto questo, le 2 tecniche che uso sono:
Per le mie password di accesso, utilizzo software (pwsafe o KeePass, importa dove sono) per generare una brutta password di qualunque lunghezza io abbia bisogno (9 caratteri?). Poi scrivo su qualcosa che va nel mio portafoglio. Dopo alcuni giorni di utilizzo lo ricordo abbastanza bene e faccio a pezzi il giornale. Il backup che viene conservato in uno di quei programmi su una macchina diversa dalla password è:)
Per tutto il resto, il software lo fa per me. Avere un programma ricorda che le tue password sono molto meglio che farlo tu stesso, non capisco perché la gente resista.
Una metodologia di cui ho sentito parlare è scegliere una pagina di un libro e utilizzare la prima lettera di ogni parola su una riga. Se combini la maiuscola delle parole e il numero dispari puoi ottenere una password complessa che non è facile da indovinare: tutto ciò che devi fare è ricordare il libro e la linea!
A seconda di ciò che mi serve, calcolerò un MD5 o SHA1 su un file casuale e lo analizzerò alcune volte. Questo è piuttosto debole, in quanto contiene solo 16 caratteri.
Se ho bisogno di qualcosa di più strong, digiterò tre o quattro caratteri in un ricercatore Tripcode e vedremo cosa lancia di nuovo a me. Metti insieme due di questi e li esegui più volte, e hai una password piuttosto sicura in quanto è davvero piuttosto casuale.
Apro un grande libro in una pagina a caso e uso la prima lettera delle ~ 8 prime parole / linee. Non è esattamente facile da ricordare, ma rende molto difficile "dimenticare" completamente la tua password.
simile ad alcune delle altre risposte, per alcune password basandole su una frase che trovo memorabile e poi traducendola in una password. Quindi come un esempio
i;) @ 0DD ^ s '
è una password ragionevole che ricorderei come "I wink a odd odds". Generalmente questo o qualcosa in base alle prime lettere di una frase (di solito con qualche leet pronuncia modifiche e aggiunta punteggiatura).
Uso il modulo perl Crypt: RandPasswd , che può creare frasi pronunciate circondate da misc. speciali e numeri. Trovo che le regole di pronuncia limitino lo spazio delle chiavi, ma rendono la parte mentale molto più facile. Anche se devo cercare una password, posso ricordarla abbastanza a lungo da digitare correttamente la prima volta.
Una password potrebbe essere simile a questa: Vorda # Capis% 99 ^
Ecco un altro schema per i musicisti:
qiurtyuqytnreqwerwmqweq
qqwnqqrtyyyttrrtyy7yytytrrtr
qweqqweqerterttytreqtytreqqbqqbq
32g5532g5532g5d5srr
Trasponi o offusca ulteriormente come desiderato.
Ho guardato di recente Off The Grid di Steve Gibson. È una crittografia basata su carta che può crittografare un nome di dominio (o qualsiasi testo in realtà) e fornire una password da utilizzare. Ci sono molte informazioni sul sito a riguardo.
Di base, prendi una tabella di caratteri 26x26. Questa tabella segue regole simili a Sudoku (solo uno di ciascun carattere in ogni riga e colonna). Questo inizia con un sacco di entropia (minimo 1400 bit). Le basi su come usarlo sono abbastanza semplici (non mi preoccuperò di riscriverle di nuovo tutte). Il rischio maggiore è se qualcuno ruba fisicamente la tua rete. Anche allora ci sono pochi passaggi che puoi prendere lentamente (dovrebbe essere abbastanza lungo per capire che qualcuno l'ha rubato). Questi metodi includono,
Non lo uso da solo, ma non ho molta difficoltà a ricordare 20 caratteri casuali che uso in combinazione con Passpack (gestore password online)
Cambia la tua vita :) avere tutte le password estremamente complicate, senza alcun modo di ricordare nessuno di loro. Ottieni un gestore di password, ho trovato KeePass piuttosto utile.
Puoi conservare i file DB su dropbox e usare password + immagine (file binario) per accedere alle password, mantenere l'immagine (file) solo sui dispositivi che probabilmente utilizzi per accedere alla password da (non su dropbox!).
Mantieni l'immagine accessibile ma non ovvia. Quindi il sistema è ancora utilizzabile, ma se gli hacker ottengono i file DB delle password non possono accedervi tramite la forza bruta.
In questo modo dovrai ricordare solo una password, che è molto più semplice.
Cambia e il file regolarmente e tu sei al sicuro.
DropBox conserva una cronologia dei dati per un mese (?), quindi ricordati di cambiare la password del DB.
Che dire di una password con una chiave rotante, basata su ciò che stai facendo? Esempio: La mia password principale è P4 $$ w3rdthati $ h4rd (sì, è proprio quello che uso)
Voglio usarlo per GMail. Comincio con P4 $$ w3rdthati $ h4rd e aggiungo gm alla fine (P4 $$ w3rdthati $ h4rdgm). In questo modo devo solo ricordare due o tre lettere in base a quello che sto facendo, in quanto la mia password è relativamente coerente tra i servizi (pubblico e privato). Potrei usare un modificatore di fine coda (suffisso) per Internet e un modificatore di inizio (prefisso) per cose private. O inseriscilo nel mezzo.
Sono aperto alle fiamme se ritieni che questa sia una pratica sbagliata, ma non ho mai incontrato qualcuno che indovina le mie password e non ho mai avuto bisogno di scriverle.
Trovo una sequenza di caratteri completamente casuale e complessa colpendo casualmente i tasti sulla mia tastiera in uno schema con cui le mie dita sono a proprio agio e che possono fare molto rapidamente. Le tecniche che uso per fare questo sono:
Dopo aver acquisito la mia password casuale, mi esercito a digitare la nuova password alcune volte per far sì che la memoria muscolare conservi il modello chiave. Dopo aver impostato la password, accedo ad alcuni sistemi in fila per mantenere ulteriormente il pattern di chiave.
Alla fine, avrai una password totalmente casuale che è difficile da dimenticare perché non ti ricordi nemmeno una serie di caratteri, solo uno schema che le tue dita prendono sulla tastiera che non significa assolutamente nulla a chiunque, anche a te. A volte quando accidentalmente digito la mia password in un campo di testo chiaro (tutti hanno fatto questo a un certo punto ...) mi sembra totalmente estraneo perché non penso alla stringa, ma al modello che sto battendo sulla tastiera.
Anche questo metodo non si traduce in password e pattern simili tra i diversi utenti, perché tutti i tipi sono diversi. Ciò che è facile e veloce per una persona da digitare può essere più difficile per un'altra.
Crea alcune parole nuove: splur, bambile, egilomanifastico, spilomasilomagnitolistable. Combina per un po 'di rima divertente e un semplice mnemonico.