A ti ṣe àtúnṣe igi orísun FreeBSD pẹ̀lú ìmúṣẹ VPN tuntun kan. WireGuard, da lori koodu modulu kernel ti awọn ẹgbẹ idagbasoke mojuto FreeBSD ṣe papọ ati WireGuard tí ó ṣe àfihàn Jason A. Donenfeld, òǹkọ̀wé VPN WireGuard, àti John H. Baldwin, olùgbékalẹ̀ GDB àti FreeBSD olókìkí kan tí ó ṣe àtìlẹ́yìn SMP àti NUMA nínú ẹ̀rọ FreeBSD ní ìbẹ̀rẹ̀ ọdún 2000. Lẹ́yìn tí a bá ti gba awakọ̀ náà sínú FreeBSD (sys/dev/wg), ìdàgbàsókè àti ìtọ́jú rẹ̀ yóò wáyé ní ibi ìkópamọ́ FreeBSD báyìí.
Ṣaaju ki o to gba koodu naa, atunyẹwo kikun ti awọn ayipada ni a ṣe pẹlu atilẹyin ti FreeBSD Foundation, lakoko eyiti ibaraenisepo ti awakọ pẹlu iyoku awọn eto inu ekuro ti tun ṣe atupale ati iṣeeṣe lilo awọn ipilẹṣẹ cryptographic ti a pese nipasẹ ekuro ti a akojopo.
Lati lo awọn algoridimu cryptographic ti awakọ nilo, FreeBSD ekuro crypto subsystem API ti gbooro sii, eyiti a fi kun ìde kan ti o fun laaye ni lilo awọn algoridimu ti ko ni atilẹyin ni FreeBSD nipasẹ boṣewa crypto API, ni lilo imuse ti awọn algoridimu pataki lati ile-ikawe libsodium . Ninu awọn algoridimu ti a ṣe sinu awakọ, koodu nikan fun iṣiro Blake2 hashes ni o ku, nitori imuse ti algorithm yii ti a pese ni FreeBSD ti so si iwọn hash ti o wa titi.
Ní àfikún, nígbà tí a ń ṣe àtúnyẹ̀wò náà, a ṣe àwọn àtúnṣe kódì láti mú kí iṣẹ́ pípín ẹrù pọ̀ sí i lórí àwọn CPU oní-ọ̀pọ̀ (tí a rí i dájú pé wọ́n ṣe àtúnṣe ìfọwọ́sowọ́pọ̀ packet àti àwọn iṣẹ́ ìtúpalẹ̀ packet káàkiri àwọn CPU). Nítorí náà, a mú kí iṣẹ́ ìṣiṣẹ́ packet sún mọ́ ti ìṣiṣẹ́ awakọ̀ náà. LinuxKoodu naa tun pese agbara lati lo awakọ ossl lati mu awọn iṣẹ fifi ẹnọ kọ nkan yara.
Ko dabi igbiyanju iṣaaju ni isọdọkan WireGuard Nínú FreeBSD, ìmúṣẹ tuntun náà lo ohun elo wg boṣewa, dípò ẹ̀yà ifconfig tí a ṣe àtúnṣe, èyí tí ó mú kí ó ṣeé ṣe láti so ìṣètò pọ̀ nínú Linux àti FreeBSD. Ohun èlò ìṣiṣẹ́ wg, gẹ́gẹ́ bí awakọ̀ náà, wà nínú kódì orísun FreeBSD, èyí tí a ṣe nípa yíyí ìwé àṣẹ wg padà (kódì náà wà lábẹ́ àwọn ìwé àṣẹ MIT àti GPL báyìí). Ìgbìyànjú kan tẹ́lẹ̀ láti fi kún un WireGuard Wọ́n gbìyànjú láti so FreeBSD pọ̀ ní ọdún 2020, àmọ́ wọ́n parí sí àríyànjiyàn, pẹ̀lú àtúnṣe tí wọ́n ti fi kún un nítorí pé kò dáa, bí wọ́n ṣe ń lo buffer dáadáa, lílo stubs dípò checks, ìlò ìlànà tí kò pé, àti ìrúfin ìwé àṣẹ GPL.
ÌRÁNTÍ wipe VPN WireGuard Nítorí pé ó ń lo àwọn ọ̀nà ìkọ̀kọ̀ òde òní, ó ń ṣiṣẹ́ dáadáa, ó rọrùn láti lò, kò ní ìṣòro kankan, ó sì ti fi ara rẹ̀ hàn nínú ọ̀pọ̀lọpọ̀ iṣẹ́ ìṣiṣẹ́ ńlá tí ó ń ṣe àkóso ọ̀pọ̀lọpọ̀ ìrìnàjò. Iṣẹ́ náà ti wà ní ìdàgbàsókè láti ọdún 2015, ó sì ti ṣe àyẹ̀wò àti ìfìdíkalẹ̀ àwọn ọ̀nà ìkọ̀kọ̀ rẹ̀. WireGuard A lo èrò ìdarí ipa ọ̀nà tí ó dá lórí kókó, èyí tí ó ní í ṣe pẹ̀lú dídi kọ́kọ́rọ́ ìkọ̀kọ̀ mọ́ ojú ọ̀nà nẹ́tíwọ́ọ̀kì kọ̀ọ̀kan àti lílo kọ́kọ́rọ́ gbogbogbò fún dídipọ̀.
Pípàṣípààrọ̀ àwọn kọ́kọ́rọ́ gbogbogbò láti fi ìsopọ̀ múlẹ̀ jọ SSH. Láti ṣe àdéhùn lórí àwọn kọ́kọ́rọ́ àti láti sopọ̀ láìsí ṣíṣe daemon kan ní ààyè olùlò, a lo ìlànà Noise_IK láti inú Noise Protocol Framework, gẹ́gẹ́ bí ìtọ́jú àwọn àṣẹ_keys nínú SSH. Gbígbé dátà ni a ń ṣe nípasẹ̀ ìdènà nínú àwọn packets UDP. A ń ṣe àtìlẹ́yìn fún ìyípadà. Awọn adirẹsi IP Àwọn olupin VPN (rírìn kiri) láìsí ìdádúró ìsopọ̀ pẹ̀lú àtúnṣe aládàáṣe oníbàárà.
Ìsekóòdù nlo ChaCha20 ṣiṣan cipher ati Poly1305 ìfàṣẹsí ifiranṣẹ (MAC) algorithm ni idagbasoke nipasẹ Daniel J. Bernstein, Tanja Lange, ati Peter Schwabe. ChaCha20 ati Poly1305 wa ni ipo bi yiyara ati awọn analogues aabo diẹ sii ti AES-256-CTR ati HMAC, imuse sọfitiwia eyiti ngbanilaaye iyọrisi akoko ipaniyan ti o wa titi lai ṣe pẹlu atilẹyin ohun elo pataki. Lati ṣe ipilẹṣẹ bọtini aṣiri ti o pin, ọna elliptic ti tẹ Diffie-Hellman ni imuse Curve25519, ti Danieli Bernstein tun dabaa, ni lilo. Fun hashing, BLAKE2s algorithm (RFC7693) ti lo.
orisun: opennet.ru
