Инструмент командной строки для генерации запоминающихся паролей?

20

Я ищу инструмент, командную строку или графический интерфейс для Linux, который генерирует запоминающиеся пароли.

Эквивалентом того, что я ищу, были бы пароли, которые может генерировать цепочка для ключей Mac OS X, что-то вроде apples12$/fourteen. Что-то сильное, но легко запоминаемое пользователем.

Джеймс МакМэхон
источник

Ответы:

22

С тех пор я перешел к парольным фразам в стиле XCKD для большинства моих паролей. Вот 1 строка из командной строкиfu для генерации ключевой фразы:

shuf -n4 /usr/share/dict/words | tr -d '\n'
Джеймс МакМэхон
источник
2
на самом деле, есть проблема с этим однострочником: он может использовать такие слова, как "the", "им", "их" и "ров", "радужная оболочка", "он". Ты видишь проблему? Префиксы и суффиксы перекрываются, что уменьшает реальную энтропию сгенерированного пароля и может привести к довольно слабым паролям, если строки не достаточно длинные (особенно с 4 словами). Вот почему генераторы паролей на основе слов используют специально составленные списки слов. Конечно, пароли, сгенерированные с помощью вышеупомянутого, довольно хороши: минимум 14 символов в моих тестах, со средним размером 34. Но их энтропия не надежна.
анаркат
В чем проблема с перекрывающимися префиксами / суффиксами? Я могу понять вашу точку зрения о длине, но вам нужно объяснить другую точку.
Джеймс МакМэхон
давайте упростим до крайности. у вас есть dictionnary , сделанный из трех слов: the, meи theme. обычно вы ожидаете, что у вас будет энтропия в равной степени от этих трех слов, но в этом случае вы не можете считать, themeпотому что это комбинация двух других слов. в действительности, на themeсамом деле добавляет нулевой энтропии к паролю.
anarcat
Но не отличается ли «я» от «темы»? Я понимаю, что возможные буквы добавляют энтропию, но этот подход больше касается размера паролей. Я не понимаю, как "тема me" будет легче угадать, чем последовательность без пересекающихся символов, таких как "do ray music"
Джеймс МакМахон,
1
@wbg мой ответ здесь superuser.com/a/1246245/177019
anarcat
11

2020: я опубликовал этот ответ в 2011 году. За прошедшие годы лицо кибербезопасности и требования к ней быстро и сильно изменились. Как указывалось anarcat, pwgen может (или больше не будет) подходить для защиты систем с высоким уровнем безопасности. В своей статье он излагает технические подробности того, как pwgen может в некоторых случаях использовать небезопасные методы получения пароля из имеющейся энтропии . Хотя я больше не верю в создание паролей, чтобы потом попытаться запомнить их самостоятельно, у меня нет технических возможностей для проверки, не говоря уже о том, чтобы поручиться за содержание статьи, как указано, поэтому, пожалуйста, прочитайте ее и сделайте свои собственные выводы. Сказав это, я убежден, что pwgen будет достаточно для систем с низким уровнем безопасности, где атака очень маловероятна.

Вы можете проверить pwgenприложение. Я знаю, что он будет доступен в репозиториях Ubuntu, Fedora, Debian и Suse.

Со страницы руководства :

Программа pwgen генерирует пароли, которые разработаны для легкого запоминания людьми, при этом будучи максимально безопасными. Запоминаемые человеком пароли никогда не будут такими безопасными, как совершенно совершенно случайные пароли. В частности, пароли, сгенерированные pwgen без опции -s, не должны использоваться в местах, где пароль может быть атакован с помощью атаки с использованием грубой силы. С другой стороны, совершенно случайно сгенерированные пароли имеют тенденцию записываться и могут быть скомпрометированы таким образом.

Программа pwgen предназначена для использования как в интерактивном режиме, так и в сценариях оболочки. Следовательно, его поведение по умолчанию отличается в зависимости от того, является ли стандартный вывод tty устройством или каналом для другой программы. В интерактивном режиме pwgen отобразит экран с паролями, позволяя пользователю выбрать один пароль, а затем быстро стереть экран. Это не позволяет кому-либо «взломать» выбранный пользователем пароль.

BloodPhilia
источник
3
Пароли типа «Zei7jool» или «Oowee6ei» не кажутся мне запоминающимися. Возможно, мне не хватает флага?
Джеймс МакМэхон
3
@James Они генерируются в соответствии с алгоритмом, который помещает буквы в бессмысленный, но потому, что они логичны в человеческой лингвистике, запоминаемом порядке. Вам, вероятно, придется приложить аналогичные усилия, чтобы запомнить apples12$/fourteenпароль. Просто попробуйте.
BloodPhilia
1
Он извергает огромный список паролей, просто выберите самые запоминающиеся - там есть несколько драгоценных камней ;-)
virtualeyes
4
По умолчанию пароли pwgen имеют серьезные проблемы с безопасностью и не очень запоминаемы. вместо этого используйте diceware или xkcdpass.
anarcat
1
@anarcat спасибо! Я согласен, что pwgen может быть не лучшим вариантом (больше), но я оставлю свой ответ с заявлением об отказе от ответственности, которое я добавил для решения ваших проблем на месте в исторических целях.
BloodPhilia
8

Я бы порекомендовал людям прекратить использовать pwgen - его основным интересом было создание «запоминаемых паролей», но при этом он обнаружил множество уязвимостей. И использовать его для генерации совершенно случайных строк тоже не очень полезно.

Я написал подробную статью на эту тему, но в основном суть ее в том, чтобы использовать программу diceware (или, если вам нравится игра в кости, реальную систему diceware ) или xkcdpass . Для создания надежных запоминающихся паролей я обычно использую diceware со следующим файлом конфигурации:

[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
}

Я упоминаю об этом, потому что считаю, что важно запоминать меньше паролей и вместо этого полагаться на менеджер паролей для хранения больших строк, которые трудно угадать. Более подробная информация о причинах такого выбора объясняется в вышеупомянутой статье и моем обзоре менеджеров паролей .

anarcat
источник
4

Попробуйте "gpw". Он производит пароли, такие как эти: ubsonsin morimplo demenump esselymn kidentst anenterg essonsuf iesssssi bestruss tnestese

Описание: Trigraph Password Generator Этот пакет генерирует произносимые пароли. Он использует статистику трехбуквенных комбинаций (триграфов), взятых из любых словарей, которые вы используете. Таким образом, произносимость может отличаться от языка к языку. Основано на идеях генератора паролей Морри Гассера для Multics и генератора Дэна Эдвардса для CTSS. Стандарт FIPS 181 описывает аналогичный
генератор на основе орграфа, полученный от Гассера.

Томас
источник
1

Хорошим вариантом, который появился после того, как я спросил об этом, является генератор XKCD-пароля-генератора Redacted .

Это хороший скрипт на Python для генерации паролей в стиле XKCD, который имеет некоторые дополнительные параметры, такие как поддержка acrostic.

Джеймс МакМэхон
источник
0

sf-pwgen является инструментом командной строки, который генерирует пароли с использованием платформы SecurityFoundation в OS X.

VDM
источник