Linux์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ… ์ƒ์„ฑ

๋‹ค์‹œ ํ•œ๋ฒˆ ์•ˆ๋…•ํ•˜์„ธ์š”! ์ƒˆ ๊ฐ•์ขŒ ๊ทธ๋ฃน์˜ ์ˆ˜์—…์ด ๋‚ด์ผ๋ถ€ํ„ฐ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. "๋ฆฌ๋ˆ…์Šค ๊ด€๋ฆฌ์ž", ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ์šฐ๋ฆฌ๋Š” ์ฃผ์ œ์— ๋Œ€ํ•œ ์œ ์šฉํ•œ ๊ธฐ์‚ฌ๋ฅผ ๊ฒŒ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Linux์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ… ์ƒ์„ฑ

์ด์ „ ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. pam_cracklib์‹œ์Šคํ…œ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋” ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Red Hat 6 ๋˜๋Š” CentOS. ๋ ˆ๋“œํ–‡ 7์—์„œ pam_pwquality ๊ต์ฒด cracklib ์œผ๋กœ pam ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๋ชจ๋“ˆ. ๊ธฐ์ค€ ์น˜์ˆ˜ pam_pwquality Ubuntu ๋ฐ CentOS๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ OS์—์„œ๋„ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์•”ํ˜ธ ๊ฐ•๋„ ํ‘œ์ค€์„ ์ˆ˜๋ฝํ•˜๋„๋ก ํ•˜๋Š” ์•”ํ˜ธ ์ •์ฑ…์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋žซ๋™์•ˆ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž, ์ˆซ์ž ๋˜๋Š” ๊ธฐํƒ€ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณต์žก์„ฑ์— ๋Œ€ํ•œ ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ ๊ทœ์น™์€ ์ง€๋‚œ XNUMX๋…„ ๋™์•ˆ ๋„๋ฆฌ ํ™๋ณด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ข‹์€ ๊ด€ํ–‰์ธ์ง€ ์•„๋‹Œ์ง€์— ๋Œ€ํ•ด ๋งŽ์€ ๋…ผ์˜๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์ฃผ๋œ ์ฃผ์žฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ข…์ด์— ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ ์–ด์„œ ์•ˆ์ „ํ•˜์ง€ ์•Š๊ฒŒ ๋ณด๊ด€ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ ์˜๋ฌธ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ •์ฑ…์€ ์‚ฌ์šฉ์ž๊ฐ€ x์ผ๋งˆ๋‹ค ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋„๋ก ๊ฐ•์ œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์•ˆ์ „์—๋„ ํ•ด๋กญ๋‹ค๋Š” ์—ฐ๊ตฌ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ† ๋ก  ์ฃผ์ œ์— ๋Œ€ํ•ด ๋งŽ์€ ๊ธฐ์‚ฌ๊ฐ€ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ด๋Š” ํ•˜๋‚˜์˜ ๊ด€์  ๋˜๋Š” ๋‹ค๋ฅธ ๊ด€์ ์„ ์ž…์ฆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ด ๊ธฐ์‚ฌ์—์„œ ๋…ผ์˜ํ•  ๋‚ด์šฉ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ๋ณด์•ˆ ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณต์žก์„ฑ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ… ์„ค์ •

์•„๋ž˜์—๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ… ์˜ต์…˜๊ณผ ๊ฐ ์˜ต์…˜์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ๋‹ค์ˆ˜๋Š” ๋ชจ๋“ˆ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. cracklib. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด ์‹œ์Šคํ…œ์—์„œ ์ •์ฑ…์„ ๋” ์‰ฝ๊ฒŒ ํฌํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋””ํฌํฌ โ€“ ์ด์ „ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ์žˆ์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ์ƒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ๋ฌธ์ž ์ˆ˜์ž…๋‹ˆ๋‹ค. (๊ธฐ๋ณธ๊ฐ’ 5)
  • Minlen โ€“ ์ตœ์†Œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธธ์ด. (๊ธฐ๋ณธ๊ฐ’ 9)
  • ๋ฌด์‹ ์šฉ โ€“ ๋Œ€๋ฌธ์ž ์‚ฌ์šฉ์„ ์œ„ํ•œ ์ตœ๋Œ€ ํฌ๋ ˆ๋”ง ์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ > 0์ธ ๊ฒฝ์šฐ) ๋˜๋Š” ์ตœ์†Œ ํ•„์ˆ˜ ๋Œ€๋ฌธ์ž ์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ < 0์ธ ๊ฒฝ์šฐ). ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.
  • ์‹ ์šฉ โ€” ์†Œ๋ฌธ์ž ์‚ฌ์šฉ์— ํ•„์š”ํ•œ ์ตœ๋Œ€ ํฌ๋ ˆ๋”ง ์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ > 0์ธ ๊ฒฝ์šฐ) ๋˜๋Š” ํ•„์š”ํ•œ ์ตœ์†Œ ์†Œ๋ฌธ์ž ์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ < 0์ธ ๊ฒฝ์šฐ)์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.
  • ์‹ ์šฉ ๊ฑฐ๋ž˜ โ€” ์ˆซ์ž ์‚ฌ์šฉ์— ํ•„์š”ํ•œ ์ตœ๋Œ€ ํฌ๋ ˆ๋”ง ์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ > 0์ธ ๊ฒฝ์šฐ) ๋˜๋Š” ํ•„์š”ํ•œ ์ตœ์†Œ ์ˆซ์ž ์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ < 0์ธ ๊ฒฝ์šฐ)์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋Š” ๋ฏฟ๋Š”๋‹ค โ€” ๋‹ค๋ฅธ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ตœ๋Œ€ ํฌ๋ ˆ๋”ง ์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ > 0์ธ ๊ฒฝ์šฐ) ๋˜๋Š” ํ•„์š”ํ•œ ์ตœ์†Œ ๊ธฐํƒ€ ๊ธฐํ˜ธ ์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ < 0์ธ ๊ฒฝ์šฐ). ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.
  • ์ตœ์†Œ ํด๋ž˜์Šค โ€“ ํ•„์š”ํ•œ ์ˆ˜์—… ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค์—๋Š” ์œ„์˜ ๋งค๊ฐœ๋ณ€์ˆ˜(๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž, ์ˆซ์ž, ๊ธฐํƒ€ ๋ฌธ์ž)๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.
  • ์ตœ๋Œ€ ๋ฐ˜๋ณต โ€“ ๋น„๋ฐ€๋ฒˆํ˜ธ์—์„œ ๋ฌธ์ž๊ฐ€ ๋ฐ˜๋ณต๋  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.
  • ์ตœ๋Œ€ ํด๋ž˜์Šค ๋ฐ˜๋ณต โ€” ํ•œ ํด๋ž˜์Šค์˜ ์ตœ๋Œ€ ์—ฐ์† ๋ฌธ์ž ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.
  • ์ง€์˜ค์ฒดํฌ โ€“ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ์‚ฌ์šฉ์ž GECOS ๋ฌธ์ž์—ด์˜ ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. (์‚ฌ์šฉ์ž ์ •๋ณด, ์ฆ‰ ์‹ค๋ช…, ์œ„์น˜ ๋“ฑ) ๊ธฐ๋ณธ๊ฐ’์€ 0(๋„๊ธฐ)์ž…๋‹ˆ๋‹ค.
  • dictpath โ€“ cracklib ์‚ฌ์ „์œผ๋กœ ๊ฐ€๋ด…์‹œ๋‹ค.
  • ๋‚˜์œ ๋ง โ€“ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ๊ธˆ์ง€๋˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋‹จ์–ด(ํšŒ์‚ฌ๋ช…, โ€œ๋น„๋ฐ€๋ฒˆํ˜ธโ€๋ผ๋Š” ๋‹จ์–ด ๋“ฑ).

๋Œ€์ถœ์ด๋ผ๋Š” ๊ฐœ๋…์ด ์ด์ƒํ•˜๊ฒŒ ๋“ค๋ฆฌ๋”๋ผ๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ •์ƒ์ž…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ ์„น์…˜์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ… ๊ตฌ์„ฑ

