WireGuard VPN ืคึฟืึทืจ Windows ืื•ืŸ WireGuardNT 1.0 ืืจื•ื™ืกื’ืขื’ืขื‘ืŸ

ื“ื–ืฉื™ื™ืกืืŸ ื. ื“ืื ืขื ืคืขืœื“, ื“ืขืจ ืžื—ื‘ืจ ืคื•ืŸ WireGuard VPN, ื”ืื˜ ืืจื•ื™ืกื’ืขื’ืขื‘ืŸ ื“ื™ ืขืจืฉื˜ืข ื’ืจื•ื™ืกืข ืื•ื™ืกื’ืื‘ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ WireGuard ืงืœื™ืขื ื˜ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืคืืจ Windows 1.0, ื•ื•ื™ ืื•ื™ืš ื“ื™ WireGuardNT 1.0 ื“ืจื™ื™ื•ื•ืขืจืก ืžื™ื˜ ื ืคืืจื˜. ื•ื•ืคึผืŸ WireGuard ืคืืจืŸ Windows 10 ืื•ืŸ 11 ืงืขืจื ืขืœ, ื•ื•ืืก ืฉื˜ื™ืฆื˜ AMD64, x86, ืื•ืŸ ARM64 ืืจื›ื™ื˜ืขืงื˜ื•ืจืŸ. ื“ืขืจ Windows ืงืขืจื ืขืœ ืงืืžืคืื ืขื ื˜ ืงืื•ื“ ืื™ื– ืœื™ื™ืกืขื ืกื˜ ืื•ื ื˜ืขืจืŸ GPLv2, ืื•ืŸ ื“ื™ ืงืœื™ืขื ื˜ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืื™ื– ืœื™ื™ืกืขื ืกื˜ ืื•ื ื˜ืขืจืŸ MIT ืœื™ื™ืกืขื ืก.

ื“ืขืจ ืคึผืึธืจื˜ ืื™ื– ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ืขืจ ืงืึธื“ื‘ืึทื–ืข ืคื•ืŸ โ€‹โ€‹ื“ืขืจ ื”ื•ื™ืคึผื˜ WireGuard ืื™ืžืคึผืœืขืžืขื ื˜ืึทืฆื™ืข ืคึฟืึทืจ ื“ืขื ืœื™ื ื•ืงืก ืงืขืจื ืขืœ, ื•ื•ืึธืก ืื™ื– ืงืึธื ื•ื•ืขืจื˜ื™ืจื˜ ื’ืขื•ื•ืึธืจืŸ ืฆื• ื ื•ืฆืŸ Windows ืงืขืจื ืขืœ ืขื ื˜ื™ื˜ื™ืก ืื•ืŸ ื“ืขื NDIS ื ืขืฅ ืกื˜ืขืง. ืงืึทืžืคึผืขืจื“ ืฆื• ื“ืขืจ wireguard-go ืื™ืžืคึผืœืขืžืขื ื˜ืึทืฆื™ืข, ื•ื•ืึธืก ืœื•ื™ืคื˜ ืื™ืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ ืื•ืŸ ื ื•ืฆื˜ ื“ืขื Wintun ื ืขืฅ ืฆื•ื‘ื™ื ื“, WireGuardNT ืึธืคืคืขืจืก ื‘ืึทื“ื™ื™ื˜ื ื“ื™ืงืข ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึฟืึทืจื‘ืขืกืขืจื•ื ื’ืขืŸ ื“ื•ืจืš ืขืœื™ืžื™ื ื™ืจืŸ ืงืึธื ื˜ืขืงืกื˜ ืกื•ื•ื™ื˜ืฉื™ื– ืื•ืŸ ืงืึธืคึผื™ืจืŸ ืคึผืึทืงืขื˜ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ืขื ืงืขืจื ืขืœ ืฆื• ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ. ืขื ืœืขืš ืฆื• ื“ื™ ืื™ืžืคึผืœืขืžืขื ื˜ืึทืฆื™ืขืก ืคึฟืึทืจ ืœื™ื ื•ืงืก, OpenBSD, ืื•ืŸ FreeBSD, ืึทืœืข ืคึผืจืึธื˜ืึธืงืึธืœ ืคึผืจืึทืกืขืกื™ื ื’ ืœืึธื’ื™ืง ืื™ืŸ WireGuardNT ืœื•ื™ืคื˜ ื’ืœื™ื™ืš ืื•ื™ืฃ ื“ืขื ื ืขืฅ ืกื˜ืขืง ืœืขื•ื•ืขืœ.

ื•ื•ืขืจืกื™ืข 1.0 ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืืฆื™ื™ื›ื ื˜ ืืœืก ื ืžื™ื™ืœืฉื˜ื™ื™ืŸ, ื•ื•ืืก ืฆื™ื™ื›ื ื˜ ื“ื™ ืœื™ื™ื–ื•ื ื’ ืคื•ืŸ ื ืฆืืœ ืคืจืื‘ืœืขืžืขืŸ ืื•ืŸ ื“ื™ ื“ืขืจืคื™ืœืŸ ืคื•ืŸ ื“ื™ ื‘ืืฉื˜ื™ืžื˜ืข ืื•ื™ืคื’ืื‘ืŸ, ื•ื•ื™ ืฆื•ื ื‘ื™ื™ืฉืคื™ืœ: ื“ื™ ื ื•ืฆ ืคื•ืŸ ื“ื™ NdisWdfGetAdapterContextFromAdapterHandle() ืคื•ื ืงืฆื™ืข ืื ืฉื˜ืื˜ ื“ื™ ื•ื•ื™ื™ื ื™ื’ืขืจ ื–ื™ื›ืขืจืข ืกื˜ืึธืจื™ื“ื–ืฉ ืคื•ืŸ ื“ื™ ื“ืจื™ื™ื•ื•ืขืจ ืฉื˜ืึทื˜ ืื™ืŸ ื“ื™ ืจืขื–ืขืจื•ื•ื™ืจื˜ ืคืขืœื“ ืื•ืŸ ื“ื™ ื ื•ืฆ ืคื•ืŸ ื ื™ืฉื˜-ื“ืืงื•ืžืขื ื˜ื™ืจื˜ืข ืึธืคืกืขื˜ืŸ; ืจื™ื›ื˜ื™ืงืข ืื•ืŸ ืฉื ืขืœืข ื˜ืจืึทืงื™ื ื’ ืคื•ืŸ ื“ื™ MTU (ืžืึทืงืกื™ืžื•ื ื˜ืจืึทื ืกืžื™ืกื™ืข ื™ื•ื ื™ื˜) ื’ืจื™ื™ืก ื“ื•ืจืš ื“ื™ ื™ื ื˜ืขืจืกืขืคึผื˜ ืคื•ืŸ ืกื™ืกื˜ืขื ืจื•ืคืŸ; ื“ื™ ื ื•ืฆ ืคื•ืŸ ื“ื™ C23 ืกื˜ืึทื ื“ืึทืจื˜ ืื™ืŸ ื“ื™ ืงืึธื“.

ื–ืืœ ืื•ื ื“ื– ื“ืขืจืžืึธื ืขืŸ ืื™ืจ ืึทื– VPN WireGuard ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื•ื™ืฃ ื“ืขืจ ื‘ืื–ืข ืคื•ืŸ โ€‹โ€‹ืžืึธื“ืขืจืŸ ืขื ืงืจื™ืคึผืฉืึทืŸ ืžืขื˜ื”ืึธื“ืก, ื’ื™ื˜ ื–ื™ื™ืขืจ ื”ื•ื™ืš ืคืึธืจืฉื˜ืขืœื•ื ื’, ืื™ื– ื’ืจื™ื ื’ ืฆื• ื ื•ืฆืŸ, ืื™ื– ืคืจื™ื™ ืคื•ืŸ ืงืึทืžืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื•ืŸ ืคึผืจืึธื•ื•ืขืŸ ื–ื™ืš ื’ืขื–ื•ื ื˜ ืื™ืŸ ืึท ื ื•ืžืขืจ ืคื•ืŸ ื’ืจื•ื™ืก ื™ืžืคึผืœืึทืžืึทื ืฅ ืคึผืจืึทืกืขืกื™ื ื’ ื’ืจื•ื™ืก ื•ื•ืึทืœื™ื•ืžื– ืคื•ืŸ ืคืึทืจืงืขืจ. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื–ื™ื ื˜ 2015 ืื•ืŸ ื”ืื˜ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืึท ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืื•ืŸ ืคืึธืจืžืึทืœ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืขื ืงืจื™ืคึผืฉืึทืŸ ืžืขื˜ื”ืึธื“ืก ื’ืขื ื™ืฆื˜. WireGuard ื ื™ืฆื˜ ื“ืขื ื‘ืึทื’ืจื™ืฃ ืคื•ืŸ ืฉืœื™ืกืœ-ื‘ืื–ื™ืจื˜ ืขื ืงืจื™ืคึผืฉืึทืŸ ืจื•ื˜ื™ื ื’, ื•ื•ืึธืก ื™ื ื•ื•ืึทืœื•ื•ื– ืึทืกืกืึธืกื™ืึทื˜ื™ืึธืŸ ืึท ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ืžื™ื˜ ื™ืขื“ืขืจ ื ืขืฅ ืฆื•ื‘ื™ื ื“ ืื•ืŸ ื ื™ืฆืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœืขืŸ ืคึฟืึทืจ ื‘ื™ื™ื ื“ื™ื ื’.

ื“ืขืจ ืื•ื™ืกื˜ื•ื™ืฉ ืคื•ืŸ ืคื•ื‘ืœื™ืง ืฉืœื™ืกืœืขืŸ ืฆื• ืื•ื™ืคืฉื˜ืขืœืŸ ื ืคืืจื‘ื™ื ื“ื•ื ื’ ืื™ื– ืขื ืœื™ืš ืฆื• SSH. ืฆื• ืคืืจื”ืื ื“ืœืขืŸ ืฉืœื™ืกืœืขืŸ ืื•ืŸ ื–ื™ืš ืคืืจื‘ื™ื ื“ืŸ ืืŸ ืื•ื™ืกืคื™ืจืŸ ื ื‘ืื–ื•ื ื“ืขืจืŸ ื“ืขืžืืŸ ืื™ืŸ ื‘ืื ื™ืฆืขืจ ืกืคืขื™ืก, ื•ื•ืขืจื˜ ื’ืขื ื•ืฆื˜ ื“ืขืจ Noise_IK ืžืขื›ืื ื™ื–ื ืคื•ืŸ ื“ื™ Noise Protocol Framework, ืขื ืœื™ืš ืฆื• ื“ืขืจ ืื•ื™ืคื”ืืœื˜ื•ื ื’ ืคื•ืŸ authorized_keys ืื™ืŸ SSH. ื“ืื˜ืŸ ื˜ืจืื ืกืคืขืจ ื•ื•ืขืจื˜ ื“ื•ืจื›ื’ืขืคื™ืจื˜ ื“ื•ืจืš ืื™ื™ื ืงืืคืกื•ืœืืฆื™ืข ืื™ืŸ UDP ืคืืงืขื˜ืŸ. ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืขืจืŸ ื’ืขืฉื˜ื™ืฆื˜. IP ืึทื“ืจืขืกืขืก VPN ืกืขืจื•ื•ืขืจืก (ืจืึธื•ืžื™ื ื’) ืึธืŸ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืื™ื‘ืขืจืจื™ื™ึทืกื•ื ื’ ืžื™ื˜ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืงืœื™ืขื ื˜ ืจื™ืงืึธื ืคื™ื’ื•ืจืึทืฆื™ืข.

ื“ื™ ืขื ืงืจื™ืคึผืฉืึทืŸ ื ื™ืฆื˜ ื“ื™ ChaCha20 ื˜ื™ื™ึทืš ืกื™ืคืขืจ ืื•ืŸ ื“ื™ ืคึผืึธืœื™1305 ืึธื ื–ืึธื’ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทื (MAC), ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื•ืจืš Daniel J. Bernstein, Tanja Lange ืื•ืŸ Peter Schwabe. ChaCha20 ืื•ืŸ Poly1305 ื–ืขื ืขืŸ ืคึผืึทื–ื™ืฉืึทื ื“ ื•ื•ื™ ืคืึทืกื˜ืขืจ ืื•ืŸ ืžืขืจ ื–ื™ื›ืขืจ ืึทื ืึทืœืึธื’ื•ืขืก ืคื•ืŸ AES-256-CTR ืื•ืŸ HMAC, ื“ื™ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื•ื•ืึธืก ืึทืœืึทื•ื– ืึทื˜ืฉื™ื•ื•ื™ื ื’ ืึท ืคืึทืจืคืขืกื˜ื™ืงื˜ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืฆื™ื™ื˜ ืึธืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืกืคึผืขืฆื™ืขืœ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืฉื˜ื™ืฆืŸ. ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ื“ื™ ืฉืขืจื“ ืกื•ื“ ืฉืœื™ืกืœ, ื“ื™ ืขืœืœื™ืคึผื˜ื™ืง ืงื•ืจื•ื•ืข Diffie-Hellman ืคึผืจืึธื˜ืึธืงืึธืœ ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ Curve25519 ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, ืื•ื™ืš ืคืืจื’ืขืœื™ื™ื’ื˜ ื“ื•ืจืš Daniel Bernstein. ื“ื™ BLAKE2s (RFC7693) ืึทืœื’ืขืจื™ื“ืึทื ืื™ื– ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ื›ืึทืฉื™ื ื’.

ืžืงื•ืจ: opennet.ru