블로그로 돌아가기
개념 설명·16분 분량

WireGuard vs OpenVPN — 프로토콜 전환이 실제로 바꾼 것들

OpenVPN은 2001년부터 오픈소스 VPN 프로토콜의 기본값이었습니다. WireGuard는 2016년에 출시되어 조용히 그 자리를 대체해 왔습니다. Linux 메인라인에 편입되고, 주요 VPN 벤더마다 지원하며, 학계 보안 커뮤니티의 검증을 받았습니다. 무엇이 달라졌는지, 무엇이 그대로인지, 그리고 OpenVPN이 여전히 우위를 점하는 영역은 어디인지 살펴봅니다.

작성: Casper's Cloak Security Team

요약: OpenVPN은 작동합니다. 20년 넘게 감사를 받고 실전에 배포되어 검증되었습니다. WireGuard도 동일한 역할을 수행합니다. 두 엔드포인트 간의 암호화된 인증 터널을 제공하되, 더 작은 코드베이스, 현대적인 암호화 기본 요소, 그리고 모바일 기기에서 훨씬 뛰어난 성능을 갖추었습니다. 일반 소비자와 대부분의 기업 환경에서 WireGuard는 2026년 현재 더 나은 엔지니어링 선택입니다. OpenVPN이 여전히 우위를 점하는 구체적인 시나리오가 있습니다. UDP 트래픽을 차단하는 제한적인 네트워크에서 TCP 모드로 HTTPS처럼 보이게 해야 하는 경우, 인증서 기반 PKI 연동이 필요한 경우, 그리고 WireGuard를 아직 인증하지 않은 장기 컴플라이언스 이력이 있는 환경이 그에 해당합니다. 이 글의 나머지 부분은 그 요약 뒤에 있는 기술적 세부 사항을 다룹니다.

각 프로토콜의 실체

2001년 James Yonan이 공개한 OpenVPN은 SSL/TLS 기반 VPN 프로토콜입니다. 대부분의 플랫폼에서 사용자 공간(user space)에서 실행되며, 암호화에는 OpenSSL 또는 mbedTLS 라이브러리를 사용합니다. 데이터 채널은 OpenSSL이 지원하는 모든 암호를 사용할 수 있고, AES-256-GCM이 현대적인 기본값입니다. 제어 채널은 TLS를 사용하므로 인증에 X.509 인증서 생태계 전체를 활용할 수 있습니다. UDP(기본값, 오버헤드 낮음)와 TCP(느리지만 제한적인 방화벽을 통과 가능) 모두 지원합니다. 구성 모델은 풍부하고 유연하여 라우트, DNS, 동적 IP 할당, 정책 푸시 등 수십 가지 파라미터를 설정할 수 있습니다.

Jason Donenfeld가 설계하여 2016년에 공개한 WireGuard는 훨씬 작고 독단적인 설계입니다. 암호화 기본 요소가 고정되어 있어 협상이나 암호 스위트 목록이 없습니다. 프로토콜은 Linux, macOS, Windows에서 커널 공간에서 실행되며(iOS에서는 사용자 공간 구현 사용), UDP만 지원하여 TCP 폴백이 없습니다. 인증은 정적 공개/개인 키 쌍만 사용하며, 인증서 생태계나 사용자명/비밀번호, PKI가 없습니다. 구성 모델은 최소화되어 있습니다. 각 피어의 공개 키와 허용된 IP 범위를 나열하는 것이 전부입니다. 단순함이 바로 설계의 핵심입니다.

이러한 단순화는 "재미로 기능을 뺀" 것이 아닙니다. OpenVPN의 풍부한 구성 공간을 포기하는 대신 공격 표면을 크게 줄이고, 코드베이스를 대폭 줄이며, 성능을 현저히 높이는 의도적인 트레이드오프입니다. 원본 WireGuard 백서는 이를 명시적으로 밝힙니다. 설계 목표는 하나를 잘 하는 것이지, 만능 도구가 되는 것이 아닙니다.

코드 크기와 감사 범위

이것은 가장 많이 언급되지만 가장 과소평가된 차이점입니다. WireGuard의 참조 구현은 약 4,000줄의 코드입니다. OpenVPN의 코드베이스는 10만 줄이 넘으며, OpenSSL까지 포함하면 약 50만 줄에 달합니다. 취약점이 없다고 확신하기 위해 검토해야 하는 코드의 양, 즉 감사 표면이 두 자릿수 배율로 차이가 납니다.

이것이 중요한 이유는 VPN 프로토콜의 실제 보안 취약점이 역사적으로 프로토콜 설계 결함이 아닌 구현 버그에서 비롯되었기 때문입니다. 2014년 OpenSSL의 Heartbleed 버그는 모든 OpenVPN 배포에 영향을 미쳤습니다. Lucky Thirteen과 CBC 패딩 오라클 공격은 OpenVPN이 의존하는 TLS 레이어에 영향을 주었습니다. 이것들은 OpenVPN 프로토콜 자체의 버그가 아니라 그 아래 레이어의 취약점이었습니다. 4,000줄짜리 구현을 가진 프로토콜은 그런 버그가 숨을 곳이 극적으로 적습니다.

이것은 가상의 이점이 아닙니다. 새 코드 병합에 악명 높을 만큼 엄격한 Linux 커널 메인테이너들은 2020년에 WireGuard를 메인라인 커널에 받아들였는데, 부분적으로는 코드베이스가 처음부터 끝까지 검토할 수 있을 만큼 작았기 때문입니다. Linus Torvalds는 다른 VPN 구현과 비교하여 WireGuard를 공개적으로 "예술 작품"이라고 표현했습니다. OpenVPN은 복잡성 때문에 메인라인 커널에 포함된 적이 없습니다.

암호화 기본 요소

OpenVPN은 암호 민첩성(cipher-agile)을 갖추고 있어, OpenSSL이 지원하는 범위 내에서 어떤 암호화, MAC, 키 교환 알고리즘을 사용할지 설정할 수 있습니다. 현대적 기본값은 데이터에 AES-256-GCM, HMAC에 SHA-256, 인증서 기반 인증에 RSA 또는 ECDSA입니다. 이 민첩성은 역사적으로 자산이었습니다. 하나의 알고리즘이 취약한 것으로 밝혀지면 프로토콜을 바꾸지 않고도 교체할 수 있었습니다. 동시에 취약점이기도 합니다. 지난 10년간 대부분의 TLS 취약점은 기본 요소 자체가 아니라 협상 로직(다운그레이드 공격, 암호 스위트 조작, 폴백 핸드셰이크)과 관련이 있었습니다.

WireGuard는 기본 요소를 고정합니다. 대칭 암호화에 ChaCha20, 인증에 Poly1305(ChaCha20-Poly1305 AEAD로 결합), 타원 곡선 디피-헬먼 키 교환에 Curve25519, 해싱에 BLAKE2s, 키 유도에 HKDF를 사용합니다. 이것들은 협상할 수 없습니다. 만약 이 중 하나에서 취약점이 발견된다면 프로토콜 버전 자체가 올라갑니다. 공격자가 활용할 수 있는 인밴드(in-band) 다운그레이드 경로가 없습니다. 기본 요소의 선택은 현대 암호 분석에 근거합니다. ChaCha20은 하드웨어 AES 가속이 없는 기기(대부분의 구형 ARM 폰)에서 AES보다 효율적이고, Curve25519는 현재 사용 중인 타원 곡선 중 가장 많이 감사를 받았으며, BLAKE2s는 SHA-256보다 빠르면서 동등한 보안성을 제공합니다.

트레이드오프가 있습니다. WireGuard가 선택한 기본 요소 중 하나가 깨진다면, 모든 배포가 동시에 업그레이드해야 합니다. OpenVPN의 암호 민첩성으로는 개별 서버가 자체 속도로 이전할 수 있습니다. WireGuard의 베팅은 선택한 기본 요소가 실제로 오랫동안 이런 상황이 필요 없을 만큼 견고하다는 것입니다. 지금까지는 그래 왔으나, 앞으로도 그럴지는 아무도 예측할 수 없는 암호 분석 발전에 달려 있습니다.

연결 모델 — 무상태 vs 상태 유지

OpenVPN은 상태 유지(stateful) 세션을 유지합니다. 연결 시 핸드셰이크가 발생하고 연결이 지속되며, 연결 해제는 명시적인 이벤트입니다. 서버는 클라이언트별로 협상된 세션 키, 현재 시퀀스 번호, 할당된 가상 IP를 포함한 상태를 추적합니다. 서버가 재시작되거나 연결이 중단되면 전체 핸드셰이크로 세션을 다시 수립해야 합니다.

WireGuard는 네트워크 관점에서 개념적으로 무상태(stateless)입니다. 각 피어는 세션 ID가 아닌 공개 키로 식별됩니다. 전통적인 의미의 "연결"이 없습니다. 피어 간 패킷은 알려진 공개 키에 대해 인증되거나 그렇지 않습니다. 키 순환은 2분마다(또는 설정 가능한 바이트 카운트 초과 시) 이루어지지만, 사용자 관점에서 재핸드셰이크가 필요하지 않습니다. 서버가 재시작되면 클라이언트의 다음 패킷이 자동 핸드셰이크를 트리거합니다. 사용자는 핸드셰이크 왕복 시간 외에 중단을 경험하지 않습니다.

이 무상태 모델이 WireGuard가 네트워크 로밍을 매끄럽게 처리하는 이유입니다. Wi-Fi에서 셀룰러로 전환하는 폰의 경우, OpenVPN은 일반적으로 전체 재핸드셰이크가 필요합니다(5-10초가 걸리고 때로는 실패합니다). WireGuard는 그냥 계속 작동합니다. 새 IP의 새 패킷이 정상적으로 인증되고, 서버가 해당 공개 키의 엔드포인트 매핑을 새 IP로 투명하게 업데이트하며, 터널이 계속됩니다. 사용자 관점에서 네트워크 변경은 보이지 않습니다.

성능 — 실제로 중요한 수치들

벤치마크는 일관되게 WireGuard가 처리량, 지연 시간, CPU 사용량에서 OpenVPN을 크게 앞선다는 것을 보여줍니다. 수치는 하드웨어와 구성에 따라 다르지만 전반적인 패턴은 일관됩니다. 기가비트 이더넷 환경의 일반적인 최신 랩톱에서 WireGuard는 라인 레이트에 가까운 처리량(900+ Mbps)을 달성합니다. AES-256-GCM과 최신 OpenSSL을 사용하는 OpenVPN은 사용자 공간 복사와 TLS 프레이밍 오버헤드로 인해 일반적으로 200-400 Mbps를 달성합니다. 하드웨어 AES 가속이 없는 ARM 기반 폰에서는 WireGuard의 우위가 더 큽니다. ChaCha20이 소프트웨어 AES보다 훨씬 빠르고, 커널 내 구현이 컨텍스트 스위치를 피하기 때문입니다.

지연 시간 비교는 덜 극적이지만 일관되게 WireGuard에 유리합니다. 빠른 네트워크에서 일반적인 WireGuard 터널은 왕복당 1-3ms의 오버헤드를 추가합니다. OpenVPN은 암호와 플랫폼에 따라 5-15ms를 추가합니다. 게임, 화상 통화, 터미널 세션 같은 인터랙티브 사용에서는 차이가 느껴집니다. 대용량 전송에서는 처리량에 비해 부차적입니다.

모바일 배터리 영향

스마트폰에서 성능 차이는 배터리 차이로 나타납니다. 두 가지 효과가 복합적으로 작용합니다. WireGuard는 동일한 네트워크 트래픽을 더 적은 CPU 사이클로 처리합니다(프로토콜이 단순하고 ARM에서 암호화가 빠르기 때문입니다). 그리고 WireGuard는 유효 바이트당 네트워크 오버헤드를 덜 생성합니다(킵얼라이브 패킷 감소, 더 작은 프레이밍, 주기적 재핸드셰이크 없음). 독립적인 측정들은 iOS와 Android에서 동등한 작업 부하에 대해 WireGuard가 약 20-40% 적은 배터리를 소비한다는 것을 반복적으로 보여주었습니다.

재핸드셰이크 없는 로밍 동작도 배터리에 도움이 됩니다. OpenVPN의 경우, 네트워크 변경마다 클라이언트가 연결이 끊어졌음을 인식하고 재연결을 시작하는 동안 패킷 재전송 실패가 이어질 수 있으며, 이 재시도 동작은 필요 이상으로 오래 라디오를 활성 상태로 유지합니다. WireGuard는 이를 완전히 방지합니다.

로밍 동작 — 세션 중 네트워크 전환

이것은 WireGuard가 제공하는 단일하면서 가장 사용자에게 가시적인 개선 사항입니다. VPN이 연결된 상태에서 화상 통화 중에 집을 나서면서 폰이 Wi-Fi에서 셀룰러로 전환된다고 상상해 보세요.

  • OpenVPN의 경우 — 셀룰러 네트워크는 폰에 새 IP를 부여합니다. OpenVPN 클라이언트의 아웃바운드 패킷은 이 새 IP에서 오지만, 서버의 세션 상태는 이전 Wi-Fi IP의 패킷을 기대합니다. 패킷이 드롭됩니다. 몇 초간의 침묵 후, OpenVPN의 킵얼라이브 로직이 실패를 감지하고 재연결을 트리거합니다. 전체 TLS 핸드셰이크와 키 교환이 이루어집니다. 통화가 끊기고 재연결해야 합니다.
  • WireGuard의 경우 — 새 IP의 동일한 패킷이 서버에 도달하고, 알려진 공개 키에 대해 인증되어 수락됩니다. 서버는 해당 공개 키의 엔드포인트 매핑을 새 IP로 투명하게 업데이트합니다. 다음 응답은 새 IP로 갑니다. 통화가 끊기지 않습니다. 사용자는 아무것도 느끼지 못합니다.

이것이 소비자 VPN 업계가 WireGuard를 채택하게 만든 사용자 경험 우위입니다. "Wi-Fi에서 셀룰러로 전환할 때 VPN이 끊긴다"는 고객 지원 문의가 벤더가 OpenVPN에서 WireGuard로 마이그레이션하면 단순히 사라집니다.

OpenVPN이 여전히 우위를 점하는 곳

OpenVPN은 사라지지 않았으며, 2026년에도 더 나은 선택으로 남아 있는 구체적인 시나리오가 있습니다.

제한적인 네트워크를 위한 TCP 모드

WireGuard는 UDP 전용입니다. 일부 네트워크 — 기업 방화벽, 호텔 Wi-Fi, 일부 국가의 제한적인 ISP — 는 표준 DNS/QUIC 포트가 아닌 UDP 트래픽을 차단하거나 심하게 속도 제한을 겁니다. OpenVPN의 TCP 모드(일반적으로 포트 443)는 VPN 트래픽을 일반 HTTPS처럼 보이게 하여 이러한 네트워크를 통과할 수 있습니다. WireGuard에는 기본 TCP 모드가 없습니다. 위에 추가적인 난독화 레이어(Cloak, Shadowsocks, AmneziaWG)가 필요하거나 OpenVPN으로 폴백해야 합니다.

기존 PKI와의 인증서 기반 인증

OpenVPN은 X.509 인증서 인프라와 깔끔하게 통합됩니다. 다른 목적(스마트 카드, S/MIME, 내부 TLS)으로 이미 PKI를 보유한 조직은 새 인프라를 구축하지 않고도 VPN 인증으로 확장할 수 있습니다. WireGuard는 정적 키를 사용하는데, 운영상 더 단순하지만 PKI 워크플로우와 통합되지 않습니다. PKI에 강한 투자를 한 조직에는 OpenVPN이 여전히 자연스러운 선택입니다.

더 긴 감사 이력

OpenVPN은 20년 넘게 프로덕션에 배포되어 왔습니다. 여러 독립 기관에 의해 여러 차례 감사를 받았습니다. WireGuard의 이력은 더 짧습니다. 8년간의 프로덕션 배포와 더 적은 수의 공식 감사가 있습니다. 둘 다 깨끗한 보안 기록을 보유하고 있으며, OpenVPN의 실적이 더 길 뿐입니다. 긴 배포 이력을 요구하는 컴플라이언스 프레임워크(일부 FedRAMP, 일부 FIPS 환경)에서는 OpenVPN이 유일한 옵션일 수 있습니다.

동적 IP 할당과 풍부한 정책 푸시

OpenVPN 서버는 핸드셰이크 시 가상 IP를 동적으로 할당하고, DNS 설정, 라우트, 기타 구성을 클라이언트에 푸시할 수 있습니다. WireGuard의 구성은 대부분 정적입니다. 각 피어의 허용 IP는 미리 구성됩니다. 엔드포인트 변경이 잦은 대규모 기업 배포에서는 OpenVPN의 동적 모델이 운영상 더 단순합니다.

항목별 비교

항목 WireGuard OpenVPN
출시 연도 2016 2001
코드베이스 크기 (참조 구현) 약 4,000줄 약 100,000줄 이상 (OpenSSL 약 500,000줄 별도)
암호화 기본 요소 고정: ChaCha20-Poly1305, Curve25519, BLAKE2s OpenSSL을 통해 협상 가능; 기본값 AES-256-GCM + SHA-256 + RSA/ECDSA
기본 포트 51820 UDP (설정 가능) 1194 UDP, 443 TCP (설정 가능)
TCP 지원 없음 (UDP 전용) 있음 (TCP 모드 지원)
인증 방식 정적 공개 키 쌍 X.509 인증서, 사전 공유 키, 사용자명/비밀번호
Linux 커널 통합 커널 5.6부터 메인라인 편입 (2020) 사용자 공간 전용
모바일 배터리 효율 독립 테스트에서 약 20-40% 낮은 소모량 더 높은 기본 소모량; 주기적 재핸드셰이크로 추가 비용 발생
로밍 (Wi-Fi → 셀룰러) 투명하게 처리; 재핸드셰이크 불필요 재연결 트리거; 눈에 보이는 세션 끊김
감사 이력 약 8년 프로덕션; 복수의 공식 감사 약 24년 프로덕션; 광범위한 감사 이력
검열 저항성 (원시) 낮음 (고유한 핸드셰이크 패턴) TCP/443 모드에서 높음

현대 서비스들이 WireGuard를 사용하는 이유

주요 소비자 VPN 서비스 — Mullvad, ProtonVPN, NordVPN, IVPN, Surfshark, ExpressVPN, Casper's Cloak — 모두 WireGuard를 제공하며, 대부분이 기본값으로 설정했습니다. 벤더들 사이에서 이유는 일관됩니다. 더 빠르고, 배터리를 덜 사용하고, 네트워크 로밍을 우아하게 견디며, 감사하기 쉽습니다. 연결 끊김이 줄어 고객 지원 비용이 낮아집니다. 서버당 CPU 사용량이 줄어 더 많은 동시 연결을 처리할 수 있어 서버 비용도 내려갑니다. 특히 모바일에서 사용자 경험이 측정 가능하게 향상됩니다.

이 전환은 진지한 기관 사용자들에 의해서도 검증되었습니다. Mullvad는 WireGuard로의 완전한 마이그레이션과 그 엔지니어링 이유를 공개적으로 설명했습니다. Tailscale과 Cloudflare WARP 서비스는 WireGuard 파생 프로토콜 위에 구축되었습니다. Linux는 메인라인에 편입했습니다. macOS와 iOS는 기본 지원을 제공합니다. 새로운 VPN 배포에는 WireGuard가 올바른 기준선이며, OpenVPN은 특정 호환성 시나리오를 위해 유지된다는 강력한 업계 합의가 있습니다. 이러한 프로토콜을 올바르게 사용하는 유료 VPN이 왜 중요한지에 대한 더 넓은 맥락은 무료 vs 유료 VPN 가이드에서 신뢰와 자금 측면을 다루고 있으며, ProtonVPN 비교에서는 특정 벤더들의 구현 차이를 살펴봅니다.

Casper가 사용하는 것과 그 이유

Casper's Cloak은 iOS, Android, Mac에서 기본적으로 WireGuard를 실행합니다. 이유는 위의 비교와 직결됩니다. 낮은 배터리 소모는 사용자가 실제로 들고 다니는 기기에서 중요합니다. 끊김 없는 로밍은 대부분의 고객이 매일 네트워크 간에 이동하기 때문에 중요합니다. 더 작은 코드 표면은 위협 모델과 일치합니다. 네트워크 레이어 방어가 추가적인 코드 실행 표면을 도입해서는 안 됩니다. 그리고 암호화 기본 요소는 현재 최고의 선택입니다.

우리는 WireGuard와 자체 필터링 및 탐지 레이어를 함께 사용합니다. DNS 리졸버 수준의 위협 차단 방패, 새 도메인에 대한 ML 기반 위협 점수 산정, 응답 경로에서의 추적기 필터링이 여기에 포함됩니다. 터널은 전송 수단이며, 활성 필터링이 연결을 단순한 IP 변경 이상의 유용한 작업을 하게 만드는 것입니다. WireGuard 자체에 대한 공식 기술 참조로는 원본 논문과 wireguard.com/papers의 문서가 여전히 최고의 1차 자료입니다.

결론

WireGuard는 2026년 현재 소비자 VPN, 현대적인 기업 배포, 그리고 대부분의 클라우드 간 터널링에서 올바른 기본값입니다. 더 빠르고, 배터리 효율이 높으며, 감사하기 쉽고, 모바일 네트워크 로밍 처리에서 현저히 우수합니다. OpenVPN은 더 이상 사용되지 않는 것이 아니며, TCP 모드가 필요한 제한적인 네트워크, 기존 PKI 워크플로우를 보유한 조직, 그리고 긴 감사 이력이 필요한 컴플라이언스 환경에서 올바른 답으로 남아 있습니다.

소비자 VPN을 선택하는 일반 사용자에게: WireGuard를 제공하는 벤더를 선택하고, 기본값으로 사용하며, WireGuard의 UDP 트래픽을 허용하지 않는 드문 네트워크를 위한 폴백으로 OpenVPN을 유지하세요. 성능과 배터리 개선은 실질적이고, 보안 모델은 최소한 동등하게 강력하며, 사용자 경험 — 특히 모바일에서 — 은 의미 있게 더 좋습니다. 업계가 이미 이루어 낸 전환은 올바른 것이며, 되돌아갈 기미가 없습니다.

검토: Casper's Cloak Security Team · 최종 업데이트

WireGuard 터널, 능동적 필터링, DNS 유출 없음

Casper's Cloak은 iOS, Android, Mac에서 기본적으로 WireGuard를 실행합니다. 위협 차단 필터링, 암호화된 DNS, OS 수준에서 강제되는 상시 보호가 포함됩니다. 현대적인 프로토콜, 현대적인 보안 강화.