ΠΠΆΠ΅ΠΉΡΠΎΠ½ ΠΠΎΠ½Π΅Π½ΡΠΈΠ»Π΄ (Jason A. Donenfeld), Π°Π²ΡΠΎΡ VPN WireGuard, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΠΏΡΠΎΠ΅ΠΊΡ WireGuardNT, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠΉ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ VPN WireGuard Π΄Π»Ρ ΡΠ΄ΡΠ° Windows, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ Windows 7, 8, 8.1 ΠΈ 10, ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ AMD64, x86, ARM64 ΠΈ ARM. ΠΠΎΠ΄ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPLv2. ΠΠΎΠ²ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΡΠ½ Π² ΡΠΎΡΡΠ°Π² ΠΊΠ»ΠΈΠ΅Π½ΡΠ° WireGuard Π΄Π»Ρ Windows, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ ΠΈ Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠΎΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ WireGuard Π΄Π»Ρ ΡΠ΄ΡΠ° Linux, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ΄ΡΠ° Windows ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° NDIS. ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ°Π½Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π΄Π»Ρ Windows ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ wireguard-go, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Wintun, WireGuardNT ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π° ΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ· ΡΠ΄ΡΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ Π΄Π»Ρ Linux, OpenBSD ΠΈ FreeBSD Π² WireGuardNT Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΅ΡΡ Π½Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ, WireGuardNT ΡΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ 7.5Gbps Π² ΠΈΠΌΠ΅ΡΡΠ΅ΠΌΡΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Ρ Ethernet. ΠΠ° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Wi-Fi ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π½ΠΈΠΆΠ΅, Π½ΠΎ ΠΌΠ°Π»ΠΎ ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΡΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΎΠΉ Intel AC9560 ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π±Π΅Π· WireGuard ΡΠΎΡΡΠ°Π²ΠΈΠ»Π° 600Mbps ΠΈ Ρ WireGuardNT ΡΠΎΠΆΠ΅ ΠΎΡΡΠ°Π»Π°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ 600Mbps, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ wireguard-go/Wintun ΡΠΎΡΡΠ°Π²Π»ΡΠ»Π° 95Mbps.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ VPN WireGuard ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΏΡΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, Π»ΠΈΡΡΠ½ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠΉ ΠΈ Ρ ΠΎΡΠΎΡΠΎ Π·Π°ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΡΠ΅Π±Ρ Π² ΡΡΠ΄Π΅ ΠΊΡΡΠΏΠ½ΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΡΠΌΡ ΡΡΠ°ΡΠΈΠΊΠ°. ΠΡΠΎΠ΅ΠΊΡ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Ρ 2015 Π³ΠΎΠ΄Π°, ΠΏΡΠΎΡΡΠ» Π°ΡΠ΄ΠΈΡ ΠΈ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. Π WireGuard ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΎΡΠΊΡΡΡΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ.
ΠΠ±ΠΌΠ΅Π½ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ SSH. ΠΠ»Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΌΠΎΠ½Π° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Noise_IK ΠΈΠ· Noise Protocol Framework, ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ authorized_keys Π² SSH. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ Π² ΠΏΠ°ΠΊΠ΅ΡΡ UDP. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΌΠ΅Π½Π° IP-Π°Π΄ΡΠ΅ΡΠ° VPN-ΡΠ΅ΡΠ²Π΅ΡΠ° (ΡΠΎΡΠΌΠΈΠ½Π³) Π±Π΅Π· ΡΠ°Π·ΡΡΠ²Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΠ»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠΈΡΡ ChaCha20 ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (MAC) Poly1305, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΡΠ½ΠΈΠ΅Π»ΠΎΠΌ ΠΠ΅ΡΠ½ΡΡΠ΅ΠΉΠ½ΠΎΠΌ (Daniel J. Bernstein), Π’Π°Π½Π΅ΠΉ ΠΠ°Π½Π³Π΅ (Tanja Lange) ΠΈ ΠΠΈΡΠ΅ΡΠΎΠΌ Π¨Π²Π°Π±Π΅ (Peter Schwabe). ChaCha20 ΠΈ Poly1305 ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ AES-256-CTR ΠΈ HMAC, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π΅Π· Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΠΈΡΡΠΈ-Π₯Π΅Π»Π»ΠΌΠ°Π½Π° Π½Π° ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΡΠΈΠ²ΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Curve25519, ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΡΠ½ΠΈΠ΅Π»ΠΎΠΌ ΠΠ΅ΡΠ½ΡΡΠ΅ΠΉΠ½ΠΎΠΌ. ΠΠ»Ρ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ BLAKE2s (RFC7693).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru