Jason A. Donenfeldek, WireGuard VPN-ren egileak, WireGuard bezero softwarearen lehen bertsio nagusia kaleratu du Windows 1.0rako, baita WireGuardNT 1.0 kontrolatzaileak ere, portu batekin. VPN WireGuard Windows 10 eta 11 kernelerako, AMD64, x86 eta ARM64 arkitekturak onartzen dituena. Windows kernel osagaien kodea GPLv2 lizentziapean dago, eta bezero softwarea MIT lizentziapean.
Portua Linux kernelerako WireGuard inplementazio nagusiaren kode-basean oinarritzen da, eta kode hori Windows kernel entitateak eta NDIS sare pila erabiltzeko bihurtu da. Erabiltzaile espazioan exekutatzen den eta Wintun sare interfazea erabiltzen duen wireguard-go inplementazioarekin alderatuta, WireGuardNT-k errendimendu hobekuntza nabarmenak eskaintzen ditu testuinguru-aldagailuak ezabatuz eta paketeen edukia kerneletik erabiltzaile espaziora kopiatuz. Linux, OpenBSD eta FreeBSD-rako inplementazioen antzera, WireGuardNT-ko protokolo prozesatzeko logika guztia zuzenean sare pila mailan exekutatzen da.
1.0 bertsioa mugarri gisa markatu zen, hainbat arazo konpondu eta aurreikusitako zereginak betetzea ekarri baitzuen, hala nola: NdisWdfGetAdapterContextFromAdapterHandle() funtzioaren erabilera, gidariaren egoera Erreserbatutako eremuan gordetzearen eta desplazamendu dokumentatu gabeen erabileraren ordez; MTU (Maximum Transmission Unit) tamainaren jarraipen zuzena eta azkarra sistema-deiak atzemanez; C23 estandarraren erabilera kodean.
Gogorarazteko, WireGuard VPN enkriptazio-metodo modernoetan oinarritzen da, errendimendu bikaina eskaintzen du, erabiltzeko erraza da, konplikaziorik gabekoa da eta trafiko-bolumen handiak kudeatzen dituzten hainbat inplementazio handitan frogatu du bere gaitasuna. Proiektua 2015etik dago garatzen eta bere enkriptazio-metodoen auditoria eta egiaztapen formal bat jasan du. WireGuard-ek gakoetan oinarritutako enkriptazio-bideratze kontzeptua erabiltzen du, eta horrek gako pribatu bat sare-interfaze bakoitzari lotzea eta gako publikoak erabiltzea dakar gakoen loturarako.
Gako publikoen trukea konexio bat ezartzeko SSHren antzekoa da. Gakoak negoziatu eta konektatzeko erabiltzaile-espazioan daemon bereizi bat exekutatu gabe, Noise Protocol Framework-eko Noise_IK mekanismoa erabiltzen da, SSH-n authorized_keys mantentzearen antzekoa. Datuen transferentzia UDP paketeetan kapsulazioaren bidez egiten da. Aldaketak onartzen dira. IP helbideak VPN zerbitzariak (roaming) konexio etenik gabe, bezeroen birkonfigurazio automatikoarekin.
Daniel J. Bernstein, Tanja Lange eta Peter Schwabek garatutako ChaCha20 fluxu-zifraketa eta Poly1305 mezu-autentifikazio algoritmoa (MAC) erabiltzen dira enkriptatzeko. ChaCha20 eta Poly1305 AES-256-CTR eta HMAC-en alternatiba azkarrago eta seguruago gisa merkaturatzen dira, eta haien software-inplementazioak denbora finkoko exekuzioa ahalbidetzen du hardware-laguntza berezirik behar izan gabe. Gako sekretu partekatua Diffie-Hellman protokolo eliptikoa erabiliz sortzen da Curve25519 inplementazioan, Daniel Bernsteinek ere proposatua. BLAKE2s algoritmoa (RFC7693) erabiltzen da hashing-erako.
Iturria: opennet.ru