๊ตฌ์„ฑ ํŒŒ์ผ ํŽธ์ง‘์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๊ธฐ๋ณธ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…์„ ๋ฏธ๋ฆฌ ์ ์–ด ๋‘๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚œ์ด๋„ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์ตœ์†Œ 15์ž ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ์— ๋™์ผํ•œ ๋ฌธ์ž๊ฐ€ ๋‘ ๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ž ํด๋ž˜์Šค๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ์—์„œ ์ตœ๋Œ€ XNUMX๋ฒˆ๊นŒ์ง€ ๋ฐ˜๋ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ์—๋Š” ๊ฐ ํด๋ž˜์Šค์˜ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์ด์ „ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๋น„๊ตํ•˜์—ฌ 5๊ฐœ์˜ ์ƒˆ๋กœ์šด ๋ฌธ์ž๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • GECOS ํ™•์ธ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • โ€œpassword, pass, word, putoriusโ€๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์ •์ฑ…์„ ๋งˆ๋ จํ–ˆ์œผ๋ฏ€๋กœ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. /etc/security/pwquality.conf์•”ํ˜ธ ๋ณต์žก์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•œ ์„ค๋ช…์ด ํฌํ•จ๋œ ์˜ˆ์‹œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius

์•„์‹œ๋‹ค์‹œํ”ผ ํŒŒ์ผ์˜ ์ผ๋ถ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋งค๊ฐœ๋ณ€์ˆ˜ minclass ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค์—์„œ ์ด๋ฏธ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค. [u,l,d,o]credit. ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์–ด ๋ชฉ๋ก๋„ ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ 4๋ฒˆ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(๋ชฉ๋ก์˜ ๋ชจ๋“  ๋‹จ์–ด๋Š” ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑ๋จ). ์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด์„œ๋งŒ ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ •์ฑ…์„ ์ƒ์„ฑํ•œ ํ›„์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์Œ์— ๋กœ๊ทธ์ธํ•  ๋•Œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด๊ณ„.

์—ฌ๋Ÿฌ๋ถ„์ด ์•Œ์•„์ฐจ๋ ธ์„ ์ˆ˜๋„ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ด์ƒํ•œ ์ ์€ ํ•„๋“œ๊ฐ€ [u,l,d,o]credit ์Œ์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๊ณต๋กœ๋ฅผ ์ธ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•„๋“œ์— ์Œ์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ํŠน์ • ์ˆ˜๋Ÿ‰์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

๋Œ€์ถœ์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋Œ€์ถœ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์ด ๊ทธ ๋ชฉ์ ์„ ๊ฐ€๋Šฅํ•œ ํ•œ ์ •ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธธ์ด์— "x"์™€ ๋™์ผํ•œ "๋ฌธ์ž ํฌ๋ ˆ๋”ง" ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ (u,l,d,o)credit 1๋กœ ์„ค์ •ํ•˜๊ณ  ํ•„์š”ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธธ์ด๊ฐ€ 6์ธ ๊ฒฝ์šฐ ๊ฐ ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž, ์ˆซ์ž ๋˜๋Š” ๊ธฐํƒ€ ๋ฌธ์ž๊ฐ€ ํ•˜๋‚˜์˜ ํฌ๋ ˆ๋”ง์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๊ธธ์ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋ ค๋ฉด 6์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ dcredit 2์—์„œ๋Š” ์ด๋ก ์ ์œผ๋กœ 9์ž ๊ธธ์ด์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ˆซ์ž์— ๋Œ€ํ•ด 2์ž ํฌ๋ ˆ๋”ง์„ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธธ์ด๋Š” ์ด๋ฏธ 10์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ˆ๋ฅผ ๋ณด์„ธ์š”. ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธธ์ด๋ฅผ 13์œผ๋กœ ์„ค์ •ํ•˜๊ณ  dcredit๋ฅผ 2๋กœ ์„ค์ •ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ 0์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธธ์ด๊ฐ€ 13์ž ๋ฏธ๋งŒ์ด์–ด์„œ ์ฒซ ๋ฒˆ์งธ ํ™•์ธ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๋ฒˆ์— ๋ฌธ์ž "I"๋ฅผ ์ˆซ์ž "1"๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ํ•ด๋‹น ์ˆซ์ž์— ๋Œ€ํ•ด 13ํฌ๋ ˆ๋”ง์„ ์–ป์—ˆ์œผ๋ฏ€๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” XNUMX์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋น„๋ฐ€๋ฒˆํ˜ธ ํ…Œ์ŠคํŠธ

