Viime kuukausien aikana Proton VPN on työskennellyt Proton-protokollien parissa. Kyseessä on uusi asiakaspuolen VPN-protokollan koodikanta. Sisäisesti koodinimellä ProTUN tunnettu uusi koodiarkkitehtuuri on kirjoitettu Rust-kielellä. Vaikka haaroitimme kryptografiakoodin Cloudflaren BoringTun(uusi ikkuna)-projektista, täysin uudelleensuunniteltu arkkitehtuuri on Protonin oma.

Miksi tarvitsemme uuden VPN-ytimen

WireGuard® on huipputason VPN-protokolla, joka on yhtä turvallinen kuin OpenVPN, mutta nopeampi ja tehokkaampi. Tämän vuoksi olemme aloittamassa OpenVPN-tuen poistamisen virallisista sovelluksistamme voidaksemme keskittyä sen sijaan WireGuardiin.

Sovelluksemme käyttävät kuitenkin tällä hetkellä virallista wireguard-go-toteutusta WireGuardista. Se onkin erinomainen toteutus, jonka tyylikkään minimalistinen muotoilu tekee siitä nopean, turvallisen ja helpommin auditoitavan kuin perinteiset VPN-protokollat.

Kuitenkaan wireguard-go ei integroidu hyvin niihin kieliin, joita käytämme natiivisti Proton VPN:n kehittämiseen useilla alustoilla, joita tuemme (kuten Kotlin Androidilla ja Swift iOS:llä). Tämä hidastaa kehitystä, monimutkaistaa vianselvitystä ja aiheuttaa vakaushaasteita.

Proton-protokollat ratkaisevat nämä ongelmat.

Proton-protokollat on uusi asiakaspuolen VPN-kehys, joka perustuu WireGuardiin. Koska ProTUN on kirjoitettu Rustilla ja suunniteltu jaetuksi, laajennettavaksi ytimeksi, se voidaan julkaista johdonmukaisesti eri alustoilla ja mukauttaa erilaisiin verkkoympäristöihin. Tämän ansiosta voimme diagnosoida ongelmia nopeammin, parantaa vakautta ja rakentaa edistyneitä toimintoja suoraan VPN-pinoon.

Mikä tärkeintä, Proton-protokollat antavat meille joustavuutta reagoida nopeasti sensuuriin ja verkkohäiriöihin, mikä on alue, jolta odotamme suurimpia pitkän aikavälin hyötyjä.

Pellin alla

Tietoliikenteen salaaminen uudella WireGuard-ytimellä

Proton-protokollaprojektin ytimessä on libpvpnclient, selkeä ja itsenäinen Rust-kielellä kirjoitettu WireGuard-protokollan toteutus. Sen tehtävä on yksinkertainen mutta kriittinen: salata internettietoliikenteenne ja pitää yhteytenne turvallisena.

Se, mikä eroaa wireguard-go-toteutuksesta, on sen rakenne. Siinä missä wireguard-go on yksinkertainen WireGuard-asiakasohjelma, libpvpnclient on täysin uusi kehys, jonka päälle voimme kehittää uusia edistyneitä ominaisuuksia ja toiminnallisuuksia.

Sen sijaan, että libpvpnclient olisi tiukasti sidottu tiettyyn käyttöjärjestelmään, se on suunniteltu puhtaaksi, alustariippumattomaksi ytimeksi. Tämän ansiosta voimme käyttää samaa korkealaatuista toteutusta kaikkialla – työpöydällä, mobiililaitteilla ja muualla. Tämä erottelu tekee suuren eron kulissien takana. Sen avulla voimme:

  • Testata ja selvittää vikoja monimutkaisissa rajatapauksissa hallituissa, toistettavissa olevissa ympäristöissä
  • Tuoda parannuksia käyttöön nopeammin ja johdonmukaisemmin eri alustoilla
  • Kokeilla uusia tekniikoita sensuurin ja tietoliikenteen estämisen vastustamiseksi

Teille tämä tarkoittaa nopeampia päivityksiä, vähemmän alustakohtaisia ongelmia ja VPN-yhteyttä, joka mukautuu nopeammin verkko-olosuhteiden ja sensuurimenetelmien muuttuessa. ProTUN itse on nimemme libpvpnclientin ympärillä olevalle kääreelle, joka mukauttaa Rust-pohjaisen kirjaston kuhunkin tukemaamme käyttöjärjestelmään.

Se toimii käsi kädessä LocalAgentin kanssa. Tämä on sisäinen ohjauskanavamme, jonka avulla voimme ottaa käyttöön varmennepohjaisen tunnistautumisen ja jonka olemme myös juuri suoraviivaistaneet ja kirjoittaneet uudelleen Rustilla.

Tämä uusi VPN-ydin on nyt testattavissa beetaominaisuutena (varhaisen pääsyn ominaisuutena) seuraavilla alustoilla:

Proton VPN -palvelimien tavoitettavuuden helpottaminen

Työskentelemme myös Proton-protokollien toisen vaiheen parissa. Koodinimeltään muon, tämä on joustava verkkokerros, joka yhdistää sovelluksemme turvallisesti Protonin VPN API:hin jopa tilanteissa, joissa Proton API itse on sensuroitu.

Ennen kuin VPN voi suojata tietoliikennettänne, sen on ensinnäkin yhdistettävä turvallisesti Proton API:hin. Ja siitä on tulossa yhä vaikeampaa. Joissakin maissa ja verkoissa API-yhteydet estetään tai niitä valvotaan DNS-tasolla tai ne tunnistetaan tarkastelemalla palvelimien nimiä (tekniikka, joka tunnetaan nimellä SNI-nuuskinta).

Tämän ratkaisemiseksi rakennamme muonin, uuden yhdyskäytävän sovellustemme ja Protonin API:n välille. Jälleen turvallisuuden ja suorituskyvyn vuoksi Rustilla kirjoitettu muon käsittelee aivan ensimmäiset verkkopyynnöt, jotka sovelluksenne tekee, ja voi sitten reitittää ne turvallisesti Proton VPN:n WireGuard-protokollaan (pitkällä aikavälillä tämä toiminto korvaa nykyisen sensuurinvastaisen vaihtoehtoisen reitityksen(uusi ikkuna) ratkaisumme).

Käytännössä tämä tarkoittaa, että siitä hetkestä lähtien, kun avaatte Proton VPN -sovelluksen maassa, jossa pääsyä tiedetään sensuroitavan, viestintänne Proton API:hin on jo suojattu (jo ennen kuin järjestelmätason VPN-yhteys on täysin muodostettu). Rajoittavissa maissa internet-palveluntarjoajanne ei edes tiedä, että yhdistätte Proton API:hin.

Tämä suojaus on automaattinen ja teille näkymätön, mikä tarkoittaa, että saatte todennäköisemmin toimivan yhteyden sensuroiduissa maissa. muon on itse asiassa niin hyödyllinen sensuurin murtamisessa, että aiomme käyttää sitä kaikissa Proton-sovelluksissa (ei vain VPN-sovelluksessa), tarjoten teille sisäänrakennetun sensuurisuojauksen koko ekosysteemissämme heti alusta alkaen. Otamme sen pian käyttöön, joten seuratkaa tilannetta.

Vankka perusta sille, mitä on tulossa seuraavaksi

libpvpnclient (yhdessä Proton-protokollien kääreen kanssa) ja muon muodostavat yhdessä uuden alustan, joka antaa insinööreillemme paljon enemmän joustavuutta. Tämän ansiosta voimme kokeilla turvallisesti parannuksia yhteyden vakauteen, akun käyttöön ja sietokykyyn sekä luomme pohjaa tuleville teknologioille, kuten vahvemmille sensuurinvastaisille tekniikoille ja post-kvanttikryptografialle.

Näemme tämän suurena askeleena eteenpäin tehdessämme internetistä helpommin saavutettavan, luotettavamman ja yksityisemmän kaikille. Ja tämä on vasta alkua. Olemme innoissamme nähdessämme, mihin tämä uusi perusta vie Proton VPN:n vuonna 2026 ja sen jälkeen.

“WireGuard” on Jason A. Donenfeldin rekisteröity tavaramerkki(uusi ikkuna).