๐Ÿ” [ํด๋ž˜์‹] A Future-Adaptable Password Scheme โ€” ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹œ๋Š” ํ•˜๋“œ์›จ์–ด์™€ ํ•จ๊ป˜ ๋Š™๋Š”๋‹ค

2026-10-09 ยท ์นดํ…Œ๊ณ ๋ฆฌ: Research (์ „ํ†ต ๋ณด์•ˆ ยท ์ธ์ฆ/๋น„๋ฐ€๋ฒˆํ˜ธ ยท ์•”ํ˜ธํ•™์  ํ•ด์‹œ ยท Blowfish ํ‚ค ์Šค์ผ€์ค„ ยท ์˜คํ”„๋ผ์ธ ์‚ฌ์ „ ๊ณต๊ฒฉ ๋ฐฉ์–ด)

๋…ผ๋ฌธ ์ •๋ณด

์ œ๋ชฉ: A Future-Adaptable Password Scheme
์ €์ž: Niels Provos ยท David Maziรจres (The OpenBSD Project)
์ถœ์ฒ˜: Proceedings of the FREENIX Track, 1999 USENIX Annual Technical Conference, Monterey, California (1999๋…„ 6์›” 6โ€“11์ผ) ยท usenix.org (PDF)
๋ถ„์•ผ: ์ธ์ฆยท๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณด์•ˆ ยท ์•”ํ˜ธํ•™์  ํ•ด์‹œ ยท (Blowfish ๊ธฐ๋ฐ˜) ๋ธ”๋ก ์•”ํ˜ธ์˜ ํ‚ค ์Šค์ผ€์ค„ ยท ์˜คํ”„๋ผ์ธ ์‚ฌ์ „ ๊ณต๊ฒฉ ๋ฐฉ์–ด
์ธ์šฉ: OpenAlex ๊ธฐ์ค€ 182ํšŒ โ€” ์ด ๋…ผ๋ฌธ์€ DOI ์—†์ด USENIX๊ฐ€ ๋ฌด๋ฃŒ๋กœ ๊ณต๊ฐœํ•œ '์—ด๋ฆฐ ๋…ผ๋ฌธ'์ด๋ผ ํ•™์ˆ  DB ์นด์šดํŠธ๊ฐ€ ์‹ค์ œ ์˜ํ–ฅ๋ ฅ์„ ํฌ๊ฒŒ ๋ฐ‘๋ˆ๋‹ค. ๋Œ€์‹  ์ฑ„ํƒ ๊ทœ๋ชจ๋กœ ์œ„์น˜๋ฅผ ๊ฐ€๋Š ํ•œ๋‹ค: bcrypt๋Š” OpenBSD์˜ ๊ธฐ๋ณธ ๋น„๋ฐ€๋ฒˆํ˜ธ ์Šคํ‚ด(2.1๋ถ€ํ„ฐ), FreeBSDยทNetBSDยทmacOSยทLinux PAM, PHP password_hash()์˜ ๊ธฐ๋ณธ๊ฐ’(PASSWORD_BCRYPT) ๋“ฑ ์‚ฌ์‹ค์ƒ ๋ชจ๋“  ๋น„๋ฐ€๋ฒˆํ˜ธ DB์˜ ํ‘œ์ค€์ด ๋˜์—ˆ๋‹ค. ๊ณ„๋ณด์˜ ๋ฟŒ๋ฆฌ์ธ Morris & Thompson์˜ Password Security: A Case History(CACM 1979)๋Š” OpenAlex 930ํšŒ.
์›๋ฌธ: USENIX FREENIX'99 PDF (431 KB) ยท static ๋ฏธ๋Ÿฌ ยท ํ•™ํšŒ ํŽ˜์ด์ง€

ํ•œ ์ค„ ์š”์•ฝ โ€” '๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ๊ธธ์ด์™€ ๋ฌด์ž‘์œ„์„ฑ์€ ๊ณ ์ •์ธ๋ฐ, ๊ณต๊ฒฉ์ž์˜ ์ปดํ“จํ„ฐ๋Š” ๋งค๋…„ ๋นจ๋ผ์ง„๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํ•ด์‹œ ํ•จ์ˆ˜์˜ ๋น„์šฉ๋„ ํ•จ๊ป˜ ์˜ฌ๋ผ๊ฐ€์•ผ ํ•œ๋‹ค'

์‚ฌ์šฉ์ž๊ฐ€ ๊ณ ๋ฅด๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ์—”ํŠธ๋กœํ”ผ๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ๊ฑฐ์˜ ๋Š˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐ˜๋ฉด ํ•˜๋“œ์›จ์–ด๋Š” ๊พธ์ค€ํžˆ ๋นจ๋ผ์ง„๋‹ค. 1976๋…„ UNIX์˜ crypt(3)๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ DES ํ•œ ๋ฒˆ(DES ์ƒ์ˆ˜๋ฅผ 25ํšŒ ๋ฐ˜๋ณต)์œผ๋กœ ํ•ด์‹œํ–ˆ๊ณ , ๋‹น์‹œ์—” ๊ทธ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ–ˆ๋‹ค โ€” 1977๋…„ VAX-11/780์—์„œ ์ดˆ๋‹น 3.6ํšŒ๋ฐ–์— ๊ณ„์‚ฐํ•˜์ง€ ๋ชปํ–ˆ์œผ๋‹ˆ ์‚ฌ์ „ ๊ณต๊ฒฉ์ด ๋น„ํ˜„์‹ค์ ์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ 20์—ฌ ๋…„ ๋’ค, ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ดˆ๋‹น ์ˆ˜์‹ญ๋งŒ ํšŒ ๊ณ„์‚ฐ๋˜๋ฉด์„œ ๊ทธ '์ถฉ๋ถ„ํ•จ'์€ ์‚ฌ๋ผ์กŒ๋‹ค. ์ด ๋…ผ๋ฌธ(1999)์€ ๊ทธ ๋น„๋Œ€์นญ์„ ์ •๋ฉด์œผ๋กœ ๋‹ค๋ฃฌ๋‹ค โ€” ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹œ์˜ ๊ณ„์‚ฐ ๋น„์šฉ์€ ํ•˜๋“œ์›จ์–ด๊ฐ€ ๋นจ๋ผ์ง€๋Š” ๋งŒํผ ์Šค์Šค๋กœ ์˜ฌ๋ผ๊ฐ€์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ฒซ ๊ตฌํ˜„์ด ๋ฐ”๋กœ bcrypt๋‹ค. ์š”๋ น์€ ๋‹จ์ˆœํ•˜๋‹ค: ํ•ด์‹œ์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ์กฐ์ ˆ ๊ฐ€๋Šฅํ•œ '๋น„์šฉ(cost)' ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋…ธ์ถœํ•˜๊ณ , ๊ฒ€์ฆํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค. ํ•˜๋“œ์›จ์–ด๊ฐ€ 2๋ฐฐ ๋นจ๋ผ์ง€๋ฉด ๋น„์šฉ์„ 1๋งŒํผ ์˜ฌ๋ฆฌ๋ฉด ๋œ๋‹ค. ๋…ผ๋ฌธ์ด 1999๋…„์— ๋‚จ๊ธด ๋ฌธ์žฅ์€ ์ง€๊ธˆ ์ฝ์œผ๋ฉด ์†Œ๋ฆ„ ๋‹๋Š”๋‹ค โ€” "์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์ด ํ•˜๋“œ์›จ์–ด ๊ฐœ์„ ์— ์ ์‘ํ•ด ์•ž์œผ๋กœ 20๋…„ ๋™์•ˆ ์•ˆ์ „ํ•˜๊ฒŒ ๋‚จ๊ฒŒ ํ•ด์ค„ ๊ฒƒ์ด๋‹ค." ๊ทธ๋ฆฌ๊ณ  27๋…„์ด ์ง€๋‚œ 2026๋…„์—๋„ bcrypt๋Š” ํ˜„์—ญ์ด๋‹ค.

"๋น„๋ฐ€๋ฒˆํ˜ธ ์Šคํ‚ด์˜ ๋ณด์•ˆ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ ๋ฅด๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋งŒํผ๋งŒ ์ข‹๋‹ค(as good as the passwords users choose) โ€ฆ ๋”ฐ๋ผ์„œ ์–ด๋–ค ์•ˆ์ „ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์Šคํ‚ด์ด๋“ , ๊ทธ ๊ณ„์‚ฐ ๋น„์šฉ์€ ํ•˜๋“œ์›จ์–ด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋จ์— ๋”ฐ๋ผ ๋ฐ˜๋“œ์‹œ ์ฆ๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค." โ€” ๋…ผ๋ฌธ 3ยท7์ ˆ

๋ฐฐ๊ฒฝ โ€” '์ „ํ†ต crypt'๊ฐ€ ์‹คํŒจํ•  ์ˆ˜๋ฐ–์— ์—†์—ˆ๋˜ ์ด์œ 

ํ•ต์‹ฌ 1 โ€” ์ข‹์€ ๋น„๋ฐ€๋ฒˆํ˜ธ ์Šคํ‚ด์˜ ์„ธ ๊ฐ€์ง€ ์กฐ๊ฑด (๋…ผ๋ฌธ 3์ ˆ)

ํ•ต์‹ฌ 2 โ€” eksblowfish: '์ผ๋ถ€๋Ÿฌ ๋น„์‹ผ' ํ‚ค ์Šค์ผ€์ค„

ํ•ต์‹ฌ 3 โ€” bcrypt: 192๋น„ํŠธ '๋งˆ๋ฒ•๊ฐ’'์„ 64๋ฒˆ ์•”ํ˜ธํ™”ํ•œ๋‹ค

ํ•ต์‹ฌ 4 โ€” ๊ณต๊ฒฉ์ž ๊ด€์ : ์ „ํ†ต cryptยทMD5 crypt๋ฅผ ๋šซ๋Š” ๋‹ค์„ฏ ๊ฐˆ๋ž˜ (๋…ผ๋ฌธ 6์ ˆ)

ํ•ต์‹ฌ 5 โ€” 1999๋…„์˜ ์˜ˆ์–ธ์€ ์™œ 2026๋…„์—๋„ ์œ ํšจํ•œ๊ฐ€

ํ•œ๊ณ„ ยท ์œ ์˜์  ยท ์˜์˜

์ถœ์ฒ˜

๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