SEC. 보안 3 MIN READ

VPN 프로토콜 비교: WireGuard vs OpenVPN, 뭐가 다른가

WireGuard와 OpenVPN은 VPN을 구성하는 방식 자체가 다르다. 두 프로토콜의 구조적 차이와 실제 선택 기준을 설명한다.

BY LIBRETIP 편집 K.H. DIGITAL SECURITY DISPATCH

VPN을 설치하면 어딘가에 “WireGuard”와 “OpenVPN” 중에 고르라는 옵션이 나온다.

뭐가 다른 걸까.

프로토콜이란 무엇인가

프로토콜은 “통신 규칙”이다. 데이터를 어떻게 암호화하고, 어떻게 전송하고, 어떻게 연결을 유지할지 정해놓은 약속이다.

VPN 프로토콜은 VPN 터널을 어떻게 만드느냐를 결정한다. 같은 VPN이라도 프로토콜에 따라 속도, 보안, 배터리 소모, 방화벽 우회 능력이 달라진다.

OpenVPN: 검증된 노장

OpenVPN은 2001년에 나왔다. 20년 넘게 살아남은 프로토콜이다.

장점은 신뢰성이다. 20년 동안 수많은 보안 전문가가 코드를 들여다봤다. 취약점이 발견되면 빠르게 패치됐다. 검증된 역사가 있다.

또한 유연하다. TCP와 UDP 모드 모두 지원하고, 포트 443을 쓰면 일반 HTTPS 트래픽처럼 보여서 방화벽을 잘 뚫는다. 학교 와이파이나 회사 네트워크처럼 VPN을 막는 환경에서 유용하다.

단점은 코드베이스다. OpenVPN의 핵심 코드는 약 70,000줄. OpenSSL 라이브러리까지 합치면 수십만 줄이다. 이걸 혼자서 전부 검토하는 건 불가능에 가깝다. 코드가 복잡할수록 숨겨진 버그나 취약점이 있을 가능성도 높다.

속도도 느리다. 코드 구조상 오버헤드가 크다. 특히 모바일 기기에서는 배터리를 많이 잡아먹는다.

WireGuard: 새로운 접근

WireGuard는 2016년에 처음 공개됐다. Linux 커널 개발자인 Jason Donenfeld가 만들었다.

설계 철학이 다르다. “작고 단순하게.”

코드 줄 수가 약 4,000줄이다. OpenVPN의 수십만 줄과 비교하면 장난 같다. 이게 가장 큰 차별점이다.

왜 적은 코드가 좋은가. 검토하기 쉽기 때문이다. 보안 전문가 한 명이 며칠 만에 전체 코드를 이해할 수 있다. 숨겨진 취약점을 찾기도 훨씬 쉽다.

암호화 방식도 현대적이다.

OpenVPN은 수십 가지 암호화 알고리즘 중에 선택할 수 있다. 유연하지만, 잘못된 설정을 할 여지도 있다.

WireGuard는 고정이다. ChaCha20(암호화), Poly1305(인증), Curve25519(키 교환), BLAKE2(해시). 업계에서 가장 현대적이고 빠른 알고리즘들이다. 선택지가 없으니 잘못 설정할 수도 없다.

속도는 WireGuard가 압도적이다. Linux 커널 안에 직접 구현되어 있어서 오버헤드가 극히 적다. 같은 하드웨어에서 OpenVPN보다 3~4배 빠른 속도가 나오기도 한다.

로밍도 장점이다. 와이파이에서 LTE로 바뀌어도 VPN 연결이 끊기지 않는다. OpenVPN은 이 전환이 불안정한 경우가 있다.

WireGuard의 단점

완벽하지는 않다.

프라이버시 이슈가 있다. WireGuard는 기본적으로 접속한 IP를 서버 메모리에 저장한다. “로그 없음” 정책을 표방하는 VPN이라면 이 부분을 우회하는 별도 처리가 필요하다. Mullvad 같은 VPN은 이 문제를 해결하기 위해 동적 IP 할당 방식을 사용한다.

방화벽 우회가 약하다. WireGuard는 UDP 전용이다. TCP를 쓸 수 없다. 일부 엄격한 방화벽 환경에서는 막힐 수 있다. OpenVPN의 TCP 443 모드보다 방화벽 우회 능력이 떨어진다.

역사가 짧다. 2020년에야 Linux 커널에 공식 포함됐다. 검증 기간이 OpenVPN보다 훨씬 짧다.

어떤 걸 써야 하나

일반 사용이라면 WireGuard. 빠르고, 안정적이고, 모바일 배터리를 덜 소모한다.

엄격한 방화벽 환경이라면 OpenVPN. 학교, 직장, 중국, 러시아처럼 VPN을 적극적으로 차단하는 환경에서는 OpenVPN TCP 443 모드가 더 효과적이다.

최고의 보안이 목표라면 둘 다 충분하다. 제대로 설정된 WireGuard와 OpenVPN은 현실적인 위협에서 모두 당신을 보호할 수 있다.

정리

WireGuardOpenVPN
코드 크기~4,000줄수십만 줄
속도빠름보통
방화벽 우회보통강함
역사2016년~2001년~
암호화 선택고정 (현대적)선택 가능
배터리 소모적음많음

두 프로토콜 모두 좋은 선택이다. 어떤 환경에서 어떤 목적으로 쓰느냐에 따라 고르면 된다.

계속 읽기

댓글

댓글은 giscus를 통해 GitHub Discussions에 저장됩니다.