Jason A. Donenfeld, autori i VPN WireGuard, prezantoi versionin e parë të rëndësishëm të softuerit klient për Windows 1.0, si dhe driverët WireGuardNT 1.0 me portin VPN WireGuard për bërthamën e Windows 10 dhe 11, që mbështet arkitekturat AMD64, x86, dhe ARM64. Kodi i komponentëve për bërthamën e Windows shpërndahet nën licencën GPLv2, ndërsa softueri klient nën licencën MIT.
Porti është i bazuar në kodin e implementimit kryesor të WireGuard për bërthamën Linux, i cili është convertuar për të përdorur entitetet e bërthamës së Windows dhe grumbullin e rrjetit NDIS. Krahasuar me implementimin wireguard-go, që funksionon në hapësirën e përdoruesit dhe përdor një ndërfaqe rrjeti Wintun, WireGuardNT ofron një përmirësim të konsiderueshëm të performancës duke përjashtuar operacionet e kalimit të kontekstit dhe kopjimin e përmbajtjes së paketave nga bërthama në hapësirën e përdoruesit. Në përputhje me implementimet për Linux, OpenBSD dhe FreeBSD, në WireGuardNT e gjithë logjika e përpunimit të protokollit funksionon drejtpërdrejt në nivelin e grumbullit të rrjetit.
Versioni 1.0 është shënuar si një pikë kyçe, që simbolizon zgjidhjen e një sërë problemesh dhe përmbushjen e detyrave të caktuara, të tilla si: aktivizimi i funksionit NdisWdfGetAdapterContextFromAdapterHandle() në vend të ruajtjes më pak të sigurt të gjendjes së drejtorit në fushën Reserved dhe përdorimi i pozicioneve të dokumentuara; monitorimi i saktë dhe i shpejtë i madhësisë MTU (Njësia Maksimale e Transmetimit) përmes kapjes së thirrjeve sistemike; përfshirja në kodin e standardit C23.
Të kujtojmë se VPN WireGuard është implementuar mbi baza të metodave moderne të enkriptimit, ofron një performancë të very të lartë, është i thjeshtë për t'u përdorur, pa komplimente dhe ka arritur rezultate të mira në disa implementime të mëdha, të cilat kanë përpunuar volume të mëdha trafiku. Projekti ka filluar në vitin 2015, ka kaluar një auditim dhe verifikim formal të metodave të përdorura të enkriptimit. Në WireGuard aplikohet koncepti i rrugëzimit sipas çelësit të enkriptimit, që nënkupton lidhjen e një çelësi të mbyllur me çdo ndërfaqe rrjeti dhe përdorimin e çelësave të hapur për lidhje.
Arsimi i çelësve të hapur për vendosjen e lidhjes kryhet në mënyrë të ngjashme me SSH. Për pajtimin e çelësave dhe lidhjen pa nisjen e një demoni të veçantë në hapësirën e përdoruesit përdoret mekanizmi Noise_IK nga Noise Protocol Framework, e ngjashme me mbajtjen e authorized_keys në SSH. Transferimi i të dhënave bëhet përmes inkapsulimit në paketa UDP. Ndryshimi i mbështetet. adresat IP VPN-servera (roaming) pa lidhje të vazhdueshme me ri-konfigurim automatik të klientit.
Për enkriptimin përdoret algoritmi i rrjedhës ChaCha20 dhe algoritmi i autentifikimit të mesazheve (MAC) Poly1305, të zhvilluara nga Daniel Bernstein, Tanja Lange dhe Peter Schwabe. ChaCha20 dhe Poly1305 pozicionohen si analoge më të shpejta dhe më të sigurta të AES-256-CTR dhe HMAC, implementimi i të cilave mundëson arritjen e një kohe fikse ekzekutimi pa nevojën për mbështetje të veçantë harduerike. Për gjenerimin e çelësit sekret të përbashkët përdoret protokolli i Diffie-Hellman mbi kurba eliptike në implementimin Curve25519, gjithashtu të propozuar nga Daniel Bernstein. Për hashim përdoret algoritmi BLAKE2s (RFC7693).
Burimi: opennet.ru
