지난 몇 달 동안 Proton VPN은 새로운 클라이언트 측 VPN 프로토콜 코드베이스인 Proton 프로토콜을 개발해 왔습니다. 내부적으로 코드명 ProTUN으로 알려진 이 새로운 코드 아키텍처는 Rust로 작성되었습니다. Cloudflare의 BoringTun(새 창) 프로젝트에서 암호화 코드를 포크했지만, 완전히 재설계된 아키텍처는 Proton 고유의 것입니다.
새로운 VPN 코어가 필요한 이유
WireGuard®는 OpenVPN만큼 안전하면서도 더 빠르고 강력한 최첨단 VPN 프로토콜입니다. 이것이 저희가 WireGuard에 더 집중하기 위해 공식 앱에서 OpenVPN 지원을 삭제하기 시작한 이유입니다.
하지만 현재 저희 앱은 공식 wireguard-go WireGuard 구현을 사용하고 있습니다. 이는 정교하고 단순한 디자인으로 기존 VPN 프로토콜보다 빠르고 안전하며 감사가 용이한 훌륭한 구현체입니다.
하지만 wireguard-go는 저희가 지원하는 여러 플랫폼(Android의 Kotlin 및 iOS의 Swift 등)에서 Proton VPN을 기본 개발하는 데 사용하는 언어와 원활하게 통합되지 않습니다. 이로 인해 개발이 느려지고, 디버그가 복잡해지며, 안정성에 문제가 발생할 수 있습니다.
Proton 프로토콜은 이러한 문제를 해결합니다.
Proton 프로토콜은 WireGuard를 기반으로 한 새로운 클라이언트 측 VPN 프레임워크입니다. Rust로 작성되었으며 확장 가능한 공유 코어로 설계되었기 때문에, ProTUN은 여러 플랫폼에 일관되게 배포되고 다양한 네트워크 환경에 맞게 조정될 수 있습니다. 이를 통해 문제를 더 신속하게 진단하고 안정성을 향상하며 VPN 스택에 고급 기능을 직접 구축할 수 있게 됩니다.
가장 중요한 것은 Proton 프로토콜이 검열 및 네트워크 간섭에 신속하게 대응할 수 있는 유연성을 제공한다는 점이며, 이는 저희가 장기적으로 가장 큰 성과를 기대하는 분야이기도 합니다.
내부 구조
새로운 WireGuard 코어로 트래픽 암호화
Proton 프로토콜 프로젝트의 핵심은 Rust로 작성된 깔끔하고 독립적인 WireGuard 프로토콜 구현체인 libpvpnclient입니다. 이 구현체의 역할은 단순하지만 매우 중요합니다. 바로 귀하의 인터넷 트래픽을 암호화하고 연결을 안전하게 유지하는 것입니다.
wireguard-go와의 차이점은 빌드 방식에 있습니다. wireguard-go는 단순한 WireGuard 클라이언트인 반면, libpvpnclient는 고급 신기능 및 도구를 지속적으로 개발할 수 있는 완전히 새로운 프레임워크입니다.
또한 libpvpnclient는 특정 운영 체제에 종속되지 않고 순수한 플랫폼 독립형 코어로 설계되었습니다. 이를 통해 데스크톱, 모바일 등 모든 환경에서 동일한 고품질 구현을 재사용할 수 있습니다. 이러한 분리는 내부적으로 큰 차이를 만들어내며, 다음과 같은 이점을 제공합니다.
- 제어되고 반복 가능한 환경에서 복잡한 예외 상황을 테스트하고 디버그할 수 있습니다
- 여러 플랫폼에 걸쳐 개선 사항을 더 빠르고 일관되게 배포할 수 있습니다
- 검열 및 트래픽 차단에 저항하기 위한 새로운 기술을 실험할 수 있습니다
귀하에게는 이것이 더 빠른 업데이트, 플랫폼별 문제 감소, 네트워크 상황 및 검열 방식 변화에 더 신속하게 적응하는 VPN으로 이어집니다. ProTUN은 Rust 기반 라이브러리를 저희가 지원하는 각 운영 체제에 맞추는 libpvpnclient 래퍼의 자체 명칭입니다.
이는 LocalAgent와 긴밀하게 작동합니다. 이는 당사의 내부 제어 채널로서 인증서 기반 인증을 구현할 수 있도록 해주며, 최근 프로세스를 간소화하고 Rust로 재작성되었습니다.
이 새로운 VPN 코어는 다음 플랫폼에서 베타(앞서 해보기) 기능으로 지금 테스트 실행해 볼 수 있습니다.
- Windows
- Android
- iOS 및 iPadOS(고급 킬 스위치 지원 제공)
- Linux GUI 앱(검열 저항성을 지닌 Stealth 프로토콜 지원 제공)
Proton VPN 서버에 더 쉽게 연결하기
저희는 Proton 프로토콜의 2단계 작업도 진행하고 있습니다. 코드명 muon인 이 단계는 Proton API 자체에 검열이 이루어지는 상황에서도 앱을 Proton의 VPN API에 안전하게 연결해 주는 유연한 네트워킹 레이어입니다.
VPN이 귀하의 트래픽을 보호하려면 우선 Proton API에 안전하게 연결되어야 합니다. 하지만 이 과정은 점점 더 어려워지고 있습니다. 일부 국가 및 네트워크의 경우, API 연결이 DNS 수준에서 차단되거나 모니터링되거나, 서버 이름을 검사하는 방식(SNI 스누핑으로 알려진 기술)으로 식별되어 차단되기도 합니다.
이를 해결하기 위해 저희는 앱과 Proton API를 이어주는 새로운 게이트웨이인 muon을 구축하고 있습니다. 안전성과 성능을 위해 마찬가지로 Rust로 작성된 muon은 앱이 전송하는 가장 첫 번째 네트워크 요청을 처리하며, 이를 Proton VPN의 WireGuard 프로토콜로 안전하게 라우팅합니다(장기적으로 이 기능은 기존의 검열 우회용 대체 라우팅(새 창) 솔루션을 대체하게 됩니다).
실제 사용 시, 이는 귀하가 검열 국가에서 Proton VPN 앱을 여는 순간부터 Proton API와의 통신이 이미 보호된다는 것을 의미합니다(시스템 수준의 VPN 연결이 완전히 수립되기 전이라도 말이죠). 또한 검열이 심한 국가에서도 귀하의 ISP는 귀하가 Proton API에 연결하고 있다는 사실조차 알지 못할 것입니다.
이 보호 조치는 자동으로 작동하여 귀하에게는 보이지 않으며, 검열이 심한 국가에서도 정상적인 연결을 확보할 가능성이 더 커짐을 의미합니다. 실제로 muon은 검열을 우회하는 데 매우 유용하므로, (VPN뿐만 아니라) 모든 Proton 앱에 적용하여 초기 단계부터 전체 생태계에 내장형 검열 방지 기능을 제공할 예정입니다. 곧 출시될 예정이니 지켜봐 주시기 바랍니다.
다음 단계를 위한 탄탄한 기반
libpvpnclient(Proton 프로토콜 래퍼 포함)와 muon은 결합하여 엔지니어들에게 훨씬 더 높은 유연성을 제공하는 새로운 플랫폼을 형성합니다. 이를 통해 연결 안정성, 배터리 사용량, 복원력 개선 등을 안전하게 실험할 수 있으며, 보다 강력한 검열 방지 기술이나 포스트 양자 암호화와 같은 미래 기술을 위한 기틀을 마련할 수 있습니다.
저희는 이를 인터넷을 모두에게 더 접근하기 쉽고 신뢰할 수 있으며 개인 정보를 보호하는 곳으로 만들기 위한 중대한 도약으로 생각합니다. 그리고 이것은 시작에 불과합니다. 이 새로운 기반을 바탕으로 2026년 이후 Proton VPN이 나아갈 미래가 정말 기대됩니다.
“WireGuard”는 Jason A. Donenfeld의 등록 상표(새 창)입니다.






