Da allora sono passato alle passphrase in stile XCKD per la maggior parte delle mie password. Ecco una riga da commandlinefu per generare una passphrase:
shuf -n4 /usr/share/dict/words | tr -d '\n'
2020:ho pubblicato questa risposta nel 2011. Negli anni trascorsi, il volto della sicurezza informatica e le sue esigenze sono cambiati rapidamente ed enormemente. Come è stato sottolineato da anarcat, pwgen potrebbe non essere (o non più) adatto per proteggere i sistemi ad alta sicurezza. Si propone di descrivere i dettagli tecnici su come pwgen può, in alcune circostanze, utilizzare metodi non sicuri di derivazione della password dall'entropia disponibile nel suo articolo. Anche se non credo più nella generazione di password per poi provare a ricordarle io stesso, non ho l'attitudine tecnica per convalidare, figuriamoci per garantire il contenuto dell'articolo citato, quindi per favore leggilo e trai le tue conclusioni. Detto questo, sono convinto che pwgen sarà sufficiente per i sistemi a bassa sicurezza in cui l'attacco è molto improbabile.
Potresti voler dare un'occhiata al pwgen
applicazione. So che è disponibile nei repository Ubuntu, Fedora, Debian e Suse.
Dalla pagina man:
Il programma pwgen genera password progettate per essere facilmente memorizzate dagli umani, pur essendo il più sicure possibile. Le password memorabili per l'uomo non saranno mai sicure come password completamente completamente casuali. In particolare, le password generate da pwgen senza l'opzione -s non dovrebbero essere utilizzate in luoghi in cui la password potrebbe essere attaccata tramite un attacco di forza bruta off-line. D'altra parte, le password generate in modo completamente casuale hanno la tendenza a essere scritte e sono soggette a essere compromesse in questo modo.
Il programma pwgen è progettato per essere utilizzato sia in modo interattivo che in shellscript. Quindi, il suo comportamento predefinito differisce a seconda che l'output standard sia un dispositivo tty o una pipe verso un altro programma. Utilizzato in modo interattivo, pwgen visualizzerà una schermata piena di password, consentendo all'utente di scegliere una singola password e quindi cancellare rapidamente lo schermo. Questo impedisce a qualcuno di "shoulder surf" la password scelta dall'utente.
Consiglierei alle persone di smettere di usare pwgen:il suo principale interesse era generare "password ricordabili dall'uomo", ma ha mostrato molteplici vulnerabilità nel fare esattamente questo. E nemmeno usarlo per generare stringhe completamente casuali è così utile.
Ho scritto un articolo dettagliato proprio su questo argomento, ma fondamentalmente l'essenza è usare il programma diceware (o, se ti piacciono i dadi, l'attuale sistema diceware) o xkcdpass. Per generare password complesse e memorabili, generalmente utilizzo diceware con il seguente file di configurazione:
[diceware]
caps = off
delimiter = "-"
wordlist = en_eff
Esempi:
$ diceware
turkey-eligibly-underwire-recite-lifter-wasp
$ diceware
lend-rubdown-cornflake-tint-shawl-ozone
$ diceware
syndrome-ramp-cresting-resolved-flinch-veneering
$ diceware
alto-badass-eclipse-surplus-rudder-quit
Spengo maiuscole e spazi perché generano rumori udibili distinti che potrebbero essere sfruttati da un utente malintenzionato. Il -
delimitatore è un male minore:sarebbe meglio non usare alcun separatore e il en_eff
l'elenco di parole è creato appositamente per questo scopo. Ma trovo più facile comunicare e condividere le password quando ne hanno alcune separatore.
Per generare una password completamente casuale, utilizzo la seguente funzione di shell:
# secure password generator or, as dkg puts it:
# high-entropy compact printable/transferable string generator
# a password generator would be pwqgen or diceware
pwg() {
ENTROPY=${1:-20} # in bytes
# strip possible newlines if output is wrapped and trailing = signs as they add nothing to the password's entropy
head -c $ENTROPY /dev/random | base64 | tr -d '\n='
echo
}
Ne parlo perché credo sia importante memorizzare meno password e affidarsi invece a un gestore di password per archiviare stringhe di grandi dimensioni difficili da indovinare. Maggiori dettagli sulla logica alla base di tali scelte sono spiegati nell'articolo di cui sopra e nella mia recensione sui gestori di password.