WireGuard VPN for Windows ve WireGuardNT 1.0 Yayınlandı

WireGuard VPN'in yazarı Jason A. Donenfeld, Windows 1.0 için WireGuard istemci yazılımının ilk büyük sürümünü ve ayrıca WireGuardNT 1.0 sürücülerini bir port ile birlikte yayınladı. VPN Windows 10 ve 11 çekirdeği için WireGuard, AMD64, x86 ve ARM64 mimarilerini destekler. Windows çekirdek bileşen kodu GPLv2 lisansı altında, istemci yazılımı ise MIT lisansı altında lisanslanmıştır.

Bu port, Linux çekirdeği için ana WireGuard uygulamasının kod tabanına dayanmaktadır ve Windows çekirdek varlıklarını ve NDIS ağ yığınını kullanacak şekilde dönüştürülmüştür. Kullanıcı alanında çalışan ve Wintun ağ arayüzünü kullanan wireguard-go uygulamasına kıyasla, WireGuardNT, bağlam değiştirme işlemlerini ortadan kaldırarak ve paket içeriklerini çekirdekten kullanıcı alanına kopyalayarak önemli performans iyileştirmeleri sunar. Linux, OpenBSD ve FreeBSD uygulamalarına benzer şekilde, WireGuardNT'deki tüm protokol işleme mantığı doğrudan ağ yığını düzeyinde çalışır.

Sürüm 1.0, bir dizi sorunun çözümü ve amaçlanan görevlerin yerine getirilmesiyle bir dönüm noktası olarak işaretlendi. Bunlar arasında; sürücü durumunun Ayrılmış alanda daha az güvenli bir şekilde saklanması ve belgelenmemiş ofsetlerin kullanılması yerine NdisWdfGetAdapterContextFromAdapterHandle() fonksiyonunun kullanılması; sistem çağrılarının yakalanması yoluyla MTU (Maksimum İletim Birimi) boyutunun doğru ve hızlı bir şekilde izlenmesi; kodda C23 standardının kullanılması yer almaktadır.

VPN WireGuard'ın modern şifreleme yöntemleri temelinde uygulandığını, oldukça yüksek performans sağladığını, kullanımının kolay olduğunu, komplikasyonsuz olduğunu ve büyük hacimli trafiği işleyen birçok büyük uygulamada kendini kanıtladığını hatırlatalım. Proje 2015 yılından bu yana geliştiriliyor ve kullanılan şifreleme yöntemlerinin denetimi ve resmi doğrulaması yapılmış durumda. WireGuard, her ağ arayüzüne özel bir anahtar ilişkilendirmeyi ve bağlama için genel anahtarları kullanmayı içeren anahtar tabanlı şifreleme yönlendirme konseptini kullanır.

Bağlantı kurmak için genel anahtarların değişimi SSH'ye benzer. Kullanıcı alanında ayrı bir arka plan programı çalıştırmadan anahtarları müzakere etmek ve bağlantı kurmak için, SSH'deki authorized_keys'in bakımına benzer şekilde, Noise Protokol Çerçevesi'nden Noise_IK mekanizması kullanılır. Veri aktarımı UDP paketlerine kapsülleme yoluyla gerçekleştirilir. Değişiklik desteklenir. IP adresleri Otomatik istemci yeniden yapılandırmasıyla bağlantı kesintisi olmadan VPN sunucuları (roaming).

Şifrelemede Daniel J. Bernstein, Tanja Lange ve Peter Schwabe tarafından geliştirilen ChaCha20 akış şifresi ve Poly1305 mesaj doğrulama algoritması (MAC) kullanılıyor. ChaCha20 ve Poly1305, özel donanım desteği kullanılmadan sabit bir yürütme süresi elde etmeyi sağlayan yazılım uygulamasıyla AES-256-CTR ve HMAC'ın daha hızlı ve daha güvenli analogları olarak konumlandırılıyor. Paylaşılan gizli anahtarı üretmek için Daniel Bernstein tarafından önerilen Curve25519 uygulamasında Eliptik Eğri Diffie-Hellman protokolü kullanılmıştır. Karma oluşturma için BLAKE2s (RFC7693) algoritması kullanılır.

Kaynak: opennet.ru