Я б порекомендував людям припинити використовувати pwgen - його головним зацікавленим було генерування "паролів, що запам'ятовуються людиною", але він виявив багато вразливих ситуацій у виконанні саме цього. І його використання для створення абсолютно випадкових рядків теж не корисне.
Я написав детальну статтю на цю саму тему, але в основному суть її полягає у використанні програмного забезпечення для набору програмного забезпечення (або, якщо вам подобаються кістки, власне системи програмного забезпечення для зубів ) або xkcdpass . Для генерації надійних запам'ятовуються паролів я зазвичай використовую програмне забезпечення для керування зубами із таким файлом конфігурації:
[diceware]
caps = off
delimiter = "-"
wordlist = en_eff
Приклади:
$ 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
Я вимикаю великі літери та пробіли, оскільки вони генерують чіткі звукові шуми, які зловмисник може посилити. -
Роздільник є меншим злом: було б краще не використовувати будь-який роздільник і en_eff
словник спеціально створений для цієї мети. Але мені легше спілкуватися і обмінюватися паролями , коли вони мають деякий роздільник.
Для створення абсолютно випадкового пароля я використовую таку функцію оболонки:
# 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
}
Я згадую про це, бо вважаю, що важливо запам'ятати менше паролів, а замість цього покладатися на менеджера паролів, щоб зберігати великі рядки, які важко здогадатися. Більш детально про обґрунтування цих виборів пояснено у вищезгаданій статті та огляді моїх менеджерів паролів .