WireGuard VPN แžŸแž˜แŸ’แžšแžถแž”แŸ‹ Windows แž“แžทแž„ WireGuardNT 1.0 แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™แž แžพแž™

แž›แŸ„แž€ Jason A. Donenfeld แžŠแŸ‚แž›แž‡แžถแžขแŸ’แž“แž€แž“แžทแž–แž“แŸ’แž’ WireGuard VPN แž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžŠแŸแžŸแŸ†แžแžถแž“แŸ‹แž›แžพแž€แžŠแŸ†แž”แžผแž„แž“แŸƒแž€แž˜แŸ’แž˜แžœแžทแž’แžธ WireGuard client แžŸแž˜แŸ’แžšแžถแž”แŸ‹ Windows 1.0 แž€แŸแžŠแžผแž…แž‡แžถแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แž‰แŸ’แž‡แžถ WireGuardNT 1.0 แžŠแŸ‚แž›แž˜แžถแž“แžšแž“แŸ’แž’แžŠแŸ„แžแŸ” VPN WireGuard แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžแžบแžŽแŸ‚แž› Windows 10 แž“แžทแž„ 11 แžŠแŸ‚แž›แž‚แžถแŸ†แž‘แŸ’แžšแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜ AMD64, x86 แž“แžทแž„ ARM64แŸ” แž€แžผแžŠแžŸแž˜แžถแžŸแž—แžถแž‚แžแžบแžŽแŸ‚แž› Windows แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽแž€แŸ’แžšแŸ„แž˜ GPLv2 แž แžพแž™แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžขแžแžทแžแžทแž‡แž“แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽแž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ MITแŸ”

แž…แŸ’แžšแž€แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžขแŸ‚แž€แž›แžพแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž€แžผแžŠแž“แŸƒแž€แžถแžšแžขแž“แžปแžœแžแŸ’แž WireGuard แžŸแŸ†แžแžถแž“แŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžแžบแžŽแŸ‚แž› Linux แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž˜แŸ’แž›แŸ‚แž„แž‘แŸ…แž”แŸ’แžšแžพแžขแž„แŸ’แž‚แž—แžถแž–แžแžบแžŽแŸ‚แž› Windows แž“แžทแž„แž‡แž„แŸ‹แž”แžŽแŸ’แžแžถแž‰ NDISแŸ” แž”แžพแž”แŸ’แžšแŸ€แž”แž’แŸ€แž”แž‘แŸ…แž“แžนแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž wireguard-go แžŠแŸ‚แž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แŸ’แž“แžปแž„แž‘แŸ†แž แŸ†แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แž“แžทแž„แž”แŸ’แžšแžพแž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž”แžŽแŸ’แžแžถแž‰ Wintun WireGuardNT แž•แŸ’แžแž›แŸ‹แž“แžผแžœแž€แžถแžšแž€แŸ‚แž›แž˜แŸ’แžขแž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแž™แŸ‰แžถแž„แžŸแŸ†แžแžถแž“แŸ‹แžŠแŸ„แž™แž€แžถแžšแž›แžปแž”แž”แŸ†แž”แžถแžแŸ‹แž€แžปแž„แžแžถแž€แŸ‹แž”แžšแžทแž”แž‘ แž“แžทแž„แž…แž˜แŸ’แž›แž„แž˜แžถแžแžทแž€แžถแž€แž‰แŸ’แž…แž”แŸ‹แž–แžธแžแžบแžŽแŸ‚แž›แž‘แŸ…แž‘แŸ†แž แŸ†แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แŸ” แžŸแŸ’แžšแžŠแŸ€แž„แž‚แŸ’แž“แžถแž‘แŸ…แž“แžนแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Linux, OpenBSD แž“แžทแž„ FreeBSD แžแž€แŸ’แž€แžœแžทแž‡แŸ’แž‡แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž–แžทแž’แžธแž€แžถแžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„ WireGuardNT แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž“แŸ…แž€แž˜แŸ’แžšแžทแžแž‡แž„แŸ‹แž”แžŽแŸ’แžแžถแž‰แŸ”

