Do jadra Linux VPN s povolenou verziou 5.6 WireGuard

Linus dnes presunul vetvu net-next s VPN rozhraniami do svojej vetvy. WireGuardO tejto udalosti сообщили v zozname adries WireGuard.

Do jadra Linux VPN s povolenou verziou 5.6 WireGuard

Zber kódu pre nové jadro momentálne prebieha. Linux 5.6. WireGuard — rýchla VPN novej generácie, ktorá implementuje modernú kryptografiu. Pôvodne bola vyvinutá ako jednoduchšia a pohodlnejšia alternatíva k existujúcim VPN. Vyvinul ju kanadský špecialista na informačnú bezpečnosť Jason A. Donenfeld. V auguste 2018 WireGuard bol chválený Od Linusa Torvaldsa. Približne v tom čase sa začali práce na začlenení VPN do jadra. LinuxProces trval trochu dlhšie.

„Vidím, že Jason odoslal žiadosť o stiahnutie obsahu, aby ju zahrnul WireGuard „do jadra,“ napísal Linus 2. augusta 2018. „Môžem len zopakovať svoju lásku k tejto VPN a dúfať v rýchle zlúčenie? Kód možno nie je dokonalý, ale pozrel som sa naň a porovnal ho s hrôzami OpenVPN a IPSec, je to skutočné umelecké dielo.“

Napriek Linusovým želaniam sa fúzia natiahla rok a pol. Hlavným problémom sa ukázala byť vzájomná závislosť proprietárnych implementácií kryptografických funkcií používaných na zlepšenie výkonu. Po zdĺhavých rokovaniach sa v septembri 2019 dosiahla dohoda. bolo prijaté kompromisné riešenie preložiť záplaty do funkcií rozhrania Crypto API dostupných v jadre, ku ktorým majú vývojári prístup WireGuard Vyskytli sa určité sťažnosti týkajúce sa výkonu a celkovej bezpečnosti. Natívne krypto funkcie však problém vyriešili. WireGuard samostatné nízkoúrovňové API rozhrania Zinc a ich postupné portovanie do jadra. V novembri vývojári jadra dodržali svoj sľub a súhlasil Presuň časť kódu zo Zincu do hlavného jadra. Napríklad do rozhrania Crypto API. zahrnuté pripravené v WireGuard Rýchle implementácie algoritmov ChaCha20 a Poly1305.

Nakoniec, 9. decembra 2019, David S. Miller, ktorý je zodpovedný za sieťový subsystém jadra, Linux, prijatý do siete-ďalšia pobočka náplasti s implementáciou VPN rozhrania z projektu WireGuard.

A dnes, 29. januára 2020, boli zmeny odoslané Linusovi na zahrnutie do jadra.

Do jadra Linux VPN s povolenou verziou 5.6 WireGuard

Nárokované výhody WireGuard v porovnaní s inými riešeniami VPN:

  • Jednoduché použitie.
  • Používa modernú kryptografiu: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF atď.
  • Kompaktný, čitateľný kód, ktorý sa dá ľahšie preskúmať z hľadiska zraniteľnosti.
  • Vysoký výkon.
  • Prehľadné a dobre navrhnuté špecifikácia.

Všetka základná logika WireGuard vyžaduje menej ako 4000 riadkov kódu, zatiaľ čo OpenVPN a IPSec má stovky tisíc riadkov.

„V. WireGuard Používa sa koncept smerovania šifrovacích kľúčov, ktorý zahŕňa viazanie súkromného kľúča na každé sieťové rozhranie a jeho použitie na viazanie verejného kľúča. Verejné kľúče sa vymieňajú na vytvorenie pripojenia podobným spôsobom ako SSH. Na vyjednávanie kľúčov a vytvorenie pripojenia bez spustenia samostatného démona v používateľskom priestore sa používa mechanizmus Noise_IK z Noise Protocol Framework, podobne ako udržiavanie authorized_keys v SSH. Prenos dát sa vykonáva prostredníctvom zapuzdrenia v UDP paketoch. Podporovaná je zmena IP adresy VPN servera (roaming) bez prerušenia pripojenia s automatickou rekonfiguráciou klienta. píše Opennet.

Pre šifrovanie použitý prúdová šifra ChaCha20 a algoritmus overovania správ (MAC) Poly1305, ktorý navrhol Daniel Bernstein (Daniel J. Bernstein), Tanja Lange a Peter Schwabe. ChaCha20 a Poly1305 sú umiestnené ako rýchlejšie a bezpečnejšie alternatívy k AES-256-CTR a HMAC, ktorých softvérová implementácia umožňuje fixný čas vykonávania bez potreby špeciálnej hardvérovej podpory. Na generovanie zdieľaného tajného kľúča sa používa protokol Diffie-Hellman s eliptickou krivkou. Curve25519, ktorú navrhol aj Daniel Bernstein. Algoritmus používaný na hashovanie je BLAKE2s (RFC7693)".

výsledky výkonnostné testy z oficiálnej stránky:

Šírka pásma (Mbps)
Do jadra Linux VPN s povolenou verziou 5.6 WireGuard

Ping (ms)
Do jadra Linux VPN s povolenou verziou 5.6 WireGuard

Testovacia konfigurácia:

  • Intel Core i7-3820QM a Intel Core i7-5200U
  • Gigabitové karty Intel 82579LM a Intel I218LM
  • Linux 4.6.1
  • konfigurácia WireGuard256-bitový ChaCha20 s Poly1305 pre MAC
  • Prvá konfigurácia IPsec: 256-bitový ChaCha20 s Poly1305 pre MAC
  • Druhá konfigurácia IPsec: AES-256-GCM-128 (s AES-NI)
  • konfigurácia OpenVPNekvivalentná šifrovacia sada 256-bitového AES s HMAC-SHA2-256, režim UDP
  • Výkonnosť sa merala pomocou iperf3, zobrazuje sa priemerný výsledok za 30 minút.

Teoreticky, po integrácii do sieťového zásobníka WireGuard malo by fungovať ešte rýchlejšie. V skutočnosti to však nemusí byť nevyhnutne kvôli prechodu na vstavané kryptografické funkcie rozhrania Crypto API. Je možné, že nie všetky sú ešte optimalizované na úroveň výkonu natívnej verzie. WireGuard.

„Z môjho pohľadu, WireGuard Je to úplne ideálne pre používateľa. V špecifikácii sú zohľadnené všetky rozhodnutia na nízkej úrovni, takže nastavenie typickej VPN infraštruktúry trvá len niekoľko minút. Je prakticky nemožné pokaziť konfiguráciu. писали na Habr v roku 2018. — Proces inštalácie podrobne popísané na oficiálnej webovej stránke by som chcel osobitne poznamenať vynikajúce Podpora OpenWRT„Táto jednoduchosť používania a kompaktná kódová základňa sa dosiahla elimináciou distribúcie kľúčov. Neexistuje žiadny zložitý systém certifikátov ani firemný neporiadok; krátke šifrovacie kľúče sa distribuujú podobne ako SSH kľúče.“

Projekt WireGuard sa vyvíja od roku 2015, bol auditovaný a formálne overenie. podpora WireGuard integrované do NetworkManageru a systemd a záplaty jadra sú zahrnuté v základných distribúciách Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph a ALT.

Zdroj: hab.com

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster