Ua hoʻokomo ʻia kahi hoʻokō VPN hou, WireGuard, i ka codebase FreeBSD.

Ua hōʻano hou ʻia ka kumu kumu kumu FreeBSD me kahi hoʻokō hou o VPN WireGuard, ma muli o ke code module kernel i hana pū ʻia e nā hui hoʻomohala kumu ʻo FreeBSD a me WireGuard me nā haʻawina mai Jason A. Donenfeld, ka mea kākau o VPN WireGuard, a me John H. Baldwin ), he mea hoʻomohala kaulana o GDB a me FreeBSD, nāna i hoʻokō i ke kākoʻo no SMP a me NUMA i ka kernel FreeBSD i nā makahiki 2000 mua. Ma hope o ka ʻae ʻia ʻana o ka mea hoʻokele i FreeBSD (sys/dev/wg), e hoʻokō ʻia kona hoʻomohala ʻana a me ka mālama ʻana ma ka waihona FreeBSD.

Ma mua o ka ʻae ʻia ʻana o ke code, ua hana ʻia kahi loiloi piha o nā hoʻololi me ke kākoʻo o ka FreeBSD Foundation, i ka wā i nānā ʻia ai ka launa pū ʻana o ka mea hoʻokele me ke koena o nā ʻōnaehana kernel a me ka hiki ke hoʻohana i nā primitives cryptographic i hāʻawi ʻia e ka kernel. ua loiloi ʻia.

No ka hoʻohana ʻana i nā algorithms cryptographic i koi ʻia e ka mea hoʻokele, ua hoʻonui ʻia ka API o ka FreeBSD kernel crypto-subsystem, kahi i hoʻohui ʻia i kahi kaula e hiki ai i ka hoʻohana ʻana i nā algorithm i kākoʻo ʻole ʻia ma FreeBSD ma o ka crypto-API maʻamau, me ka hoʻohana ʻana i ka pono algorithms mai ka hale waihona puke libsodium. ʻO nā algorithms i kūkulu ʻia i loko o ka mea hoʻokele, ʻo ke code wale nō no ka helu ʻana i nā hashes Blake2 i waiho ʻia, ʻoiai ka hoʻokō ʻana o kēia algorithm i hāʻawi ʻia ma FreeBSD ua hoʻopaʻa ʻia i kahi nui hash paʻa.

Eia kekahi, i ka wā o ke kaʻina loiloi, ua hoʻokō ʻia ka code optimization, kahi i hiki ai ke hoʻonui i ka pono o ka hāʻawi ʻana i ka ukana ma nā CPU multi-core (ua hōʻoia ʻia ke kaulike kaulike o ka hāʻawi ʻana i ka packet encryption a me nā hana decryption i nā cores CPU). ʻO ka hopena, ua kokoke ka overhead i ka wā e hoʻoili ai i nā paʻi i ka hoʻokō ʻana o ka mea hoʻokele Linux. Hāʻawi ke code i ka hiki ke hoʻohana i ka mea hoʻokele ossl e wikiwiki i nā hana hoʻopunipuni.

ʻAʻole like me ka hoʻāʻo mua e hoʻohui iā WireGuard i FreeBSD, hoʻohana ka hoʻokō hou i ka pono wg maʻamau, ma mua o kahi mana i hoʻololi ʻia o ifconfig, e hiki ai ke hoʻohui i ka hoʻonohonoho ma Linux a me FreeBSD. ʻO ka pono wg, a me ka mea hoʻokele, ua hoʻokomo ʻia i ka code source FreeBSD, i hana ʻia ma ka hoʻololi ʻana i ka laikini no ke code wg (ua loaʻa ke code ma lalo o nā laikini MIT a me GPL). ʻO ka hoʻāʻo hope loa e hoʻokomo iā WireGuard ma FreeBSD i hana ʻia ma 2020, akā ua pau i kahi hōʻino, ma muli o ka wehe ʻana o ke code i hoʻohui ʻia ma muli o ka haʻahaʻa haʻahaʻa, hana mālama ʻole me nā buffers, ka hoʻohana ʻana i nā stubs ma kahi o nā loiloi, hoʻokō ʻole. o ka protocol a me ka uhaki i ka laikini GPL.

E hoʻomanaʻo mākou iā ʻoe ua hoʻokō ʻia ʻo VPN WireGuard ma ke kumu o nā ʻano hoʻopunipuni hou, hāʻawi i ka hana kiʻekiʻe loa, maʻalahi ka hoʻohana ʻana, ʻaʻohe pilikia a ua hōʻoia ʻo ia iā ia iho i ka nui o nā deployments nui e hoʻoponopono i ka nui o nā kaʻa. Ke ulu nei ka papahana mai ka makahiki 2015, a ua hoʻopaʻa ʻia i ka loiloi a me ka hōʻoia maʻamau o nā ʻano hoʻopunipuni i hoʻohana ʻia. Hoʻohana ʻo WireGuard i ka manaʻo o ka hoʻopili ʻana i ke kī kī, e pili ana i ka hoʻopili ʻana i kahi kī pilikino i kēlā me kēia kikowaena pūnaewele a hoʻohana iā ia e hoʻopaʻa i nā kī lehulehu.

Hoʻololi ʻia nā kī lehulehu e hoʻokumu i kahi pilina ma ke ʻano like me SSH. No ke kūkākūkā ʻana i nā kī a hoʻopili ʻole me ka holo ʻole ʻana i kahi daemon kaʻawale ma kahi o ka mea hoʻohana, hoʻohana ʻia ka mīkini Noise Protocol Framework's Noise_IK, e like me ka mālama ʻana i nā authorized_keys ma SSH. Lawe ʻia ka lawe ʻana i ka ʻikepili ma o ka encapsulation ma nā ʻeke UDP. Kākoʻo ia i ka hoʻololi ʻana i ka IP address o ka server VPN (roaming) me ka ʻole o ka wehe ʻana i ka pilina me ka hoʻonohonoho hou ʻana o ka mea kūʻai aku.

Hoʻohana ʻo Encryption i ka ChaCha20 stream cipher a me ka Poly1305 message authentication algorithm (MAC), i hoʻomohala ʻia e Daniel J. Bernstein, Tanja Lange a me Peter Schwabe. Hoʻonohonoho ʻia ʻo ChaCha20 a me Poly1305 e like me nā analogues wikiwiki a palekana o AES-256-CTR a me HMAC, ka hoʻokō polokalamu e hiki ai ke hoʻokō i kahi manawa hoʻokō paʻa me ka ʻole o ka hoʻohana ʻana i ke kākoʻo ʻenehana kūikawā. No ka hana ʻana i kahi kī huna huna, hoʻohana ʻia ka elliptic curve Diffie-Hellman protocol i ka hoʻokō Curve25519, i noi ʻia e Daniel Bernstein. Hoʻohana ʻia ka BLAKE2s algorithm (RFC7693) no ka hashing.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka