web-dev-qa-db-ja.com

なぜこのランダムなパスワードは単純すぎる/体系的すぎるというフラグが立てられているのですか?

ランダム文字列はどうですかM1uG*xgRCthKWwjIjWc*010iSthY9bucpasswd および cracklib-check に従って、パスワードに対して単純すぎる/体系的すぎると検出されていますか?あなたのマシンで試してみてください

echo "M1uG*xgRCthKWwjIjWc*010iSthY9buc" | cracklib-check

これは私のパスワードではなく、同じ結果を生成する同じランダムパスワードジェネレーターからランダムに生成された別の文字列であることに注意してください。

37
BeowulfNode42

Cracklibはオープンソースなので、その答えは source code にあります。

「単純すぎる/体系的すぎる」とは、アルファベットの隣の1つが先行する文字が多すぎることを意味します。したがって、「ab」または「ba」は不良と見なされますが、「ac」または「ca」はbが省略されているので問題ありません。

2010-03-02からのこのパッチ の前は、この特性を示す最大4文字を許可しています。たとえば、「a」、「2」、「3」、「4」、および「5」は先行する文字のアルファベット順の隣接文字であるため、「bar12345」は失敗します。

slmは彼の回答でM1uG*xgRCthKWwjIjWc*010iSは大丈夫であるのに対し、M1uG*xgRCthKWwjIjWc*010iStは大丈夫ではないことを発見しました。分析しましょう。以下は、cracklib-checkが体系的なパスワードを示していると考える文字です。

M1uG*xgRCthKWwjIjWc*010iS
               ^^    ^^

これは最大値の4未満ですが、tを追加します。

M1uG*xgRCthKWwjIjWc*010iSt
               ^^    ^^  ^

tがSに続くため、制限を超えてプッシュします(テストでは大文字と小文字が区別されないようです)。

このような誤検出を回避するために、パッチは最大制限を変更して、パスワードの全長に依存するようにします。

59
waxwing