Как случайная строка M1uG*xgRCthKWwjIjWc*010iSthY9buc
определяется как слишком упрощенная / систематическая для пароля в соответствии с passwd и cracklib-check ? Попробуйте на своей машине и посмотрите
echo "M1uG*xgRCthKWwjIjWc*010iSthY9buc" | cracklib-check
Обратите внимание, что это не мой пароль, а другая случайно сгенерированная строка из того же генератора случайных паролей, который дает тот же результат.
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK
/dev/urandom
пароль?Ответы:
Поскольку cracklib является открытым исходным кодом, ответ можно найти в исходном коде .
«Слишком упрощенный / систематический» означает, что существует слишком много символов, которым предшествует один из их алфавитных соседей. Следовательно, "ab" или "ba" считаются плохими, но "ac" или "ca" в порядке, поскольку b опущено.
До этого патча от 2010-03-02 , он допускает не более четырех персонажей, которые проявляют эту черту. Например, «bar12345» потерпит неудачу, потому что символы «a», «2», «3», «4» и «5» являются алфавитными соседями предыдущих символов.
Слм узнал в своем ответе, что
M1uG*xgRCthKWwjIjWc*010iS
все в порядке, аM1uG*xgRCthKWwjIjWc*010iSt
пока нет. Давайте проанализируем. Вот символы, которые считает cracklib-check указанием на системный пароль:который ниже максимума четырех, но добавив т:
толкает его выше предела, так как T следует за S (кажется, что тест нечувствителен к регистру).
Патч изменяет максимальный лимит, поэтому он зависит от общей длины пароля, чтобы избежать ложных срабатываний, подобных этому.
источник
Ww
)?На Fedora 19
Когда я запускаю его, я в порядке. Я на Fedora 19.
Вот информация о версии:
ПРИМЕЧАНИЕ: я бы попробовал сделать это с одинарными кавычками, а не с двойными, так как вы имеете дело с ними
*
, они могут быть странным образом расширены для вас.CentOS 5 & 6
Попробовать ваш пример на CentOS 6 было хорошо, получил ОК, но он потерпел неудачу, как вы описали на CentOS 5.9.
Информация о версии:
Жук?
То, с чем вы столкнулись, может показаться ошибкой. Если вы возьмете свою строку и введете в
cracklib-check
нее все больше и больше строк, вы заметите, что когда вы доберетесь до 26-го символа, он начнет давать сбой:Более подробно об этом, если я заменю последний символ с,
t
чтобы сказать, чтоv
он продолжает работать.Так что казалось бы, что в версии
cracklib-check
зацикливается на подстрокеSth
.В кусках строки, которую вы предоставили, определенно есть что-то странное. Если я возьму концевую часть хвоста и пропущу переднюю часть, я также могу заставить эту часть потерпеть крах.
Эта же строка вызывает проблемы в Fedora 19 и CentOS 6!
ОБНОВЛЕНИЕ № 1На основе @ Waxwing - х очень хорошие слежки, теперь мы знаем , что эвристика используется получала подножку , если> 4 -х символов были слишком рядом друг с другом. Патч был введен , который изменил эту эвристику , так что общая длина пароля рассматриваемого учитывалась для устранения этих ложных срабатываний.
Выводы?
Основываясь на некоторых моих ограниченных тестах, может показаться, что здесь есть какая-то странная эвристика. Определенные строки, которые, казалось бы, были бы в порядке, приводят в действие его.
Если вы пытаетесь систематизировать это, я бы предложил обернуть процесс генерации и оценки пароля, а затем выйти из цикла после того, как был сгенерирован пароль, который убывает
cracklib-check
.Или, по крайней мере, я бы предложил перейти на более новую версию, которая включает исправления, которые @maxwing упоминает в своем ответе.
Пароль Gen Альтернативы
PWGenЯ также добавлю, что я обычно использую
urandompwgen
для генерации паролей. Это может быть полезно для вас и здесь.Вы также можете использовать небольшую магию сценариев
tr
,/dev/urandom
иfold
получить очень качественный случайный пароль.Команда
fold
может контролировать длину. В качестве альтернативы вы можете сделать это тоже:источник
Tm7U:n=@*+4$*gf$6hOngEHJ;mnh$+R6
отлично на той же машине.