ํŒจํ‚ค์ง€ libpwquality ๊ธฐ์‚ฌ์— ์„ค๋ช…๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ๋„ ๊ฐ™์ด ๋‚˜์˜ค๋„ค์š” pwscore, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณต์žก์„ฑ์„ ํ™•์ธํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ๋Š” ๋Œ€์ถœ์„ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ณต์ต ์‚ฌ์—… pwscore ์—์„œ ์ฝ์Šต๋‹ˆ๋‹ค ํ‘œ์ค€. ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์˜ค๋ฅ˜ ๋˜๋Š” 0~100 ์‚ฌ์ด์˜ ๊ฐ’์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋น„๋ฐ€๋ฒˆํ˜ธ ํ’ˆ์งˆ ์ ์ˆ˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. minlen ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ. ์ผ๋ฐ˜์ ์œผ๋กœ 50์  ๋ฏธ๋งŒ์˜ ์ ์ˆ˜๋Š” โ€œ๋ณดํ†ต ๋น„๋ฐ€๋ฒˆํ˜ธโ€๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ, ๊ทธ ์ด์ƒ์˜ ์ ์ˆ˜๋Š” โ€œ๊ฐ•๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธโ€๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ํ’ˆ์งˆ ๊ฒ€์‚ฌ(ํŠนํžˆ ๊ฐ•์ œ ๊ฒ€์ฆ)๋ฅผ ํ†ต๊ณผํ•œ ๋ชจ๋“  ๋น„๋ฐ€๋ฒˆํ˜ธ cracklib) ์‚ฌ์ „ ๊ณต๊ฒฉ์„ ๊ฒฌ๋ŽŒ์•ผ ํ•˜๋ฉฐ, ์„ค์ •์œผ๋กœ 50์  ์ด์ƒ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. minlen ๊ธฐ๋ณธ์ ์œผ๋กœ๋„ brute force ๊ณต๊ฒฉ.

๊ฒฐ๋ก 

์กฐ์ • pwquality โ€“ ์‚ฌ์šฉ์˜ ๋ถˆํŽธํ•จ์— ๋น„ํ•ด ์‰ฝ๊ณ  ๊ฐ„ํŽธํ•˜๋‹ค cracklib ์ง์ ‘ ํŒŒ์ผ ํŽธ์ง‘์œผ๋กœ pam. ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Red Hat 7, CentOS 7 ๋ฐ Ubuntu ์‹œ์Šคํ…œ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…์„ ์„ค์ •ํ•  ๋•Œ ํ•„์š”ํ•œ ๋ชจ๋“  ๋‚ด์šฉ์„ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์ž์„ธํžˆ ์„ค๋ช…๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฑฐ์˜์—†๋Š” ๋Œ€์ถœ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋„ ์ด์•ผ๊ธฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „์— ์ ‘ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š”์ด ์ฃผ์ œ๊ฐ€ ์ข…์ข… ๋ถˆ๋ถ„๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ :

pwquality ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€
pam_pwquality ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€
pwscore ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€

์œ ์šฉํ•œ ๋งํฌ :

์•ˆ์ „ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ ํƒ โ€“ Bruce Schneier
Lorrie Faith Cranor๊ฐ€ CMU์—์„œ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์—ฐ๊ตฌ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.
์—”ํŠธ๋กœํ”ผ์— ๋Œ€ํ•œ ์•…๋ช… ๋†’์€ xkcd ๋งŒํ™”

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€