VPN WireGuard 1.0.0 ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋„์ž… ๋žœ๋“œ๋งˆํฌ VPN ์ถœ์‹œ ์™€์ด์–ด๊ฐ€๋“œ 1.0.0, ๋ฉ”์ธ ์ฝ”์–ด์— WireGuard ๊ตฌ์„ฑ ์š”์†Œ ์ œ๊ณต์„ ํ‘œ์‹œํ•จ Linux 5.6 ๊ฐœ๋ฐœ์˜ ์•ˆ์ •ํ™”. Linux ์ปค๋„์— ํฌํ•จ๋œ ์ฝ”๋“œ ํ•ฉ๊ฒฉ ํ•œ ํ•ด๋‹น ๊ฐ์‚ฌ๋ฅผ ์ „๋ฌธ์œผ๋กœ ํ•˜๋Š” ๋…๋ฆฝ ํšŒ์‚ฌ๊ฐ€ ์ถ”๊ฐ€ ๋ณด์•ˆ ๊ฐ์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ๊ฒฐ๊ณผ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๋„ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

WireGuard๋Š” ํ˜„์žฌ ๊ธฐ๋ณธ Linux ์ปค๋„์—์„œ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ฐฐํฌํŒ์„ ์œ„ํ•œ ์ €์žฅ์†Œ๊ฐ€ ์ค€๋น„๋˜์—ˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž๋Š” ์ด์ „ ๋ฒ„์ „์˜ ์ปค๋„์„ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. wireguard-linux-compat.git. ์ €์žฅ์†Œ์—๋Š” ์ด์ „ ์ปค๋„๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฑํฌํŠธ๋œ WireGuard ์ฝ”๋“œ์™€ compat.h ๋ ˆ์ด์–ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ธฐํšŒ๊ฐ€ ์žˆ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ํ•œ ๋ณ„๋„์˜ ํŒจ์น˜ ๋ฒ„์ „์ด ์ž‘์—… ํ˜•ํƒœ๋กœ ์ง€์›๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ํ˜•ํƒœ์—์„œ๋Š” WireGuard์˜ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๋ฒ„์ „์„ ๋‹ค์Œ ์ปค๋„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ 20.04 ะธ ๋ฐ๋น„์•ˆ 10 "๋ฒ„์Šคํ„ฐ", Linux ์ปค๋„์šฉ ํŒจ์น˜๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ 5.4 ะธ 5.5. Arch, Gentoo ๋“ฑ ์ตœ์‹  ์ปค๋„์„ ์‚ฌ์šฉํ•œ ๋ฐฐํฌํŒ
Fedora 32๋Š” 5.6 ์ปค๋„ ์—…๋ฐ์ดํŠธ์™€ ํ•จ๊ป˜ WireGuard๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋Š” ์ด์ œ ์ €์žฅ์†Œ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. wireguard-linux.git, Wireguard ํ”„๋กœ์ ํŠธ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ์ „์ฒด Linux ์ปค๋„ ํŠธ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ์˜ ํŒจ์น˜๋Š” ๊ธฐ๋ณธ ์ปค๋„์— ํฌํ•จ๋˜๋Š”์ง€ ๊ฒ€ํ† ๋˜๊ณ  ์ •๊ธฐ์ ์œผ๋กœ net/net-next ๋ถ„๊ธฐ์— ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค. wg, wg-quick ๋“ฑ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฐ ์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐœ๋ฐœ์€ ์ €์žฅ์†Œ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. wireguard-tools.git, ๋ฐฐํฌํŒ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

VPN WireGuard๋Š” ์ตœ์‹  ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜๊ณ  ๋งค์šฐ ๋†’์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ๋ณต์žกํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋Œ€๋Ÿ‰์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ฌ๋Ÿฌ ๋Œ€๊ทœ๋ชจ ๋ฐฐํฌ์—์„œ ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” 2015๋…„๋ถ€ํ„ฐ ๊ฐœ๋ฐœ๋˜์–ด ๊ฐ์‚ฌ๋ฅผ ๋ฐ›์•˜์œผ๋ฉฐ, ์ •์‹ ๊ฒ€์ฆ ์‚ฌ์šฉ๋œ ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•. WireGuard ์ง€์›์€ ์ด๋ฏธ NetworkManager ๋ฐ systemd์— ํ†ตํ•ฉ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ปค๋„ ํŒจ์น˜๋Š” ๊ธฐ๋ณธ ๋ฐฐํฌํŒ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ๋น„์•ˆ ๋ถˆ์•ˆ์ •, ๋งˆ๊ฒŒ์ด์•„, ์•ŒํŒŒ์ธ, ์•„์น˜, ์  ํˆฌ, OpenWrt, NixOS, ํ•˜์œ„ ๊ทธ๋ž˜ํ”„ ะธ ALT.

WireGuard๋Š” ๊ฐ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๊ฐœ์ธ ํ‚ค๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ์•”ํ˜ธํ™” ํ‚ค ๋ผ์šฐํŒ… ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. SSH์™€ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๊ตํ™˜ํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ๋ณ„๋„์˜ ๋ฐ๋ชฌ์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ํ‚ค๋ฅผ ํ˜‘์ƒํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ์˜ Noise_IK ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋…ธ์ด์ฆˆ ํ”„๋กœํ† ์ฝœ ํ”„๋ ˆ์ž„์›ŒํฌSSH์—์„œ Authorized_keys๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ „์†ก์€ UDP ํŒจํ‚ท์˜ ์บก์Šํ™”๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ž๋™ ํด๋ผ์ด์–ธํŠธ ์žฌ๊ตฌ์„ฑ์œผ๋กœ ์—ฐ๊ฒฐ์„ ๋Š์ง€ ์•Š๊ณ  VPN ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ ๋ณ€๊ฒฝ(๋กœ๋ฐ)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ ๋œ ์ŠคํŠธ๋ฆผ ์•”ํ˜ธ ChaCha20 ๋ฐ ๋ฉ”์‹œ์ง€ ์ธ์ฆ ์•Œ๊ณ ๋ฆฌ์ฆ˜(MAC) Poly1305, ๋‹ค๋‹ˆ์—˜ ๋ฒˆ์Šคํƒ€์ธ(Daniel Bernstein)์ด ๋””์ž์ธํ•œ๋‹ค๋‹ˆ์—˜ J. ๋ฒˆ์Šคํƒ€์ธ), ํƒ€๋ƒ ๋žญ
(Tanja Lange) ๋ฐ Peter Schwabe. ChaCha20 ๋ฐ Poly1305๋Š” AES-256-CTR ๋ฐ HMAC์˜ ๋” ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•œ ์•„๋‚ ๋กœ๊ทธ๋กœ ์ž๋ฆฌ ์žก์•˜์œผ๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌํ˜„์„ ํ†ตํ•ด ํŠน๋ณ„ํ•œ ํ•˜๋“œ์›จ์–ด ์ง€์›์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๊ณ ์ •๋œ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์œ  ๋น„๋ฐ€ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํƒ€์› ๊ณก์„  Diffie-Hellman ํ”„๋กœํ† ์ฝœ์ด ๊ตฌํ˜„์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ปค๋ธŒ 25519, Daniel Bernstein๋„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด์‹ฑ์— ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. BLAKE2(RFC7693).

์˜ค๋ž˜๋œ ๊ฒƒ ์•„๋ž˜์„œ ํ…Œ์ŠคํŠธ ์„ฑ๋Šฅ WireGuard๋Š” OpenVPN(HMAC-SHA3.9-3.8์„ ์‚ฌ์šฉํ•˜๋Š” 256๋น„ํŠธ AES)์— ๋น„ํ•ด 2๋ฐฐ ๋” ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ 256๋ฐฐ ๋” ๋†’์€ ์‘๋‹ต์„ฑ์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. IPsec(256๋น„ํŠธ ChaCha20+Poly1305 ๋ฐ AES-256-GCM-128)๊ณผ ๋น„๊ตํ•˜์—ฌ WireGuard๋Š” ์•ฝ๊ฐ„์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ(13-18%)๊ณผ ๋” ๋‚ฎ์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„(21-23%)์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์›น์‚ฌ์ดํŠธ์— ๊ฒŒ์‹œ๋œ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋Š” WireGuard์˜ ์ด์ „ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๊ตฌํ˜„์„ ๋‹ค๋ฃจ๋ฉฐ ํ’ˆ์งˆ์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ดํ›„ WireGuard ๋ฐ IPsec ์ฝ”๋“œ๋Š” ๋”์šฑ ์ตœ์ ํ™”๋˜์—ˆ์œผ๋ฉฐ ์ด์ œ ๋” ๋นจ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์ปค๋„์— ํ†ตํ•ฉ๋œ ๊ตฌํ˜„์„ ๋‹ค๋ฃจ๋Š” ๋ณด๋‹ค ์™„์ „ํ•œ ํ…Œ์ŠคํŠธ๋Š” ์•„์ง ์ˆ˜ํ–‰๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์œผ๋กœ ์ธํ•ด ์ผ๋ถ€ ์ƒํ™ฉ์—์„œ๋Š” WireGuard๊ฐ€ ์—ฌ์ „ํžˆ IPsec๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚œ ๋ฐ˜๋ฉด OpenVPN์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋งค์šฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

VPN WireGuard 1.0.0 ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์ถœ์ฒ˜ : opennet.ru

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