Linux: ์ž ๊ธˆ ํ’€ ์ œ๊ฑฐ /dev/random

์•”ํ˜ธํ™”๋œ ๋ณด์•ˆ ์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ(CSPRNG)์ธ /dev/random์—๋Š” ์ฐจ๋‹จ์ด๋ผ๋Š” ํ•œ ๊ฐ€์ง€ ์„ฑ๊ฐ€์‹  ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ง€๋‚œ ๋ช‡ ๋‹ฌ ๋™์•ˆ ์ปค๋„์˜ ๋‚œ์ˆ˜ ์ƒ์„ฑ ๊ธฐ๋Šฅ์ด ์•ฝ๊ฐ„ ์žฌ์ž‘์—…๋˜์—ˆ์ง€๋งŒ ์ด ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ๋Š” ๋” ๋„“์€ ๋ฒ”์œ„์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๊ฐ„. ์ œ์ผ ๋งˆ์ง€๋ง‰ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์‹œ์Šคํ…œ ๋ถ€ํŒ… ์‹œ getrandom() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์˜ค๋žซ๋™์•ˆ ์ฐจ๋‹จ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์ง€๋งŒ, ๊ทธ ๊ทผ๋ณธ์ ์ธ ์ด์œ ๋Š” Random Pool์˜ ์ฐจ๋‹จ ๋™์ž‘ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ํŒจ์น˜์—์„œ๋Š” ์ด ํ’€์ด ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ ๋ฉ”์ธ ์ฝ”์–ด๋กœ ํ–ฅํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Andy Lutomirski๋Š” XNUMX์›” ๋ง์— ํŒจ์น˜์˜ ์„ธ ๋ฒˆ์งธ ๋ฒ„์ „์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๊ธฐ์—ฌํ•œ๋‹ค "์ž„์˜์˜ Linux API์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์˜๋ฏธ ๋ณ€๊ฒฝ". ํŒจ์น˜๋Š” getrandom() ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ์ƒˆ๋กœ์šด GRND_INSECURE ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(Lutomirsky๋Š” ์ด๋ฅผ ๊ณ ์ • ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ getrandom()์„ ์‚ฌ์šฉํ•˜์—ฌ glibc์—์„œ ๊ตฌํ˜„๋˜๋Š” getentropy()๋ผ๊ณ  ์ง€์นญํ•˜์ง€๋งŒ). ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜ธ์ถœ ์‹œ ํ•ญ์ƒ ์š”์ฒญ๋œ ๋ฐ์ดํ„ฐ ์–‘์„ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์ž‘์œ„๋ผ๋Š” ๋ณด์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ปค๋„์€ ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์— ๊ฐ€์žฅ ์ข‹์€ ๋ฌด์ž‘์œ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์„ ์„ ๋‹คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. "์•„๋งˆ๋„ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ '์•ˆ์ „ํ•˜์ง€ ์•Š์Œ'์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์•ˆ์ „ํ•˜์ง€ ์•Š์Œ) ์ด API๊ฐ€ ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค."

ํŒจ์น˜๋Š” ์ฐจ๋‹จ ํ’€๋„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„์€ ํ˜„์žฌ ๋‘ ๊ฐœ์˜ ๋ฌด์ž‘์œ„ ๋ฐ์ดํ„ฐ ํ’€์„ ์œ ์ง€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” /dev/random์— ํ•ด๋‹นํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” /dev/urandom์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ 2015. ์ฐจ๋‹จ ํ’€์€ /dev/random์— ๋Œ€ํ•œ ํ’€์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์žฅ์น˜์— ๋Œ€ํ•œ ์ฝ๊ธฐ๋Š” ์š”์ฒญ์„ ์ถฉ์กฑํ•˜๊ธฐ์— "์ถฉ๋ถ„ํ•œ" ์—”ํŠธ๋กœํ”ผ๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ์ˆ˜์ง‘๋  ๋•Œ๊นŒ์ง€ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค(์ฆ‰, ํ•ด๋‹น ์ด๋ฆ„์„ ์˜๋ฏธํ•จ). ํ’€์— ์—”ํŠธ๋กœํ”ผ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด ์ด ํŒŒ์ผ์˜ ์ถ”๊ฐ€ ์ฝ๊ธฐ๋„ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

