Täna tõi Linus endale net-next haru VPN-liideste toetusega . Selle sündmuse kohta WireGuardi postituste nimekirjas.

Praegu käib koodi kogumine uue Linux 5.6 tuuma jaoks. WireGuard on uus põlvkond VPN, mis rakendab kaasaegset krüptograafiat. Alguses töötati selle välja lihtsama ja mugavama alternatiivina olemasolevatele VPN-idele. Autoriks on Kanadas elav infoturbespetsialist Jason Donenfeld. 2018. aasta augustis sai WireGuard Linus Torvaldsi poolt. Umbes sel ajal algas töö VPN-i kaasamiseks Linuxi tuuma. Protsess venis veidi.
"Näen, et Jason tegi WireGuard'i tuuma kaasamiseks pull-avalduse, - kirjutas Linus 2. augustil 2018. - Kas ma võin lihtsalt korrata oma armastust selle VPN-i vastu ja loota kiirele ühinemisele? Võib-olla ei ole kood ideaalne, kuid ma vaatasin seda ja võrreldes OpenVPN-i ja IPSec'i õudustega on see tõeliselt kunstiteos."
Hoolimata Linuse soovist viibis ühinemine poolteist aastat. Peamine probleem oli seotud krüptograafiliste funktsioonide spetsiifiliste rakendustega, mida kasutati jõudluse parandamiseks. Pärast pikaajalisi läbirääkimisi septembris 2019 patchide viimiseks tuuma olemasolevatesse Crypto API funktsioonidesse, millele WireGuardi arendajatel on esitatud etteheiteid jõudluse ja üldise turvalisuse osas. Kuid otsustati, et WireGuardi natiivsed krüptofunktsioonid eralditakse madalamale tasemele Zinc API-sse ja neid kantakse aja jooksul tuuma. Novembris pidasid tuuma arendajad oma lubadust ja osa koodist Zincist põhituuma viimesse. Näiteks Crypto API WireGuardis ette valmistatud kiireid ChaCha20 ja Poly1305 algoritmide rakendusi.
Lõpuks, 9. detsembril 2019, David Miller, kes vastutab Linuxi tuuma võrgu alamsüsteemi eest, net-next haru alla WireGuardi projekti VPN-liidese rakendusega.
Ja täna, 29. jaanuaril 2020, saadeti muudatused Linusele tuuma kaasamiseks.

WireGuardi välja reklaamitavad eelised võrreldes teiste VPN lahendustega:
- Lihtne kasutada.
- Kasutab kaasaegset krüptograafiat: Noise protokolliraamistik, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF jne.
- Kompaktne ja loetav kood, lihtsam haavatavuste uurimiseks.
- Kõrge jõudlus.
- Selge ja läbimõeldud .
Kogu WireGuardi põhiloogika mahub vähem kui 4000 koodirea, samas kui OpenVPN ja IPSec sisaldavad sadu tuhandeid ridu.
WireGuard kasutab krüpteerimisvõtmete marsruutimise kontseptsiooni, mis tähendab, et igale võrguintervjaalile on seotud privaatvõti, mis kasutatakse avalike võtmete sidumiseks. Avalike võtmete vahetus ühenduse loomiseks toimub SSH põhimõtte järgi. Võtmete kooskõlastamiseks ja ühenduse loomiseks ilma eraldi kasutaja taseme deemonit käivitamata kasutatakse Noise_IK mehhanismi , mis sarnaneb authorized_keys hooldamisega SSH-s. Andmete edastamine toimub UDP-pakettidesse kapseldamise teel. Toetatakse VPN-serveri IP-aadressi muutmist (rändlus) ilma ühenduse katkestamiseta automaatse kliendi seadistamisega, — Opennet.
Krüpteerimiseks voogkrüptimist ja sõnumite autentimise algoritmi (MAC) , mille töötas välja Daniel Bernstein (), Tanja Lange ja Peter Schwabe. ChaCha20 ja Poly1305 on esitatud kui kiiremad ja turvalisemad alternatiivid AES-256-CTR ja HMAC-le, mille tarkvaraline teostus lubab saavutada fikseeritud käivitusaega ilma erilise riistvaratoe kaasamiseta. Koostöösalajase võtme genereerimiseks kasutatakse elliptsete kõverate põhist Diffie-Hellmani protokolli teostust , mille samuti esitas Daniel Bernstein. Hashimiseks kasutatakse algoritmi ».
Tulemused ametlikult kodulehelt:
Läbilaskevõime (megabit/s)

Pinging (ms)

Testimis konfiguratsioon:
- Intel Core i7-3820QM ja Intel Core i7-5200U
- Gigabit kaardid Intel 82579LM ja Intel I218LM
- Linux 4.6.1
- WireGuardi konfiguratsioon: 256-bitine ChaCha20 koos Poly1305 MAC-iga
- Esimene IPsec konfiguratsioon: 256-bitine ChaCha20 koos Poly1305 MAC-iga
- Teine IPsec konfiguratsioon: AES-256-GCM-128 (AES-NI-ga)
- OpenVPN konfiguratsioon: vastav 256-bitise AES krüptosüsteem HMAC-SHA2-256-ga, UDP režiim
- Sooritusvõimet mõõdeti
iperf3, näidates keskmist tulemuse 30 minuti jooksul.
Teoreetiliselt peaks WireGuard pärast integreerimist töötama veel kiiremini. Kuid tegelikkuses ei pruugi see nii olla, kuna liikudes sisseehitatud krüptograafiliste funktsioonide Crypto API juurde. Võib-olla ei ole kõik neist veel optimeeritud natiivse WireGuard'i jõudluse tasemele.
Minu vaatepunktist on WireGuard kasutajale ideaalne. Kõik madalama taseme lahendused on määratletud spetsifikatsioonis, seega kestab tüüpilise VPN-infrastruktuuri ettevalmistamise protsess vaid paar minutit. Konfiguratsioonis eksida on praktiliselt võimatu, — 2018. aastal Habré. — Paigaldusprotsess ametlikul veebisaidil, eraldi tahaksin märkida suurepärast . Sellise kasutusmugavuse ja koodibaasi kompaktsete mõõtmete saavutamiseks loobuti võtmete jagamise süsteemist. Siin ei ole keerulist sertifikaatsüsteemi ja kogu seda ettevõtete hirmu, lühikesed krüpteerimisvõtmed jagatakse rohkem nagu SSH-võtmed.
WireGuard'i projekt on arenenud alates 2015. aastast, see on läbinud auditi ja . WireGuardi tugi on integreeritud NetworkManagerisse ja systemd-sse, ning kärped tuumale on kaasatud Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph ja ALT jaotustes.
Allikas: habr.com
