Son birkaç aydır Proton VPN, yeni bir istemci tarafı VPN protokolü kod tabanı olan Proton protocols üzerinde çalışıyor. Dahili olarak ProTUN kod adıyla bilinen bu yeni kod mimarisi Rust dilinde yazılmıştır. Kriptografi kodunu Cloudflare’in BoringTun(yeni pencere) projesinden çatallamış olsak da, tamamen yeniden tasarlanan mimari Proton’a aittir.

Neden yeni bir VPN çekirdeğine ihtiyacımız var?

WireGuard®, OpenVPN kadar güvenli ancak daha hızlı ve daha güçlü olan son teknoloji ürünü bir VPN protokolüdür. Bu nedenle, WireGuard’a odaklanmak amacıyla resmi uygulamalarımızdan OpenVPN desteğini kaldırmaya başlıyoruz.

Bununla birlikte, uygulamalarımız şu anda WireGuard’ın resmi wireguard-go uygulamasını kullanıyor. Ve bu, geleneksel VPN protokollerine göre hızlı, güvenli ve denetlenmesi daha kolay olmasını sağlayan zarif ve minimalist tasarımıyla harika bir uygulamadır.

Ancak wireguard-go, desteklediğimiz birden fazla platformda Proton VPN’i yerel olarak geliştirmek için kullandığımız dillerle (Android’de Kotlin ve iOS’ta Swift gibi) iyi entegre olmuyor. Bu durum geliştirmeyi yavaşlatıyor, hata ayıklamayı zorlaştırıyor ve kararlılık sorunlarına yol açıyor.

Proton protocols bu sorunları çözüyor.

Proton protocols, WireGuard tabanlı yeni bir istemci tarafı VPN çerçevesidir. Rust ile yazıldığı ve paylaşılan, genişletilebilir bir çekirdek olarak tasarlandığı için ProTUN, platformlar arasında tutarlı bir şekilde dağıtılabilir ve farklı ağ ortamlarına uyarlanabilir. Bu da sorunları daha hızlı teşhis etmemizi, kararlılığı artırmamızı ve doğrudan VPN yığınına gelişmiş işlevler eklememizi sağlayacak.

En önemlisi de Proton protocols, uzun vadede en büyük kazanımları beklediğimiz sansür ve ağ müdahalesine hızlıca yanıt verme esnekliğini bize sunuyor.

Arka planda

Yeni bir WireGuard çekirdeğiyle trafiği şifreleme

Proton protocols projesinin kalbinde, Rust ile yazılmış temiz, bağımsız bir WireGuard protokolü uygulaması olan libpvpnclient yer alıyor. Görevi basit ama kritik: İnternet trafiğinizi şifrelemek ve bağlantınızı güvende tutmak.

wireguard-go’dan farkı, nasıl oluşturulduğudur. wireguard-go basit bir WireGuard istemcisiyken, libpvpnclient üzerinde yeni ve gelişmiş özellikler ile işlevler geliştirebileceğimiz tamamen yeni bir çerçevedir.

Belirli bir işletim sistemine sıkı sıkıya bağlı olmak yerine, libpvpnclient tamamen platformdan bağımsız bir çekirdek olarak tasarlanmıştır. Bu durum, aynı yüksek kaliteli uygulamayı masaüstünde, mobilde ve ötesinde her yerde yeniden kullanmamıza olanak tanır. Bu ayrım perde arkasında büyük bir fark yaratıyor. Şunları yapmamızı sağlıyor:

  • Kontrollü ve tekrarlanabilir ortamlarda karmaşık uç durumları test etmek ve bunlardaki hataları ayıklamak
  • Geliştirmeleri platformlar arasında daha hızlı ve daha tutarlı bir şekilde kullanıma sunmak
  • Sansüre ve trafik engellemeye karşı koymak için yeni teknikler denemek

Sizin için bu, daha hızlı güncellemeler, platforma özel daha az sorun ve ağ koşulları ile sansür yöntemleri değiştikçe daha hızlı uyum sağlayan bir VPN anlamına gelir. ProTUN ise, Rust tabanlı kütüphaneyi desteklediğimiz her bir işletim sistemine uyarlayan libpvpnclient sarmalayıcısına verdiğimiz isimdir.

Bu, sertifika tabanlı kimlik doğrulamayı uygulamamızı sağlayan ve aynı zamanda yakın zamanda sadeleştirip Rust ile yeniden yazdığımız şirket içi kontrol kanalımız olan LocalAgent ile el ele çalışır.

Bu yeni VPN çekirdeği, aşağıdaki platformlarda bir beta (erken erişim) özelliği olarak şimdi test edilmeye hazırdır:

Proton VPN sunucularına ulaşmayı kolaylaştırma

Proton protocols’un ikinci aşaması üzerinde de çalışıyoruz. muon kod adlı bu yapı, Proton API’sinin kendisi sansürlense bile uygulamalarımızı Proton’un VPN API’sine güvenli bir şekilde bağlayan esnek bir ağ katmanıdır.

Bir VPN’in trafiğinizi koruyabilmesi için öncelikle Proton API’sine güvenli bir şekilde bağlanması gerekir. Ve bu durum giderek zorlaşıyor. Bazı ülkelerde ve ağlarda, API bağlantıları DNS düzeyinde engellenmekte veya izlenmekte ya da sunucu adları incelenerek (SNI gözetleme olarak bilinen bir teknik) tespit edilmektedir.

Bu durumu çözmek için, uygulamalarımız ile Proton API’si arasında yeni bir ağ geçidi olan muon’u geliştiriyoruz. Güvenlik ve performans için yine Rust dilinde yazılan muon, uygulamanızın yaptığı ilk ağ isteklerini işler ve ardından bunları Proton VPN’in WireGuard protokolü üzerinden güvenli bir şekilde yönlendirebilir (uzun vadede bu işlev, mevcut sansür karşıtı alternatif yönlendirme(yeni pencere) çözümümüzün yerini alacaktır).

Pratik açıdan bu, erişimin sansürlendiği bilinen bir ülkede Proton VPN uygulamasını açtığınız andan itibaren Proton API’si ile iletişiminizin zaten korunacağı anlamına gelir (sistem düzeyinde bir VPN bağlantısı tam olarak kurulmadan önce bile). Ve kısıtlayıcı ülkelerde, İSS‘niz Proton API’lerine bağlandığınızı bile bilmeyecektir.

Bu koruma otomatik olacak ve sizin tarafınızdan fark edilmeyecektir. Bu da sansür uygulanan ülkelerde çalışan bir bağlantı kurma olasılığınızın daha yüksek olduğu anlamına gelir. Aslında muon, sansürü alt etmekte o kadar yararlıdır ki, onu yalnızca VPN’de değil tüm Proton uygulamalarında kullanacağız; böylece size en başından itibaren ekosistemimiz genelinde yerleşik sansür koruması sağlayacağız. Yakında kullanıma sunacağız, bizi takip etmeye devam edin.

Gelecekteki gelişmeler için sağlam bir temel

libpvpnclient (Proton protocols sarmalayıcısıyla birlikte) ve muon, mühendislerimize çok daha fazla esneklik sağlayan yeni bir platform oluşturuyor. Bu, bağlantı kararlılığı, pil kullanımı ve dayanıklılıktaki iyileştirmeleri güvenli bir şekilde denememize olanak tanırken, daha güçlü sansür karşıtı teknikler ve kuantum sonrası kriptografi gibi geleceğin teknolojileri için de zemin hazırlıyor.

Bunu, interneti herkes için daha erişilebilir, güvenilir ve güvenli hale getirme yolunda ileriye doğru atılmış büyük bir adım olarak görüyoruz. Ve bu sadece başlangıç. Bu yeni temelin 2026 ve sonrasında Proton VPN’i nerelere taşıyacağını görmek bizi heyecanlandırıyor.

“WireGuard”, Jason A. Donenfeld’in tescilli ticari markasıdır(yeni pencere).