페도라 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
마지막 문자를 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의 매우 멋진 sleuthing을 기반으로 , 이제 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