Ang VPN WireGuard gilakip sa Linux kernel 5.6

Karon gibalhin ni Linus ang net-next branch nga adunay mga interface sa VPN sa iyang kaugalingon WireGuard. Mahitungod niini nga panghitabo nagtaho sa WireGuard mailing list.

Ang VPN WireGuard gilakip sa Linux kernel 5.6

Ang pagkolekta sa code alang sa bag-ong Linux 5.6 kernel nagpadayon karon. Ang WireGuard usa ka paspas, sunod nga henerasyon nga VPN nga naggamit sa state-of-the-art nga cryptography. Kini orihinal nga gihimo isip usa ka mas simple ug mas sayon ​​​​nga alternatibo sa kasamtangan nga mga VPN. Ang tagsulat mao ang Canadian information security specialist nga si Jason A. Donenfeld. Niadtong Agosto 2018, ang WireGuard nakadawat ug pagdayeg ni Linus Torvalds. Nianang panahona, ang trabaho nagsugod sa paglakip sa VPN sa Linux kernel. Nagdugay ang proseso.

"Nakita nako nga si Jason naghimo usa ka hangyo sa pagbitad nga ilakip ang WireGuard sa kernel," gisulat ni Linus kaniadtong Agosto 2, 2018. — Mahimo ba nako nga ipahayag pag-usab ang akong gugma alang niini nga VPN ug maglaum alang sa usa ka panagsama sa dili madugay? Mahimong dili perpekto ang code, apan gitan-aw nako kini, ug kung itandi sa mga kalisang sa OpenVPN ug IPSec, kini usa ka tinuud nga buhat sa arte.

Bisan pa sa mga gusto ni Linus, ang paghiusa milungtad sa usa ug tunga ka tuig. Ang nag-unang problema nahimo nga nahigot sa proprietary nga pagpatuman sa cryptographic functions, nga gigamit sa pagpalambo sa performance. Pagkahuman sa taas nga negosasyon kaniadtong Setyembre 2019 kini usa ka desisyon sa pagkompromiso ang gihimo paghubad sa mga patch sa Crypto API function nga anaa sa kernel, diin ang mga developers sa WireGuard adunay mga reklamo sa natad sa pasundayag ug kinatibuk-ang seguridad. Apan nakahukom sila nga ibulag ang lumad nga WireGuard crypto function ngadto sa usa ka bulag nga ubos nga lebel nga Zinc API ug sa kadugayan i-port kini sa kernel. Niadtong Nobyembre, gituman sa mga developer sa kernel ang ilang saad ug miuyon pagbalhin bahin sa code gikan sa Zinc ngadto sa main kernel. Pananglitan, sa Crypto API apil paspas nga pagpatuman sa ChaCha20 ug Poly1305 nga mga algorithm nga giandam sa WireGuard.

Sa katapusan, sa Disyembre 9, 2019, si David S. Miller, responsable sa networking subsystem sa Linux kernel, gidawat sa net-sunod nga sanga mga patsa uban ang pagpatuman sa usa ka interface sa VPN gikan sa proyekto sa WireGuard.

Ug karon, Enero 29, 2020, ang mga pagbag-o miadto sa Linus alang sa paglakip sa kernel.

Ang VPN WireGuard gilakip sa Linux kernel 5.6

Giangkon nga mga bentaha sa WireGuard sa ubang mga solusyon sa VPN:

  • Dali gamiton.
  • Gigamit ang modernong cryptography: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, ug uban pa.
  • Compact nga mabasa nga code, mas sayon ​​nga imbestigahon alang sa mga kahuyangan.
  • Taas nga kahimoan.
  • Klaro ug detalyado espesipikasyon.

Ang tanan nga uyok nga lohika sa WireGuard nagkuha ug wala’y 4000 nga linya sa code, samtang ang OpenVPN ug IPSec nanginahanglan gatusan ka libo nga linya.