์ž ๊ธˆ ํ’€์„ ์ œ๊ฑฐํ•œ๋‹ค๋Š” ๊ฒƒ์€ /dev/random์—์„œ ์ฝ๋Š” ๊ฒƒ์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ 0์œผ๋กœ ์„ค์ •๋œ getrandom()์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  GRND_RANDOM ํ”Œ๋ž˜๊ทธ๋ฅผ noop์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค). CRNG(์•”ํ˜ธํ™” ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ)๊ฐ€ ์ดˆ๊ธฐํ™”๋˜๋ฉด /dev/random์—์„œ ์ฝ๊ณ  getrandom(...,XNUMX)์„ ํ˜ธ์ถœํ•˜๋ฉด ์ฐจ๋‹จ๋˜์ง€ ์•Š๊ณ  ์š”์ฒญ๋œ ์–‘์˜ ๋ฌด์ž‘์œ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

๋ฃจํ† ๋ฏธ๋ฅด์Šคํ‚ค๋Š” ์ด๋ ‡๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. โ€œ์ €๋Š” Linux ์ฐจ๋‹จ ํ’€์ด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. CRNG Linux๋Š” ํ‚ค ์ƒ์„ฑ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฐจ๋‹จ ํ’€์€ ๋ฌผ์งˆ์ ์ธ ์˜๋ฏธ์—์„œ ๋” ๊ฐ•๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ด๋ฅผ ์ง€์›ํ•˜๋ ค๋ฉด ๊ฐ€์น˜๊ฐ€ ๋ชจํ˜ธํ•œ ์ธํ”„๋ผ๊ฐ€ ๋งŽ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.โ€

์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์€ ๊ธฐ์กด ํ”„๋กœ๊ทธ๋žจ์ด ์‹ค์ œ๋กœ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋„๋ก ํ•˜๊ณ  ์‹ค์ œ๋กœ GnuPG ํ‚ค ์ƒ์„ฑ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ค„์ด๊ฒ ๋‹ค๋Š” ๋ชฉํ‘œ๋กœ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

โ€œ์ด๋Ÿฌํ•œ ์—ํ”ผ์†Œ๋“œ๋Š” ๊ธฐ์กด ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฉํ•ดํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. /dev/urandom์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. /dev/random์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ถ€ํŒ… ์‹œ ์ฆ‰์‹œ ์ฐจ๋‹จ๋˜์ง€๋งŒ ์ด์ „๋ณด๋‹ค ์ฐจ๋‹จ ํšŸ์ˆ˜๊ฐ€ ์ ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” getentropy()๋Š” ์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹ค์ œ ๋ชฉ์ ์— ์ ํ•ฉํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค."

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

์Šคํ…ŒํŒ ๋ฎ๋Ÿฌ(Stephan Mรผller)๋Š” ์ž์‹ ์˜ ์„ธํŠธ๋ฅผ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒจ์น˜ Linux์šฉ LRNG(Random Number Generator)(ํ˜„์žฌ ๋ฒ„์ „ 26 ์ถœ์‹œ)๋Š” ์ด๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ง„์ •ํ•œ ๋‚œ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LRNG๋Š” "์ž„์˜์˜ ๋น„ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์—”ํŠธ๋กœํ”ผ ์†Œ์Šค์— ๋Œ€ํ•œ SP800-90B ์ง€์นจ์„ ์™„์ „ํžˆ ์ค€์ˆ˜"ํ•˜์—ฌ ์ •๋ถ€ ํ‘œ์ค€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
Matthew Garrett์€ "์ง„์ •ํ•œ ๋ฌด์ž‘์œ„ ๋ฐ์ดํ„ฐ"๋ผ๋Š” ์šฉ์–ด์— ๋ฐ˜๋Œ€ํ•˜๋ฉฐ ์ƒ˜ํ”Œ๋ง๋œ ์žฅ์น˜๋Š” ์›์น™์ ์œผ๋กœ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ •ํ™•ํ•˜๊ฒŒ ๋ชจ๋ธ๋ง๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. "์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ ์–‘์ž ์ด๋ฒคํŠธ๋ฅผ ์ƒ˜ํ”Œ๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."

Mรผller๋Š” ์ด ์šฉ์–ด๊ฐ€ "๊ธฐ๋ณธ ๋…ธ์ด์ฆˆ ์†Œ์Šค๊ฐ€ ์—”ํŠธ๋กœํ”ผ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ์†๋„๋กœ" ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋…์ผ ํ‘œ์ค€ AIS 31์—์„œ ์œ ๋ž˜ํ–ˆ๋‹ค๊ณ  ์‘๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฉ์–ด ์ฐจ์ด๋Š” ์ œ์ณ๋‘๊ณ , LRNG ํŒจ์น˜์—์„œ ์ œ์•ˆํ•œ ๋Œ€๋กœ ์ž ๊ธˆ ํ’€์„ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์†Œํ•œ ๊ถŒํ•œ ์—†์ด ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Lutomirsky๊ฐ€ ๋งํ–ˆ๋“ฏ์ด : โ€œ์ด๊ฒƒ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ช…์˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ gnupg์™€ ๊ฐ™์€ ์–ด๋ฆฌ์„์€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ์„œ๋กœ๋ฅผ ์†Œ๋ชจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ˜„์žฌ /dev/random์— ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. DoS(์˜ˆ: ๋ฆฌ์†Œ์Šค ๊ณ ๊ฐˆ, ์•…์˜์ ์ธ ์˜ํ–ฅ ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ)์— ์ทจ์•ฝํ•˜๊ณ , ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๊ถŒํ•œ์ด ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‚จ์šฉ๋˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. Gnupg๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™„์ „ํžˆ ๋ถ•๊ดด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. gnupg ๋ฐ ์œ ์‚ฌํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•  ๊ถŒํ•œ์ด ์—†๋Š” ์ƒˆ๋กœ์šด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ๋˜ ๋‹ค์‹œ ํŒจ๋ฐฐํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค."

Mueller๋Š” getrandom()์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ด์ œ GnuPG๊ฐ€ ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ’€์ด ์ดˆ๊ธฐํ™”๋˜์—ˆ๋‹ค๋Š” ํ•„์ˆ˜ ๋ณด์žฅ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. GnuPG ๊ฐœ๋ฐœ์ž Werner Koch์™€์˜ ๋…ผ์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Mueller๋Š” ๋ณด์ฆ์ด GnuPG๊ฐ€ ํ˜„์žฌ /dev/random์—์„œ ์ง์ ‘ ์ฝ๋Š” ์œ ์ผํ•œ ์ด์œ ๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„œ๋น„์Šค ๊ฑฐ๋ถ€(์˜ค๋Š˜๋‚ ์˜ /dev/random์ฒ˜๋Ÿผ)์— ์ทจ์•ฝํ•œ ๊ถŒํ•œ ์—†๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ Lutomirsky๋Š” ์ผ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์˜ค์šฉ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค.

