Ma Linus átvitte a net-next ágat VPN interfészekkel. . Erről az eseményről a WireGuard levelezőlistájában.

Jelenleg a Linux 5.6 új kerneléhez szükséges kód gyűjtése zajlik. A WireGuard egy modern VPN, amelyben a legújabb kriptográfiai megoldások valósultak meg. Eredetileg egy egyszerűbb és kényelmesebb alternatívaként fejlesztették ki a létező VPN-ekhez képest. Az alkotója Jason A. Donenfeld, kanadai információbiztonsági szakember. 2018 augusztusában a WireGuard Linus Torvaldstól. Körülbelül ekkor kezdődött el a VPN kernelbe való beillesztésének munkája. A folyamat kissé elhúzódott.
"Látom, hogy Jason benyújtott egy pul-kérést a WireGuard kernelbe való beillesztésére — írta Linus 2018. augusztus 2-án. — Csak szeretném még egyszer kifejezni a szeretetemet e VPN iránt, és bízom a gyors egyesítésben. Talán a kód nem tökéletes, de átnéztem és az OpenVPN és az IPSec borzalmaihoz képest ez egy igazi műalkotás."
Linus kívánsága ellenére az egyesítés másfél évig elhúzódott. A fő probléma a teljesítmény javítása érdekében alkalmazott saját kriptográfiai funkciókhoz való kötődés volt. Hosszú tárgyalások után 2019 szeptemberében a kernelben lévő Crypto API-ra való átvitelre, amivel a WireGuard fejlesztőinek teljesítménnyel és általános biztonsággal kapcsolatos aggályai voltak. Azonban úgy döntöttek, hogy a WireGuard natív kriptográfiai funkcióit elkülönítik alacsony szintű Zinc API-ként, és idővel portolják őket a kernelbe. Novemberben a kernel fejlesztői betartották az ígéretüket és a Zinc-ból származó kód egy részének az alapkernelbe való átvitelét. Például a Crypto API-hoz a WireGuard által előkészített ChaCha20 és Poly1305 algoritmusok gyors megvalósításait.
Végül, 2019. december 9-én David S. Miller, aki a Linux kernel hálózati alrendszeréért felelős, a net-next ágon a WireGuard projekt VPN interfész megvalósításával.
Ma, 2020. január 29-én a változtatások Linushoz kerültek az kernelbe való beillesztéshez.

A WireGuard állítólagos előnyei más VPN megoldásokkal szemben:
- Könnyen használható.
- Modern kriptográfiát használ: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF stb.
- Kompakt és olvasható kód, könnyebben kutatható sebezhetőségek után.
- Magas teljesítmény.
- Tiszta és kidolgozott .
A WireGuard fő logikája mindössze 4000 sor kódot igényel, míg az OpenVPN és az IPSec számos százezer sor.
A WireGuard esetében a titkosítási kulcsokon alapuló irányítás koncepciója érvényesül, ami azt jelenti, hogy minden hálózati interfészhez egy privát kulcs kapcsolódik, és a nyilvános kulcsok összekapcsolására használják. A kapcsolatokhoz szükséges nyilvános kulcsok cseréje az SSH-hoz hasonlóan történik. A kulcsok egyeztetésére és a kapcsolódásra külön felhasználói térben futó démon indítása nélkül a Noise_IK mechanizmus alkalmazásával kerül sor , amely hasonló az authorized_keys fenntartásához az SSH-ban. Az adatátvitel UDP csomagokba történő kapszulázáson keresztül valósul meg. Támogatott a VPN-szerver IP-címének változtatása (roaming) az összeköttetés megszakítása nélkül, automatikus kliens újrakonfigurálással, — Opennet.
For encryption a stream cipher and a message authentication algorithm (MAC) , developed by Daniel Bernstein (), Tanja Lange és Peter Schwabe. A ChaCha20 és Poly1305 gyorsabb és biztonságosabb alternatívaként vannak pozicionálva az AES-256-CTR-hez és HMAC-hez képest, amelyek szoftveres megvalósítása lehetővé teszi a fix végrehajtási időt speciális hardveres támogatás igénybevétele nélkül. A közös titkos kulcs generálásához elliptikus görbéken végzett Diffie-Hellman protokollt alkalmaznak , amelyet Daniel Bernstein is javasolt. A hash-eléshez a következő algoritmust használják: ».
Eredmények a hivatalos weboldalról:
Átviteli sebesség (megabit/s)

Ping (ms)

Tesztek konfigurációja:
- Intel Core i7-3820QM és Intel Core i7-5200U
- Gigabites Intel 82579LM és Intel I218LM hálózati kártyák
- Linux 4.6.1
- WireGuard konfiguráció: 256 bites ChaCha20 Poly1305-tel a MAC-hoz
- Első IPsec konfiguráció: 256 bites ChaCha20 Poly1305-tel a MAC-hoz
- Második IPsec konfiguráció: AES-256-GCM-128 (AES-NI-vel)
- OpenVPN konfiguráció: a 256 bites AES HMAC-SHA2-256-tel az UDP módhoz
- A teljesítményt
iperf3, a 30 perces átlagos eredményt mutatva mérték.
Elméletileg, a WireGuard hálózati veremben történő integrálása után még gyorsabban kellene működnie. De a valóságban ez nem feltétlenül igaz az integrált kriptográfiai funkciókra való áttérés miatt, a Crypto API-ra. Lehet, hogy nem minden funkciót optimalizáltak még az eredeti WireGuard sebességéhez.
"Szerintem a WireGuard tökéletes a felhasználók számára. Minden alacsony szintű megoldás szerepel a specifikációban, így a tipikus VPN infrastruktúra előkészítése mindössze néhány percet vesz igénybe. Szerelésben szinte lehetetlen eltéveszteni — a Habrán 2018-ban. — A telepítési folyamat a hivatalos weboldalon, külön szeretném kiemelni a kiváló . A használat egyszerűségét és a kódalap kompakt mivoltát a kulcsok terjesztéséről való lemondással érték el. Itt nincs bonyolult tanúsítványrendszer és az a rengeteg vállalati rémálom, a rövid titkosító kulcsok terjesztése körülbelül úgy történik, mint az SSH-kulcsoké.
A WireGuard projekt 2015 óta fejlődik, átment az auditon és . A WireGuard támogatása integrálva van a NetworkManagerbe és a systemd-be, a kernelhez készült javítások pedig a Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph és ALT disztribúciók alapcsomagját képezik.
Forrás: habr.com
