Ang WireGuard "moabut" sa Linux kernel - ngano?

Sa katapusan sa Hulyo, gisugyot sa mga developer sa WireGuard VPN tunnel set nga patchnga maghimo sa ilang VPN tunneling software nga bahin sa Linux kernel. Bisan pa, ang eksaktong petsa sa pagpatuman sa "ideya" wala pa mahibal-an. Hisgutan nato kini nga himan sa mas detalyado ubos sa pagputol.

Ang WireGuard "moabut" sa Linux kernel - ngano?
/ litrato Tambako Ang Jaguar CC

Sa mubo bahin sa proyekto

Ang WireGuard usa ka sunod nga henerasyon nga VPN tunnel nga gihimo ni Jason A. Donenfeld, CEO sa Edge Security. Ang proyekto gimugna isip gipasimple ug usa ka abtik nga alternatibo sa OpenVPN ug IPsec. Ang unang bersyon sa produkto adunay sulod lamang sa 4 ka linya sa code. Alang sa pagtandi, ang OpenVPN adunay mga 120 ka libo nga linya, ug ang IPSec adunay 420 ka libo nga linya.

Pinaagi sa sumala sa developers, ang WireGuard sayon ​​nga i-set up ug ang seguridad sa protocol nakab-ot pinaagi sa napamatud-an nga cryptographic algorithm. Kung nagbag-o sa mga network: Ang Wi-Fi, LTE o Ethernet kinahanglan nga magkonektar pag-usab sa VPN server matag higayon. Ang mga server sa WireGuard, sa laing bahin, dili ihulog ang koneksyon bisan kung ang user nakadawat og bag-ong IP address.

Bisan pa sa kamatuoran nga ang WireGuard orihinal nga gidisenyo alang sa Linux kernel, ang mga developers giatiman ug mahitungod sa madaladala nga bersyon sa himan alang sa mga Android device. Ang aplikasyon wala pa mahuman, apan mahimo nimong sulayan kini sa aksyon karon. Alang niini kinahanglan nimo mahimong usa sa mga tester.

Sa kinatibuk-an, ang WireGuard popular kaayo ug kaniadto gipatuman daghang VPN providers sama sa Mullvad ug AzireVPN. Gipatik online usa ka dako nga gidaghanon mga giya sa pag-setup niini nga desisyon. Pananglitan, adunay mga giya, nga gihimo sa mga tiggamit, apan adunay mga giya, giandam sa mga tagsulat sa proyekto.

Teknikal nga mga detalye

Π’ opisyal nga dokumentasyon (p.18) nakamatikod nga ang throughput sa WireGuard upat ka pilo nga mas taas kaysa sa OpenVPN: 1011 Mbps kumpara sa 258 Mbps, matag usa. Ang WireGuard nag-una usab sa standard Linux IPsec nga solusyon - kini adunay 881 Mbps. Kini milabaw sa kasayon ​​sa setup.

Pagkahuman sa yawe nga pagbinayloay (ang koneksyon sa VPN gisugdan halos sama sa SSH) ug ang koneksyon natukod, ang WireGuard nagdumala sa tanan nga uban nga mga buluhaton sa iyang kaugalingon: dili kinahanglan nga mabalaka bahin sa pag-ruta, statefulness, ug uban pa. i-apply kung gusto nimo gamiton ang symmetric encryption.

Ang WireGuard "moabut" sa Linux kernel - ngano?
/ litrato Anders Hojbjerg CC

Aron ma-install, kinahanglan nimo ang usa ka distribution kit nga adunay Linux kernel nga "mas tigulang" kaysa 4.1. Makita kini sa mga repositoryo sa dagkong mga distribusyon sa Linux.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Ingon sa namatikdan sa mga editor sa xakep.ru, ang pag-assemble sa kaugalingon gikan sa gigikanan yano usab. Igo na ang pagpataas sa interface ug paghimo sa publiko ug pribado nga mga yawe:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard dili gamiton interface alang sa pagtrabaho sa usa ka cryptographic provider CryptoAPI. Hinuon, gigamit ang stream cipher. ChaCha20, cryptographic imitasyon nga insert Poly1305 ug proprietary cryptographic hash functions.

Ang sekreto nga yawe gihimo gamit Diffie-Hellman nga protocol base sa elliptic curve Curve25519. Paggamit sa Hashing hash nga mga gimbuhaton BLAKE2 ΠΈ SipHash. Tungod sa format sa timestamp TAI64N ang protocol naghulog sa mga pakete nga adunay mas ubos nga timestamp nga kantidad, sa ingon pagpugong sa DoS- ΠΈ replay nga mga pag-atake.

Sa samang higayon, ang WireGuard naggamit sa ioctl function aron makontrol ang I / O (kaniadto gigamit netlink), nga naghimo sa code nga mas limpyo ug mas simple. Mahimo nimong pamatud-an kini pinaagi sa pagtan-aw sa kodigo sa pag-configure.

Mga Plano sa Developer

Sa pagkakaron, ang WireGuard usa ka out-of-tree kernel module. Apan ang tagsulat sa proyekto nga si Jason Donenfeld miingon, nga ang panahon miabot na alang sa usa ka hingpit nga pagpatuman sa Linux kernel. Tungod kay kini mas simple ug mas kasaligan kay sa ubang mga solusyon. Jason bahin niini nagsuporta bisan si Linus Torvalds mismo - iyang gitawag ang WireGuard code nga "usa ka buhat sa arte."

Apan walay usa nga naghisgot bahin sa eksaktong mga petsa alang sa pagpaila sa WireGuard ngadto sa kernel. UG lisud mahitabo kini sa pagpagawas sa August Linux kernel 4.18. Bisan pa, adunay higayon nga kini mahitabo sa labing duol nga umaabot: sa bersyon 4.19 o 5.0.

Kung ang WireGuard idugang sa kernel, ang mga developer gusto tapuson ang aplikasyon para sa mga Android device ug magsugod sa pagsulat og aplikasyon para sa iOS. Dugang pa, giplanohan nga makompleto ang mga pagpatuman sa Go ug Rust ug i-port kini sa macOS, Windows ug BSD. Giplano usab nga ipatuman ang WireGuard alang sa dugang nga "exotic system": DPDK, FPGA, ingon man usab sa daghang uban pang makapaikag nga mga butang. Tanan sila gilista sa listahan sa buhaton mga tagsulat sa proyekto.

PS Pipila pa nga mga artikulo gikan sa among corporate blog:

Ang panguna nga direksyon sa among kalihokan mao ang paghatag sa mga serbisyo sa panganod:

Virtual Infrastructure (IaaS) | Pag-host sa PCI DSS | Cloud FZ-152 | Pag-host sa SAP | Virtual nga pagtipig | Pag-encrypt sa panganod | Pagtipig sa panganod

Source: www.habr.com

Idugang sa usa ka comment