VPN WireGuard is aanvaar in die net-volgende tak en word beplan vir insluiting in die Linux 5.6-kern

David Miller (David S. Miller), verantwoordelik vir die netwerksubstelsel van die Linux-kern, aanvaar na die net-volgende tak kolle met die implementering van die VPN-koppelvlak vanaf die projek WireGuard. Vroeg volgende jaar sal veranderinge wat in die net-volgende tak opgehoop is, die basis vorm vir die vrystelling van die Linux-kern 5.6.

Pogings om die WireGuard-kode in die hoofkern in te druk, is die afgelope paar jaar aangewend, maar het onsuksesvol gebly omdat dit gekoppel is aan eie implementerings van kriptografiese funksies wat gebruik is om werkverrigting te verbeter. Aanvanklik was hierdie funksies voorgestelde vir die kern as 'n bykomende lae-vlak sink API, wat uiteindelik die standaard Crypto API kan vervang.

Na besprekings by die Kernel Recipes-konferensie, het die skeppers van WireGuard in September 'n kompromiebesluit geneem het dra jou pleisters oor om die Crypto API wat in die kern beskikbaar is, te gebruik, waarteen die WireGuard-ontwikkelaars klagtes het op die gebied van werkverrigting en algemene sekuriteit. Daar is besluit om voort te gaan met die ontwikkeling van die Zinc API, maar as 'n aparte projek.

In November, kern ontwikkelaars gegaan in reaksie op 'n kompromie en ingestem om 'n deel van die kode van Sink na die hoofkern oor te dra. In wese sal sommige sink-komponente na die kern geskuif word, maar nie as 'n aparte API nie, maar as deel van die Crypto API-substelsel. Byvoorbeeld, die Crypto API reeds ingesluit vinnige implementering van die ChaCha20- en Poly1305-algoritmes wat in WireGuard voorberei is.

In verband met die komende aflewering van WireGuard in die hoofkern, die stigter van die projek aangekondig oor die herstrukturering van die bewaarplek. Om ontwikkeling te vereenvoudig, sal die monolitiese "WireGuard.git"-bewaarplek, wat ontwerp is om in isolasie te bestaan, vervang word deur drie afsonderlike bewaarplekke, wat beter geskik is vir die organisering van werk met kode in die hoofkern:

  • wireguard-linux.git - 'n volledige kernboom met veranderinge van die Wireguard-projek, waarvan die kolle hersien sal word vir insluiting in die kern en gereeld na die net/net-volgende takke oorgedra sal word.
  • wireguard-tools.git - 'n bewaarplek vir nutsprogramme en skrifte wat in gebruikersruimte uitgevoer word, soos wg en wg-quick. Die bewaarplek kan gebruik word om pakkette vir verspreidings te skep.
  • wireguard-linux-compat.git - 'n bewaarplek met 'n variant van die module, apart van die kern verskaf en insluitend die compat.h-laag om verenigbaarheid met ouer pitte te verseker. Die hoofontwikkeling sal in die wireguard-linux.git-bewaarplek uitgevoer word, maar solank daar 'n geleentheid en behoefte onder gebruikers is, sal 'n aparte weergawe van die pleisters ook in werkende vorm ondersteun word.

Laat ons u daaraan herinner dat VPN WireGuard op die basis van moderne enkripsiemetodes geïmplementeer word, baie hoë werkverrigting lewer, maklik is om te gebruik, vry van komplikasies en homself bewys het in 'n aantal groot implementerings wat groot volumes verkeer verwerk. Die projek ontwikkel sedert 2015, is geoudit en formele verifikasie enkripsiemetodes wat gebruik word. WireGuard-ondersteuning is reeds in NetworkManager en systemd geïntegreer, en kernkolle is by die basisverspreidings ingesluit Debian onstabiel, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.

WireGuard gebruik die konsep van enkripsiesleutelroetering, wat behels dat 'n private sleutel aan elke netwerkkoppelvlak geheg word en dit gebruik om die publieke sleutels te bind. Publieke sleutels word uitgeruil om 'n verbinding te bewerkstellig op 'n soortgelyke manier as SSH. Om sleutels te onderhandel en te koppel sonder om 'n aparte daemon in gebruikersruimte te laat loop, kan die Noise_IK-meganisme van Geraasprotokolraamwerksoortgelyk aan die handhawing van gemagtigde_sleutels in SSH. Data-oordrag word uitgevoer deur inkapseling in UDP-pakkies. Dit ondersteun die verandering van die IP-adres van die VPN-bediener (roaming) sonder om die verbinding te ontkoppel en die kliënt outomaties te herkonfigureer.

Vir enkripsie word gebruik stroomsyfer ChaCha20 en boodskapverifikasiealgoritme (MAC) Poly1305, ontwerp deur Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) en Peter Schwabe. ChaCha20 en Poly1305 is geposisioneer as vinniger en veiliger analoë van AES-256-CTR en HMAC, waarvan die sagteware-implementering dit moontlik maak om 'n vaste uitvoeringstyd te bereik sonder die gebruik van spesiale hardeware-ondersteuning. Om 'n gedeelde geheime sleutel te genereer, word die elliptiese kurwe Diffie-Hellman-protokol in die implementering gebruik Curve25519, ook voorgestel deur Daniel Bernstein. Die algoritme wat gebruik word vir hashing is BLAKE2s (RFC7693).

op toets Prestasie WireGuard het 3.9 keer hoër deurset en 3.8 keer hoër reaksie getoon in vergelyking met OpenVPN (256-bis AES met HMAC-SHA2-256). In vergelyking met IPsec (256-bis ChaCha20+Poly1305 en AES-256-GCM-128), toon WireGuard 'n effense prestasieverbetering (13-18%) en laer latency (21-23%). Die toetse is uitgevoer met behulp van vinnige implementering van enkripsie-algoritmes wat deur die projek ontwikkel is - oordrag na die standaard Crypto API van die kern kan lei tot swakker werkverrigting.

VPN WireGuard is aanvaar in die net-volgende tak en word beplan vir insluiting in die Linux 5.6-kern

Bron: opennet.ru

Voeg 'n opmerking