ΠΠΊΠΎΠ»ΠΎ 100 ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° VPN ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΡΠ° ΠΏΡΠΈΠ΅ΡΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° DragonFly BSD. WireGuardΠΡΠ°ΠΉΠ²Π΅Ρ "wg" Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» WireGuard ΠΠΎΡΡΠΈΡΠ°Π½ΠΎ ΠΎΡ FreeBSD, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ioctl API (Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ) ΡΠ° Π·Π°ΠΈΠΌΡΡΠ²Π°Π½ΠΈ ΠΎΡ OpenBSD. ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ifconfig, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π·Π° VPN ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΠ° ΠΏΠΎΡΡΠΈΡΠ°Π½ΠΈ ΠΎΡ OpenBSD. ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. WireGuard Π·Π° Linux, Windows, macOS, *BSD, iOS ΠΈ AndroidDragonFly BSD ΡΡΠ°Π½Π° ΠΏΠ΅ΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ Linux, OpenBSD, NetBSD ΠΈ FreeBSD Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° WireGuard.
Π WireGuard ΠΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Ρ ΠΊΠ»ΡΡ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅, ΠΊΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΡΠ°ΡΡΠ΅Π½ ΠΊΠ»ΡΡ Ρ Π²ΡΠ΅ΠΊΠΈ ΠΌΡΠ΅ΠΆΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΌΡ Π·Π° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ Ρ ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ. ΠΠ° Π΄ΠΎΠ³ΠΎΠ²Π°ΡΡΠ½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π±Π΅Π· ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ Π΄Π΅ΠΌΠΎΠ½ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ 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, ΡΠΈΡΡΠΎ ΡΠΎΡΡΡΠ΅ΡΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. ΠΠ° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ ΡΠ°Π΅Π½ ΠΊΠ»ΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ Diffie-Hellman Ρ Π΅Π»ΠΈΠΏΡΠΈΡΠ½Π° ΠΊΡΠΈΠ²Π° Π² ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Curve25519, ΡΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΡ Daniel Bernstein. ΠΠ° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ BLAKE2s (RFC7693).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
