Bagaimana string acak M1uG*xgRCthKWwjIjWc*010iSthY9buc
terdeteksi terlalu sederhana/sistematis untuk kata sandi menurut passwd dan cracklib-check? Cobalah di mesin Anda dan lihat
echo "M1uG*xgRCthKWwjIjWc*010iSthY9buc" | cracklib-check
Perhatikan bahwa ini bukan kata sandi saya, tetapi string lain yang dibuat secara acak dari pembuat kata sandi acak yang sama yang menghasilkan hasil yang sama.
Jawaban yang Diterima:
Karena cracklib adalah open source, jawabannya dapat ditemukan di kode sumber.
“Terlalu sederhana/sistematis” berarti terlalu banyak karakter yang didahului oleh salah satu tetangga abjadnya. Oleh karena itu "ab" atau "ba" dianggap buruk, tetapi "ac" atau "ca" tidak masalah karena b dihilangkan.
Sebelum tambalan ini dari 2010-03-02, memungkinkan maksimal empat karakter yang menunjukkan sifat ini. Misalnya, "bar12345" akan gagal, karena karakter "a", "2", "3", "4" dan "5" adalah tetangga abjad dari karakter sebelumnya.
slm menemukan dalam jawabannya bahwa M1uG*xgRCthKWwjIjWc*010iS
OK, sedangkan M1uG*xgRCthKWwjIjWc*010iSt
tidak. Mari kita menganalisis. Berikut adalah karakter yang menurut cracklib-check sebagai indikasi kata sandi yang sistematis:
M1uG*xgRCthKWwjIjWc*010iS
^^ ^^
yang di bawah maksimal empat, tetapi menambahkan t:
M1uG*xgRCthKWwjIjWc*010iSt
^^ ^^ ^
mendorongnya di atas batas, karena T mengikuti S (tampaknya tes ini tidak peka huruf besar/kecil).
Patch mengubah batas maksimal sehingga tergantung pada panjang kata sandi total, untuk menghindari kesalahan positif seperti ini.