Компания Mullvad представи GotaTun, реализация на VPN WireGuard на Rust.

VPN доставчик Mullvad, който разработва уеб браузера Mullvad Browser и предлага инфраструктура за услугата Mozilla VPN, представи проекта GotaTun с реализиране на VPN протокола WireGuard, написан на Rust и работещ в пространството на потребителя. Кодът на проекта е с лиценз BSD. Компанията Mullvad вече е интегрирала GotaTun в VPN клиента за платформата Android и планира да прехвърли приложенията си за десктоп и iOS през следващата година.

GotaTun е форк на инструмента BoringTun, разработван от Cloudflare и използван в приложението WARP. GotaTun се отличава от BoringTun с пълна поддръжка на платформата Android, оптимизации на производителността и допълнителни функции за защита на конфиденциалността.

GotaTun интегрира поддръжка на технологията DAITA (Defense Against AI-guided Traffic Analysis) за защита срещу анализа на криптиран транзитен трафик, извършван с инструменти, базирани на системи за машинно обучение. DAITA нормализира размера на изпращаните пакети, включва случайни фонови трафици и изкривява шаблоните на типичните потоци от данни. GotaTun също така реализира режим Multihop, който позволява достъп до VPN-сървъри не директно, а чрез серия транзитни възли, което позволява да се организира преминаването на трафика по по-оптимални маршрути.

За повишаване на производителността в GotaTun е реализирана многопоточна обработка и е въведена стратегия за работа с паметта в режим zero-copy, без междинно буфериране, използвайки само първоначално предоставения буфер.

По-рано в приложенията на Mullvad се използваше форк на реализацията на WireGuard на Go — wireguard-go, разширен с поддръжката на DAITA и Multihop. Според статистиката на Google 85% от всички отчети за сривове на Android клиента на Mullvad, изпратени от потребителите, бяха свързани с кода на wireguard-go, затова компанията Mullvad реши да замени реализацията на WireGuard с по-надежден вариант.

Изпълнението на езика Rust беше избрано, тъй като приложението Mullvad VPN е написано на езика Rust, с изключение на кода wireguard-go, взаимодействието с който беше организирано чрез усложнен интерфейс FFI (foreign function interface) с използване на блокове unsafe. В публикуваното в края на ноември издание на Android клиента Mullvad, изпълнението на wireguard-go беше заменено с GotaTun, което реши проблемите с надеждността на работа — в сравнение с предишни версии, метриката, отразяваща броя на аварийните прекратявания, се промени от 0.40% на 0.01%.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster