Jason A. Donenfeld, la aŭtoro de WireGuard VPN, publikigis la unuan gravan eldonon de la klienta programaro WireGuard por Vindozo 1.0, kaj ankaŭ la pelilojn WireGuardNT 1.0 kun adapto. VPN WireGuard por la kernoj de Vindozo 10 kaj 11, subtenante arkitekturojn AMD64, x86 kaj ARM64. La kodo de la komponanto de la kerna Vindozo estas licencita sub la GPLv2, kaj la klienta programaro estas licencita sub la MIT-licenco.
La adapto baziĝas sur la kodbazo de la ĉefa WireGuard-implemento por la Linuksa kerno, kiu estis konvertita por uzi kernajn entojn de Vindozo kaj la retstakon de NDIS. Kompare kun la wireguard-go-implemento, kiu funkcias en la uzantospaco kaj uzas la retinterfacon de Wintun, WireGuardNT ofertas signifajn plibonigojn en la rendimento per forigo de kuntekstaj ŝanĝoj kaj kopiado de pakaĵenhavo de la kerno al la uzantospaco. Simile al la efektivigoj por Linukso, OpenBSD kaj FreeBSD, ĉiu protokola prilabora logiko en WireGuardNT funkcias rekte ĉe la retstaka nivelo.
Versio 1.0 estis markita kiel mejloŝtono, markante la solvon de kelkaj problemoj kaj la plenumon de celitaj taskoj, kiel ekzemple: la uzo de la funkcio NdisWdfGetAdapterContextFromAdapterHandle() anstataŭ la malpli sekura stokado de la pelil-stato en la Rezervita kampo kaj la uzo de nedokumentitaj ofsetoj; ĝusta kaj rapida spurado de la grandeco de MTU (Maximum Transmission Unit) per interkapto de sistemvokoj; la uzo de la normo C23 en la kodo.
Kiel memorigilo, WireGuard VPN baziĝas sur modernaj ĉifraj metodoj, liveras esceptan rendimenton, estas facile uzebla, ne havas komplikaĵojn, kaj pruvis sin en pluraj grandskalaj deplojoj pritraktantaj grandajn trafikkvantojn. La projekto estas en disvolviĝo ekde 2015 kaj spertis revizion kaj formalan konfirmon de siaj ĉifraj metodoj. WireGuard utiligas ŝlosil-bazitan ĉifradan vojigan koncepton, kiu implikas ligi privatan ŝlosilon al ĉiu retinterfaco kaj uzi publikajn ŝlosilojn por ŝlosilligado.
La interŝanĝo de publikaj ŝlosiloj por establi konekton similas al SSH. Por negoci ŝlosilojn kaj konekti sen funkciigi apartan demonon en la uzantospaco, oni uzas la mekanismon Noise_IK el la Noise Protocol Framework, simile al la bontenado de authorized_keys en SSH. Datumtransigo efektiviĝas per enkapsuligo en UDP-pakaĵetoj. Ŝanĝado estas subtenata. IP-adresoj VPN-serviloj (vagantaj) sen interrompo de konekto kun aŭtomata rekonfigurado de klientoj.
La ĉifro de fluo ChaCha20 kaj la algoritmo por mesaĝa aŭtentigo (MAC) Poly1305, evoluigitaj de Daniel J. Bernstein, Tanja Lange, kaj Peter Schwabe, estas uzataj por ĉifrado. ChaCha20 kaj Poly1305 estas surmerkatigitaj kiel pli rapidaj kaj pli sekuraj alternativoj al AES-256-CTR kaj HMAC, kies programara efektivigo permesas fikstempan ekzekuton sen bezono de speciala aparatara subteno. La komuna sekreta ŝlosilo estas generita uzante la elipsan kurban protokolon Diffie-Hellman en la efektivigo Curve25519, ankaŭ proponita de Daniel Bernstein. La algoritmo BLAKE2s (RFC7693) estas uzata por haŝado.
fonto: opennet.ru
