I løpet av de siste månedene har Proton VPN jobbet med Proton-protokoller, en ny kodebase for VPN-protokoller på klientsiden. Denne nye kodearkitekturen, som er internt kjent under kodenavnet ProTUN, er skrevet i Rust. Selv om vi forgrenet kryptografikode fra Cloudflares BoringTun(nytt vindu)-prosjekt, er den fullstendig redesignede arkitekturen Protons.

Hvorfor vi trenger en ny VPN-kjerne

WireGuard® er en toppmoderne VPN-protokoll som er like sikker som OpenVPN, men raskere og kraftigere. Det er derfor vi begynner å fjerne støtte for OpenVPN fra de offisielle appene våre, for i stedet å fokusere på WireGuard.

Appene våre bruker imidlertid for øyeblikket den offisielle wireguard-go-implementeringen av WireGuard. Og det er en kjempefin implementering, med et elegant minimalt design som gjør den rask, sikker og enklere å revidere enn tradisjonelle VPN-protokoller.

Imidlertid integreres ikke wireguard-go spesielt godt med språkene vi bruker innfødt til å utvikle Proton VPN på de mange plattformene vi støtter (som Kotlin på Android og Swift på iOS). Dette bremser utviklingen, kompliserer feilsøking og introduserer stabilitetsutfordringer.

Proton-protokoller løser disse problemene.

Proton-protokoller er et nytt VPN-rammeverk på klientsiden basert på WireGuard. Fordi det er skrevet i Rust og utformet som en delt, utvidbar kjerne, kan ProTUN distribueres konsekvent på tvers av plattformer og tilpasses ulike nettverksmiljøer. Dette vil la oss diagnostisere problemer raskere, forbedre stabiliteten og bygge avansert funksjonalitet direkte inn i VPN-stakken.

Viktigst av alt gir Proton-protokoller oss fleksibiliteten til å reagere raskt på sensur og nettverksforstyrrelser, noe som er et område hvor vi forventer de største langsiktige gevinstene.

Under panseret

Kryptering av trafikk med en ny WireGuard-kjerne

I hjertet av Proton-protokollprosjektet er libpvpnclient, en ren, frittstående implementering av WireGuard-protokollen skrevet i Rust. Jobben dens er enkel, men kritisk: å kryptere internettrafikken din og holde tilkoblingen din sikker.

Det som skiller seg fra wireguard-go, er hvordan det er bygd. Mens wireguard-go er en enkel WireGuard-klient, er libpvpnclient et helt nytt rammeverk som vi kan utvikle nye, avanserte funksjoner på.

Og i stedet for å være tett bundet til et spesifikt operativsystem, er libpvpnclient designet som en ren, plattformuavhengig kjerne. Dette gjør at vi kan gjenbruke den samme høykvalitetsimplementeringen overalt – på datamaskin, mobil og mer. Denne separasjonen utgjør en stor forskjell bak kulissene. Det lar oss:

  • Teste og feilsøke komplekse grensetilfeller i kontrollerte, repeterbare miljøer
  • Rulle ut forbedringer raskere og mer konsekvent på tvers av plattformer
  • Eksperimentere med nye teknikker for å motstå sensur og blokkering av trafikk

For deg betyr dette raskere oppdateringer, færre plattformspesifikke problemer og et VPN som tilpasser seg raskere etter hvert som nettverksforhold og sensurmetoder endres. ProTUN i seg selv er navnet vårt på wrapperen rundt libpvpnclient som tilpasser det Rust-baserte biblioteket til hvert operativsystem vi støtter.

Det fungerer hånd i hånd med LocalAgent. Dette er vår interne kontrollkanal som lar oss implementere sertifikatbasert autentisering, og som vi akkurat har strømlinjeformet og skrevet om i Rust.

Denne nye VPN-kjernen er tilgjengelig for testkjøring nå som en funksjon i testversjon (tidlig tilgang) på følgende plattformer:

Gjør det enklere å nå Proton VPN-tjenere

Vi jobber også med fase to av Proton-protokoller. Under kodenavnet muon er dette et fleksibelt nettverkslag som trygt kobler appene våre til Protons VPN-API, selv i situasjoner der Proton-API-et selv blir sensurert.

Før et VPN kan beskytte trafikken din, må det først koble seg trygt til Proton-API-et. Og det blir stadig vanskeligere. I enkelte land og nettverk blir API-tilkoblinger blokkert eller overvåket på DNS-nivå, eller identifisert ved å inspisere tjenernavnene (en teknikk kjent som SNI-snoking).

For å løse dette bygger vi muon, en ny porttjener mellom appene våre og Protons API. Muon er igjen skrevet i Rust for sikkerhet og ytelse, og håndterer de aller første nettverksforespørslene appen din gjør, og kan deretter rute dem sikkert gjennom til Proton VPNs WireGuard-protokoll (på lang sikt vil denne funksjonaliteten erstatte vår eksisterende antitesensurløsning med alternativ ruting(nytt vindu)).

I praksis betyr dette at fra det øyeblikket du åpner Proton VPN-appen i et land der tilgang er kjent for å være sensurert, vil kommunikasjonen din til Proton-API-et allerede være beskyttet (selv før en VPN-tilkobling på systemnivå er fullt etablert). Og i restriktive land vil ikke internettleverandøren din en gang vite at du kobler til Proton-API-er.

Denne beskyttelsen vil være automatisk og usynlig for deg, og betyr at det er mer sannsynlig at du får en fungerende tilkobling i sensurerte land. Faktisk er muon så nyttig for å bekjempe sensur at vi kommer til å bruke det på alle Proton-apper (ikke bare VPN), noe som gir deg innebygd sensurbeskyttelse på tvers av økosystemet vårt helt fra starten av. Vi ruller det ut snart, så følg med her.

Et solid fundament for det som kommer videre

libpvpnclient (med Proton-protokoller-wrapperen) og muon danner til sammen en ny plattform som gir ingeniørene våre langt mer fleksibilitet. Dette lar oss eksperimentere trygt med forbedringer i tilkoblingsstabilitet, batteribruk og robusthet, og forbereder grunnen for fremtidige teknologier, som sterkere antisensurteknikker og post-kvantekryptografi.

Vi ser på dette som et stort skritt fremover for å gjøre internett mer tilgjengelig, pålitelig og privat for alle. Og dette er bare begynnelsen. Vi gleder oss til å se hvor dette nye fundamentet tar Proton VPN i 2026 og fremover.

«WireGuard» er et registrert varemerke(nytt vindu) som tilhører Jason A. Donenfeld.