WireGuard: 실제로 상황을 변화시킨 최신 VPN 프로토콜
WireGuard는 5년 만에 기본이 된 희귀한 오픈 소스 소프트웨어입니다. 2020년 이후 Linux 커널 메인라인, NordLynx 및 Mullvad의 엔진, 그리고 한 사람이 오후에 감사할 수 있을 만큼 작은 코드베이스입니다. 이것은 그것이 무엇인지, 어떻게 작동하는지, 왜 모두가 전환했는지, 그리고 여전히 부족한 점에 대해 자세히 설명합니다.
전체 기사 본문은 아래에 영어로 제공됩니다.
WireGuard의 실제 이름
WireGuard는 Jason A. Donenfeld가 설계하고 2015년에 처음 출시된 레이어 3 VPN 프로토콜입니다. 정의적인 디자인 선택은 미니멀리즘이었습니다. 커널 C 코드는 약 4,000줄로 OpenVPN의 경우 약 70,000줄, 다양한 IPsec 구현의 경우 400,000줄 정도입니다. 코드가 적다는 것은 엔지니어 한 명이 머릿속에 보관할 수 있는 공격 표면과 코드베이스가 더 작다는 것을 의미합니다. 이 두 가지 모두 감사가 더 쉬워지고 보안 버그가 줄어든다는 의미입니다.
프로토콜은 한 가지 작업을 수행하며 꼭 필요한 경우가 아니면 기능 추가를 거부합니다. 지문을 채취하기 위한 TLS 협상 단계도 없고, 런타임 시 암호화 제품군을 선택할 수도 없으며, 영리한 대체 체인도 없습니다. 당신은 현대 프리미티브 세트 하나를 얻습니다. 이를 사용하거나 다른 프로토콜을 사용합니다.
암호화 스택
WireGuard는 사용자가 다음을 선택하도록 하는 대신 작고 독선적인 최신 기본 요소 세트를 사용합니다. 타원 곡선 Diffie-Hellman 키 교환(임시 및 장기).
핸드셰이크는 노이즈 프로토콜 프레임워크. 이는 대칭 보호의 추가 계층을 위한 선택적 사전 공유 키와 함께 두 개의 메시지로 완료됩니다. 이는 Curve25519.
UDP에 대한 향후 양자 컴퓨팅 공격에 대한 헤지로 유용합니다.
WireGuard는 기본적으로 포트 51820에서 UDP만 사용합니다. 이는 의도적인 것입니다. TCP를 통해 TCP를 전송하면(OpenVPN-TCP 작동 방식) 잘 알려진 TCP 붕괴 문제가 발생합니다. 내부 TCP 연결이 재전송되면 외부 TCP 연결도 재전송되고 두 타이머가 서로를 멈춥니다. UDP는 이를 완전히 방지합니다.
절충안은 현실입니다. TCP/443만 허용되는 제한적인 네트워크에서는 WireGuard가 작동하지 않습니다. HTTPS 트래픽으로 위장하기 위한 OpenVPN-over-TCP-443과 동등한 기능은 없습니다. 만리방화벽(Great Firewall) 스타일의 네트워크 뒤에 있는 경우 WireGuard 핸드셰이크를 난독화하는 AmneziaWG와 같은 래퍼나 다른 프로토콜이 필요합니다.
Linux 커널 채택
WireGuard가 OpenVPN과 같은 사용자 공간 데몬이 아닌 커널 모듈로서의 상태가 속도가 빠른 가장 큰 이유입니다. 패킷은 핫 경로의 커널/사용자 공간 경계를 넘지 않습니다.
- 9 2019년 12월: David Miller는 Linux net-next 트리에 WireGuard 패치를 허용했습니다.
- 28 2020년 1월: Linus Torvalds net-next를 병합하여 WireGuard를 메인라인에 넣습니다.
- 20 2020년 3월: Linux 5.6에는 WireGuard가 내장되어 제공됩니다.
- 30 2020년 3월: Android는 일반 커널에 기본 커널 지원을 추가했습니다. Image.
- 22 2020년 6월: OpenBSD에서 가져왔습니다.
- 29 2020년 11월: FreeBSD 13이 뒤따랐습니다. 칭찬에 인색하기로 유명한
Torvalds는 다음 코드를 호출했습니다. "예술 작품"를 OpenVPN 및 IPsec과 비교합니다. 그는 과장하지 않았습니다.
독립적인 보안 분석
2019년 5월 INRIA의 연구원들은 CryptoVerif 도구를 사용하여 WireGuard의 핸드셰이크에 대한 기계 확인 증거를 발표했습니다. 그들은 장기 키가 유출되는 경우에도 무제한 병렬 세션 전반에 걸쳐 프로토콜이 상호 인증, IND-CCA 세션 키 비밀성, 순방향 비밀성 및 손상 후 보안을 보장한다는 것을 입증했습니다. 이는 VPN 프로토콜에 대한 매우 강력한 공식 결과입니다.
OpenVPN 및 IPsec과 비교하여 비교하는 방법
가장 가까운 출구까지 50ms 대기 시간의 일반적인 1Gbps 유선 연결에서:
- 직접(VPN 없음): 전체 회선 속도, ~5ms 추가 대기 시간.
- WireGuard: 800~950Mbps, +10~25ms.
- IKEv2/IPsec: 600~800Mbps, 유사한 대기 시간.
- OpenVPN UDP: 250–400Mbps, +30–60ms.
- OpenVPN TCP: 100–250Mbps, +50–100ms.
speed를 실행하여 간격을 직접 확인할 수 있습니다. VPN을 끄고 test를 실행한 다음 공급자가 지원하는 각 프로토콜을 통해 다시 실행합니다.
WireGuard가 약한 경우
- 연결 상태가 없습니다. WireGuard는 피어를 고정 IP 할당에 연결합니다. 도움이 없으면 로깅 표면이 생성됩니다. 연결하는 모든 클라이언트의 IP는 서버의 공개 키와 연결됩니다. 상업용 VPN은 내부 IP를 교체하여 이 문제를 해결하지만 프로토콜 자체가 제공하지 않는 추가 배관이 필요합니다.
- UDP 전용. TCP/443만 허용되는 경우 작동하지 않습니다.
- 내장 NAT 통과가 없습니다. 대칭형 NAT 뒤의 피어에는 외부 IP가 필요합니다. 코디네이터.
- 지문이 쉽습니다. 악수는 독특한 모양을 갖고 있으며 심층 패킷 검사를 통해 쉽게 식별할 수 있습니다. 이것이 중국, 이란, 러시아에서 차단되는 이유 중 하나입니다.
구현 Know
- wireguard-go: Go의 공식 크로스 플랫폼 사용자 공간 구현.
- BoringTun: 대규모 프로덕션에서 사용되는 Cloudflare의 Rust 사용자 공간 구현.
- wireguard-nt: Windows 커널 드라이버, 2021년 8월부터 사용 가능.
- AmneziaWG: 심층 패킷 검사를 통과하기 위해 프로토콜 난독화를 추가하는 포크.
상업적으로 사용하는 사람
Mullvad는 거의 누구보다 먼저 WireGuard 지원을 출시했습니다. NordVPN은 고정 IP 할당 문제를 해결하기 위해 사용자 지정 NAT 계층을 사용하여 이를 NordLynx로 래핑합니다. ProtonVPN은 모든 계획에서 이를 지원합니다. IVPN과 TunnelBear가 이를 제공합니다. Tailscale과 Cloudflare WARP 모두 내부적으로 이를 사용합니다. 귀하의 공급자가 현대적이라면 WireGuard를 사용하는 것이 거의 확실합니다.
WireGuard를 선택해야 합니까?
사용자의 95%는 그렇습니다. 모바일 배터리 사용 시 더 빠르고 효율적이며 설정이 더 쉬우며 이전 제품보다 훨씬 더 강력한 공식 보안 스토리를 갖추고 있습니다. 다르게 선택해야 하는 유일한 이유는 다음과 같습니다.
- DPI를 통한 WireGuard 핸드셰이크를 차단하는 국가에 거주하고 있습니다. TLS 난독화를 사용하여 TCP/443을 통한 OpenVPN을 선택하거나 AmneziaWG를 선택하세요.
- 레거시 IPsec 집중 장치에 대한 상시 기업 터널이 필요합니다. IKEv2를 유지하세요.
- 사용 중입니다. 아직 WireGuard를 배송하지 않은 서비스입니다(2026년에는 드뭅니다).
연결한 후에는 VPN 누출 테스트를 통해 터널이 실제로 작동하는지 확인하세요. 잘못 구성된 클라이언트의 작동 프로토콜은 VPN이 전혀 없는 것보다 낫지 않습니다.
자주 묻는 질문
- WireGuard가 OpenVPN보다 더 안전합니까?
- 올바르게 구성되면 둘 다 안전합니다. WireGuard의 훨씬 작은 코드베이스는 감사를 쉽게 만들고 공격 표면을 줄이며 OpenVPN에는 없는 공식적인 시스템 검사 보안 증명의 이점을 제공합니다. OpenVPN은 20년 이상의 현장 조사와 성숙한 TLS 생태계의 이점을 누리고 있습니다. 두 프로토콜의 최신 구성에는 알려진 암호화 중단이 없습니다.
- WireGuard가 UDP만 사용하는 이유는 무엇입니까?
- TCP를 통한 TCP 터널링은 잘 알려진 TCP 붕괴 문제를 일으키기 때문에 내부 연결이 재전송되면 외부 연결도 재전송되고 두 개의 재시도 타이머가 서로를 멈춥니다. UDP는 이를 완전히 회피합니다. 단점은 WireGuard가 TCP/443에서 HTTPS로 위장할 수 없다는 것입니다. 이것이 바로 OpenVPN-TCP가 필터링이 심한 네트워크에서 여전히 유용한 이유입니다.
- WireGuard는 내 IP를 기록합니까?
- 베어 프로토콜은 연결 피어를 일종의 로그인 공개 키와 연결합니다. 평판이 좋은 상업용 VPN 제공업체는 WireGuard를 순환 내부 IP 및 RAM 전용 서버로 포장하여 이 표면을 제거합니다. 자체 WireGuard 서버를 실행하는 경우 책임은 귀하에게 있습니다.
- WireGuard는 중국이나 이란에서 작동할 수 있나요?
- 표준 WireGuard 핸드셰이크는 독특한 모양을 갖고 있으며 심층 패킷 검사를 통해 쉽게 지문을 채취할 수 있으므로 필터링이 심한 국가에서는 정기적으로 차단됩니다. AmneziaWG와 같은 포크는 악수를 위장하는 난독화를 추가합니다. TLS 난독화 기능을 갖춘 OpenVPN-over-TCP/443은 또 다른 신뢰할 수 있는 대안입니다.
- WireGuard가 모바일 배터리를 죽일까요?
- 아니요. 일반적으로 OpenVPN보다 낫습니다. WireGuard의 작은 코드베이스와 지속적인 연결 유지 루프가 없다는 것은 CPU 및 무선 활동이 낮다는 것을 의미합니다. 커널 구현이 포함된 IKEv2는 모바일에서도 비슷하게 효율적입니다.