以下に基づいて、任意の文字列がM1uG*xgRCthKWwjIjWc*010iSthY9buc
パスワード/システムと比較して単純すぎると検出される方法パスワードそしてクラックライブラリの確認?コンピュータで試してみてください。
echo "M1uG*xgRCthKWwjIjWc*010iSthY9buc" | cracklib-check
これは私のパスワードではなく、同じランダムパスワードジェネレータでランダムに生成された別の文字列であり、同じ結果を生成します。
答え1
cracklibはオープンソースなので、答えは以下にあります。ソースコード。
「過度に単純化/体系的」とは、あまりにも多くの文字の前にアルファベット順の隣人の1つがあることを意味します。したがって、「ab」または「ba」は悪いと見なされますが、「ac」または「ca」はbが省略されているので大丈夫です。
今後このパッチは2010-03-02からです。、これは最大許容4文字これらの特性を示しています。たとえば、「bar12345」は、文字「a」、「2」、「3」、「4」、および「5」が先行文字のアルファベットネイバーであるため失敗します。
slmは彼の答えで「M1uG*xgRCthKWwjIjWc*010iS
しかしM1uG*xgRCthKWwjIjWc*010iSt
そうではない」ことを発見しました。それを分析しましょう。以下は、crashlib-checkがシステムパスワードを表すと見なす文字です。
M1uG*xgRCthKWwjIjWc*010iS
^^ ^^
4つの最大値を下回っていますが、tを追加すると次のようになります。
M1uG*xgRCthKWwjIjWc*010iSt
^^ ^^ ^
TがSに従うので限界を超えているのです(テストでは大文字と小文字を区別しないようです)。
パッチは、これらの誤検出を防ぐために、パスワードの全長に応じて最大制限を変更します。
答え2
Fedora 19から
実行してみると大丈夫です。私はFedora 19を使用しています。
$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK
バージョン情報は次のとおりです。
$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version : 2.8.22
Release : 3.fc19
メモ:また、二重引用符の代わりに一重引用符を使用します。なぜなら、*
奇妙な方法で拡張される可能性があるからです。
CentOS 5および6
CentOS 6で例を試してみるとうまく動作し、問題はありませんが、CentOS 5.9で説明したように失敗します。
$ echo 'M1uG*xgRCthKWwjIjWc*010iSthY9buc' | cracklib-check
M1uG*xgRCthKWwjIjWc*010iSthY9buc: it is too simplistic/systematic
バージョン情報:
$ rpm -qfi /usr/sbin/cracklib-check | grep -E "Version|Release"
Version : 2.8.9
Release : 3.3
間違い?
あなたが見つけたのはバグのようです。文字列を入力して実行を続けると、cracklib-check
26番目の文字に達すると失敗し始めることがわかります。
# 25
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iS"
M1uG*xgRCthKWwjIjWc*010iS: OK
# 26
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSt"
M1uG*xgRCthKWwjIjWc*010iSt: it is too simplistic/systematic
t
最後の文字をaで動作し続けるという意味に変えたら、v
この内容をもう少し詳しく見てみましょう。
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSvhY9b"
M1uG*xgRCthKWwjIjWc*010iSvhY9b: OK
だからバージョンではcracklib-check
substrings にかかったようですSth
。
あなたが提供した文字列ブロックには間違いなく何か奇妙なことがあります。先端を抜いて前の部分を省略したら、この部分も失敗したと思います。
$ cracklib-check <<<"jIjc*010Sth"
jIjc*010Sth: it is too simplistic/systematic
同じ文字列はFedora 19とCentOS 6でも問題を引き起こします!
アップデート#1@に基づいて平和鳥のとても素晴らしい調査です。今、私たちは、4つ以上の文字が互いに近すぎると、使用されているヒューリスティックが間違っていることを知っています。 ㅏパッチが導入されました。これは、検討中のパスワードの全長を考慮して、これらの誤検出を排除するためにこの経験的な方法を変更します。
結論的に?
限られたテストのいくつかによると、ここには奇妙な経験的な方法があるようです。一見正常な文字列の一部は問題を引き起こす可能性があります。
これをコーディングする場合は、パスワードの生成と評価をラップし、pacifyパスワードを生成してループから外すことをお勧めしますcracklib-check
。
または、少なくとも@maxwingが回答で述べた修正を含む最新バージョンにアップグレードすることをお勧めします。
パスワード生成の代替
普遍的な根私も一般的に使用するものを追加したいpwgen
パスワードを生成します。これはあなたにも役立ちます。
$ pwgen -1cny 32
iWu0iPh8aena9raSoh{v6me)eh:eu6Ei
ランダム
tr
/dev/urandom
、およびでいくつかのスクリプト魔法を使用して、fold
非常に高品質のランダムパスワードを取得することもできます。
$ tr -dc '[:graph:]' </dev/urandom | fold -w 32 | head -n 1
;>$7\`Hl$=zn}R.b3h/uf7mY54xp}zSF
このfold
コマンドは長さを制御します。あるいは、次のこともできます。
$ echo $(tr -dc '[:graph:]' </dev/urandom | head -c 32)
/_U>s[#_eLKAl(mrE@oo%X~/pcg$6-kr