Megjelent a WireGuard VPN Windowshoz és a WireGuardNT 1.0

Jason A. Donenfeld, a WireGuard VPN szerzője kiadta a WireGuard kliensszoftver első nagyobb kiadását Windows 1.0-hoz, valamint a WireGuardNT 1.0 illesztőprogramokat egy porttal. VPN WireGuard Windows 10 és 11 kernelhez, AMD64, x86 és ARM64 architektúrákat támogatva. A Windows kernel komponenskódja GPLv2 licenc alatt, a kliensszoftver pedig MIT licenc alatt van licencelve.

A port a Linux kernel fő WireGuard implementációjának kódbázisán alapul, amelyet Windows kernel entitások és az NDIS hálózati verem használatára alakítottak át. A felhasználói térben futó és a Wintun hálózati interfészt használó wireguard-go implementációhoz képest a WireGuardNT jelentős teljesítményjavulást kínál a kontextuskapcsolók kiküszöbölésével és a csomagok tartalmának a kernelből a felhasználói térbe másolásával. A Linux, OpenBSD és FreeBSD implementációihoz hasonlóan a WireGuardNT összes protokollfeldolgozó logikája közvetlenül a hálózati verem szintjén fut.

Az 1.0-s verziót mérföldkőnek minősítették, számos probléma megoldását és a tervezett feladatok teljesítését jelezve, mint például: az NdisWdfGetAdapterContextFromAdapterHandle() függvény használata a meghajtó állapotának a Reserved mezőben történő kevésbé biztonságos tárolása és a nem dokumentált eltolások használata helyett; az MTU (maximális átviteli egység) méretének helyes és gyors nyomon követése a rendszerhívások lehallgatásán keresztül; a C23 szabvány használata a kódban.

Emlékeztetőül, a WireGuard VPN modern titkosítási módszereken alapul, kivételes teljesítményt nyújt, könnyen használható, komplikációktól mentes, és számos nagyméretű, nagy forgalmat kezelő telepítésben bizonyította hatékonyságát. A projekt 2015 óta fejlesztés alatt áll, és átesett egy auditon és titkosítási módszereinek hivatalos ellenőrzésén. A WireGuard kulcsalapú titkosítási útválasztási koncepciót alkalmaz, amely magában foglalja egy privát kulcs hozzárendelését minden hálózati interfészhez, és nyilvános kulcsok használatát a kulcskötéshez.

A nyilvános kulcsok cseréje a kapcsolat létrehozásához hasonló az SSH-hoz. A kulcsok egyeztetéséhez és a felhasználói térben külön démon futtatása nélküli csatlakozáshoz a Noise Protocol Framework Noise_IK mechanizmusát használják, hasonlóan az authorized_keys SSH-ban történő karbantartásához. Az adatátvitel UDP csomagokba enkapszulációval történik. A módosítás támogatott. IP-címek VPN szerverek (roaming) kapcsolatmegszakítás nélkül, automatikus kliens újrakonfigurálással.

A titkosításhoz a Daniel J. Bernstein, Tanja Lange és Peter Schwabe által kifejlesztett ChaCha20 adatfolyam-rejtjelezést és a Poly1305 üzenethitelesítési algoritmust (MAC) használják. A ChaCha20-at és a Poly1305-öt az AES-256-CTR és a HMAC gyorsabb és biztonságosabb alternatívájaként forgalmazzák, amelyek szoftveres implementációja lehetővé teszi a fix idejű végrehajtást speciális hardveres támogatás nélkül. A megosztott titkos kulcsot a szintén Daniel Bernstein által javasolt Curve25519 implementációban az elliptikus görbével generált Diffie-Hellman protokoll segítségével generálják. A hasheléshez a BLAKE2s algoritmust (RFC7693) használják.

Forrás: opennet.ru