Omtrent 100 endringer relatert til implementering av støtte for VPN WireGuard har blitt tatt i bruk i kjernen til DragonFly BSD-operativsystemet. "wg"-driveren med støtte for WireGuard-protokollen er portert fra FreeBSD, og koden for kryptografiske funksjoner, nettverksgrensesnitt og ioctl API (for kontroll fra brukerplass) er lånt fra OpenBSD. Endringer i ifconfig-verktøyet som er nødvendig for å konfigurere VPN har blitt overført fra OpenBSD. Implementeringen er kompatibel med alle offisielle WireGuard-klienter for Linux, Windows, macOS, *BSD, iOS og Android. DragonFly BSD ble det femte åpne operativsystemet etter Linux, OpenBSD, NetBSD og FreeBSD med integrert støtte for WireGuard.
WireGuard bruker et nøkkelbasert krypteringsrutingskonsept, som innebærer å binde en privat nøkkel til hvert nettverksgrensesnitt og bruke den til binding av offentlige nøkler. For å forhandle nøkler og koble til uten å kjøre en separat daemon i brukerområdet, brukes Noise_IK-mekanismen fra Noise Protocol Framework, som ligner på SSHs støtte for authorized_keys. Dataoverføring utføres via innkapsling i UDP-pakker. Tildeling av IP-adresse støttes. VPN-servere (roaming) uten å koble fra med automatisk klientkonfigurasjon.
Kryptering bruker ChaCha20-strømchifferet og Poly1305-meldingsautentiseringsalgoritmen (MAC), utviklet av Daniel J. Bernstein, 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 Curve25519-implementeringen, også foreslått av Daniel Bernstein. BLAKE2s-algoritmen (RFC7693) brukes til hashing.
Kilde: opennet.ru
