U jezgru operativnog sustava DragonFly BSD uvedeno je oko 100 izmjena vezanih uz implementaciju podrške za VPN WireGuard. 'wg' upravljački program s podrškom za WireGuard protokol prenesen je iz FreeBSD-a, a kod kriptografskih funkcija, mrežnog sučelja i ioctl API-ja (za upravljanje iz korisničkog prostora) preuzet je iz OpenBSD-a. Promjene u utiliti ifconfig, potrebne za konfiguraciju VPN-a, preuzete su iz OpenBSD-a. Implementacija je kompatibilna sa svim službenim WireGuard klijentima za Linux, Windows, macOS, *BSD, iOS i Android. DragonFly BSD postala je peta otvorena OS nakon Linuxa, OpenBSD-a, NetBSD-a i FreeBSD-a s integriranom podrškom za WireGuard.
WireGuard koristi koncept usmjeravanja temeljen na ključevima šifriranja, koji podrazumijeva vezivanje svakog mrežnog sučelja uz privatni ključ i korištenje javnih ključeva za povezivanje. Za razmjenu ključeva i povezivanje bez pokretanja zasebnog demona u korisničkom prostoru koristi se mehanizam Noise_IK iz Noise Protocol Frameworka, sličan održavanju authorized_keys u SSH-u. Prijenos podataka odvija se kroz enkapsulaciju u UDP pakete. Podržava se promjena IP adrese VPN- servera (roaming) bez prekida veze s automatskom ponovnom konfiguracijom klijenta.
Za šifriranje se koristi stream cifra ChaCha20 i algoritam za autentifikaciju poruka (MAC) Poly1305, koje su razvili Daniel J. Bernstein, Tanja Lange i Peter Schwabe. ChaCha20 i Poly1305 predstavljaju brže i sigurnije alternative AES-256-CTR i HMAC, čija softverska implementacija omogućuje postizanje fiksnog vrijeme izvođenja bez angažiranja specijalizirane hardverske podrške. Za generiranje zajedničkog tajnog ključa koristi se protokol Diffie-Hellman na eliptičnim krivuljama s implementacijom Curve25519, također predloženom od strane Daniela J. Bernsteina. Za hashiranje se koristi algoritam BLAKE2s (RFC7693).
Izvor: opennet.ru
