WireGuard VPN muallifi Jason A. Donenfeld Windows 1.0 uchun WireGuard mijoz dasturining birinchi yirik versiyasini, shuningdek, portli WireGuardNT 1.0 drayverlarini chiqardi. VPN Windows 10 va 11 yadrosi uchun WireGuard, AMD64, x86 va ARM64 arxitekturalarini qo'llab-quvvatlaydi. Windows yadrosi komponent kodi GPLv2 litsenziyasi ostida, mijoz dasturi esa MIT litsenziyasi ostida litsenziyalangan.
Port Linux yadrosi uchun asosiy WireGuard implementatsiyasining kod bazasiga asoslangan bo'lib, u Windows yadrosi obyektlari va NDIS tarmoq stekidan foydalanishga aylantirildi. Foydalanuvchi maydonida ishlaydigan va Wintun tarmoq interfeysidan foydalanadigan wireguard-go implementatsiyasi bilan taqqoslaganda, WireGuardNT kontekst kalitlarini olib tashlash va paket tarkibini yadrodan foydalanuvchi maydoniga nusxalash orqali sezilarli darajada ishlash yaxshilanishlarini taklif etadi. Linux, OpenBSD va FreeBSD uchun implementatsiyalarga o'xshab, WireGuardNTdagi barcha protokollarni qayta ishlash mantig'i to'g'ridan-to'g'ri tarmoq steki darajasida ishlaydi.
1.0 versiyasi bir qator muammolarni hal qilish va mo'ljallangan vazifalarning bajarilishini belgilovchi muhim bosqich sifatida belgilandi, masalan: Rezervlangan maydonda drayver holatini kamroq xavfsiz saqlash va hujjatlashtirilmagan ofsetlardan foydalanish o'rniga NdisWdfGetAdapterContextFromAdapterHandle() funktsiyasidan foydalanish; tizim chaqiruvlarini ushlab qolish orqali MTU (Maksimal uzatish birligi) hajmini to'g'ri va tezkor kuzatish; kodda C23 standartidan foydalanish.
Eslatib o'tamiz, WireGuard VPN zamonaviy shifrlash usullariga asoslangan, ajoyib samaradorlikni ta'minlaydi, ulardan foydalanish oson, asoratlardan xoli va katta hajmdagi trafikni boshqarishda bir qator keng ko'lamli joylashtirishlarda o'zini isbotladi. Loyiha 2015-yildan beri ishlab chiqilmoqda va shifrlash usullari audit va rasmiy tasdiqlashdan o'tkazildi. WireGuard har bir tarmoq interfeysiga shaxsiy kalitni bog'lashni va kalitlarni bog'lash uchun ochiq kalitlardan foydalanishni o'z ichiga olgan kalitga asoslangan shifrlash marshrutizatsiyasi kontseptsiyasidan foydalanadi.
Ulanishni o'rnatish uchun ochiq kalitlarni almashish SSH ga o'xshaydi. Kalitlarni muzokara qilish va foydalanuvchi maydonida alohida demonni ishga tushirmasdan ulanish uchun Noise Protocol Framework dan Noise_IK mexanizmi ishlatiladi, bu SSH da authorized_keys ni saqlashga o'xshaydi. Ma'lumotlar uzatish UDP paketlarida kapsulalash orqali amalga oshiriladi. O'zgartirish qo'llab-quvvatlanadi. IP manzillar VPN serverlari (rouming) ulanish uzilishisiz, mijozni avtomatik qayta sozlash bilan.
Shifrlash uchun Daniel J. Bernstein, Tanja Lange va Peter Schwabe tomonidan ishlab chiqilgan ChaCha20 oqim shifrlari va Poly1305 xabarlarni autentifikatsiya qilish algoritmi (MAC) ishlatiladi. ChaCha20 va Poly1305 AES-256-CTR va HMACga tezroq va xavfsizroq alternativa sifatida sotiladi, ularning dasturiy ta'minoti maxsus apparat yordamini talab qilmasdan belgilangan vaqtda bajarish imkonini beradi. Umumiy maxfiy kalit Daniel Bernstein tomonidan taklif qilingan Curve25519 implementatsiyasidagi elliptik egri chiziqli Diffie-Hellman protokoli yordamida yaratiladi. Heshlash uchun BLAKE2s algoritmi (RFC7693) ishlatiladi.
Manba: opennet.ru