Linux์˜ ๋‚œ์ˆ˜ ํ•˜์œ„ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž์ธ Theodore Yue Tak Ts'o๋Š” ์ฐจ๋‹จ ํ’€์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•ด ๋งˆ์Œ์„ ๋ฐ”๊พผ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ด ํ’€์„ ์ œ๊ฑฐํ•˜๋ฉด Linux์— ์ง„์ •ํ•œ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ(TRNG)๊ฐ€ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ํšจ๊ณผ์ ์œผ๋กœ ์ œ๊ฑฐ๋  ๊ฒƒ์ด๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. "์ด๊ฒƒ์€ ๋ง๋„ ์•ˆ๋˜๋Š” ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ์ด ๋ฐ”๋กœ *BSD๊ฐ€ ํ•ญ์ƒ ํ•ด์™”๋˜ ์ผ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค."

๊ทธ๋Š” ๋˜ํ•œ TRNG ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋‹จ์ˆœํžˆ ๋ฏธ๋ผ ์—ญํ• ์„ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์šฐ๋ คํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ Linux๊ฐ€ ์ง€์›ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ณ ๋ คํ•  ๋•Œ ์ปค๋„์—์„œ TRNG๋ฅผ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๋ฃจํŠธ ๊ถŒํ•œ์œผ๋กœ๋งŒ ์žฅ๋น„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์ž๋Š” ๋ณด์•ˆ ๋ชฉ์ ์œผ๋กœ ์ž์‹ ์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฃจํŠธ๋กœ ์„ค์น˜ํ•˜๋„๋ก ์ง€์ •ํ•˜๋ฏ€๋กœ ์ด๊ฒƒ์ด '์ •๋ง ์ข‹์€' ๋‚œ์ˆ˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค."

Mueller๋Š” Cao๊ฐ€ ์ž์‹ ์ด ์˜ค๋žซ๋™์•ˆ ์ œ์•ˆํ–ˆ๋˜ ์ฐจ๋‹จ ํ’€ ๊ตฌํ˜„์„ ํฌ๊ธฐํ–ˆ๋Š”์ง€ ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค. Cao๋Š” Lutomirsky์˜ ํŒจ์น˜๋ฅผ ์‚ฌ์šฉํ•  ๊ณ„ํš์ด๋ฉฐ ์ฐจ๋‹จ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ปค๋„์— ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ์ ๊ทน์ ์œผ๋กœ ๋ฐ˜๋Œ€ํ•œ๋‹ค๊ณ  ์‘๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค.

โ€œ์ปค๋„์€ ๋…ธ์ด์ฆˆ ์†Œ์Šค๊ฐ€ ์ ์ ˆํ•˜๊ฒŒ ํŠน์„ฑํ™”๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. GPG ๋˜๋Š” OpenSSL ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๊ฒƒ์€ TRUERANDOM์ด "๋” ์ข‹๋‹ค"๋Š” ๋ง‰์—ฐํ•œ ๋Š๋‚Œ์ด๋ฉฐ, ๋” ๋งŽ์€ ๋ณด์•ˆ์„ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜์‹ฌํ•  ์—ฌ์ง€ ์—†์ด TRUERANDOM์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋Š ์‹œ์ ์—์„œ๋Š” ์ฐจ๋‹จ๋  ๊ฒƒ์ด๊ณ , ๋‹ค๋ฅธ ๋˜‘๋˜‘ํ•œ ์‚ฌ์šฉ์ž(์•„๋งˆ๋„ ๋ฐฐํฌ ์ „๋ฌธ๊ฐ€)๊ฐ€ ์ด๋ฅผ init ์Šคํฌ๋ฆฝํŠธ์— ์‚ฝ์ž…ํ•˜๊ณ  ์‹œ์Šคํ…œ ์ž‘๋™์ด ์ค‘์ง€๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” Linus Torvalds์—๊ฒŒ ์ง์ ‘ ๋ถˆํ‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.โ€