"Ang WireGuard naggamit sa konsepto sa encryption key routing, nga naglakip sa paglakip sa usa ka pribado nga yawe sa matag interface sa network ug paggamit sa publiko nga mga yawe sa pagbugkos niini. Ang mga yawe sa publiko gibaylo aron magtukod usa ka koneksyon sa parehas nga paagi sa SSH. Aron makigsabot sa mga yawe ug magkonektar nga walay pagdagan sa usa ka bulag nga daemon sa user space, ang Noise_IK nga mekanismo gikan sa Framework sa Noise Protocolsusama sa pagmintinar sa authorized_keys sa SSH. Ang pagpadala sa datos gihimo pinaagi sa encapsulation sa mga pakete sa UDP. Nagsuporta sa pagbag-o sa IP address sa VPN server (roaming) nga wala idiskonekta ang koneksyon sa awtomatikong pag-configure sa kliyente, - Siya misulat Opennet.

Alang sa pag-encrypt gigamit stream cipher ChaCha20 ug message authentication algorithm (MAC) Poly1305, gidisenyo ni Daniel Bernstein (Daniel J. Bernstein), Tanja Lange ug Peter Schwabe. Ang ChaCha20 ug Poly1305 gipahimutang nga mas paspas ug mas luwas nga mga analogue sa AES-256-CTR ug HMAC, ang pagpatuman sa software nga nagtugot sa pagkab-ot sa usa ka pirmi nga oras sa pagpatuman nga walay paggamit sa espesyal nga suporta sa hardware. Aron makamugna og usa ka gipaambit nga sekreto nga yawe, ang elliptic curve nga Diffie-Hellman protocol gigamit sa pagpatuman Curve25519, gisugyot usab ni Daniel Bernstein. Ang algorithm nga gigamit alang sa pag-hash mao ang BLAKE2s (RFC7693)".

Результаты mga pagsulay sa pasundayag gikan sa opisyal nga website:

Bandwidth (megabit/s)
Ang VPN WireGuard gilakip sa Linux kernel 5.6

Ping (ms)
Ang VPN WireGuard gilakip sa Linux kernel 5.6

Pag-configure sa pagsulay:

  • Intel Core i7-3820QM ug Intel Core i7-5200U
  • Gigabit cards Intel 82579LM ug Intel I218LM
  • Linux 4.6.1
  • WireGuard Configuration: 256-bit ChaCha20 nga adunay Poly1305 alang sa MAC
  • Unang IPsec configuration: 256-bit ChaCha20 uban sa Poly1305 alang sa MAC
  • Ikaduha nga pagsumpo sa IPsec: AES-256-GCM-128 (uban ang AES-NI)
  • OpenVPN Configuration: AES 256-bit equivalent cipher suite nga adunay HMAC-SHA2-256, UDP mode
  • Ang performance gisukod gamit ang iperf3, nagpakita sa kasagaran nga resulta sa 30 minutos.

Sa teyorya, sa higayon nga gisagol sa network stack, ang WireGuard kinahanglan nga molihok nga mas paspas. Apan sa pagkatinuod kini dili kinahanglan nga mahitabo tungod sa pagbalhin ngadto sa Crypto API cryptographic functions nga gitukod ngadto sa kernel. Tingali dili tanan kanila na-optimize pa sa lebel sa pasundayag sa lumad nga WireGuard.

"Gikan sa akong panan-aw, ang WireGuard sa kasagaran maayo alang sa tiggamit. Ang tanan nga ubos nga lebel nga mga desisyon gihimo sa espesipikasyon, mao nga ang proseso sa pag-andam sa usa ka tipikal nga imprastraktura sa VPN nagkinahanglan lamang og pipila ka minuto. Hapit imposible nga gub-on ang configuration - nagsulat sa Habré sa 2018. - Proseso sa pag-instalar gihulagway sa detalye sa opisyal nga website, gusto ko nga bulag nga timan-an ang maayo kaayo Suporta sa OpenWRT. Kini nga kasayon ​​sa paggamit ug pagkakomplikado sa code base nakab-ot pinaagi sa pagwagtang sa pag-apod-apod sa mga yawe. Wala’y komplikado nga sistema sa sertipiko ug tanan kini nga kalisang sa korporasyon; ang mubu nga mga yawe sa pag-encrypt giapod-apod sama sa mga yawe sa SSH.

Ang proyekto sa WireGuard nag-uswag sukad sa 2015, kini gi-audit ug pormal nga verification. Ang suporta sa WireGuard gisagol sa NetworkManager ug systemd, ug ang mga patch sa kernel gilakip sa mga base nga pag-apod-apod sa Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph ug ALT.

Source: www.habr.com

Idugang sa usa ka comment