Danas je Linus prebacio granu net-next sa VPN sučeljima na svoj repo. . O ovom događaju je objavljeno na mailing listi WireGuard.

U ovom trenutku traje prikupljanje koda za novu verziju Linux kernela 5.6. WireGuard je brzi VPN nove generacije koji koristi modernu kriptografiju. Prvotno je razvijen kao jednostavnija i praktičnija alternativa postojećim VPN-ima. Autor je kanadski stručnjak za informatičku sigurnost Jason A. Donenfeld. U kolovozu 2018. WireGuard od Linusa Torvaldsa. Otprilike u to vrijeme započeo je rad na uključivanju VPN-a u Linux kernel. Proces je malo potrajao.
„Vidim da je Jason napravio pull request za uključivanje WireGuard-a u kernel“, pisao je Linus 2. kolovoza 2018. – „Mogu li još jednom izraziti svoju ljubav prema ovom VPN-u i nadati se brzom spajanju? Možda kod nije savršen, ali pregledao sam ga, i u usporedbi s užasima OpenVPN i IPSec, ovo je pravo remek-djelo.“
Unatoč Linusovoj želji, spajanje se prolongiralo na godinu i pol. Glavni problem bio je vezan uz vlastite realizacije kriptografskih funkcija koje su se koristile za poboljšanje performansi. Nakon dugih pregovora u rujnu 2019. donijeto je da se zakrpe prevede na postojeće funkcije Crypto API u kernelu, koje su programeri WireGuard-a kritizirali po pitanju performansi i opće sigurnosti. No odlučeno je da se izvorne kripto funkcije WireGuard-a izdvoje u odvojeni niskonivozni Zinc API i s vremenom ih portirati u kernel. U studenom su programeri kernela ispunili obećanje i premjestiti dio koda iz Zinc-a u glavni kernel. Na primjer, u Crypto API pripremljene u WireGuard brze realizacije algoritama ChaCha20 i Poly1305.
Na kraju, 9. prosinca 2019. David S. Miller, zadužen za mrežni podsustav Linux kernela, u sklopu grane net-next s realizacijom VPN sučelja iz projekta WireGuard.
A danas, 29. siječnja 2020. godine, promjene su poslane Linusu za uključivanje u kernel.

Izjavene prednosti WireGuarda u odnosu na druga VPN rešenja:
- Jednostavan za korišćenje.
- Koristi modernu kriptografiju: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF itd.
- Kompaktan i čitljiv kod, lakše istražiti na ranjivosti.
- Visoka performansa.
- Jasno i razrađeno .
Cjela osnovna logika WireGuard zauzima manje od 4000 redaka koda, dok OpenVPN i IPSec sadrže stotine tisuća redaka.
U WireGuard-u se primjenjuje koncept usmjeravanja prema šifrirnim ključevima, koji podrazumijeva vezivanje privatnog ključa za svaki mrežni sučelje i korištenje za povezivanje javnih ključeva. Razmjena javnih ključeva radi uspostavljanja veze vrši se analogno SSH-u. Kako bi se dogovorili ključevi i veza bez pokretanja posebnog demona u korisničkom prostoru, koristi se mehanizam Noise_IK iz , sličan održavanju authorized_keys u SSH-u. Prijenos podataka vrši se putem enkapsulacije u UDP paketima. Podržava se promjena IP adrese VPN poslužitelja (roaming) bez prekida veze, uz automatsku ponovu konfiguraciju klijenta, — Opennet.
Za šifriranje stream cipher i algoritam za autentifikaciju poruka (MAC) , razvijeni od strane Daniela Bernsteina (), Tanja Lange i Peter Schwabe. ChaCha20 i Poly1305 pozicionirani su kao brži i sigurniji analozi AES-256-CTR i HMAC, čija softverska implementacija omogućava postizanje fiksnog vremena izvođenja bez korištenja posebne hardverske podrške. Za generiranje zajedničkog tajnog ključa koristi se Diffie-Hellman protokol na eliptičnim krivuljama u izvedbi , također predložen od strane Daniela Bernstein-a. Za hashiranje se koriste algoritmi ».
Rezultati s službene stranice:
Propusnost (megabita/s)

Ping (ms)

Testna konfiguracija:
- Intel Core i7-3820QM i Intel Core i7-5200U
- Gigabitne kartice Intel 82579LM i Intel I218LM
- Linux 4.6.1
- Konfiguracija WireGuard: 256-bitni ChaCha20 s Poly1305 za MAC
- Prva konfiguracija IPsec: 256-bitni ChaCha20 s Poly1305 za MAC
- Druga konfiguracija IPsec: AES-256-GCM-128 (s AES-NI)
- Konfiguracija OpenVPN: ekvivalentni šifrovački skup 256-bitnog AES-a s HMAC-SHA2-256, UDP način
- Performanse su mjereni pomoću
iperf3, prikazan prosječan rezultat za 30 minuta.
Teoretski, nakon integracije u mrežni stog, WireGuard bi trebao raditi još brže. No, u stvarnosti to možda neće biti slučaj zbog prelaska na ugrađene kriptografske funkcije u Crypto API-ju. Moguće je da nisu sve od njih još optimizirane do razine performansi nativnog WireGuarda.
"S mog stajališta, WireGuard je u potpunosti idealan za korisnika. Sva niskorazinska rješenja utvrđena su u specifikaciji, pa priprema tipične VPN infrastrukture traje samo nekoliko minuta. Greška u konfiguraciji je gotovo nemoguća, — na Habr-u 2018. godine. — Proces instalacije na službenoj stranici, posebno bih istaknuo izvrsnu . Ova jednostavnost korištenja i kompaktna baza koda postignuta je odbacivanjem distribucije ključeva. Nema složenog sustava certifikata i cijele te korporativne zbrke, kratki ključevi šifriranja distribuiraju se otprilike kao SSH ključevi.
Projekt WireGuard razvija se od 2015. godine, prošao je audite i . Podrška za WireGuard integrirana je u NetworkManager i systemd, a zakrpe za jezgru uključene su u osnovni sastav distribucija Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph i ALT.
Izvor: habr.com
