Jason Donenfeld, de auteur van VPN WireGuard, heeft het project WireGuardNT gepresenteerd, dat een hoogpresterende VPN-poort van WireGuard voor de Windows-kernel ontwikkelt, compatible met Windows 7, 8, 8.1 en 10, en ondersteuning biedt voor AMD64, x86, ARM64 en ARM-architecturen. De implementatiecode wordt verspreid onder de GPLv2-licentie. De nieuwe stuurprogramma is al opgenomen in de WireGuard-client voor Windows, maar is momenteel gemarkeerd als experimenteel en niet standaard ingeschakeld.
De poort is gebaseerd op de bewezen codebasis van de kernimplementatie van WireGuard voor de Linux-kernel, die is vertaald naar het gebruik van Windows-kern-entiteiten en de NDIS-netwerkstack. In vergelijking met de eerder beschikbare Windows-implementatie wireguard-go, die in de gebruikersruimte werkt en gebruikmaakt van de netwerkinfrastructuur Wintun, biedt WireGuardNT een aanzienlijke prestatieverbetering door het uitsluiten van contextwisseloperaties en het kopiëren van pakketinhoud van de kernel naar de gebruikersruimte. Net als bij implementaties voor Linux, OpenBSD en FreeBSD, werkt in WireGuardNT alle protocolverwerkingslogica rechtstreeks op het niveau van de netwerkstack.
Hoewel specifieke optimalisaties nog niet zijn uitgevoerd, heeft WireGuardNT al een piekdataoverdrachtsnelheid van 7,5 Gbps bereikt in de huidige testomgeving met Ethernet. Op echte gebruikerssystemen met Wi-Fi is de prestatie aanzienlijk lager, maar nauwelijks anders dan bij directe gegevensoverdracht. Bijvoorbeeld, in een systeem met een draadloze kaart van Intel AC9560 was de bandbreedte zonder WireGuard 600 Mbps en bleef met WireGuardNT ook op 600 Mbps, terwijl het bij gebruik van wireguard-go/Wintun 95 Mbps was.
de belangrijkste VPN WireGuard is gebaseerd op moderne versleutelingstechnieken, biedt zeer hoge prestaties, is eenvoudig te gebruiken, heeft geen complicaties en heeft zich goed bewezen in verschillende grote implementaties die grote hoeveelheden verkeer verwerken. Het project is sinds 2015 in ontwikkeling, heeft een audit ondergaan en een formele verificatie van de toegepaste versleutelingstechnieken. In WireGuard wordt het concept van routering op basis van versleutelingssleutels toegepast, wat inhoudt dat aan elke netwerkinteface een privésleutel is gekoppeld en voor de verbinding openbare sleutels worden gebruikt.
De uitwisseling van openbare sleutels voor het opzetten van een verbinding gebeurt op dezelfde manier als bij SSH. Voor de overeenstemming van sleutels en verbinding zonder een aparte daemon in de gebruikersruimte wordt het Noise_IK-mechanisme uit het Noise Protocol Framework gebruikt, vergelijkbaar met het onderhoud van authorized_keys in SSH. Gegevens worden verzonden via encapsulatie in UDP-pakketten. Er wordt ondersteuning geboden voor het veranderen van IP-adressen VPN-servers (roaming) zonder verbroken verbinding met automatische herschikking van de client.
Voor de versleuteling wordt de stroomsleutel ChaCha20 en het authenticatie-algoritme (MAC) Poly1305 gebruikt, ontwikkeld door Daniel Bernstein, Tanja Lange en Peter Schwabe. ChaCha20 en Poly1305 worden gepositioneerd als snellere en veiligere alternatieven voor AES-256-CTR en HMAC, waarbij de software-implementatie een vaste uitvoertijd mogelijk maakt zonder gebruik te maken van speciale hardwareondersteuning. Voor het genereren van een gezamenlijke geheime sleutel wordt het Diffie-Hellman-protocol op elliptische krommen gebruikt, in de implementatie Curve25519, die ook door Daniel Bernstein is voorgesteld. Voor het hasheren worden de algoritmen BLAKE2s (RFC7693) gebruikt.
Bron: opennet.ru
