I kĂ€rnan av operativsystemet DragonFly BSD har det genomförts cirka 100 förĂ€ndringar relaterade till implementeringen av stöd för VPN WireGuard. Drivrutinen "wg" med stöd för WireGuard-protokollet har överförts frĂ„n FreeBSD, medan koden för kryptografiska funktioner, nĂ€tverksgrĂ€nssnitt och ioctl API (för hantering frĂ„n anvĂ€ndarutrymmet) Ă€r lĂ„nad frĂ„n OpenBSD. Ăndringar i ifconfig-verktyget som behövs för att konfigurera VPN har överförts frĂ„n OpenBSD. Implementeringen Ă€r kompatibel med alla officiella WireGuard-klienter för Linux, Windows, macOS, *BSD, iOS och Android. DragonFly BSD blev det femte öppna operativsystemet efter Linux, OpenBSD, NetBSD och FreeBSD med integrerat stöd för WireGuard.
WireGuard tillÀmpar konceptet nyckelbaserad routing, vilket innebÀr att varje nÀtverksgrÀnssnitt Àr bundet till en privat nyckel och att offentliga nycklar anvÀnds för att knyta samman dem. För nyckelutbyte och anslutning utan att köra en separat demon i anvÀndarutrymmet anvÀnds Noise_IK-mekanismen frÄn Noise Protocol Framework, liknande hur authorized_keys tillhandahÄlls i SSH. Dataöverföring sker genom inkapsling i UDP-paket. Stöd för IP-adressbyte VPN-server (roaming) utan att avbryta anslutningen med automatisk omkonfigurering av klienten.
För kryptering anvÀnds strömkrypteringen ChaCha20 och meddelandets autentiseringsalgoritm (MAC) Poly1305, utvecklade av Daniel J. Bernstein, Tanja Lange och Peter Schwabe. ChaCha20 och Poly1305 positioneras som snabbare och sÀkrare alternativ till AES-256-CTR och HMAC, vars mjukvaruimplementering möjliggör konstant exekveringstid utan specialiserat hÄrdvarustöd. För att generera en gemensam hemlig nyckel anvÀnds Diffie-Hellman-protokollet pÄ elliptiska kurvor i implementationen Curve25519, Àven den föreslagen av Daniel J. Bernstein. För hashning anvÀnds algoritmen BLAKE2s (RFC7693).
KĂ€lla: opennet.ru
