VPN WireGuard is toegevoegd aan de Linux-kernel 5.6

Vandaag heeft Linus de net-next branch met VPN-interfaces naar zijn repository gebracht WireGuard. Dit nieuws hebben aangegeven is gedeeld op de WireGuard mailinglijst.

VPN WireGuard is toegevoegd aan de Linux-kernel 5.6

Op dit moment wordt de code verzameld voor de nieuwe Linux kernel 5.6. WireGuard is een snelle, next-gen VPN die moderne cryptografie toepast. Het werd oorspronkelijk ontwikkeld als een eenvoudigere en gebruikersvriendelijkere alternatieve oplossing voor bestaande VPN's. De auteur is de Canadese informatiebeveiliger Jason Donenfeld. In augustus 2018 kreeg WireGuard de lof van Linus Torvalds. Rond die tijd begon de inspanning om VPN in de Linux kernel op te nemen. Het proces heeft enige tijd geduurd.

‘Ik zie dat Jason een pull request heeft gedaan om WireGuard in de kernel op te nemen,’ schreef Linus op 2 augustus 2018. ‘Mag ik mijn liefde voor deze VPN nogmaals uitspreken en hopen op een snelle samenvoeging? Misschien is de code niet perfect, maar ik heb ernaar gekeken en in vergelijking met de verschrikkingen van OpenVPN en IPSec, is dit een waar kunstwerk.’

Ondanks Linus's wens heeft de samenvoeging anderhalf jaar geduurd. Het belangrijkste probleem lag bij de afhankelijkheid van eigen implementaties van cryptografische functies die werden gebruikt om de prestaties te verbeteren. Na langdurige onderhandelingen werd in september 2019 een compromis bereikt om de patches te migreren naar de bestaande functies van de Crypto API in de kernel, waar de ontwikkelaars van WireGuard klachten over hadden op het gebied van prestaties en algehele veiligheid. Maar het werd besloten om de native cryptofuncties van WireGuard te isoleren in een aparte low-level Zinc API en deze in de tijd naar de kernel te porteren. In november hebben de kernelontwikkelaars hun belofte ingelost en hebben zij ingestemd om een deel van de code uit Zinc naar de hoofd-kernel te verplaatsen. Bijvoorbeeld, in de Crypto API opgenomen zijn de snelle implementaties van de algoritmes ChaCha20 en Poly1305 die in WireGuard zijn voorbereid.

Uiteindelijk, op 9 december 2019, heeft David Miller, verantwoordelijk voor de netwerk subsystem van de Linux kernel, heeft de code toegevoegd aan de net-next tak aangenomen het VPN-interface van het WireGuard-project geïmplementeerd.

En vandaag, op 29 januari 2020, zijn de wijzigingen naar Linus gestuurd om in de kernel te worden opgenomen.

VPN WireGuard is toegevoegd aan de Linux-kernel 5.6

De geclaimde voordelen van WireGuard ten opzichte van andere VPN-oplossingen:

  • Eenvoudig in gebruik.
  • Maakt gebruik van moderne cryptografie: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, enz.
  • Compact leesbare code, gemakkelijker te onderzoeken op kwetsbaarheden.
  • Hoge prestaties.
  • Duidelijke en goed doordachte (biedt nieuwe methoden voor HTML-manipulaties). De methode.

De meeste logica van WireGuard omvat minder dan 4000 regels code, terwijl OpenVPN en IPSec honderden duizenden regels zijn.

In WireGuard wordt het concept van routing op basis van encryptiesleutels toegepast, wat inhoudt dat aan elk netwerkinterface een privésleutel is gekoppeld en deze wordt gebruikt om openbare sleutels te verbinden. Het uitwisselen van openbare sleutels voor het tot stand brengen van een verbinding gebeurt analogie met SSH. Voor het onderhandelen van sleutels en het verbinden zonder het starten van een aparte daemon in de gebruikersruimte wordt het Noise_IK-mechanisme toegepast. Noise Protocol Framework, vergelijkbaar met het onderhoud van authorized_keys in SSH. Gegevensoverdracht vindt plaats via encapsulatie in UDP-pakketten. Het is mogelijk om het IP-adres van de VPN-server te wijzigen (roaming) zonder de verbinding te onderbreken, met automatische herconfiguratie van de client, — operationele Opennet.

