ใน 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
หมายเหตุ:ฉันจะลองด้วยคำพูดเดียวแทนที่จะเป็น qutoes สองครั้งด้วยเนื่องจากคุณกำลังติดต่อกับ*
พวกเขาพวกเขาอาจจะขยายไปในทางที่แปลกสำหรับคุณ
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
ขุดลึกลงไปในเรื่องนี้ถ้าฉันเปลี่ยนตัวละครตัวสุดท้ายจาก a 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
appeases
หรืออย่างน้อยที่สุดฉันขอแนะนำให้อัพเกรดเป็นเวอร์ชั่นใหม่กว่าซึ่งรวมถึงการแก้ไขที่ @maxwing กล่าวถึงในคำตอบของเขา
ทางเลือก Gen รหัสผ่าน
pwgen
ฉันจะเพิ่มว่าฉันมักจะใช้pwgen
เพื่อสร้างรหัสผ่าน นั่นอาจเป็นประโยชน์กับคุณที่นี่เช่นกัน
$ pwgen -1cny 32
iWu0iPh8aena9raSoh{v6me)eh:eu6Ei
urandom
นอกจากนี้คุณยังสามารถใช้เวทมนตร์สคริปต์เล็ก ๆ ที่มี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