ื ื ื™ื™ึทืข VPN ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, WireGuard, ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ื“ื™ FreeBSD ืงืึธื“ื‘ืึทืกืข.

ื“ื™ FreeBSD ืžืงื•ืจ ื‘ื•ื™ื ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืžื™ื˜ ืึท ื ื™ื™ึทืข ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ VPN WireGuard, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืงืขืจืŸ ืžืึธื“ื•ืœืข ืงืึธื“ ืฆื•ื–ืึทืžืขืŸ ื’ืขืฉืืคืŸ ื“ื•ืจืš ื“ื™ ื”ืึทืจืฅ FreeBSD ืื•ืŸ WireGuard ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื˜ื™ืžื– ืžื™ื˜ ืงืึทื ื˜ืจืึทื‘ื™ื•ืฉืึทื ื– ืคื•ืŸ Jason A. Donenfeld, ืžื—ื‘ืจ ืคื•ืŸ VPN WireGuard ืื•ืŸ John H. Baldwin ), ืึท ื‘ืึทื•ื•ื•ืกื˜ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืคื•ืŸ GDB ืื•ืŸ FreeBSD, ื•ื•ืึธืก ื™ืžืคึผืœืึทืžืขื ืึทื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ SMP ืื•ืŸ NUMA ืื™ืŸ ื“ื™ FreeBSD ืงืขืจืŸ ืื™ืŸ ื“ื™ ืคืจื™ 2000 ืก. ื ืึธืš ื“ืขืจ ืฉืึธืคืขืจ ืื™ื– ืื ื’ืขื ื•ืžืขืŸ ืื™ืŸ FreeBSD (sys/dev/wg), ื“ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื•ื™ืฉืึทืœื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืคื™ืจื˜ ืื•ื™ืก ืื™ืŸ ื“ื™ FreeBSD ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™.

ืื™ื™ื“ืขืจ ื“ื™ ืงืึธื“ ืื™ื– ืื ื’ืขื ื•ืžืขืŸ, ืึท ืคื•ืœ ืจืขืฆืขื ื–ื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืžื™ื˜ ื“ื™ ืฉื˜ื™ืฆืŸ ืคื•ืŸ ื“ื™ FreeBSD ื•ื•ื™ืงื™ืคึผืขื“ื™ืข, ื‘ืขืฉืึทืก ื•ื•ืึธืก ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืคื•ืŸ ื“ื™ ืฉืึธืคืขืจ ืžื™ื˜ ื“ื™ ืจืขืฉื˜ ืคื•ืŸ ื“ื™ ืงืขืจืŸ ืกืึทื‘ืกื™ืกื˜ืึทืžื– ืื™ื– ืื•ื™ืš ืึทื ืึทืœื™ื™ื–ื“ ืื•ืŸ ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ื ื™ืฆืŸ ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ืคึผืจื™ืžื™ื˜ื™ื•ื•ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ืงืขืจืŸ. ืื™ื– ืึทืกืกืขืกืกืขื“.

