와이어가드 프로토콜 재미있는 설명 – 속도, 성능 장점
와이어가드 프로토콜이 2021년들어 빠르게 떠오르다 빠르게 게임 체인저로 자리잡았습니다. 과거에 우려했던 부분들은 대부분 해소되었으며 앞으로 한동안은 와이어가드의 점유율이 빠르게 오를 것으로 보입니다. OpenVPN 및 IKEv2 보다 더 빠르고 간결한 장점을 가지고 있습니다.
글 순서
About 와이어가드
간략하게 설명부터 드리자면 WireGuard는 OpenVPN과 마찬가지로 OpenSource로 만들어진 프로토콜이며 OpenVPN보다 더 나은 성능을 목표로 Jason A. Donenfeld에 의해 만들어졌고 GPL v2 라이센스로 배포되었습니다.
WireGuard의 커널 구성 요소는 리눅스 커널과 마찬가지로 GPLv2 배포이며, 프로젝트별로 각각 GPL,MIT, BSD, Apache 2.0의 라이센스로 배포된다고 합니다. 리눅스 커널에 포함되며 인정받기 시작했고, 지금은 크로스 플랫폼 즉 우리가 많이 사용하는 윈도우, 맥os, 안드로이드, iOS 그리고 BSD(FreeBSD, OpenBSD 등) 같은 운영체제에서도 사용이 가능합니다.
Jason A. Donenfeld
Wireguard를 만든 사람은 Jason A. Donenfeld. 2022년 기준 33세의 보안 전문가 입니다. 보안 취약점 연구원으로 일하던 그는 현기증날 정도로 복잡하고 방대한 덩치를 가진 구식 암호화에 의구심을 가지게되고 와이어가드를 개발하게 되었습니다.
취미로 재즈 클럽에서 D’Angelico NYSS-3 재즈 기타를 연주하기도 했다는 그는 자신의 집에서 주로 개발을 했고, 현재는 기부금을 받아서 개발을 지속하고 있다고 합니다. 적당한 수준에서 타협하지 않고 고품질 오픈소스 소프트웨어를 만들겠다는 집념이 와이어가드라는 훌륭한 결과물로 열매를 맺게 되었습니다.
OpenVPN보다 좋나? 와이어가드 장점
WireGuard의 코드양이 다른 프로토콜에 비해서 매우 적습니다. 기존에 많이 사용되는 OpenVPN, IPsec, IKEv2의 경우에는 VPN 설정과 연결 과정에 있어서 느리고 비교적 복잡한데, 기존의 프로토콜들의 코드 라인수가 40만에서 60만줄이라면 WireGuard의 경우에는 1%정도에 불과한 4000줄 정도의 코드로 이루어져 있고 그 장점은 아래와 같습니다.
- 전체 코드의 양이 매우 적기 때문에 문제가 생길 확률이 낮고, 유지 보수 및 보안 감사가 더 쉽다.
- 더 빠른 속도를 가능케 해준다.
- 테스트에서 OpenVPN에 비해 더 낮은 핑값과 다운로드 속도를 보여줬다.
- Poly1305, BLAKE2, Curve25519, SipHash24 , HKDF, NPF(Noise Protocol Framework), ChaCha20 같은 최신 암호화 기술 사용
- chacha20-poly1305의 경우 본인의 CPU가 AES-NI 하드웨어 가속 기능이 없는 경우 가장 좋은 성능을 내준다고 함.
좀 더 자세히 설명하면 다음의 프로토콜과 프리미티브가 사용됩니다.
- ChaCha20 대칭 암호화 / Poly1305 인증 / RFC7539’s AEAD construction
- Curve25519 for ECDH
- RFC7693에 설명된 BLAKE2s 해싱
- SipHash24 해시 테이블 키
- RFC5869에 설명된 HKDF 키 파생
- 기타 기술적인 부분은 백서 참고
초고속 암호화 primitives(프리미티브) 그리고 와이어가드는 리눅스 커널 내부에 존재하기 때문에 네트워킹 속도에 있어서 큰 장점을 가집니다. OpenVPN 및 IKEv2 등 다른 VPN 프로토콜의 경우 커널 외부에서 작업이 이루어지기 때문에 리눅스 환경에서는 WireGuard가 더 유리한 위치를 차지합니다.
리눅스 커널에 포함되었다는 것은 전세계 수많은 서버들이 리눅스로 돌아간다는 것을 고려해보면 큰 장점이며, 스마트폰 뿐만 아니라 소형 임베디드 기기에서도 유리한 부분이 있다고 할 수 있습니다.
와이어가드는 C언어(Linux, FreeBSD kernel modules, NetBSD, OpenBSD kernel drivers), Go(userspace implementation)로 만들어졌다고 합니다.
WireGuard의 과거와 현재(단점, 장점)
가장 큰 단점은 아직 확실한 안정화와 검증이 되지 않았다는 것 입니다. 확실하게 OpenVPN과 IKEv2 등을 대체하려면 꽤 긴 시간의 검증이 필요해 보입니다.리눅스 이외의 운영체제에서는 아직 사용이 불편합니다.광범위하게 쓰인 경험이 없기 때문에 아직 보안성과 취약점에 대해 점수를 매기기 힘듭니다.유명 VPN 업체들이 아직 채용하지 않고있어 일반 유저들은 사용할 기회가 거의 없음.
위의 4가지 단점은 제가 과거 Wireguard가 막 알려지기 시작하던 시절에 썼던 내용인데, 지금으로는 모두 해결되었다고 볼 수 있습니다. 올해들어 VPN 회사들이 빠르게 적용시키고 있으며 개인 서버에 VPN을 설치하는 유저들도 WireGuard로 갈아타는 사람들이 많아지고 있습니다.저 또한 방화벽 PC에 올린 OPNsense에 설치했습니다.
완성되지 않은 Beta 느낌의 모습을 금방 벗어던지고, 2019년 12월 9일 David Miller(리눅스 네트워킹 스택의 메인 관리자)의 net-next tree에 병합되었음을 알리는 등 빠르게 자리잡는 모습을 보여줬습니다.
그리고 미국의 상원의원 중 한명인 오레곤 민주당 Ron Wyden은 NIST(National Institute of Standards and Technology)에 서한을 보내 WireGuard를 권장하기도 했습니다.
와이어가드 장점을 정리해보자면
- 간결하고 가벼운 코드(약 3800~4000줄)는 유지보수 및 보안, 퍼포먼스 훌륭
- 리눅스 커널 5.6 버전 소스트리에 병합되었는데 이런 점은 확실한 신뢰도 상승으로 작용
- 이미 다양한 플랫폼에서 사용 가능
- 최신 암호화 프로토콜 사용(BLAKE2s, ChaCha20, Curve25519, SipHash24, HKDF 등)
- 훌륭한 성능때문에 VPN 회사에서 WireGuard 프로토콜을 그대로 추가하거나 자체적으로 수정해서 넣음
- 보안 – 이 부분은 아래 단점과 연결되는 양날의 검이기도 합니다. Allowed list에 있는 IP 주소랑만 통신을 합니다. 즉, 승인되지 않은 패킷에 반응하지 않는 점이 보안이 유리합니다.
WireGuard 단점을 찾아봐야 한다면
- 오히려 개인정보 보호에 있어 단점이 있다는 지적이 있습니다. 예를 들면 OpenVPN은 사용자가 IP 주소를 기록하지 않고 작동할 수 있기에 익명에 더 유리하지만 WireGuard의 경우에는 재부팅 전까지는 서버에서 허용된 IP 주소를 사용해야하기 때문이라고 하네요.
- 이 문제 때문에 NordVPN은 이중NAT을 구현하는 등 수정을 통해 NordLynx라는 프로토콜을 만들었고, ExpressVPN은 아예 Lightway라는 경량 프로토콜을 자체적으로 만들어버렸습니다. (VPN Protocol 비교 글을 참고해주세요.)
- UDP 전용이라 몇몇 제약이 있습니다.
- 특정 VPN의 기능들은 아직 OpenVPN만 되는 경우가 있습니다. NordVPN의 Double VPN 같은 서버가 그런데 이건 앞으로 적용될 듯 하니, 이런것도 있다 정도로 넘어가고
- DPI(Deep Packet Inspection)와 관련해 와이어가드는 난독화에 중점을 두지 않는다고 명시
- TCP/443 포트 사용을 원하는 사람에겐 단점(#ref1 / #ref2 / #ref3 / #ref4)
- ISP, 정부, 학교 및 직장 네트워크 관리자 입장에서는 UDP만 사용하는 와이어가드 차단이 더 쉬운것으로 알려져있는데 그래서 검열 우회에는 TCP/UDP를 같이 사용하는 OpenVPN이 더 유리하다는 평가.
제가 명확히 이해하지 못한 부분이 있을 수 있습니다. 우선 일반적인 유저들에게는 그리 영향을 미치지 않는 단점들이고 추천할 이유는 충분하다고 봅니다. 리눅스에서 설치 및 설정하실분들은 ArchLinux Wiki에 설명이 잘 되어있으니 참고하시면 되겠습니다.
WireGuard 지원 플랫폼 및 다운로드 링크
- Windows
- MacOS / 홈브루 : Homebrew – brew install wireguard-tools
- Android – Play스토어 / F-Droid
- iOS
- Linux
- Ubuntu – sudo apt install wireguard
- Debian – apt install wireguard
- Fedora – sudo dnf install wireguard-tools
- Arch – sudo pacman -S wireguard-tools
- OpenWRT – opkg install wireguard / tools
- FreeBSD – pkg install wireguard
- OpenBSD – pkg_add wireguard-tools
- EdgeOS – sudo dpkg -i wireguard-{type}-{version}.deb
어떤 VPN을 선택해야 하나?
초기 WireGuard가 가지고 있던 문제는 ‘검증’이었습니다. 메인스트림으로 자리잡기 위해서는 많은 시간과 금전적 투자가 이루어지고 다양한 환경에서 테스트되어 검증받아야 하는데, 와이어가드는 생각보다 훨씬 빨리 확고한 신뢰를 얻었습니다.
저 개인적인 관점에서 현재(2021년)의 신뢰도를 따지자면 OpenVPN, WireGuard, IKEv2/IPsec, L2TP/IPsec, SSTP, PPTP 순서로 보고있으며, 시간이 지나면 WireGuard가 앞지를 가능성이 꽤 있다고 봅니다.
2020년정도 까지만 하더라도 OpenVPN만큼 신뢰할 수 있는 옵션이 아니었지만 2021년부터는 WIreGuard의 인기가 매우 빠르게 성장하는 느낌이 확실히 듭니다. 여전히 보수적인 관점에서 접근하는 곳에서는 OpenVPN을 유지하겠지만 우리같은 일반 유저들은 충분히 선택해볼만한 옵션입니다.
WireGuard 프로토콜을 사용하는 VPN을 원하신다면 현재 가장 성능, 신뢰도, 가격 등 전체적인 면을 평가했을때 추천할 수 있는 VPN은 아래와 같습니다. 와이어가드의 개인정보 보안 문제를 수정하거나 아예 새로 자체 제작한 프로토콜이 기술적으로 VPN 서비스에 더 적합해보이기도 합니다.
ExpressVPN은 Lightway라는 와이어가드보다 코드수가 더 적은 독자 프로토콜을 제작했고 NordVPN은 이중 NAT으로 Wireguard의 단점을 보완한 NordLynx를 만들었습니다. Surfshark는 와이어가드 그대로 사용중
위 각 링크는 ‘상세리뷰‘와 ‘할인쿠폰‘을 포함하고 있으니 꼭 읽어보시길 권해드립니다.
상단 메뉴에서 그 외 수십개의 VPN 비교를 보실 수 있습니다.
안녕하세요. 글 잘 보고 있습니다.
다름이 아니라 몇가지 궁금한게 있는데 저는 Nord VPN을 24시간 켜놓고 쓰는중이지만 몇가지 어플은 접속이 안되는 경우가 있더라고요. 예를 들면 우리은행, 삼성카드, 정부24 등 하지만 Express VPN으로 같은 프로토콜로 접속시도해보면 문제없이 잘됩니다. 혹시 이건 어떤 문제일까요?
저도 삼성카드 사용중이라 지금 NordVPN 한국서버 접속후 어플을 켜봤는데 정상적으로 나옵니다.
그런데 처음 실행시 버벅거리고 다시 접속한다고도 나오고 불안정하긴하네요. 특정 앱 보안프로그램과 nord가 충돌이있는걸까요?
일단 저의 경우 접속이 되긴합니다.
신기하네요.. 저는 계속 로딩화면만 뜨는데.. 같은 VPN인데 뭐가 다른건지 ㅠㅠ 확인해주셔서 감사합니다. 글 항상 잘보고 있습니다!
이왕이면 해결책도 알려드리고 싶은데 아직 부족한점이 많습니다 이해해주세요.ㅠㅠ
아닙니다! 도움 항상 많이 받고 있습니다. 아이폰과 갤럭시폰의 차이일 수 도 있겠네요. 노드에 한번 문의해보겠습니다. 감사합니다
Surfshark도 업데이트로 WireGuard 지원하게 되었네요 당장 체감되는건 연결 속도가 1초 정도로 엄청 짧아졌다는 거 ㄷㄷ
요즘 다들 wireguard 업데이트를 하네요! 하나씩 테스트 해봐야겠습니다.
NordVPN에 NordLynx라고 Protocol 이 추가된걸로 알고 있는데 NordLynx가 WireGuard를 사용하는걸로 알고 있습니다..
시간되시면 확인하시구.. “WireGuard를 사용할 수 있는 VPN은 아래와 같습니다.” 추가 해두시는것도 좋을거 같습니다
글 내용에 업데이트 해놓지 좀 됐는데 못보셨나보네요~
1.1.1.1 warp+ 유료 버전을 무료로 쓸 수 있는 버그가 있네요 해외망 부실한 분들에게 도움이 많이 될 듯 합니다
오.. 좋은(?) 버그군요!!
최근에 알았는데 Nord VPN의 NordLynx가 wireguard 프로토콜이라고 하네요
개인적으로 그냥 openvpn보다 확실히 체감속도가 빠르긴 했습니다
wireguard에 대한 호기심이 계속 있었는데 nordvpn이 먼저 적용하는군요. 코드수가 OpenVPN에 비해 훠어어얼씬 적다고해요! 조만간 저도 테스트 한번 해봐야겠습니다!!
안녕하세요! 1.1.1.1 의 warp도 wireguard 지원합니다
오우 감사합니다. 다른 분들에게도 도움이 되는 댓글입니다. yee님 댓글로 인해 본문에도 추가했습니다. 🙂
안녕하세요 리뷰잘봣습니다 가성비갑인 ivacy5년이거구매하려고하는데요 전용ip포드포워딩은머고 전용아이피누르니까 미국머시기ip ipip 전용같은게잇더라구요 혹시 ivacy 구매방법좀 정리해서 올려주실수없을까요? ㅠㅠ
아주 간단해요~
1. https://ivacy.com/special-promotion-deal 이 링크로 들어가신 뒤에
2. 결제 하실때 보면 (3) Security Add-Ons ( Optional ) 이 항목에서 Dedicated IP 선택하시구요. 거기서 국가 선택하시면 됩니다. 홍콩 싱가포르 캐나다 독일 미국 이렇게 여러 국가 나와요! 그거 선택하시면 한달에 1.99 달러 추가로 결제됩니다.
3. 그리고 결제 하시면 끝! 그 뒤에 모르시는거 또 댓글 달아주세요~~ 제가 Ivacy 리뷰글에 댓글 창 열어놓을게요.