Voor encryptie de DNS-server van CloudFlare wordt gebruikt, zal in Chrome slechts de methode van de DNS-verwerking worden bijgewerkt naar een equivalente service, zonder wisseling van de DNS-provider. Bijvoorbeeld, als een gebruiker in de systeeminstellingen de DNS 8.8.8.8 heeft opgegeven, zal in Chrome de stroomcipher ChaCha20 en het berichtauthenticatie-algoritme (MAC) Poly1305, ontwikkeld door Daniel Bernstein (Daniel J. Bernstein), Tanja Lange en Peter Schwabe. ChaCha20 en Poly1305 worden gepositioneerd als snellere en veiligere alternatieven voor AES-256-CTR en HMAC, waarvan de software-implementatie een vaste uitvoeringstijd mogelijk maakt zonder speciale hardware-ondersteuning. Voor het genereren van een gedeelde geheime sleutel wordt het Diffie-Hellman-protocol op elliptische krommen gebruikt in de implementatie Curve25519, ook voorgesteld door Daniel Bernstein. Voor hashing wordt het algoritme BLAKE2s (RFC7693)».

Resultaten prestatie tests van de officiële website:

Doorvoersnelheid (megabit/s)
VPN WireGuard is toegevoegd aan de Linux-kernel 5.6

Ping (ms)
VPN WireGuard is toegevoegd aan de Linux-kernel 5.6

Testconfiguratie:

  • Intel Core i7-3820QM en Intel Core i7-5200U
  • Gigabit kaarten Intel 82579LM en Intel I218LM
  • Linux 4.6.1
  • WireGuard-configuratie: 256-bits ChaCha20 met Poly1305 voor MAC
  • Eerste IPsec-configuratie: 256-bits ChaCha20 met Poly1305 voor MAC
  • Tweede IPsec-configuratie: AES-256-GCM-128 (met AES-NI)
  • OpenVPN-configuratie: equivalente cipher suite van 256-bits AES met HMAC-SHA2-256, UDP-modus
  • De prestaties werden gemeten met behulp van iperf3, gemiddelde resultaat over een periode van 30 minuten.

Theoretisch zou WireGuard na integratie in de netwerkstack nog sneller moeten werken. Maar in werkelijkheid is dit niet noodzakelijk het geval door de overstap naar de in de kernel ingebouwde cryptografische functies van Crypto API. Misschien zijn niet al deze functies nog geoptimaliseerd tot het niveau van de prestaties van native WireGuard.

„Vanuit mijn perspectief is WireGuard perfect voor de gebruiker. Alle low-level oplossingen zijn in de specificatie opgenomen, waardoor het opzetten van een typische VPN-infrastructuur slechts enkele minuten duurt. Het is praktisch onmogelijk om fouten in de configuratie te maken, — over hebben geschreven in Habr in 2018. — Het installatieproces is gedetailleerd beschreven op de officiële website wil ik graag de uitstekende ondersteuning voor OpenWRT. Deze gebruiksvriendelijkheid en compactheid van de codebase zijn bereikt door het afzien van de distributie van sleutels. Er is geen complexe certificaatsysteem of andere corporatieve ellende; korte encryptiesleutels worden net als SSH-sleutels verspreid.

Het WireGuard-project is sinds 2015 in ontwikkeling, het heeft een audit ondergaan en formele verificatie. Ondersteuning voor WireGuard is geïntegreerd in NetworkManager en systemd, en de patches voor de kernel zijn opgenomen in de basisdistributie van Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph en ALT.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster