Fedora 19で
実行すると、OKになります。私は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
して機能v
し続けると言うます。
$ cracklib-check <<<"M1uG*xgRCthKWwjIjWc*010iSvhY9b"
M1uG*xgRCthKWwjIjWc*010iSvhY9b: OK
のバージョンでcracklib-check
は、部分文字列にハングアップしているように見えSth
ます。
あなたが提供した文字列のチャンクには間違いなく奇妙なことがあります。テールエンドピースを取り、フロント部分を省略すると、この部分も失敗する可能性があります。
$ cracklib-check <<<"jIjc*010Sth"
jIjc*010Sth: it is too simplistic/systematic
同じ文字列は、Fedora 19とCentOS 6でも問題を引き起こします!
更新#1
@ waxwingの非常に優れた調査に基づいて、4文字以上が隣接しすぎると、使用されるヒューリスティックがトリップすることがわかった。このヒューリスティックを変更するパッチが導入され、これらの誤検知を排除するために、考慮中のパスワードの全体の長さが考慮されるようになりました。
結論は?
私の限られたテストのいくつかに基づいて、ここで遊んでいるいくつかの奇妙な発見的手法があるように見えます。一見うまくいくと思われる特定の文字列は、それをつまずいています。
これを体系化しようとしている場合は、パスワードの生成と評価をラップし、パスワードが生成されたらループから抜け出すことをお勧めします cracklib-check
ます。
または少なくとも、@ maxwingが彼の答えで言及している修正を含む新しいバージョンにアップグレードすることをお勧めします。
パスワード生成の代替
pwgen
また、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
M1uG*xgRCthKWwjIjWc*010iSthY9buc: OK