Cao๋Š” ๋˜ํ•œ ์•”ํ˜ธ ์ž‘์„ฑ์ž์™€ ์‹ค์ œ๋กœ TRNG๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์ž์‹ ์˜ ์—”ํŠธ๋กœํ”ผ๋ฅผ ์ˆ˜ํ™•ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์˜นํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ์—”ํŠธ๋กœํ”ผ ์ˆ˜์ง‘์€ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด์—์„œ ์ปค๋„์ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์ปค๋„ ์ž์ฒด๊ฐ€ ๋‹ค์–‘ํ•œ ์†Œ์Šค์—์„œ ์ œ๊ณต๋˜๋Š” ์—”ํŠธ๋กœํ”ผ์˜ ์–‘์„ ์ถ”์ •ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

"์ปค๋„์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋…ธ์ด์ฆˆ ์†Œ์Šค๋ฅผ ํ•จ๊ป˜ ํ˜ผํ•ฉํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ํ„ฐ๋ฌด๋‹ˆ์—†์ด ๋‹จ์ˆœํ•œ CPU์—์„œ ์ผ์ข…์˜ "ํŠธ์œ„์น˜ ์—”ํŠธ๋กœํ”ผ ๊ฒŒ์ž„"์„ ํ”Œ๋ ˆ์ดํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์—”ํŠธ๋กœํ”ผ ๋น„ํŠธ๋ฅผ ์–ป๋Š”์ง€ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ฃผ์žฅํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์†Œ๋น„์ž ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ๋ชจ๋“  ๊ฒƒ์ด ๋‹จ์ผ ๋งˆ์Šคํ„ฐ ์˜ค์‹ค๋ ˆ์ดํ„ฐ์™€ ๋™๊ธฐํ™”๋˜์ง€ ์•Š๋Š” IOT/์ž„๋ฒ ๋””๋“œ ์‚ฌ๋ก€, ๋ ˆ์ง€์Šคํ„ฐ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” CPU ๋ช…๋ น์ด ์—†๋Š” ๊ฒฝ์šฐ ๋“ฑ์ž…๋‹ˆ๋‹ค."

โ€œ์ด๋Ÿฌํ•œ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ž‘์—…์€ ๊ฐ ์‚ฌ์šฉ์ž์˜ ํ•˜๋“œ์›จ์–ด์—์„œ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๋ฉฐ ์ด๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฐฐํฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹ค์šฉ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์•”ํ˜ธ ์ž‘์„ฑ์ž๋งŒ์„ ์œ„ํ•œ ๊ฒƒ์ด๋ผ๋ฉด ๊ทธ๋“ค์˜ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์ˆ˜ํ–‰๋˜๋„๋ก ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  GPG, OpenSSL ๋“ฑ์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๋ชจ๋‘๊ฐ€ "์šฐ๋ฆฌ๋Š” "์ง„์ •ํ•œ ๋ฌด์ž‘์œ„์„ฑ"์„ ์›ํ•˜๊ณ  ๊ทธ ์ดํ•˜์— ์•ˆ์ฃผํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค."๋ผ๊ณ  ๋งํ•˜๋„๋ก ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์•”ํ˜ธ ์ž‘์„ฑ์ž์—๊ฒŒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ถ„๋ฆฌ๋˜๊ณ  ๋ช…๋ช…๋œ ์ฃผ์š” ์†Œ์Œ์›์— ์•ก์„ธ์Šคํ•˜์—ฌ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•„๋งˆ๋„ ์†Œ์Œ์›์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ์Šค์Šค๋กœ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."

