VPN WireGuard har lagts till i Linux-kÀrnan 5.6

I dag flyttade Linus över net-next-grenen med VPN-grÀnssnitt. WireGuard. Om denna hÀndelse rapporterade i WireGuard:s e-postlista.

VPN WireGuard har lagts till i Linux-kÀrnan 5.6

Just nu pÄgÄr insamlingen av kod för den nya Linux-kÀrnan 5.6. WireGuard Àr en snabb VPN av nÀsta generation som implementerar modern kryptografi. Den utvecklades ursprungligen som ett enklare och mer anvÀndarvÀnligt alternativ till befintliga VPN-lösningar. Författaren Àr den kanadensiska sÀkerhetsspecialisten Jason Donenfeld. I augusti 2018 fick WireGuard beröm frÄn Linus Torvalds. Omkring samma tid började arbetet med att integrera VPN i Linux-kÀrnan. Processen tog lite tid.

«Jag ser att Jason har gjort en pull-begÀran för att inkludera WireGuard i kÀrnan», skrev Linus den 2 augusti 2018. «Kan jag bara fÄ sÀga Ànnu en gÄng hur mycket jag Àlskar denna VPN och hoppas pÄ en snabb sammanslagning? Koden kanske inte Àr perfekt, men jag har sett pÄ den, och jÀmfört med hemskheterna hos OpenVPN och IPSec Àr det ett riktigt konstverk.»

Trots Linus önskemÄl drog sammanslagningen ut pÄ tiden i ett och ett halvt Är. Huvudproblemet visade sig vara knytningen till specifika implementationer av kryptografiska funktioner som anvÀndes för att öka prestanda. Efter lÄnga förhandlingar i september 2019 fattades en kompromisslösning att överföra patcharna till de metoder som finns i kÀrnans Crypto API, som utvecklarna av WireGuard har klagomÄl kring gÀllande prestanda och övergripande sÀkerhet. Men det beslutades att WireGuards inbyggda kryptofunktioner skulle separeras till ett eget lÄgnivÄ Zinc API och sÄ smÄningom porteras till kÀrnan. I november höll kÀrnutvecklarna sitt löfte och gillade att föra in en del av koden frÄn Zinc in i den huvudsakliga kÀrnan. Till exempel till Crypto API Rust-bindningar för de snabb implementationerna av algoritmerna ChaCha20 och Poly1305 som förberetts i WireGuard.

Till slut, den 9 december 2019, tog David Miller (David S. Miller), ansvarig för nÀtverksunderlaget i Linux-kÀrnan, har accepterats in i net-next-grenen patchar med implementationen av VPN-grÀnssnittet frÄn WireGuard-projektet.

Och idag, den 29 januari 2020, har Àndringarna skickats till Linus för att inkluderas i kÀrnan.

VPN WireGuard har lagts till i Linux-kÀrnan 5.6

De pÄstÄdda fördelarna med WireGuard över andra VPN-lösningar:

  • LĂ€tt att anvĂ€nda.
  • AnvĂ€nder modern kryptografi: Noise-protokollram, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF etc.
  • Kompakt och lĂ€sbar kod, enklare att granska för sĂ„rbarheter.
  • High performance.
  • Tydlig och vĂ€lgenomtĂ€nkt specifikation.

All main logic of WireGuard takes up less than 4000 lines of code, while OpenVPN and IPSec consist of hundreds of thousands of lines.

In WireGuard, a concept of routing by encryption keys is applied, which involves binding a private key to each network interface and using it for linking public keys. The exchange of public keys for establishing a connection is done similarly to SSH. A key agreement and connection mechanism is utilized without running a separate user space daemon, using the Noise_IK mechanism from Noise Protocol Framework, similar to maintaining authorized_keys in SSH. Data transmission is carried out through encapsulation in UDP packets. Support is available for changing the IP address of the VPN server (roaming) without breaking the connection, with automatic client reconfiguration, — skriver Opennet.

För kryptering funktionen unix_crypt, som tar emot det lösenord som anvÀndaren anger utan att utföra escape av specialtecken. I git-repositoriet strömmande krypteringsmetod ChaCha20 och meddelandeautentiseringsalgoritm (MAC) Poly1305, utvecklade av Daniel Bernstein (Daniel J. Bernstein), Tanja Lange and Peter Schwabe. ChaCha20 and Poly1305 are positioned as faster and safer alternatives to AES-256-CTR and HMAC, the software implementation of which allows for achieving fixed execution time without requiring special hardware support. The Diffie-Hellman protocol on elliptic curves is used for generating a shared secret key in the implementation of Curve25519, ocksÄ föreslagen av Daniel Bernstein. För hashing anvÀnds algoritmen BLAKE2s (RFC7693)».

Resultat performance tests from the official website:

Throughput (megabits/s)
VPN WireGuard har lagts till i Linux-kÀrnan 5.6

Ping (ms)
VPN WireGuard har lagts till i Linux-kÀrnan 5.6

Test configuration:

  • Intel Core i7-3820QM and Intel Core i7-5200U
  • Gigabit Intel 82579LM and Intel I218LM cards
  • Linux 4.6.1
  • WireGuard configuration: 256-bit ChaCha20 with Poly1305 for MAC
  • First IPsec configuration: 256-bit ChaCha20 with Poly1305 for MAC
  • Second IPsec configuration: AES-256-GCM-128 (with AES-NI)
  • OpenVPN configuration: equivalent cipher set of 256-bit AES with HMAC-SHA2-256, UDP mode
  • Performance was measured using iperf3, showing the average result over 30 minutes.

Theoretically, after integration into the network stack, WireGuard should work even faster. However, in reality, this may not be the case due to the transition to kernel-integrated cryptographic functions of Crypto API. It is possible that not all of them are yet optimized to the level of native WireGuard performance.

"From my point of view, WireGuard is perfect for the user. All low-level solutions are included in the specification, so preparing a typical VPN infrastructure takes only a few minutes. It's practically impossible to mess up the configuration, — om as stated on Habr in 2018. — The installation process is described in detail. pĂ„ den officiella webbplatsen vill jag sĂ€rskilt framhĂ€va den utmĂ€rkta stödet för OpenWRT. En sĂ„dan anvĂ€ndarvĂ€nlighet och kompakt kodbas har uppnĂ„tts genom att avstĂ„ frĂ„n distribution av nycklar. HĂ€r finns inget komplicerat system med certifikat och allt det dĂ€r företagsrelaterade, korta krypteringsnycklar distribueras ungefĂ€r som SSH-nycklar.

Projektet WireGuard har utvecklats sedan 2015, det har genomgÄtt en revision och formell verifiering. Stödet för WireGuard Àr integrerat i NetworkManager och systemd, och patcharna för kÀrnan ingÄr i basutbudet för Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph och ALT.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster