VPN 프로토콜 비교 3대장 WireGuard,NordLynx,Lightway

오늘은 VPN 프로토콜 비교 분석을 해봤습니다. 많은 프로토콜들이 있지만 사실 우리가 사용하는 것은 한두개 정도 입니다. 이제는 대부분의 경우 와이어가드만 알아도 무방할 정도라고 생각할 정도로 대세가 기울어진 것 같습니다. 알아두면 재미있으니 차근차근 하나씩 같이 공부해 봅시다.

제가 제목을 프로토콜 3대장이라고 지은 이유는 재미있게 설명드리기 위함도 있지만 사실상 보안+성능적인 부분에서 탑클라스이고 가장 많이 쓰일 것이기 때문입니다.(원래 오픈VPN까지 4대장이었는데.. 시간이 좀 지나고보니 이젠 오픈이를 쓸 일이 거의 없어서 제외했어요.)


PPTP : 구시대 유물 이제는 굿바이~

PPTP는 윈도우95, 98 시절 모뎀을 통해 전화선으로 인터넷을 하던 Dial-Up 네트워킹 시대때 사용되던 프로토콜 방식입니다. Point-to-Point Tunneling Protocol(지점간 터널링 프로토콜)이란 뜻으로 과거에는 가장 대중적이었으나 많이 늙어 이제는 퇴출되었다고 봐야합니다.

MS-CHAP(Microsoft Challenge Handshake Authentication Protocol)-v1/v2 인증 프로토콜 문제 등 오래된 취약점들이 있구요. 그 후에 PEAP-MS-CHAP v2 권장 등 꼭 써야 하는 유저들을 위한 보완방법들이 나오긴 했지만 초가집 아무리 고쳐써봐야 현대식 건물을 따라가진 못 합니다.

낮은 알고리즘 복잡성으로 암호 무차별 대입에 약해 chapcrack이라는 애플리케이션을 사용하면 든 MS-CHAPv2 ‘핸드셰이크’에 대해 네트워크를 가로챌 수 있다고도 합니다.

장점

  • 여전히 오래된 구버전 윈도우를 사용하는 환경에서도 쓸 수 있을 정도로 대부분의 시스템에 사전 설치 되어있다
  • 설치, 설정이 쉽다
  • 빠르다(암호화 수준이 낮으므로)

단점

  • 보안이 가장 취약한 VPN 프로토콜
  • 퇴물

IKEv2/IPsec

Internet Key Exchange Version 2(인터넷 키 교환 버전 2)라는 뜻으로 이름이 이렇게 긴 이유는 IPsec(Internet Protocol Security)이란 녀석과 함께 붙어있기 때문입니다. 보통은 IKEv2라는 명칭으로 사용됩니다.

IKEv2는 SA(Security Association)를 설정하는 데 쓰이는 표준 RFC 7296 터널링 프로토콜이며 DH(Diffie-Hellman) 키 교환 작업으로 네트워크 디바이스 간에 IPsec 터널을 생성합니다. 그리고 IPsec 터널은 암호화 및 복호화 그리고 인증 작업을 맡습니다.

설명 길게 볼 것 없이 결론만 말씀드리자면, 본인이 사용해야할 이유가 명확하지 않다면 굳이 선택할 이유는 없습니다.

장점

  • 윈도우, MacOS, iOS 어느정도 최신 버전이라면 네이티브 탑재
  • 빠른 재연결이 장점이라 모바일에 조금 더 적합하다고 하는데 큰 차이는 없습니다.
  • 과거엔 블랙베리에서 동작하는 유일한 VPN 프로토콜이라는게 장점이었으나 요즘은 쓰는 사람이 거의 없죠
  • OpenVPN에 비해 CPU 사용량이 좀 더 낮음(개인 유저에겐 의미없음)

단점

  • 리눅스에서는 StrongSwan같은 IPSec Demon을 사용 및 추가 세팅으로 귀찮음이 있음
  • 오픈소스가 아니며, 마이크로소프트 + 시스코라는 미국 대기업의 것(1999년 Microsoft가 개발, 2004년 Cisco가 개선해서 2010년 IETF 표준화)
  • IKEv2는 UDP 50, 500, 4500 고정포트를 사용해서 방화벽 차단에 더 잘 막힘
  • 미국 NSA가 ISAKMP/IKE 및 IPSec에 관한 보안 취약점 보안 지침 발표(#) – 이런 경우 오픈소스와 다르게 투명하게 허점과 패치 내역을 누구나 다 알 수 없는 점이 개인적으로는 싫더군요.

LT2P/IPsec

LT2P 역시 IPsec이 붙어있죠. 위의 것 처럼 각각의 역할을 따로 합니다. 어차피 둘다 IPsec과 함께 작동하니 보안 수준은 차이가 거의 없다고 봐야할 것 입니다. Layer 2 Tunneling Protocol의 약자로 이름에도 알 수 있듯 터널링 프로토콜 입니다. 여기에서도 IPsec은 인증과 암호화를 담당합니다.

포지션이 조금 어중간한 면이 있습니다. 1999년도에 공개되었으니 나이도 꽤 많네요. 이 프로토콜의 안을 보면 PPTP가 있는데, 시스코의 L2F와 합쳐진 형태입니다. PPTP의 후계자 혹은 업그레이드 버전으로 봐야할 것 같아요.

딱히 써야할 이유를 들기가 어렵네요.

장점

  • 윈도우xp,윈도우2000같은 구버전에도 기본으로 지원됨
  • 데이터 이중 캡슐화

단점

  • IKEv2와 같이 엄마아빠가 Microsoft + Cisco
  • IKEv2와 같이 고정포트

SSTP : 마이크로소프트 프로토콜

Secure Socket Tunneling Protocol의 약자로 마이크로소프트가 만들었고 윈도우용 VPN 프로토콜 입니다. 보안과 성능은 마소가 책임지고 있으니 상급이겠지만 비공개 소스라 내부가 어떻게 돌아가는지 투명하게 알 수 없습니다.

중국 같은 곳에서 다른 프로토콜이 다 막혀서 혹시나 이거 한번 해볼까? 하시면 그때 시도해보시면 좋을 것 같아요. 일반적으로 쓸 일이 거의 없습니다.

장점

  • 안정적이라고 함

단점

  • 마이크로소프트
  • 비공개 소스
  • 호환성 및 접근성이 좋지 않음
  • SSL 3.0 기반으로 구축되어 POODLE 공격에 취약하다는 이론이 있는데 몇년전 이야기니 지금은 괜찮으려나요?

OpenVPN(TCP/UDP) : 과거의 영광을 뒤

가장 신뢰할 수 있는 VPN 프로토콜 중 하나 입니다. 프로토콜 선택은 고민하실 필요가 없습니다. 아래 와이어가드 지원하지 않는 환경이거나 난 TCP 통신이 필요하다 그러면 무조건 OpenVPN 쓰시면 됩니다. 하지만 요즘에는 대부분 와이어가드를 지원하죠.

OpenVPN이 2001년에 공개되었으니 벌써 20년이 넘었는데 지금도 최고의 신뢰성을 자랑합니다. 꾸준하게 개발이 진행되었고 오픈소스라 누구나 소스코드를 들여다 볼 수 있기 때문에 전세계 수 많은 사람과 조직들로부터 검증 받을 수 있기 때문입니다. 저는 오픈VPN 이후 네트워크 보안 레벨이 상당히 발전했다고 생각합니다. 투명하고 높은 수준의 암호화 프로토콜을 누구나 사용할 수 있게 해줘 고마운 마음도 있습니다.

윈도우, MacOS, Linux, 안드로이드 뿐 아니라 BSD(FreeBSD, OpenBSD, NetBSD 등)Solaris, Maemo, QNX 등 상당히 광범위하게 사용이 가능합니다. OpenSSL 라이브러리 및 TLS 프로토콜을 사용해 암호화를 제공하며 OpenSSL은 AES, ARIA, Blowfish, Camellia, ChaCha20, Cast, DES, 3DES, IDEA, RC2, RC4 등의 암호화 방식을 제공합니다.

TCP/UDP 차이가 뭔가요?

택배를 예로 들어 볼게요. 초보분들의 간단하게 개념 이해를 위한 대충대충 설명 입니다.^^

  • TCP(Transmission Control Protocol) : 돌다리도 두드려보고 건너는 성격이라 좀 더 신뢰성 있습니다.
    • 택배 : 댁에 계시죠?
    • 나 : 네~ 있어요
    • 택배 : 몇시 몇분에 도착 합니다. 제가 사인을 받아야 해서요~
    • 나 : 네 오세요~
    • 사인 후 수령
  • UDP(User Datagram Protocol) : 성격이 급해서 그냥 건넙니다.
    • 택배 : 101동 102호 201호 502호 몇시 몇분에 택배 도착 합니다~
    • 두고 감

TCP는 신뢰성에 중점을 두지만 속도가 UDP에 비해 조금 느린 편이예요. UDP는 TCP보다 빠르지만 신뢰성은 비교적 낮은 편 입니다. UDP는 어디에 많이 쓰일까요? 성격에 딱 맞는 스트리밍 서비스, VoIP 등에 많이 쓰입니다. 중간중간 버퍼링이 생기거나 잠깐 끊기더라도 실시간으로 보고 듣는게 더 중요하니까요.

장점

  • 오픈소스
  • 검증된 보안
  • 20여년간 전세계적으로 가장 많이 쓰임
  • 유연성
  • 호환성
  • TCP, UDP 둘다 사용가능
  • 훌륭한 커뮤니티와 문서화된 지식 정보가 가장 많음

단점

  • 서버 수동 설정이 복잡한 편
  • 3rd Party 클라이언트 프로그램 필요

아래부터는 차세대 프로토콜

WireGuard : 이제 왕좌는 나의 것

요즘 VPN 프로토콜 대세가 되어가고 있는 와이어가드 입니다. 3살이 되기도 전에 업계 표준이나 다름없는 오픈VPN과 이정도로 경쟁을 벌인다는 자체가 대단한 것 입니다. 좀 더 상세한 내용을 읽으시려면 와이어가드 리뷰 여기로. 결론만 말하자면 앞으로 몇년안에 와이어가드가 점유율을 상당히 많이 가져갈 것으로 보고 있습니다.

Linux 5.6 커널에 공식적으로 포함되는 등 빠르게 자리잡고 있습니다. 그리고 메이저 VPN 업체들도 빠르게 탑재하거나 그에 대응하는 프로토콜을 만들어 올리고 있습니다.리누스 토발즈는 와이어가드를 두고 “OpenVPN 및 IPsec에 비교하면 Work of art”라고 표현하기도 했습니다.(#blog)

하지만 개인 정보 보호에있어 단점이 있는데 아래 설명할게요.

장점

  • 코드수가 OpenVPN 600,000줄 vs WireGuard는 그에 비해 1% 이하 수준이라 유지 보수 및 감사에 훨씬 유리하고 공격 표면 또한 현저히 작습니다.
  • 가장 빠른 프로토콜
  • 배터리 소모가 비교적 더 적은 편이라 모바일에서 좀 더 효율적
  • 오픈소스
  • 윈도우, MacOS, 리눅스, 안드로이드, iOS, BSD 까지 꽤 많이 사용가능
  • 최신 암호화 – Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF

단점

  • UDP 전용이라 방화벽 차단 및 검열에 비교적 쉽게 막힐 수 있음
  • OpenVPN의 암호화 키의 최대 길이는 4096비트, WireGuard 256비트.
  • 프라이버시 문제가 언급됩니다. 보안 수준과 속도는 최상급이지만 와이어가드 설계상 퍼블릭 IP 주소를 재부팅 될 때 까지 계속 저장 및 유지되는 것과 동적 IP 주소 할당이 안되는 문제가 있습니다. 이 때문에 아래 소개할 NordLynx 등 각 VPN 업체 별로 해결책을 따로 만들게 됩니다.
    • Mullvad는 동적 할당이 되지 않는 부분에 대해 “WebRTC 누출로 고정 내부 IP주소가 외부로 누출될 수 있고 장치에서 실행되는 응용 프로그램이 내부 IP를 알아낼 수 있다. 이론적으로 유출된 고정 내부 IP는 결제 기록 획득과 함께 사용자 식별에 도움이 될 수 있다.“라고 우려를 표했지만 그래도 전반적으로 와이어가드에 대한 신뢰를 드러냈습니다.
    • WireGuard의 암호화 트래픽을 제3자가 해독할 수는 없지만 소프트웨어는 터널과 연결된 내부 IP 주소를 볼 수 있기 때문에 항상 안전한 공인 소프트웨어를 써야하고 내부(VPN을 사용하는 컴퓨터) 단속을 잘 해야합니다.
    • OpenVPN이 와이어가드에 비해 강점을 가지는 것이 이 부분

NordLynx : 와이어가드 단점을 보완

와이어가드를 대규모 서비스용으로 살짝 업그레이드 한 버전이라고 봐도 좋을 것 같습니다. VPN 회사들도 대세에 따라 하나둘씩 프로토콜을 올리긴하는데, 위에서 말씀드린 DHCP(Dynamic Host Configuration Protocol) 문제나 IP 저장 문제 때문에 No log 정책을 철저하게 지키는 NordVPN이나 ExpressVPN 같은 곳들은 고민을 하게 됩니다.

클라이언트 쪽에서 주기적으로 IP를 바꿔주는 곳도 있고, 나름의 대책을 새우는데 NordVPN은 WireGuard 기반으로 자체적인 프로토콜을 만듭니다. 아래 이미지를 통해 차이를 알아볼게요.

VPN 프로토콜 비교 와이어가드
VPN 프로토콜 비교 Nordlynx

위 이미지는 위는 노드VPN이 설명하는 와이어가드와 NordLynx(개선판)의 차이 입니다. VPN 기업 입장에서 가장 중요한 것이 대규모 서비스와 자사의 핵심 가치인 ‘No Log’인데 와이어가드의 단점을 해결하기 위해서 인증 서버와 Temporary dynamic identity assignment(임시 동적 신분 할당?)를 추가 했습니다. 아래는 노드 측의 공식 설명을 요약한 것 입니다.

WireGuard 프로토콜이 고객의 개인 정보에 위험을 초래하지 않고 작동할 수 있는 방법을 찾기 위해 NAT(Network Address Translation) 시스템이라는 것을 개발했으며 보안 연결의 핵심입니다.

이중 NAT 시스템은 각 사용자에 대해 두 개의 로컬 네트워크 인터페이스를 생성하고 첫 번째 인터페이스는 서버에 연결된 모든 사용자에게 로컬 IP 주소를 할당하며 원래 WireGuard 프로토콜과 달리 각 사용자는 동일한 IP 주소를 얻습니다.

VPN 터널 동적 NAT 시스템이 있는 두 번째 네트워크 인터페이스가 시작됩니다. 시스템은 각 터널에 고유한 IP 주소를 할당합니다. 이렇게 하면 인터넷 패킷이 혼동되지 않고 사용자와 원하는 대상 간에 이동할 수 있습니다.

이중 NAT 시스템을 사용하면 식별 가능한 데이터를 서버에 저장하지 않고도 안전한 NordLynx 연결을 설정할 수 있습니다. 동적 로컬 IP 주소는 세션이 활성 상태인 동안에만 할당된 상태로 유지됩니다. 한편, 사용자 인증은 안전한 외부 데이터베이스를 통해 수행됩니다. 즉, 보안 및 개인 정보를 손상시키지 않으면서 뛰어난 연결 속도를 즐길 수 있습니다.

https://nordvpn.com/blog/nordlynx-protocol-wireguard/

뭐.. 그렇다고 합니다. 얘네들 밥줄이니까 확실하게 알아서 잘 하겠죠..?


Lightway : 더 가볍게, 더 안전하게.

VPN 프로토콜 비교 lightway

Lightway는 ExpressVPN이 와이어가드 대응으로 내놓은 VPN 프로토콜 입니다. ExpressVPN은 왜 WireGuard를 바로 채택하지 않았나? 궁금했는데 아래와 고민을 했다고 합니다.

앞서 NordLynx 설명하며 말씀드렸던 문제로 똑같이 고민하게 됩니다. 그리하여 ExpressVPN은 사용자의 개인 정보 보호, 보안 및 성능 요구 사항을 충족하기 위해 처음부터 Lightway를 자체 제작 했다고 합니다.

익스프레스VPN이 라이트웨이를 만든 이유는 아래와 같습니다.

  • 개인정보 보호 : 위에 설명드린 부분입니다. 와이어가드는 통신 상대를 신뢰할 수 있기 때문에 IP를 숨길 필요가 없다는 전제가 깔려있어 ExpressVPN의 최우선 가치인 ‘익명성’을 충족시키기 어렵다고 봤습니다.
    • 그럼 라이트웨이 프로토콜은 이 부분을 어떻게 해결 했느냐? : “Lightway 프로토콜을 쓰는 유저에게는 LRU(최소 최근 사용) IP 주소가 할당되며, 각 사용자에게 고유한 주소가 할당되어 있지만 사용자에게 표시되는 주소는 동일한 서버의 다른 모든 사용자에게 표시되는 동일한 IP 주소이고, 모든 로그 또는 시스템 정보에는 대체 IP 주소만 표시됨.“이라고 설명합니다.
  • TCP/UDP 둘다 지원 : 와이어가드가 UDP만 사용하기 때문에 방화벽 차단에 좀 더 잘 막힌다고 말씀드렸는데, Lightway에는 두가지를 모두 포함시켰다고 합니다.
  • Obfuscation(난독화) : Wireguard는 공식적으로 난독화에 중점을 두지 않았다고 밝히고 있습니다.(#read) 검열과 방화벽에 더 쉽게 막힐 수 있기에 Lightway Core에 해당 기능을 쉽게 추가할 수 있다고 합니다.
  • 외부 감사 : 독일 보안 회사인 Cure53이 외부 감사를 맡습니다. (리포트)
    • ‘Cure53’은 인터넷 감시 시민단체인 ‘시티즌랩’과 함께 한국의 방통위가 만들었던 청소년 스마트폰 관리 통제 앱인 스마트 보안관에 대해 “이 아동 감시 앱은 해킹에 절망적으로 취약하다. 보안이랄 것이 전혀 없고 근본적으로 망가진 앱“이라고 격렬하게 비판했던 기업이기도 합니다.(#csmonitor) 국제적으로 망신을 당한 후 해당 앱은 사라졌습니다.(#기사) 이 앱은 무려 혈세 30억이나 들여서 만들었습니다. 2012년부터 보급했다고 하니 이명박 시절에 만들어졌군요.
  • 오픈소스 : Github에 공개되어있습니다.

VPN 프로토콜 비교 결론

개인은 자신의 환경에 따라 OpenVPN / Wireguard 둘중 아무거나 사용하시면 되겠습니다. 지금은 와이어가드를 우선적으로 사용하는게 맞습니다. 저는 개인용 방화벽 Opnsense에 와이어가드를 설치했습니다.

그리고 ExpressVPN, NordVPN 사용하시는 분들은 각각 Lightway, NordLynx에 대해서 이해하셨을테니 더 편한 마음으로 사용하실 수 있겠죠?^^ 라이트웨이 리뷰를 읽어보시면 생각보다 상당히 잘 만든 프로토콜이라는 것을 알 수 있습니다. 저는 ExpressVPN 사용시 OpenVPN을 이제 버리고 Lightway를 고정으로 쓰고 있습니다.

권장하는 VPN 어떤게 가장 좋나요?

저의 메인 VPN은 여전히 ExpressVPN이지만 최근 NordVPN 속도가 너무나 좋아져서 현재 가성비 최고는 NordVPN 2년 플랜이라 베스트 오브 베스트 Pick 입니다. 익스프레스VPN 골수팬인 제가 노드를 이렇게 밀어준건 처음일 정도로요. 혹시 변화가 생기면 업데이트 하겠습니다.

각 VPN 최대 할인 오피셜 링크는 아래와 같습니다.

4 Comments

  1. 노로그 vpn의 경우에는 일반 와이어가드보다 노드링스 같은게 낫죠 단점이 보완되니까 프로톤도 일반 와이어가드는 프라이버시 문제가 있어서 노드처럼 이중 nat 시스템으로 개발했더라고요 그외 프로토콜은 이제 구시대 유물이고 라이트웨이 같은 경우에는 아직 개발이 더 필요할것 같아요

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다