VPN WireGuard har blitt akseptert i nett-neste-grenen og er beregnet for inkludering i Linux 5.6-kjernen

David Miller (David S. Miller), ansvarlig for nettverksundersystemet til Linux-kjernen, akseptert til nett-neste gren lapper med implementering av VPN-grensesnittet fra prosjektet WireGuard. Tidlig neste år vil endringer akkumulert i net-neste-grenen danne grunnlaget for utgivelsen av Linux-kjernen 5.6.

Forsøk på å presse WireGuard-koden inn i hovedkjernen har blitt gjort i løpet av de siste årene, men forble mislykket på grunn av å være knyttet til proprietære implementeringer av kryptografiske funksjoner som ble brukt for å forbedre ytelsen. Opprinnelig var disse funksjonene foreslått for kjernen som en ekstra lavnivå Zinc API, som til slutt kan erstatte standard Crypto API.

Etter diskusjoner på Kernel Recipes-konferansen, skaperne av WireGuard i september tok en kompromissbeslutning overfør oppdateringene dine for å bruke Crypto API tilgjengelig i kjernen, som WireGuard-utviklerne har klager til innen ytelse og generell sikkerhet. Det ble besluttet å fortsette utviklingen av Zinc API, men som et eget prosjekt.

I november kjerneutviklere gikk som svar på et kompromiss og gikk med på å overføre deler av koden fra Zinc til hovedkjernen. I hovedsak vil noen Zink-komponenter flyttes inn i kjernen, men ikke som en separat API, men som en del av Crypto API-undersystemet. For eksempel, Crypto API allerede inkludert raske implementeringer av ChaCha20- og Poly1305-algoritmene utarbeidet i WireGuard.

I forbindelse med den kommende leveransen av WireGuard i hovedkjernen, er grunnleggeren av prosjektet kunngjort om restrukturering av depotet. For å forenkle utviklingen vil det monolittiske "WireGuard.git"-depotet, som ble designet for å eksistere isolert, erstattes av tre separate depoter, bedre egnet for å organisere arbeid med kode i hovedkjernen:

  • wireguard-linux.git - et komplett kjernetre med endringer fra Wireguard-prosjektet, hvor patcher vil bli gjennomgått for inkludering i kjernen og regelmessig overført til nett/nett-neste-grenene.
  • wireguard-tools.git - et depot for verktøy og skript som kjøres i brukerområdet, for eksempel wg og wg-quick. Depotet kan brukes til å lage pakker for distribusjoner.
  • wireguard-linux-compat.git - et depot med en variant av modulen, levert separat fra kjernen og inkludert compat.h-laget for å sikre kompatibilitet med eldre kjerner. Hovedutviklingen vil bli utført i wireguard-linux.git-depotet, men så lenge det er en mulighet og behov blant brukerne, vil en egen versjon av patchene også støttes i arbeidsform.

La oss minne om at VPN WireGuard er implementert på grunnlag av moderne krypteringsmetoder, gir svært høy ytelse, er enkel å bruke, fri for komplikasjoner og har bevist seg i en rekke store distribusjoner som behandler store mengder trafikk. Prosjektet har vært under utvikling siden 2015, har vært revidert og formell verifisering krypteringsmetoder som brukes. WireGuard-støtte er allerede integrert i NetworkManager og systemd, og kjernepatcher er inkludert i basisdistribusjonene Debian ustabil, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraf и ALT.

WireGuard bruker konseptet med krypteringsnøkkelruting, som innebærer å feste en privat nøkkel til hvert nettverksgrensesnitt og bruke den til å binde de offentlige nøklene. Offentlige nøkler utveksles for å etablere en forbindelse på lignende måte som SSH. For å forhandle nøkler og koble til uten å kjøre en egen demon i brukerområdet, kan Noise_IK-mekanismen fra Støyprotokollrammeverkligner på å opprettholde autoriserte_nøkler i SSH. Dataoverføring utføres gjennom innkapsling i UDP-pakker. Den støtter endring av IP-adressen til VPN-serveren (roaming) uten å koble fra tilkoblingen og automatisk rekonfigurere klienten.

For kryptering brukes strømchiffer ChaCha20 og meldingsautentiseringsalgoritme (MAC) Poly1305, designet av Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) og Peter Schwabe. ChaCha20 og Poly1305 er posisjonert som raskere og sikrere analoger av AES-256-CTR og HMAC, hvis programvareimplementering gjør det mulig å oppnå en fast utførelsestid uten bruk av spesiell maskinvarestøtte. For å generere en delt hemmelig nøkkel, brukes den elliptiske kurven Diffie-Hellman-protokollen i implementeringen Curve25519, også foreslått av Daniel Bernstein. Algoritmen som brukes for hashing er BLAKE2s (RFC7693).

ved testing Ytelse WireGuard demonstrerte 3.9 ganger høyere gjennomstrømning og 3.8 ganger høyere respons sammenlignet med OpenVPN (256-bit AES med HMAC-SHA2-256). Sammenlignet med IPsec (256-bit ChaCha20+Poly1305 og AES-256-GCM-128), viser WireGuard en liten ytelsesforbedring (13-18%) og lavere ventetid (21-23%). Testene ble utført ved hjelp av raske implementeringer av krypteringsalgoritmer utviklet av prosjektet – overføring til standard Crypto API av kjernen kan føre til dårligere ytelse.

VPN WireGuard har blitt akseptert i nett-neste-grenen og er beregnet for inkludering i Linux 5.6-kjernen

Kilde: opennet.ru

Legg til en kommentar