ืฆื• ื ื•ืฆืŸ ื“ื™ ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ืึทืœื’ืขืจื™ื“ืึทืžื– ืคืืจืœืื ื’ื˜ ื“ื•ืจืš ื“ื™ ืฉืึธืคืขืจ, ื“ื™ API ืคื•ืŸ ื“ื™ FreeBSD ืงืขืจืŸ ืงืจื™ืคึผื˜ืึธ-ืกื•ื‘ืกื™ืกื˜ืขื ืื™ื– ื’ืขื•ื•ืขืŸ ืขืงืกื˜ืขื ื“ืขื“, ืฆื• ื•ื•ืึธืก ืึท ื›ืึทืจื ื™ืก ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ื•ื•ืึธืก ืึทืœืึทื•ื– ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืึทืœื’ืขืจื™ื“ืึทืžื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜ ืื™ืŸ FreeBSD ื“ื•ืจืš ื“ื™ ื ืึธืจืžืึทืœ ืงืจื™ืคึผื˜ืึธ-ืึทืคึผื™, ื ื™ืฆืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™. ื ื™ื™ื˜ื™ืง ืึทืœื’ืขืจื™ื“ืึทืžื– ืคื•ืŸ ื“ื™ ืœื™ื‘ืกืึธื“ื™ื•ื ื‘ื™ื‘ืœื™ืึธื˜ืขืง. ืคื•ืŸ ื“ื™ ืึทืœื’ืขืจื™ื“ืึทืžื– ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ื“ื™ ืฉืึธืคืขืจ, ื‘ืœื•ื™ื– ื“ื™ ืงืึธื“ ืคึฟืึทืจ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ Blake2 ื”ืึทืฉืขืก ืื™ื– ืœื™ื ืงืก, ื–ื™ื ื˜ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ืขื ืึทืœื’ืขืจื™ื“ืึทื ืฆื•ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ FreeBSD ืื™ื– ื˜ื™ื™ื“ ืฆื• ืึท ืคืึทืจืคืขืกื˜ื™ืงื˜ ื”ืึทืฉ ื’ืจื™ื™ืก.

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ื‘ืขืฉืึทืก ื“ื™ ืึธืคึผืฉืึทืฆื•ื ื’ ืคึผืจืึธืฆืขืก, ืงืึธื“ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜, ื•ื•ืึธืก ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืขืคืขืงื˜ื™ื•ื•ืงื™ื™ึทื˜ ืคื•ืŸ ืžืึทืกืข ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืื•ื™ืฃ ืžืึทืœื˜ื™-ื”ืึทืจืฅ ืงืคึผื•ืก (ืžื•ื ื“ื™ืจ ื‘ืึทืœืึทื ืกื™ื ื’ ื“ื™ ืึทืกื™ื™ื ืžืึทื ื˜ ืคื•ืŸ ืคึผืึทืงืึทื˜ ืขื ืงืจื™ืคึผืฉืึทืŸ ืื•ืŸ ื“ืขืงืจื™ืคึผื˜ื™ืึธืŸ ื˜ืึทืกืงืก ืฆื• ืงืคึผื• ืงืึธืจืขืก ืื™ื– ื™ื ืฉื•ืจื“). ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ื“ื™ ืึธื•ื•ื•ืขืจื›ืขื“ ื•ื•ืขืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืคึผืึทืงื™ืฅ ืื™ื– ื’ืขื•ื•ืขืŸ ื ืึธืขื ื˜ ืฆื• ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืœื™ื ื•ืงืก ืฉืึธืคืขืจ. ื“ืขืจ ืงืึธื“ ืื•ื™ืš ื’ื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ ื“ื™ OSSL ืฉืึธืคืขืจ ืฆื• ืคืึทืจื’ื™ื›ืขืจืŸ ืขื ืงืจื™ืคึผืฉืึทืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–.

ื ื™ื˜ ืขื ืœืขืš ื“ืขื ืคืจื™ืขืจื“ื™ืงืŸ ืคึผืจื•ื•ื•ืŸ ืฆื• ื•ื™ืกืฉื˜ื™ืžืขืŸ WireGuard ืื™ืŸ FreeBSD, ื“ื™ ื ื™ื™ึทืข ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ื ื™ืฆื˜ ื“ื™ ื ืึธืจืžืึทืœ ื•ื•ื’ ื ื•ืฆืŸ, ืืœื ื•ื•ื™ ืึท ืžืึทื“ืึทืคื™ื™ื“ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ifconfig, ื•ื•ืึธืก ืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื™ื•ื ืึทืคื™ื™ื“ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื•ื™ืฃ ืœื™ื ื•ืงืก ืื•ืŸ ืคืจืขืขื‘ืกื“. ื“ื™ ื•ื•ื’ ื ื•ืฆืŸ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื“ืขืจ ืฉืึธืคืขืจ, ืื™ื– ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ FreeBSD ืžืงื•ืจ ืงืึธื“, ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืžืขื’ืœืขืš ื“ื•ืจืš ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคึฟืึทืจ ื“ื™ ื•ื•ื’ ืงืึธื“ (ื“ืขืจ ืงืึธื“ ืื™ื– ืื™ืฆื˜ ื‘ื ื™ืžืฆื ืื•ื ื˜ืขืจ ื“ื™ MIT ืื•ืŸ GPL ืœื™ื™ืกืึทื ืกื™ื–). ื“ื™ ืœืขืฆื˜ืข ืคึผืจื•ื•ื•ืŸ ืฆื• ืึทืจื™ื™ึทื ื ืขืžืขืŸ WireGuard ืื™ืŸ FreeBSD ืื™ื– ื’ืขืžืื›ื˜ ืื™ืŸ 2020, ืึธื‘ืขืจ ืขื ื“ื™ืงื˜ ื–ื™ืš ืื™ืŸ ืึท ืกืงืึทื ื“ืึทืœ, ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื•ื•ืึธืก ื“ื™ ืฉื•ื™ืŸ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืงืึธื“ ืื™ื– ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืจืขื›ื˜ ืฆื• ื ื™ื“ืขืจื™ืง ืงื•ื•ืึทืœื™ื˜ืขื˜, ืึธืคึผื’ืขืœืึธื–ืŸ ืึทืจื‘ืขื˜ ืžื™ื˜ ื‘ืึทืคืขืจื–, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืกื˜ืึทื‘ืก ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื˜ืฉืขืงืก, ื“ืขืจืขื ื“ื™ืงื˜ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ. ืคื•ืŸ ื“ืขื ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ื”ื™ืœืขืœ ืคื•ืŸ ื“ื™ GPL ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ.

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

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

ืขื ืงืจื™ืคึผืฉืึทืŸ ื ื™ืฆื˜ ื“ื™ 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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’