WireGuard VPN Windowsille ja WireGuardNT 1.0 julkaistu

WireGuard VPN:n kirjoittaja Jason A. Donenfeld on julkaissut ensimmäisen merkittävän version WireGuard-asiakasohjelmistosta Windows 1.0:lle sekä WireGuardNT 1.0 -ajurit portilla. VPN WireGuard Windows 10- ja 11-ytimille, tukee AMD64-, x86- ja ARM64-arkkitehtuureja. Windows-ytimen komponenttikoodi on lisensoitu GPLv2-lisenssillä ja asiakasohjelmisto MIT-lisenssillä.

Portti perustuu Linux-ytimen WireGuard-päätoteutuksen koodikantaan, joka on muunnettu käyttämään Windows-ytimen entiteettejä ja NDIS-verkkopinoa. Verrattuna wireguard-go-toteutukseen, joka toimii käyttäjätilassa ja käyttää Wintun-verkkorajapintaa, WireGuardNT tarjoaa merkittäviä suorituskyvyn parannuksia poistamalla kontekstikytkimet ja kopioimalla pakettien sisällön ytimestä käyttäjätilaan. Samoin kuin Linuxin, OpenBSD:n ja FreeBSD:n toteutuksissa, kaikki WireGuardNT:n protokollan käsittelylogiikka toimii suoraan verkkopinotasolla.

Versio 1.0 merkittiin virstanpylvääksi, sillä se merkitsi useiden ongelmien ratkaisua ja suunniteltujen tehtävien suorittamista, kuten: NdisWdfGetAdapterContextFromAdapterHandle()-funktion käyttö ajurin tilan vähemmän turvallisen tallennuksen sijaan Reserved-kenttään ja dokumentoimattomien offsettien käyttö; MTU-koon (Maximum Transmission Unit) oikea ja nopea seuranta järjestelmäkutsujen sieppauksen avulla; C23-standardin käyttö koodissa.

Muistutuksena, WireGuard VPN perustuu nykyaikaisiin salausmenetelmiin, tarjoaa poikkeuksellisen suorituskyvyn, on helppokäyttöinen, komplikaatioton ja on osoittanut toimivuutensa useissa laajamittaisissa käyttöönotoissa, joissa käsitellään suuria tietoliikennemääriä. Projektia on kehitetty vuodesta 2015 lähtien, ja sen salausmenetelmät on auditoitu ja virallisesti todennettu. WireGuard käyttää avainpohjaista salausreitityskonseptia, jossa yksityinen avain sidotaan jokaiseen verkkorajapintaan ja avainten sitomiseen käytetään julkisia avaimia.

Yhteyden muodostaminen julkisilla avaimilla tapahtuu samalla tavalla kuin SSH:ssa. Avainten neuvottelemiseen ja yhteyden muodostamiseen ilman erillisen daemonin suorittamista käyttäjätilassa käytetään Noise Protocol Frameworkin Noise_IK-mekanismia, samalla tavalla kuin authorized_keys-avainten ylläpito SSH:ssa. Tiedonsiirto tapahtuu kapseloimalla UDP-paketteihin. Muutoksia tuetaan. IP-osoitteet VPN-palvelimet (roaming) ilman yhteyden keskeytystä automaattisella asiakkaan uudelleenkonfiguroinnilla.

Salaukseen käytetään Daniel J. Bernsteinin, Tanja Langen ja Peter Schwaben kehittämää ChaCha20-jonosalausta ja Poly1305-viestin todennusalgoritmia (MAC). ChaCha20:tä ja Poly1305:tä markkinoidaan nopeampina ja turvallisempina vaihtoehtoina AES-256-CTR:lle ja HMAC:lle, joiden ohjelmistototeutus mahdollistaa kiinteän ajan suorituksen ilman erityistä laitteistotukea. Jaettu salainen avain luodaan käyttämällä elliptisen käyrän mukaista Diffie-Hellman-protokollaa Curve25519-toteutuksessa, jonka myös ehdotti Daniel Bernstein. Hajautukseen käytetään BLAKE2s-algoritmia (RFC7693).

Lähde: opennet.ru