์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ถ€ ์ด๋ฒคํŠธ์— ๋ณด์•ˆ ์˜ํ–ฅ์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์–ด๋–ค ๋ชจ์Šต์ผ์ง€์— ๋Œ€ํ•œ ๋…ผ์˜๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Cao๋Š” ํ‚ค๋ณด๋“œ ์Šค์บ” ์ฝ”๋“œ(์˜ˆ: ํ‚ค ์ž…๋ ฅ)๊ฐ€ ์—”ํŠธ๋กœํ”ผ ์ˆ˜์ง‘์˜ ์ผ๋ถ€๋กœ ํ’€์— ํ˜ผํ•ฉ๋˜์–ด ์žˆ๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. "๊ถŒํ•œ ์žˆ๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด์„œ๋ผ๋„ ์ด๋ฅผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ์•„๋ฌด๋ฆฌ ๋งํ•ด๋„ ํ˜„๋ช…ํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค." ๋‹ค๋ฅธ ์ด๋ฒคํŠธ ํƒ€์ด๋ฐ์œผ๋กœ ์ธํ•ด ์‚ฌ์ด๋“œ ์ฑ„๋„์„ ํ†ตํ•ด ์ผ์ข…์˜ ์ •๋ณด ์œ ์ถœ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Linux์˜ ๋‚œ์ˆ˜ ํ•˜์œ„ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ๋œ ์˜ค๋žœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ณผ์ •์— ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚œ์ˆ˜ ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ์ตœ๊ทผ์— ๊ฒช์€ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์‹ค์ œ๋กœ๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ DoS ๋ฌธ์ œ๋งŒ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ปค๋„์ด ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์ƒ์˜ ๋‚œ์ˆ˜๋ฅผ ์–ป๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. Linux์—์„œ TRNG๊ฐ€ ์—ฌ์ „ํžˆ ๋ฐ”๋žŒ์งํ•˜๋‹ค๋ฉด ์ด ๊ฒฐํ•จ์€ ํ–ฅํ›„์— ํ•ด๊ฒฐ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ ์ปค๋„ ์ž์ฒด ๋‚ด์—์„œ๋Š” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ๊ด‘๊ณ  ๐Ÿ™‚

์šฐ๋ฆฌ์™€ ํ•จ๊ป˜์žˆ์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๊ธฐ์‚ฌ๊ฐ€ ๋งˆ์Œ์— ๋“œ์‹ญ๋‹ˆ๊นŒ? ๋” ์žฌ๋ฏธ์žˆ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด? ์ฃผ๋ฌธํ•˜๊ฑฐ๋‚˜ ์นœ๊ตฌ์—๊ฒŒ ์ถ”์ฒœํ•˜์—ฌ ์šฐ๋ฆฌ๋ฅผ ์ง€์›ํ•˜์‹ญ์‹œ์˜ค. $4.99๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์šฉ ํด๋ผ์šฐ๋“œ VPS, ๊ท€ํ•˜๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๊ฐ€ ๋ฐœ๋ช…ํ•œ ๊ณ ์œ ํ•œ ๋ณด๊ธ‰ํ˜• ์„œ๋ฒ„ ์•„๋‚ ๋กœ๊ทธ: VPS(KVM) E5-2697 v3(6์ฝ”์–ด) 10GB DDR4 480GB SSD 1Gbps์— ๋Œ€ํ•œ ์ „์ฒด ์ง„์‹ค ๋˜๋Š” ์„œ๋ฒ„ ๊ณต์œ  ๋ฐฉ๋ฒ•์€? (RAID1 ๋ฐ RAID10์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ, ์ตœ๋Œ€ 24๊ฐœ ์ฝ”์–ด ๋ฐ ์ตœ๋Œ€ 40GB DDR4).

Dell R730xd๋Š” ์•”์Šคํ…Œ๋ฅด๋‹ด์˜ Equinix Tier IV ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ 2๋ฐฐ ๋” ์ €๋ ดํ•ฉ๋‹ˆ๊นŒ? ์—ฌ๊ธฐ์„œ ๋งŒ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV $199๋ถ€ํ„ฐ ๋„ค๋œ๋ž€๋“œ์—์„œ! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ์ตœ์ € $99! ์— ๋Œ€ํ•ด ์ฝ๋‹ค ์ธํ”„๋ผ ๊ณต์‚ฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•. 730ํŽ˜๋‹ˆ์— 5์œ ๋กœ ์ƒ๋‹น์˜ Dell R2650xd E4-9000 vXNUMX ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค?

์ถœ์ฒ˜ : habr.com

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