์ค๋ Linus๋ VPN ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ net-next ์ง์ ์ ์์ ์๊ฒ๋ก ์ฎ๊ฒผ์ต๋๋ค.
์๋ก์ด Linux 5.6 ์ปค๋์ ๋ํ ์ฝ๋ ์์ง์ด ํ์ฌ ์งํ ์ค์
๋๋ค. WireGuard๋ ์ต์ฒจ๋จ ์ํธํ ๊ธฐ์ ์ ์ฌ์ฉํ๋ ๋น ๋ฅธ ์ฐจ์ธ๋ VPN์
๋๋ค. ์๋๋ ๊ธฐ์กด VPN์ ๋ํ ๋ ๊ฐ๋จํ๊ณ ํธ๋ฆฌํ ๋์์ผ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค. ์ ์๋ ์บ๋๋ค ์ ๋ณด ๋ณด์ ์ ๋ฌธ๊ฐ Jason A. Donenfeld์
๋๋ค. 2018๋
XNUMX์, WireGuard๋
Linus๋ 2๋
2018์ XNUMX์ผ์ โJason์ด ์ปค๋์ WireGuard๋ฅผ ํฌํจํด ๋ฌ๋ผ๋ ํ ์์ฒญ์ ํ ๊ฒ์ ํ์ธํ์ต๋๋ค.โ๋ผ๊ณ ์ผ์ต๋๋ค. โ ์ด VPN์ ๋ํ ๋์ ์ฌ๋์ ๋ค์ ํ ๋ฒ ์ ์ธํ๊ณ ๊ณง ํฉ๋ณ๋๊ธฐ๋ฅผ ๋ฐ๋ ์ ์์ต๋๊น? ์ฝ๋๊ฐ ์๋ฒฝํ์ง ์์ ์๋ ์์ง๋ง ์ดํด๋ณด๋ OpenVPN๊ณผ IPSec์ ๊ณตํฌ์ ๋น๊ตํ๋ฉด ์ ๋ง ์์ ์ํ์
๋๋ค."
Linus์ ํฌ๋ง์๋ ๋ถ๊ตฌํ๊ณ ํฉ๋ณ์ 2019๋
๋ฐ ๋์ ์ง์ฐ๋์์ต๋๋ค. ์ฃผ์ ๋ฌธ์ ๋ ์ฑ๋ฅ ํฅ์์ ์ํด ์ฌ์ฉ๋ ์ํธํ ๊ธฐ๋ฅ์ ๋
์ ๊ตฌํ๊ณผ ๊ด๋ จ์ด ์๋ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. XNUMX๋
XNUMX์ ์ค๋ ํ์ ๋์
๋ง์ง๋ง์ผ๋ก, 9๋
2019์ XNUMX์ผ, Linux ์ปค๋์ ๋คํธ์ํน ํ์ ์์คํ
์ ๋ด๋นํ๋ David S. Miller๋
๊ทธ๋ฆฌ๊ณ ์ค๋, 29๋ 2020์ XNUMX์ผ, ๋ณ๊ฒฝ ์ฌํญ์ด Linus์ ์ ์ฉ๋์ด ์ปค๋์ ํฌํจ๋์์ต๋๋ค.
๋ค๋ฅธ VPN ์๋ฃจ์
์ ๋นํด WireGuard์ ์ฅ์ :
- ์ฌ์ฉํ๊ธฐ ์ฌ์ด.
- ์ต์ ์ํธํ ์ฌ์ฉ: ๋ ธ์ด์ฆ ํ๋กํ ์ฝ ํ๋ ์์ํฌ, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF ๋ฑ
- ๊ฐ๋ ์ฑ์ด ๋ฐ์ด๋ ์ฝ๋๋ก ์ทจ์ฝ์ฑ์ ์ฝ๊ฒ ์กฐ์ฌํ ์ ์์ต๋๋ค.
- ๊ณ ์ฑ๋ฅ.
- ๋ช
ํํ๊ณ ์ ๊ตํจ
์ฌ์ .
WireGuard์ ํต์ฌ ๋ก์ง์ ๋ชจ๋ 4000์ค ๋ฏธ๋ง์ ์ฝ๋๋ฅผ ์ฐจ์งํ๋ ๋ฐ๋ฉด, OpenVPN๊ณผ IPSec์๋ ์์ญ๋ง ์ค์ด ํ์ํฉ๋๋ค.
โ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) ".
์กฐ์ฌ ๊ฒฐ๊ณผ
๋์ญํญ(๋ฉ๊ฐ๋นํธ/์ด)
ํ(ms)
ํ ์คํธ ๊ตฌ์ฑ:
- ์ธํ ์ฝ์ด i7-3820QM ๋ฐ ์ธํ ์ฝ์ด i7-5200U
- ๊ธฐ๊ฐ๋นํธ ์นด๋ Intel 82579LM ๋ฐ Intel I218LM
- Linux 4.6.1
- WireGuard ๊ตฌ์ฑ: MAC์ฉ Poly256๋ฅผ ๊ฐ์ถ 20๋นํธ ChaCha1305
- ์ฒซ ๋ฒ์งธ IPsec ๊ตฌ์ฑ: MAC์ฉ Poly256๋ฅผ ๊ฐ์ถ 20๋นํธ ChaCha1305
- ๋ ๋ฒ์งธ IPsec ๊ตฌ์ฑ: AES-256-GCM-128(AES-NI ํฌํจ)
- OpenVPN ๊ตฌ์ฑ: HMAC-SHA256-2, UDP ๋ชจ๋๋ฅผ ๊ฐ์ถ AES 256๋นํธ ๋๋ฑ ์ํธํ ์ ํ๊ตฐ
- ์ฑ๋ฅ์ ๋ค์์ ์ฌ์ฉํ์ฌ ์ธก์ ๋์์ต๋๋ค.
iperf3
, 30๋ถ ๋์์ ํ๊ท ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ด๋ก ์ ์ผ๋ก ์ผ๋จ ๋คํธ์ํฌ ์คํ์ ํตํฉ๋๋ฉด WireGuard๋ ํจ์ฌ ๋ ๋น ๋ฅด๊ฒ ์๋ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก๋ ์ปค๋์ ๋ด์ฅ๋ Crypto API ์ํธํ ๊ธฐ๋ฅ์ผ๋ก์ ์ ํ์ผ๋ก ์ธํด ๋ฐ๋์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค. ์๋ง๋ ๊ทธ๋ค ๋ชจ๋๊ฐ ์์ง ๊ธฐ๋ณธ WireGuard์ ์ฑ๋ฅ ์์ค์ ์ต์ ํ๋์ด ์์ง๋ ์์ ๊ฒ์ ๋๋ค.
โ๋ด ๊ด์ ์์ ๋ณด๋ฉด WireGuard๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ์ด์์ ์ ๋๋ค. ๋ชจ๋ ํ์ ์์ค ๊ฒฐ์ ์ ์ฌ์์์ ์ด๋ฃจ์ด์ง๋ฏ๋ก ์ผ๋ฐ์ ์ธ VPN ์ธํ๋ผ๋ฅผ ์ค๋นํ๋ ํ๋ก์ธ์ค๋ ๋จ ๋ช ๋ถ ๋ฐ์ ๊ฑธ๋ฆฌ์ง ์์ต๋๋ค. ๊ตฌ์ฑ์ ์๋ง์ผ๋ก ๋ง๋๋ ๊ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
ะฟะธัะฐะปะธ 2018๋ ์๋ธ๋ ์์. โ ์ค์น ๊ณผ์ ์์ธํ ์ค๋ช ๊ณต์ ์น ์ฌ์ดํธ์์ ์ฐ์์ฑ์ ๋ณ๋๋ก ์ธ๊ธํ๊ณ ์ถ์ต๋๋ค.OpenWRT ์ง์ . ์ด๋ฌํ ์ฌ์ฉ ์ฉ์ด์ฑ๊ณผ ์ฝ๋ ๊ธฐ๋ฐ์ ๊ฐ๊ฒฐ์ฑ์ ํค ๋ฐฐํฌ๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ ๋ฌ์ฑ๋์์ต๋๋ค. ๋ณต์กํ ์ธ์ฆ์ ์์คํ ๋ ์๊ณ ์ด ๋ชจ๋ ๊ธฐ์ ๊ณตํฌ๋ ์์ต๋๋ค. ์งง์ ์ํธํ ํค๋ SSH ํค์ ๋งค์ฐ ์ ์ฌํ๊ฒ ๋ฐฐํฌ๋ฉ๋๋ค."
WireGuard ํ๋ก์ ํธ๋ 2015๋
๋ถํฐ ๊ฐ๋ฐ๋์ด ์์ผ๋ฉฐ ๊ฐ์ฌ๋ฅผ ๊ฑฐ์ณ
์ถ์ฒ : habr.com