๋์งํธ ๋ณด์์์ ์ํธ๋กํผ์ ์ค์ํ ์ญํ ์ ํ๊ตฌํฉ๋๋ค. ์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ ๋ฌด์์์ฑ ์์ค, ์ํธ๋กํผ ํ, ๊ฐ๋ฐ์ ๋ฐ ์์คํ ๊ด๋ฆฌ์๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ค๋ฃน๋๋ค.
๋ณด์ด์ง ์๋ ๋ณด์ ์์ง: ์์คํ ์ํธ๋กํผ ์์ง์ ๋ํ ์ฌ์ธต ๋ถ์
๋์งํธ ์ธ๊ณ์์ ์ฐ๋ฆฌ๋ ๋น๋ฐ์ ์์กดํฉ๋๋ค. ์ด๋ฉ์ผ ๋น๋ฐ๋ฒํธ, ๊ธ์ต ๊ฑฐ๋๋ฅผ ์ํธํํ๋ ํค, ์๋น์ค์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ๋ ์ธ์ ํ ํฐ์ ๋ชจ๋ ์์ธกํ ์ ์๋ ํ์์๋ง ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ ์ด ๋ค์ "๋น๋ฐ"์ ์ถ์ธกํ ์ ์๋ค๋ฉด ๋ ์ด์ ๋น๋ฐ์ด ์๋๋๋ค. ์ด๋ฌํ ์์ธก ๋ถ๊ฐ๋ฅ์ฑ์ ํต์ฌ์๋ ์ ๋ณด ์ด๋ก ๊ณผ ๋ฌผ๋ฆฌํ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ด ์์ผ๋ฉฐ ์ปดํจํ ์ ๋ง๊ฒ ์ฉ๋๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค. ๋ฐ๋ก ์ํธ๋กํผ์ ๋๋ค.
์ปดํจํฐ ๊ณผํ์ ๋๋ ๋ณด์ ์ ๋ฌธ๊ฐ์๊ฒ ์ํธ๋กํผ๋ ๋ฌด์์์ฑ, ์ฆ ๋๋ผ์์ ์ฒ๋์ ๋๋ค. ์ํธํ์ ์๋ช ์ ์ด์ ๋์งํธ ์ ์์ ๋ณดํธํ๋ ์นจ๋ฌต์ ์ํธ์์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ฒฐ์ ์ ์ด๊ณ ๋ ผ๋ฆฌ ๊ธฐ๋ฐ์ธ ๊ธฐ๊ณ๋ ์ด๋์์ ์ด๋ฌํ ํ์์ ์ธ ํผ๋์ ์ฐพ์ ์ ์์๊น์? ์์ธก ๊ฐ๋ฅํ 1๊ณผ 0์ ํ ๋ ์์ ๊ตฌ์ถ๋ ์ปดํจํฐ๋ ์ด๋ป๊ฒ ์ง์ ํ ์์ธก ๋ถ๊ฐ๋ฅ์ฑ์ ์์ฑํ ๊น์?
์ด ์ฌ์ธต ๋ถ์์ ์ํธ๋กํผ ์์ง์ ๋งคํน์ ์ด๊ณ ์ข ์ข ๋ณด์ด์ง ์๋ ํ๋ก์ธ์ค๋ฅผ ์กฐ๋ช ํฉ๋๋ค. ์ด์ ์ฒด์ ๊ฐ ๋ฌผ๋ฆฌ์ ์ธ๊ณ์์ ๋ฌด์์์ฑ์ ์์งํ๋ ๋ ์ฐฝ์ ์ธ ๋ฐฉ๋ฒ, ๊ด๋ฆฌ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ด ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๋ ๊ฒ์ด ํ๋ ์ปดํจํฐ ์์คํ ์ ๊ตฌ์ถ, ๊ด๋ฆฌ ๋๋ ๋ณดํธํ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ์ ์ค์ํ์ง ์ดํด๋ณผ ๊ฒ์ ๋๋ค.
์ํธ๋กํผ๋ ๋ฌด์์ด๋ฉฐ ์ ์ค์ํ ๊น์?
์์ค๋ฅผ ์ดํด๋ณด๊ธฐ ์ ์ ๊ณ์ฐ ๋งฅ๋ฝ์์ ์ํธ๋กํผ๊ฐ ๋ฌด์์ ์๋ฏธํ๋์ง ๋ช ํํ๊ฒ ์ดํดํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฐฉ์ ๋ฌด์ง์์ ๋ํ ๊ฒ์ด ์๋๋ผ ์ ๋ณด์ ์์ธก ๋ถ๊ฐ๋ฅ์ฑ์ ๋ํ ๊ฒ์ ๋๋ค. ์ํธ๋กํผ๊ฐ ๋์ ๋ฐ์ดํฐ ๋ฌธ์์ด์ ์ถ์ธกํ๊ฑฐ๋ ์์ถํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์๋ฅผ ๋ค์ด "aaaaaaaa" ๋ฌธ์์ด์ ์ํธ๋กํผ๊ฐ ๋งค์ฐ ๋ฎ๊ณ "8jK(t^@L"๊ณผ ๊ฐ์ ๋ฌธ์์ด์ ์ํธ๋กํผ๊ฐ ๋์ต๋๋ค.
๊ณ์ฐ ๋ฌด์์์ฑ ์ ์
๋์ ์์ฑ์ ์ธ๊ณ์์ ์ฐ๋ฆฌ๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ฒ์ฃผ๋ฅผ ์ ํ๊ฒ ๋ฉ๋๋ค.
- ์์ฌ ๋์ ์์ฑ๊ธฐ(PRNG): ๊ฒ์ผ๋ก๋ ๋ฌด์์์ ์ผ๋ก ๋ณด์ด๋ ์ผ๋ จ์ ์ซ์๋ฅผ ์์ฑํ์ง๋ง ์ค์ ๋ก๋ "์๋"๋ผ๊ณ ํ๋ ์ด๊ธฐ ๊ฐ์ ์ํด ์์ ํ ๊ฒฐ์ ๋๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๋์ผํ ์๋๊ฐ ์ฃผ์ด์ง๋ฉด PRNG๋ ํญ์ ์ ํํ ๋์ผํ ์ซ์ ์ํ์ค๋ฅผ ์์ฑํฉ๋๋ค. ์ฌํ์ฑ์ด ํ์ํ ์๋ฎฌ๋ ์ด์ ๋ฐ ๋ชจ๋ธ๋ง์๋ ํ์ํ์ง๋ง ์๋๋ฅผ ์ถ์ธกํ ์ ์๋ ๊ฒฝ์ฐ ๋ณด์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์ํํ ์ ๋๋ก ์์ธก ๊ฐ๋ฅํฉ๋๋ค.
- ์ง์ ํ ๋์ ์์ฑ๊ธฐ(TRNG): ์ด๋ฌํ ์์ฑ๊ธฐ๋ ์ํ์ ๊ณต์์ ์์กดํ์ง ์์ต๋๋ค. ๋์ ์์ธกํ ์ ์๋ ๋ฌผ๋ฆฌ์ ํ์์์ ๋ฌด์์์ฑ์ ํ์์ํต๋๋ค. TRNG์ ์ถ๋ ฅ์ ๋น๊ฒฐ์ ์ ์ ๋๋ค. ์ด์ ์ซ์์ ์ ์ฒด ๊ธฐ๋ก์ ์๊ณ ์์ด๋ ๋ค์ ์ซ์๋ฅผ ์์ธกํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๊ฐ๋ ฅํ ์ํธํ์ ํ์ํ ๋ฌด์์์ฑ ํ์ง์ ๋๋ค.
์์คํ ์ํธ๋กํผ ์์ง์ ๋ชฉํ๋ TRNG ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ ์ ๊ณตํ๊ฑฐ๋, ๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก๋ ๊ณ ํ์ง์ ์ํธํ ๋ฐฉ์์ผ๋ก ์์ ํ PRNG(CSPRNG)๋ฅผ ์์ ํ๊ฒ ์๋ํ๋ ๊ฒ์ ๋๋ค.
๋ณด์์์ ์ํธ๋กํผ์ ์ค์ํ ์ญํ
๊ณ ํ์ง ์ํธ๋กํผ๊ฐ ๋ถ์กฑํ๋ฉด ์น๋ช ์ ์ธ ๋ณด์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์์คํ ์ด ์์ธก ๊ฐ๋ฅํ "๋ฌด์์" ์ซ์๋ฅผ ์์ฑํ๋ฉด ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์ ์ฒด ๋ณด์ ์ํคํ ์ฒ๊ฐ ๋ฌด๋์ง๋๋ค. ์ํธ๋กํผ๊ฐ ํ์์ ์ธ ๋ช ๊ฐ์ง ์์ญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ํธํ ํค ์์ฑ: SSH ํค, PGP ํค ๋๋ SSL/TLS ์ธ์ฆ์๋ฅผ ์์ฑํ ๋ ์์คํ ์๋ ๋ง์ ์์ ์ง์ ํ ๋ฌด์์์ฑ์ด ํ์ํฉ๋๋ค. ๋ ์์คํ ์ด ๋์ผํ ์์ธก ๊ฐ๋ฅํ ๋ฌด์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ฅผ ์์ฑํ๋ฉด ๋์ผํ ํค๊ฐ ์์ฑ๋๋ฉฐ ์ด๋ ํ๊ดด์ ์ธ ๊ฒฐํจ์ ๋๋ค.
- ์ธ์ ๊ด๋ฆฌ: ์น์ฌ์ดํธ์ ๋ก๊ทธ์ธํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ณํ๊ธฐ ์ํด ๊ณ ์ ํ ์ธ์ ID๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด ID๋ ๊ณต๊ฒฉ์๊ฐ ์ธ์ ์ ๊ฐ๋ก์ฑ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ถ์ธกํ ์ ์์ด์ผ ํฉ๋๋ค.
- Nonce ๋ฐ Salt: ์ํธํ์์ "nonce"(ํ ๋ฒ ์ฌ์ฉ๋๋ ์ซ์)๋ ์ฌ์ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋น๋ฐ๋ฒํธ ํด์ฑ์์ "salt"๋ ๋ฌด์ง๊ฐ ํ ์ด๋ธ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํด์ฑ ์ ์ ๋น๋ฐ๋ฒํธ์ ์ถ๊ฐ๋๋ ์์ ๊ฐ์ ๋๋ค. ๋ ๋ค ์์ธกํ ์ ์์ด์ผ ํฉ๋๋ค.
- ์ํธํ ํ๋กํ ์ฝ: TLS์ ๊ฐ์ ํ๋กํ ์ฝ์ ์ธ์ ์ ๋ํ ๊ณต์ ๋น๋ฐ ํค๋ฅผ ์ค์ ํ๊ธฐ ์ํด ํธ๋์ ฐ์ดํฌ ํ๋ก์ธ์ค ์ค์ ๋์์ ์์กดํฉ๋๋ค. ์ฌ๊ธฐ์ ์์ธก ๊ฐ๋ฅํ ์ซ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ฒญ์๊ฐ ์ ์ฒด ๋ํ๋ฅผ ํด๋ ํ ์ ์์ต๋๋ค.
๋ฌด์์์ฑ ์ฐพ๊ธฐ: ์์คํ ์ํธ๋กํผ ์์ค
์ด์ ์ฒด์ ๋ ๊ด์ฐฐ์ ๋ฌ์ธ์ด๋ฏ๋ก ์์ธกํ ์ ์๋ ๋ฌผ๋ฆฌ์ ์ธ๊ณ์ ์์์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํฉ๋๋ค. ์ด ์์์ ๋์งํธํ๋์ด ์ฒ๋ฆฌ๋๋ฉด ์์คํ ์ํธ๋กํผ ํ์ ์๋ฃ๊ฐ ๋ฉ๋๋ค. ์์ค๋ ๋ค์ํ๊ณ ๋ ์ฐฝ์ ์ด์ด์ ํ๋ฒํ ์ด๋ฒคํธ๋ฅผ ๊ท์คํ ๋ฌด์์์ฑ์ ํ๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
ํ๋์จ์ด ๊ธฐ๋ฐ ์์ค: ๋ฌผ๋ฆฌ์ ์ธ๊ณ ํ์ฉ
์ํธ๋กํผ์ ๊ฐ์ฅ ์ ๋ขฐํ ์ ์๋ ์์ค๋ ํ๋์จ์ด ๊ตฌ์ฑ ์์์ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ๋ฏธ๋ฌํ๊ณ ํผ๋์ค๋ฌ์ด ๋ณ๋์์ ๋น๋กฏ๋ฉ๋๋ค. ํต์ฌ์ ์ด๋ฌํ ์ด๋ฒคํธ์ ์ ํํ ํ์ด๋ฐ์ ์ธก์ ํ๋ ๊ฒ์ ๋๋ค. ํ์ด๋ฐ์ ์์ธกํ ์ ์๋ ์๋ง์ ๋ฌผ๋ฆฌ์ ์์ธ์ ์ํฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ์ฉ์ ์ ๋ ฅ ํ์ด๋ฐ
์ฌ์ฉ์๊ฐ ๋ฐ๋ณต์ ์ธ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ์๋ ์์ ์ ์ ํํ ํ์ด๋ฐ์ ๊ฒฐ์ฝ ์๋ฒฝํ๊ฒ ๋์ผํ์ง ์์ต๋๋ค. ์ด์ ์ฒด์ ์ ์ปค๋์ ์ด๋ฌํ ๋ณ๋์ ๋ง์ดํฌ๋ก์ด ๋๋ ๋๋ ธ์ด ๋จ์๋ก ์ธก์ ํ ์ ์์ต๋๋ค.
- ํค๋ณด๋ ํ์ด๋ฐ: ์์คํ ์ ์ฌ์ฉ์๊ฐ ์ด๋ค ํค๋ฅผ ๋๋ฅด๋์ง ์ ๊ฒฝ ์ฐ์ง ์์ง๋ง ์ธ์ ๋๋ฅด๋์ง๋ ์ ๊ฒฝ ์๋๋ค. ํค ๋๋ฆ ๊ฐ ์ง์ฐ(ํ ํค ๋๋ฆ๊ณผ ๋ค์ ํค ๋๋ฆ ์ฌ์ด์ ์๊ฐ)์ ์ธ๊ฐ์ ์ฌ๊ณ ๊ณผ์ , ๋ฏธ์ธํ ๊ทผ์ก ๊ฒฝ๋ จ ๋ฐ ์์คํ ๋ก๋์ ์ํฅ์ ๋ฐ๋ ํ๋ถํ ์ํธ๋กํผ ์์ค์ ๋๋ค.
- ๋ง์ฐ์ค ์์ง์: ๋ง์ฐ์ค ์ปค์๊ฐ ํ๋ฉด์ ๊ฐ๋ก์ง๋ฅด๋ ๊ฒฝ๋ก๋ ๊ฒฐ์ฝ ์ง์ ์ด ์๋๋๋ค. ์ปค๋์ ๊ฐ ์์ง์ ์ด๋ฒคํธ์ X/Y ์ขํ์ ํ์ด๋ฐ์ ์บก์ฒํฉ๋๋ค. ์ ์์ง์์ ํผ๋์ค๋ฌ์ด ํน์ฑ์ ์ง์์ ์ธ ์์ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ ๊ณตํฉ๋๋ค.
ํ๋์จ์ด ์ธํฐ๋ฝํธ ๋ฐ ์ฅ์น ํ์ด๋ฐ
ํ๋ ์ปดํจํฐ๋ ๋น๋๊ธฐ ์ด๋ฒคํธ์ ๊ตํฅ๊ณก์ ๋๋ค. ์ฅ์น๋ ์์ ์ ์๋ฃํ์์ ๋ณด๊ณ ํ๊ธฐ ์ํด CPU๋ฅผ ์ง์์ ์ผ๋ก ์ธํฐ๋ฝํธํฉ๋๋ค. ์ด๋ฌํ ์ธํฐ๋ฝํธ์ ํ์ด๋ฐ์ ํ์์ ์ธ ์ํธ๋กํผ ์์ค์ ๋๋ค.
- ๋คํธ์ํฌ ํจํท ๋์ฐฉ ์๊ฐ: ๋คํธ์ํฌ ํจํท์ด ์๋ฒ์์ ์ปดํจํฐ๋ก ์ด๋ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์์ธกํ ์ ์๋ ์ฌ๋ฌ ์์ธ์ ์ํฅ์ ๋ฐ์ต๋๋ค. ๋คํธ์ํฌ ์ ์ฒด, ๋ผ์ฐํฐ ๋๊ธฐ์ด ์ง์ฐ, Wi-Fi ์ ํธ์ ๋๊ธฐ ๊ฐ์ญ, ์์ฑ ๋งํฌ์ ์ํฅ์ ๋ฏธ์น๋ ํ์ ํ๋ ์ด ๋ฑ์ด ์์ต๋๋ค. ์ปค๋์ ๊ฐ ํจํท์ ์ ํํ ๋์ฐฉ ์๊ฐ์ ์ธก์ ํ์ฌ ์งํฐ๋ฅผ ์ํธ๋กํผ๋ก ์์งํฉ๋๋ค.
- ๋์คํฌ I/O ํ์ด๋ฐ: ํ๋ ๋๋ผ์ด๋ธ์ ์ฝ๊ธฐ/์ฐ๊ธฐ ํค๋๊ฐ ํน์ ํธ๋์ผ๋ก ์ด๋ํ๊ณ ํ๋ํฐ๊ฐ ์ฌ๋ฐ๋ฅธ ์นํฐ๋ก ํ์ ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋๋ผ์ด๋ธ ์ผ์ด์ค ๋ด์ ์์ ๋ฌผ๋ฆฌ์ ๋ณ๋ ๋ฐ ๊ณต๊ธฐ ๋๋ฅ์ ์ํฅ์ ๋ฐ์ต๋๋ค. ์๋ฆฌ๋ ์คํ ์ดํธ ๋๋ผ์ด๋ธ(SSD)์ ๊ฒฝ์ฐ ํ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ ํ์ด๋ฐ์๋ ๋น๊ฒฐ์ ์ ์์๊ฐ ์์ ์ ์์ต๋๋ค. ์ด๋ฌํ I/O ์์ฒญ์ ์๋ฃ ์๊ฐ์ ๋ ๋ค๋ฅธ ๋ฌด์์์ฑ ์์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํน์ ํ๋์จ์ด ๋์ ์์ฑ๊ธฐ(HRNG)
๋ณด์์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์ฃผ๋ณ ์์์ ์์กดํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ด ์ ์ฉ ํ๋์จ์ด๊ฐ ํ์ํ ์ด์ ์ ๋๋ค. ๋ง์ ์ต์ CPU์ ์นฉ์ ์๋ ์ค๋ฆฌ์ฝ ์์ฒด์ ํน์ HRNG๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- ์๋ ๋ฐฉ์: ์ด๋ฌํ ์นฉ์ ์ง์ ์ผ๋ก ์์ธกํ ์ ์๋ ๋ฌผ๋ฆฌ์ ํ์์ ํ์ฉํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์๋ ์ด ๋ ธ์ด์ฆ(์ ํญ๊ธฐ์์ ์ ์์ ์์ ์์ง์), ๋ฐ๋์ฒด์ ์์ ํฐ๋๋ง ํจ๊ณผ ๋๋ ๋ฐฉ์ฌ์ฑ ์์ค์ ๋ถ๊ดด๋ฅผ ์ธก์ ํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ํ๋ก์ธ์ค๋ ์์ ์ญํ์ ๋ฒ์น์ ๋ฐ๋ผ ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ฒฐ๊ณผ๋ ๊ทผ๋ณธ์ ์ผ๋ก ์์ธกํ ์ ์์ต๋๋ค.
- ์: ๋์ ๋๋ ์๋ `RDRAND` ๋ฐ `RDSEED` ๋ช ๋ น์ด๋ฅผ ํฌํจํ๋ Intel์ Secure Key ๊ธฐ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ํํธ์จ์ด๋ ์นฉ ๋ด HRNG์์ ๊ณ ํ์ง ์์ ๋นํธ๋ฅผ ์ง์ ์์ฒญํ ์ ์์ต๋๋ค. AMD ํ๋ก์ธ์์๋ ์ ์ฌํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด๋ ์ํธ๋กํผ์ ๊ธ๋ณธ์์ ๋ก ๊ฐ์ฃผ๋๋ฉฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ต์ ์ด์ ์ฒด์ ์์ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
ํ๊ฒฝ ์์
์ผ๋ถ ์์คํ ์ ์ฆ๊ฐ์ ์ธ ํ๊ฒฝ์ ์์์ ํ์ฉํ ์๋ ์์ง๋ง ์ด๋ ๋ฒ์ฉ ์๋ฒ ๋ฐ ๋ฐ์คํฌํฑ์์๋ ๋ ์ผ๋ฐ์ ์ ๋๋ค.
- ์ค๋์ค ์ ๋ ฅ: ์ฃผ๋ณ ์ค๋ด ์์ ๋๋ ๋ง์ดํฌ ์์ฒด ํ๋ก์ ์ด ๋ ธ์ด์ฆ๋ฅผ ์บก์ฒํ๋ ๋ง์ดํฌ ์ ๋ ฅ์ ์ตํ์ ๋นํธ๋ ์ํธ๋กํผ ์์ค๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- ๋น๋์ค ์ ๋ ฅ: ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณด์ ๋์ง ์์ ์นด๋ฉ๋ผ ์ผ์์ ๋ ธ์ด์ฆ(๊ท ์ผํ ํ๋ฉด์ ๊ฐ๋ฆฌํค๋๋ผ๋ ํฝ์ ๋ฐ๊ธฐ์ ์ฝ๊ฐ์ ์์ ๋ณ๋)๋ฅผ ๋์งํธํํ์ฌ ์ํธ๋กํผ ํ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ํธ๋กํผ ํ: ์์คํ ์ ๋ฌด์์์ฑ ์ ์ฅ์
์ด๋ฌํ ๋ค์ํ ์์ค์์ ์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๊ฒ์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ผ ๋ฟ์ ๋๋ค. ์ด ์์ ๋ฐ์ดํฐ๊ฐ ๊ท ๋ฑํ๊ฒ ๋ฐฐํฌ๋์ง ์์ ์ ์์ผ๋ฉฐ ๊ณต๊ฒฉ์๊ฐ ์์ค ์ค ํ๋์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด์ ์ฒด์ ๋ ์ํธ๋กํผ ํ์ด๋ผ๋ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํฉ๋๋ค.
์ํธ๋กํผ ํ์ ํฐ ์ฅ์ด๋ผ๊ณ ์๊ฐํ์ญ์์ค. ์ด์ ์ฒด์ ๋ ํค๋ณด๋ ํ์ด๋ฐ, ๋ง์ฐ์ค ์์ง์, ๋์คํฌ I/O ๋ฐ ๊ธฐํ ์์ค์์ ์์งํ ์์ ๋นํธ๋ฅผ ์ฌ๋ฃ๋ก ๋์ ธ ๋ฃ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋จ์ํ ํผํฉํ๋ ๊ฒ์ด ์๋๋ผ ์ํธํ "๊ต๋ฐ" ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
์๋ ๋ฐฉ์: ๋๋น ํ์ ๊ธฐ
์ ์์ ๋ฐ์ดํฐ(์: ๋คํธ์ํฌ ํจํท ๋์ฐฉ ์๊ฐ)๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๋จ์ํ ํ์ ์ถ๊ฐ๋์ง ์์ต๋๋ค. ๋์ SHA-1 ๋๋ SHA-256๊ณผ ๊ฐ์ ๊ฐ๋ ฅํ ์ํธํ ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ ํ์ฌ ์ํ์ ๊ฒฐํฉ๋ฉ๋๋ค. ์ด ํ๋ก์ธ์ค์๋ ๋ช ๊ฐ์ง ์ค์ํ ์ด์ ์ด ์์ต๋๋ค.
- Whitening/Mixing: ์ํธํ ํด์ ํจ์๋ ์ ์ ๋ ฅ์ ๊ธฐ์กด ํ๊ณผ ์์ ํ ํผํฉํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ ์ ๋ ฅ์ด ๊ท ๋ฑํ์ง ์๋๋ผ๋ ํ์ ์ถ๋ ฅ์ด ํต๊ณ์ ์ผ๋ก ๊ท ๋ฑํด์ง๋๋ค. ์ ๋ ฅ ์์ค์ ๋ชจ๋ ํธํฅ์ ์ํํฉ๋๋ค.
- ์ญ์ถ์ ์ ํญ: ํด์ ํจ์์ ๋จ๋ฐฉํฅ ํน์ฑ์ผ๋ก ์ธํด ์ํธ๋กํผ ํ์ ์ถ๋ ฅ์ ๊ด์ฐฐํ๋ ๊ณต๊ฒฉ์๋ ํ๋ก์ธ์ค๋ฅผ ๋๋๋ ค ํ์ ์ด์ ์ํ ๋๋ ์ถ๊ฐ๋ ์์ ์ ๋ ฅ์ ํ์ ํ ์ ์์ต๋๋ค.
- ์์ค ๋ ๋ฆฝ์ฑ: ์์ญ ๊ฐ์ ์์ค์์ ์ ๋ ฅ์ ์ง์์ ์ผ๋ก ํผํฉํจ์ผ๋ก์จ ์์คํ ์ ๊ณต๊ฒฉ์๊ฐ ํ๋์ ์์ค(์: ์์ธก ๊ฐ๋ฅํ ์๋๋ก ๋คํธ์ํฌ ํจํท์ ๋ณด๋ด๋ ๊ฒ)๋ฅผ ์ ์ดํ ์ ์๋๋ผ๋ ๊ทธ ์ํฅ๋ ฅ์ด ํฌ์๋๊ณ ํผํฉ๋๋ ๋ค๋ฅธ ๋ชจ๋ ์์ค์ ์ํด ๊ฐ๋ ค์ง๋๋ก ํฉ๋๋ค.
๋ ๊ฐ์ง ์ก์ธ์ค ๋ฐฉ์: ์ฐจ๋จ vs. ๋น์ฐจ๋จ
Linux์ ๊ฐ์ Unix ๊ณ์ด ์์คํ ์์ ์ปค๋์ ์ํธ๋กํผ ํ์ ์ผ๋ฐ์ ์ผ๋ก `/dev/random` ๋ฐ `/dev/urandom`์ด๋ผ๋ ๋ ๊ฐ์ ํน์ ์ฅ์น ํ์ผ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ธ์ถ๋ฉ๋๋ค. ์ด๋ค ๊ฐ์ ์ฐจ์ด์ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ฉฐ ์ผ๋ฐ์ ์ธ ํผ๋ ์ฌํญ์ ๋๋ค.
/dev/random: ๋์ ๋ณด์ฆ ์์ค
`/dev/random`์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ์ปค๋์ ๋จผ์ ํ์ ํ์ฌ ์๋ "์ง์ ํ" ์ํธ๋กํผ ์์ ์ถ์ ํฉ๋๋ค. 32๋ฐ์ดํธ์ ๋ฌด์์์ฑ์ ์์ฒญํ์ง๋ง ์ปค๋์ด 10๋ฐ์ดํธ ์๋น์ ์ํธ๋กํผ๋ง ๊ฐ์ง๊ณ ์๋ค๊ณ ์ถ์ ํ๋ ๊ฒฝ์ฐ `/dev/random`์ ํด๋น 10๋ฐ์ดํธ๋ฅผ ์ ๊ณตํ ๋ค์ ์ฐจ๋จํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ์ ์ค์งํ๊ณ ์์ค์์ ๋๋จธ์ง ์์ฒญ์ ์ถฉ์กฑํ ๋งํผ ์ถฉ๋ถํ ์ ์ํธ๋กํผ๋ฅผ ์์งํ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
์ธ์ ์ฌ์ฉํด์ผ ํ ๊น์? ์ญ์ฌ์ ์ผ๋ก ์ด๊ฒ์ ๋งค์ฐ ๊ฐ์น๊ฐ ๋์ ์ฅ๊ธฐ ์ํธํ ํค(์: GPG ๋ง์คํฐ ํค)๋ฅผ ์์ฑํ๋ ๋ฐ ๊ถ์ฅ๋์์ต๋๋ค. ์ฐจ๋จ ํน์ฑ์ ์์ ๋ณด์ฅ์ผ๋ก ๊ฐ์ฃผ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ก ์ธํด ์ํธ๋กํผ๊ฐ ๋ฎ์ ์์คํ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฌดํ์ ๋ฉ์ถ์ด ๋๋ถ๋ถ์ ์ฉ๋์ ์ค์ฉ์ ์ด์ง ์๊ฒ ๋ ์ ์์ต๋๋ค.
/dev/urandom: ๊ณ ์ฑ๋ฅ ์์ค
`/dev/urandom`(๋ฌด์ ํ/๋น์ฐจ๋จ ์์)์ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ทจํฉ๋๋ค. ์ํธ๋กํผ ํ์ ์ฌ์ฉํ์ฌ ๊ณ ํ์ง์ ์ํธํ ๋ฐฉ์์ผ๋ก ์์ ํ PRNG(CSPRNG)๋ฅผ ์๋ํฉ๋๋ค. ์ด CSPRNG๊ฐ ์ถฉ๋ถํ ์ง์ ํ ์ํธ๋กํผ๋ก ์๋๋๋ฉด ๋งค์ฐ ๋น ๋ฅธ ์๋๋ก ๊ณ์ฐ์ ์ผ๋ก ์์ธกํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฑฐ์ ๋ฌดํ๋๋ก ์์ฑํ ์ ์์ต๋๋ค. `/dev/urandom`์ ์ ๋ ์ฐจ๋จ๋์ง ์์ต๋๋ค.
์ธ์ ์ฌ์ฉํด์ผ ํ ๊น์? ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ 99.9%์ ํด๋นํฉ๋๋ค. ์ค๋๋ ์ ํ์์๋ `/dev/urandom`์ด ์ด๋๊ฐ์ ์์ ํ์ง ์๋ค๊ณ ํฉ๋๋ค. ์ด๊ฒ์ ์๋์ ๋ค๋จ์ด์ง ๊ฒ์ ๋๋ค. ์ต์ ์ด์ ์ฒด์ (์: 2.6 ์ดํ์ Linux ์ปค๋)์์ ํ์ด ์ด๊ธฐํ๋๋ฉด(๋ถํ ํ๋ก์ธ์ค ์ด๊ธฐ์ ๋ฐ์) `/dev/urandom`์ ์ถ๋ ฅ์ ๋ชจ๋ ๋ชฉ์ ์ ๋ํด ์ํธํ ๋ฐฉ์์ผ๋ก ์์ ํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ต์ ์ํธํ ๋ฐ ๋ณด์ ์ ๋ฌธ๊ฐ๋ ๋ณดํธ์ ์ผ๋ก `/dev/urandom` ๋๋ ํด๋น ์์คํ ํธ์ถ(`getrandom()` on Linux, `CryptGenRandom()` on Windows)์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ํธ๋กํผ ์์ง์ ๊ณผ์ ๋ฐ ๊ณ ๋ ค ์ฌํญ
์ต์ ์ด์ ์ฒด์ ๋ ์ํธ๋กํผ ์์ง์ ๋งค์ฐ ๋ฅ์ํ์ง๋ง ํน์ ์๋๋ฆฌ์ค์์๋ ์๋นํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
"์ฝ๋ ์คํํธ" ๋ฌธ์
์ฅ์น๊ฐ ์ฒ์ ๋ถํ ๋ ๋ ์ด๋ป๊ฒ ๋ ๊น์? ์ํธ๋กํผ ํ์ด ๋น์ด ์์ต๋๋ค. ๋ฐ์คํฌํฑ ์ปดํจํฐ์์ ์ฌ์ฉ์๋ ๋ง์ฐ์ค๋ฅผ ๋น ๋ฅด๊ฒ ์์ง์ด๊ณ ์ ๋ ฅํ๊ธฐ ์์ํ์ฌ ํ์ ๋น ๋ฅด๊ฒ ์ฑ์๋๋ค. ๊ทธ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ ์ด๋ ค์ด ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ํค๋๋ฆฌ์ค ์๋ฒ: ๋ฐ์ดํฐ ์ผํฐ์ ์๋ฒ์๋ ํค๋ณด๋๋ ๋ง์ฐ์ค๊ฐ ์ฐ๊ฒฐ๋์ด ์์ง ์์ต๋๋ค. ์๋น์ค๊ฐ ์์๋๊ธฐ ์ ์ด๊ธฐ ๋ถํ ์ค์๋ ๋๋ฌผ ์ ์๋ ๋คํธ์ํฌ ๋ฐ ๋์คํฌ ์ธํฐ๋ฝํธ์๋ง ์์กดํฉ๋๋ค.
- IoT ๋ฐ ์๋ฒ ๋๋ ์ฅ์น: ์ค๋งํธ ์จ๋ ์กฐ์ ์ฅ์น ๋๋ ์ผ์๋ ๋์คํฌ ์์, ์ต์ ๋คํธ์ํฌ ํธ๋ํฝ ๋ฐ ์ฌ์ฉ์ ์ํธ ์์ฉ ์์๊ณผ ๊ฐ์ด ์ํธ๋กํผ ์์ค๊ฐ ๋งค์ฐ ์ ์ ์ ์์ต๋๋ค.
์ด "์ฝ๋ ์คํํธ"๋ ์๋น์ค๊ฐ ๋ถํ ํ๋ก์ธ์ค ์ด๊ธฐ์ ์์๋๊ณ ์ํธ๋กํผ ํ์ด ์ ๋๋ก ์๋๋๊ธฐ ์ ์ ๋์๋ฅผ ์์ฒญํ๋ฉด ์์ธก ๊ฐ๋ฅํ ์ถ๋ ฅ์ ์์ ํ ์ ์์ผ๋ฏ๋ก ์ํํฉ๋๋ค. ์ด๋ฅผ ์ํํ๊ธฐ ์ํด ์ต์ ์์คํ ์ ์ข ๋ฃ ์ค์ ์ด์ ์ธ์ ์ ์ํธ๋กํผ ํ์์ ์์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ "์๋ ํ์ผ"์ ์ ์ฅํ๊ณ ๋ค์ ๋ถํ ์ ํ์ ์ด๊ธฐํํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.
๊ฐ์ํ๋ ํ๊ฒฝ ๋ฐ ๋ณต์ ๋ ์์คํ
๊ฐ์ํ๋ ์ฃผ์ ์ํธ๋กํผ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํฉ๋๋ค. ๊ฐ์ ๋จธ์ (VM)์ ๋ฌผ๋ฆฌ์ ํ๋์จ์ด์์ ๊ฒฉ๋ฆฌ๋์ด ๋์คํฌ ํ์ด๋ฐ ๋๋ ํธ์คํธ์ ๋ค๋ฅธ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ฅผ ์ง์ ๊ด์ฐฐํ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ์ข์ ์ํธ๋กํผ ์์ค๊ฐ ๋ถ์กฑํฉ๋๋ค.
๋ฌธ์ ๋ ๋ณต์ ๋ก ์ธํด ์ฆํญ๋ฉ๋๋ค. VM ํ ํ๋ฆฟ์ ๋ง๋ค๊ณ ๊ฑฐ๊ธฐ์์ 100๊ฐ์ ์ VM์ ๋ฐฐํฌํ๋ฉด 100๊ฐ ๋ชจ๋ ์ํธ๋กํผ ํ ์๋ ์ํ๋ฅผ ํฌํจํ์ฌ ์ ํํ ๋์ผํ ์ํ๋ก ๋ถํ ๋ ์ ์์ต๋๋ค. ์ฒ์ ๋ถํ ์ SSH ํธ์คํธ ํค๋ฅผ ๋ชจ๋ ์์ฑํ๋ฉด ์ ํํ ๋์ผํ ํค๋ฅผ ๋ชจ๋ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ ์์ฒญ๋ ๋ณด์ ์ทจ์ฝ์ ์ ๋๋ค.
ํด๊ฒฐ์ฑ ์ `virtio-rng`์ ๊ฐ์ ๋ฐ๊ฐ์ํ๋ ๋์ ์์ฑ๊ธฐ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฒ์คํธ VM์ด ํธ์คํธ์์ ์ํธ๋กํผ๋ฅผ ์์ฒญํ ์ ์๋ ์ง์ ์ ์ด๊ณ ์์ ํ ์ฑ๋์ด ์์ฑ๋ฉ๋๋ค. ํธ์คํธ๋ ๋ชจ๋ ๋ฌผ๋ฆฌ์ ํ๋์จ์ด์ ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก ์ํธ๋กํผ๊ฐ ํ๋ถํ๊ณ ๊ฒ์คํธ์ ์์ ํ๊ฒ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ํธ๋กํผ ๊ธฐ์
์ํธ๋กํผ ๊ธฐ์๋ ์์คํ ์ ๋์ ์์๊ฐ ์๋ก์ด ์ํธ๋กํผ๋ฅผ ์์งํ๋ ๋ฅ๋ ฅ์ ์ด๊ณผํ ๋ ๋ฐ์ํฉ๋๋ค. ์ด๋น ์์ฒ ๊ฑด์ TLS ํธ๋์ ฐ์ดํฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ์ ์น ์๋ฒ๋ ๋ฌด์์์ฑ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์๋นํ ์ ์์ต๋๋ค. ์ด ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด `/dev/random`์ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ ์ฐจ๋จ๋๊ธฐ ์์ํ์ฌ ์ฌ๊ฐํ ์ฑ๋ฅ ์ ํ ๋ฐ ์ฐ๊ฒฐ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด `/dev/urandom`์ด ๊ฑฐ์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ํธ๋๋ ์ธํฐํ์ด์ค์ธ ์ฃผ๋ ์ด์ ์ ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ์ต์ ์๋ฃจ์
์์คํ ์ํธ๋กํผ ๊ด๋ฆฌ๋ ์์คํ ๊ด๋ฆฌ์, DevOps ์์ง๋์ด ๋ฐ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๊ฐ์ ๊ณต๋ ์ฑ ์์ ๋๋ค.
์์คํ ๊ด๋ฆฌ์ ๋ฐ DevOps์ฉ
- ํ๋์จ์ด RNG ํ์ฉ: ํ๋์จ์ด์ ๋ด์ฅ๋ HRNG(์: Intel RDRAND)๊ฐ ์๋ ๊ฒฝ์ฐ ์์คํ ์ด HRNG๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธํ์ญ์์ค. Linux์ `rng-tools`์ ๊ฐ์ ๋๊ตฌ๋ฅผ ๊ตฌ์ฑํ์ฌ ํ๋์จ์ด ์์ฑ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ปค๋์ `/dev/random` ํ์ ์ง์ ๊ณต๊ธํ ์ ์์ต๋๋ค.
- ๊ฐ์ํ ๋ฌธ์ ํด๊ฒฐ: VM์ ๋ฐฐํฌํ ๋ ํญ์ `virtio-rng` ์ฅ์น๊ฐ ๊ตฌ์ฑ๋๊ณ ํ์ฑํ๋์ด ์๋์ง ํ์ธํ์ญ์์ค. ์ด๋ ๋ชจ๋ ๊ฐ์ํ๋ ์ธํ๋ผ์์ ์ค์ํ ๋ณด์ ๋จ๊ณ์ ๋๋ค.
- ์ ํ๋ ์ฅ์น์์ ์ํธ๋กํผ ๋ฐ๋ชฌ ๊ณ ๋ ค: ์์ฐ ์ํธ๋กํผ ์์ค๊ฐ ๊ฑฐ์ ์๋ ํค๋๋ฆฌ์ค ์์คํ ๋๋ ์๋ฒ ๋๋ ์ฅ์น์ ๊ฒฝ์ฐ `haveged`์ ๊ฐ์ ์ํธ๋กํผ ์์ง ๋ฐ๋ชฌ์ด ์ ์ฉํ ์ ์์ต๋๋ค. ํ๋ก์ธ์์ ๋ช ๋ น ํ์ด๋ฐ ๋ณ๋(CPU ์์ฒด ์คํ ์งํฐ)์ ์ฌ์ฉํ์ฌ ๋ณด์กฐ ์ํธ๋กํผ๋ฅผ ์์ฑํฉ๋๋ค.
- ์ํธ๋กํผ ์์ค ๋ชจ๋ํฐ๋ง: Linux์์ `cat /proc/sys/kernel/random/entropy_avail`์ ์คํํ์ฌ ํ์ ํ์ฌ ์ถ์ ์ํธ๋กํผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์ด ์ซ์๊ฐ ์ง์์ ์ผ๋ก ๋ฎ์ผ๋ฉด(์: 1000 ๋ฏธ๋ง) ์์คํ ์ด ๋ถ์กฑํ๊ณ ์์ ์๋ฃจ์ ์ค ํ๋๊ฐ ํ์ํ ์ ์๋ค๋ ์ ํธ์ ๋๋ค.
๊ฐ๋ฐ์์ฉ
- ์ฌ๋ฐ๋ฅธ ์์คํ ํธ์ถ ์ฌ์ฉ: ํฉ๊ธ๋ฅ ์ ๋ณด์ ๋ชฉ์ ์ผ๋ก ์์ฒด ๋์ ์์ฑ๊ธฐ๋ฅผ ๋กค๋งํ์ง ์๋ ๊ฒ์ ๋๋ค. ํญ์ ์ด์ ์ฒด์ ์ ์ํธํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ฆ, Linux/C์์ `getrandom()`, Python์์ `os.urandom()`, Node.js์์ `crypto.randomBytes()` ๋๋ Java์์ `SecureRandom`์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ ์ธํฐํ์ด์ค๋ ์ฐจ๋จ ์์ด ์ํธํ ๋ฐฉ์์ผ๋ก ์์ ํ ๋์๋ฅผ ์ ๊ณตํ๋๋ก ์ ๋ฌธ์ ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค.
- `urandom` vs. `random` ์ฐจ์ด์ ์ดํด: ์ธ์ ํค, nonce, salt ๋๋ ์์ ์ํธํ ํค๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฑฐ์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ๋น์ฐจ๋จ `/dev/urandom` ์ธํฐํ์ด์ค๊ฐ ์ฌ๋ฐ๋ฅด๊ณ ์์ ํ ์ ํ์ ๋๋ค. ์์์ ๋งค์ฐ ๊ฐ์น๊ฐ ๋์ ์คํ๋ผ์ธ ๋ง์คํฐ ํค๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฐจ๋จ ์ธํฐํ์ด์ค๋ฅผ ๊ณ ๋ คํ์ญ์์ค. ๊ทธ๋ฆฌ๊ณ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์ ์ํ์ญ์์ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์์ค PRNG๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์๋: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํธํ๋์ง ์์ ๋ชฉ์ (์: ๊ฒ์ ๋๋ ์๋ฎฌ๋ ์ด์ )์ผ๋ก ์์ฒด PRNG๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ ๊ณ ํ์ง ๊ฐ์ผ๋ก ์๋ํด์ผ ํฉ๋๋ค. ๋ชจ๋ฒ ์ฌ๋ก๋ ์ด์ ์ฒด์ ์ ์์ ํ ์์ค(์: `/dev/urandom`)์์ ์ด๊ธฐ ์๋๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก : ๋์งํธ ์ ๋ขฐ์ ์นจ๋ฌต์ ์ํธ์
์ํธ๋กํผ ์์ง์ ์ต์ ์ด์ ์ฒด์ ์ ๊ฐ์ฅ ์ฐ์ํ๊ณ ์ค์ํ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค. ๋ฌผ๋ฆฌ์ ์ธ๊ณ์ ๋์งํธ ์ธ๊ณ๋ฅผ ์ฐ๊ฒฐํ์ฌ ํ์ค์ ํผ๋์ค๋ฌ์ด ์์(๋คํธ์ํฌ ํจํท์ ์งํฐ, ํค ์ ๋ ฅ์ ๋ง์ค์)์ ๊ฐ๋ ฅํ ์ํธํ์ ์ํ์ ํ์ค์ฑ์ผ๋ก ๋ณํํ๋ ํ๋ก์ธ์ค์ ๋๋ค.
์ด ๋ณด์ด์ง ์๋ ๋ณด์ ์์ง์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋์์์ด ์๋ํ์ฌ ๊ฑฐ์ ๋ชจ๋ ์์ ํ ์จ๋ผ์ธ ์ํธ ์์ฉ์ ๋ท๋ฐ์นจํ๋ ์์ธก ๋ถ๊ฐ๋ฅ์ฑ์ ํ์ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋จํ ์น ๋ธ๋ผ์ฐ์ง ์ธ์ ์ ๋ณดํธํ๋ ๊ฒ๋ถํฐ ๊ตญ๊ฐ ๊ธฐ๋ฐ์ ๋ณดํธํ๋ ๊ฒ๊น์ง ์์คํ ์ํธ๋กํผ์ ํ์ง๊ณผ ๊ฐ์ฉ์ฑ์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์ด ๋ฌด์์์ฑ์ด ์ด๋์์ ์ค๋์ง, ์ด๋ป๊ฒ ๊ด๋ฆฌ๋๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ด๋ จ๋ ๊ณผ์ ๋ฅผ ์ดํดํจ์ผ๋ก์จ ์ฐ๋ฆฌ๋ ๊ธ๋ก๋ฒ ๋์งํธ ์ฌํ๋ฅผ ์ํ ๋ณด๋ค ๊ฐ๋ ฅํ๊ณ ํ๋ ฅ์ ์ด๋ฉฐ ์ ๋ขฐํ ์ ์๋ ์์คํ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.