Kernen i operativsystemet DragonFly BSD har gennemgået omkring 100 ændringer, der relaterer sig til implementeringen af VPN-understøttelse for WireGuard. Driveren "wg" med WireGuard-protokol blev overført fra FreeBSD, mens koden til kryptografiske funktioner, netværksgrænseflade og ioctl API (for styring fra brugerrummet) er lånt fra OpenBSD. Ændringerne i værktøjet ifconfig, der er nødvendige for opsætningen af VPN, er også overført fra OpenBSD. Implementeringen er kompatibel med alle officielle WireGuard-klienter til Linux, Windows, macOS, *BSD, iOS og Android. DragonFly BSD er blevet det femte åbne OS efter Linux, OpenBSD, NetBSD og FreeBSD med integreret understøttelse af WireGuard.
WireGuard anvender konceptet med ruteudtagning baseret på krypteringsnøgler, som indebærer, at hver netværksgrænseflade knyttes til en privat nøgle, og at offentlige nøgler bruges til forbindelse. Til nøgleudveksling og forbindelse uden at starte en separat daemon i brugerrummet er mekanismen Noise_IK fra Noise Protocol Framework anvendt, der ligner vedligeholdelsen af authorized_keys i SSH. Dataoverførsel sker ved indkapsling i UDP-pakker. Ændring af IP-adresse VPN-server (roaming) understøttes uden afbrydelse af forbindelsen med automatisk genkonfiguration af klienten.
Til kryptering anvendes stream cipher ChaCha20 og message authentication algorithm (MAC) Poly1305, udviklet af Daniel Bernstein, Tanja Lange og Peter Schwabe. ChaCha20 og Poly1305 præsenteres som hurtigere og sikrere alternativer til AES-256-CTR og HMAC, hvis softwareimplementering gør det muligt at opnå en fast udførelsestid uden at involvere specialiseret hardwareunderstøttelse. Protokollen for generation af den fælles hemmelige nøgle anvender Diffie-Hellman på elliptiske kurver med implementeringen Curve25519, også foreslået af Daniel Bernstein. Hashing anvender algoritmen BLAKE2s (RFC7693).
Kilde: opennet.ru