แž€แŸ†แžŽแŸ‚ 1.0 แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แž‡แžถแž–แŸ’แžšแžนแžแŸ’แžแžทแž€แžถแžšแžŽแŸแžŸแŸ†แžแžถแž“แŸ‹แž˜แžฝแž™ แžŠแŸ‚แž›แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž…แŸ†แž–แŸ„แŸ‡แž”แž‰แŸ’แž แžถแž˜แžฝแž™แž…แŸ†แž“แžฝแž“ แž“แžทแž„แž€แžถแžšแž”แŸ†แž–แŸแž‰แž—แžถแžšแž€แžทแž…แŸ’แž…แžŠแŸ‚แž›แž”แžถแž“แž‚แŸ’แžšแŸ„แž„แž‘แžปแž€ แžŠแžผแž…แž‡แžถแŸ– แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž˜แžปแžแž„แžถแžš NdisWdfGetAdapterContextFromAdapterHandle() แž‡แŸ†แž“แžฝแžŸแžฑแŸ’แž™แž€แžถแžšแž•แŸ’แž‘แžปแž€แžŸแŸ’แžแžถแž“แž—แžถแž–แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แž‰แŸ’แž‡แžถแžŠแŸ‚แž›แž˜แžทแž“แžŸแžผแžœแž˜แžถแž“แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แž“แŸ…แž€แŸ’แž“แžปแž„แžœแžถแž› Reserved แž“แžทแž„แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžขแžปแž แŸ’แžœแžŸแžทแžแžŠแŸ‚แž›แž˜แžทแž“แž˜แžถแž“แžฏแž€แžŸแžถแžš; แž€แžถแžšแžแžถแž˜แžŠแžถแž“แž‘แŸ†แž แŸ† MTU (Maximum Transmission Unit) แžฑแŸ’แž™แž”แžถแž“แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœ แž“แžทแž„แžšแž แŸแžŸแžแžถแž˜แžšแž™แŸˆแž€แžถแžšแžŸแŸ’แž‘แžถแž€แŸ‹แž…แžถแž”แŸ‹แž€แžถแžšแž แŸ…แž”แŸ’แžšแž–แŸแž“แŸ’แž’; แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŸแŸ’แžแž„แŸ‹แžŠแžถแžš C23 แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžผแžŠแŸ”

แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แž™แžพแž„แžšแŸ†แž›แžนแž€แžขแŸ’แž“แž€แžแžถ VPN WireGuard แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแž“แŸ…แž›แžพแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž“แŸƒแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแžขแŸŠแžทแž“แž‚แŸ’แžšแžธแž”แž‘แŸ†แž“แžพแž” แž•แŸ’แžแž›แŸ‹แž“แžผแžœแž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแžแŸ’แž–แžŸแŸ‹ แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž”แŸ’แžšแžพ แž˜แžทแž“แž˜แžถแž“แž—แžถแž–แžŸแŸ’แž˜แžปแž‚แžŸแŸ’แž˜แžถแž‰ แž“แžทแž„แž”แžถแž“แž”แž„แŸ’แž แžถแž‰แžฑแŸ’แž™แžƒแžพแž‰แž–แžธแžแŸ’แž›แžฝแž“แžœแžถแž™แŸ‰แžถแž„แž›แŸ’แžขแž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแž’แŸ†แŸ—แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แžŠแŸ‚แž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แžšแžทแž˜แžถแžŽแžŠแŸแž’แŸ†แŸ” แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž—แžทแžœแžŒแŸ’แžแžแžถแŸ†แž„แž–แžธแž†แŸ’แž“แžถแŸ† 2015 แž แžพแž™แž”แžถแž“แž†แŸ’แž›แž„แž€แžถแžแŸ‹แž€แžถแžšแž’แŸ’แžœแžพแžŸแžœแž“แž€แž˜แŸ’แž˜ แž“แžทแž„แž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แž‡แžถแž•แŸ’แž›แžผแžœแž€แžถแžšแž“แŸƒแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšแžขแŸŠแžทแž“แž‚แŸ’แžšแžธแž”แžŠแŸ‚แž›แž”แžถแž“แž”แŸ’แžšแžพแŸ” WireGuard แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž‚แŸ„แž›แž‚แŸ†แž“แžทแžแž“แŸƒแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž•แŸ’แž›แžผแžœแž“แŸƒแž€แžถแžšแžขแŸŠแžทแž“แž‚แŸ’แžšแžธแž”แžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพแž€แžผแž“แžŸแŸ„ แžŠแŸ‚แž›แž–แžถแž€แŸ‹แž–แŸแž“แŸ’แž’แž“แžนแž„แž€แžถแžšแž—แŸ’แž‡แžถแž”แŸ‹แžŸแŸ„แžฏแž€แž‡แž“แž‡แžถแž˜แžฝแž™แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž”แžŽแŸ’แžแžถแž‰แž“แžธแž˜แžฝแž™แŸ— แž“แžทแž„แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŸแŸ„แžŸแžถแž’แžถแžšแžŽแŸˆแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž…แž„แŸ”

แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžผแž“แžŸแŸ„แžŸแžถแž’แžถแžšแžŽแŸˆแžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž€แžพแžแž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹แž‚แžบแžŸแŸ’แžšแžŠแŸ€แž„แž‚แŸ’แž“แžถแž‘แŸ…แž“แžนแž„ SSHแŸ” แžŠแžพแž˜แŸ’แž”แžธแž…แžšแž…แžถแž€แžผแž“แžŸแŸ„ แž“แžทแž„แž—แŸ’แž‡แžถแž”แŸ‹แžŠแŸ„แž™แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸแž˜แžทแž“แžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แž“แŸ…แž€แŸ’แž“แžปแž„แž€แž“แŸ’แž›แŸ‚แž„แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แž™แž“แŸ’แžแž€แžถแžš Noise_IK แž–แžธ Noise Protocol Framework แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แžŸแŸ’แžšแžŠแŸ€แž„แž‚แŸ’แž“แžถแž‘แŸ…แž“แžนแž„แž€แžถแžšแžแŸ‚แž‘แžถแŸ†แž€แžผแž“แžŸแŸ„แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแž‰แŸ’แž‰แžถแžแž“แŸ…แž€แŸ’แž“แžปแž„ SSHแŸ” แž€แžถแžšแž•แŸ’แž‘แŸแžšแž‘แžทแž“แŸ’แž“แž“แŸแž™แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแžแžถแž˜แžšแž™แŸˆแž€แžถแžšแžšแžปแŸ†แž–แŸแž‘แŸ’แž’แž“แŸ…แž€แŸ’แž“แžปแž„แž€แž‰แŸ’แž…แž”แŸ‹ UDPแŸ” แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž‚แžถแŸ†แž‘แŸ’แžšแŸ” แžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“ IP แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPN (แžšแŸ‰แžผแž˜แžธแž„) แžŠแŸ„แž™แž‚แŸ’แž˜แžถแž“แž€แžถแžšแžšแŸ†แžแžถแž“แžŠแž›แŸ‹แž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹ แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžขแžแžทแžแžทแž‡แž“แžกแžพแž„แžœแžทแž‰แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแŸ”

แž€แžถแžšแžขแŸŠแžทแž“แž‚แŸ’แžšแžธแž”แž”แŸ’แžšแžพแž€แžผแžŠแžŸแŸ’แž‘แŸ’แžšแžธแž˜ ChaCha20 แž“แžทแž„แž€แŸ’แž”แžฝแž“แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžŸแžถแžš Poly1305 (MAC) แžŠแŸ‚แž›แž”แž„แŸ’แž€แžพแžแžกแžพแž„แžŠแŸ„แž™ Daniel J. Bernstein, Tanja Lange แž“แžทแž„ Peter Schwabe แŸ” ChaCha20 แž“แžทแž„ Poly1305 แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแžถแž€แŸ‹แž‡แžถ analogues แž›แžฟแž“ แž“แžทแž„แž˜แžถแž“แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แž‡แžถแž„แž˜แžปแž“แž“แŸƒ AES-256-CTR แž“แžทแž„ HMAC แžŠแŸ‚แž›แž‡แžถแž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžŸแž˜แŸ’แžšแŸแž…แž”แžถแž“แž“แžผแžœแž–แŸแž›แžœแŸแž›แžถแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžแŸแžšแžŠแŸ„แž™แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แž”แŸ’แžšแžพแž‡แŸ†แž“แžฝแž™แž•แŸ’แž“แŸ‚แž€แžšแžนแž„แž–แžทแžŸแŸแžŸแŸ” แžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž€แžพแžแžŸแŸ„แžŸแž˜แŸ’แž„แžถแžแŸ‹แžŠแŸ‚แž›แž”แžถแž“แž…แŸ‚แž€แžšแŸ†แž›แŸ‚แž€ แž–แžทแž’แžธแž€แžถแžš Elliptic Curve Diffie-Hellman แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž Curve25519 แžŠแŸ‚แž›แžŸแŸ’แž“แžพแžกแžพแž„แžŠแŸ„แž™ Daniel Bernstein แž•แž„แžŠแŸ‚แžšแŸ” แž€แŸ’แž”แžฝแž“แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™ BLAKE2s (RFC7693) แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ†แž”แŸ‚แž€แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru