Imuse tuntun ti VPN WireGuard ṣafikun si koodu koodu FreeBSD

Igi orisun FreeBSD ti ni atunṣe pẹlu imuse WireGuard VPN tuntun ti o da lori koodu lati inu module kernel ni apapọ ti a pese silẹ nipasẹ mojuto FreeBSD ati awọn ẹgbẹ idagbasoke WireGuard pẹlu igbewọle lati ọdọ Jason A. Donenfeld, onkọwe ti VPN WireGuard, ati John H. Baldwin ), olupilẹṣẹ olokiki ti GDB ati FreeBSD, ti o ṣe imuse SMP ati atilẹyin NUMA ni ekuro FreeBSD ni ibẹrẹ 2000s. Ni kete ti a ba gba awakọ kan sinu FreeBSD (sys/dev/wg), yoo ni idagbasoke ati ṣetọju ni ibi ipamọ FreeBSD lati igba yii lọ.

Ṣ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.

Ni afikun, lakoko ilana atunyẹwo, iṣapeye koodu ni a ṣe, eyiti o jẹ ki o ṣee ṣe lati mu iṣẹ ṣiṣe ti pinpin fifuye lori awọn CPUs pupọ-pupọ (iwọntunwọnsi aṣọ ti abuda ti fifi ẹnọ kọ nkan ati awọn iṣẹ decryption soso si awọn ohun kohun Sipiyu ti ni idaniloju). Bi abajade, awọn apo-iwe ti o wa ni oke ti awọn apo-iṣelọpọ ni a mu sunmọ imuse ti awakọ fun Linux. Koodu naa tun pese agbara lati lo awakọ ossl lati yara awọn iṣẹ fifi ẹnọ kọ nkan.

Ko dabi igbiyanju iṣaaju lati ṣepọ WireGuard sinu FreeBSD, imuse tuntun nlo ohun elo wg iṣura, dipo ẹya ti a yipada ti ifconfig, eyiti o gba laaye fun iṣeto iṣọkan laarin Lainos ati FreeBSD. IwUlO wg, bakanna bi awakọ, wa ninu awọn orisun FreeBSD, ti o ṣee ṣe nipasẹ iyipada iwe-aṣẹ si koodu wg (koodu wa bayi labẹ awọn iwe-aṣẹ MIT ati GPL). Igbiyanju ti o kẹhin lati pẹlu WireGuard ni FreeBSD ni a ṣe ni ọdun 2020, ṣugbọn o pari ni itanjẹ kan, nitori abajade eyiti koodu ti ṣafikun tẹlẹ ti yọkuro nitori didara kekere, mimu ifipamọ aibikita, lilo awọn stubs dipo awọn sọwedowo, imuse pipe ti ilana naa. ati irufin iwe-aṣẹ GPL.

Ranti pe VPN WireGuard ti wa ni imuse lori ipilẹ ti awọn ọna fifi ẹnọ kọ nkan ode oni, pese iṣẹ ṣiṣe giga pupọ, rọrun lati lo, laisi awọn ilolu ati ti fihan ararẹ ni nọmba awọn imuṣẹ nla ti o ṣakoso awọn iye owo ti ijabọ. Ise agbese na ti ndagbasoke lati ọdun 2015, o ti kọja ayewo ati ijẹrisi deede ti awọn ọna fifi ẹnọ kọ nkan ti a lo. WireGuard nlo imọran ti ipa ọna bọtini fifi ẹnọ kọ nkan, eyiti o kan dipọ bọtini ikọkọ si wiwo nẹtiwọọki kọọkan ati lilo awọn bọtini gbangba lati dipọ.

Paṣipaarọ awọn bọtini ita gbangba lati fi idi asopọ kan mulẹ jẹ iru si SSH. Lati ṣe idunadura awọn bọtini ati sopọ laisi ṣiṣiṣẹ daemon aaye olumulo lọtọ, ẹrọ Noise_IK ti Ilana Noise Protocol ni a lo, iru si mimu awọn bọtini aṣẹ aṣẹ ni SSH. Gbigbe data ti wa ni ti gbe jade nipasẹ encapsulation ni UDP awọn apo-iwe. O ṣe atilẹyin yiyipada adiresi IP ti olupin VPN (lilọ kiri) laisi fifọ asopọ pẹlu atunto alabara laifọwọyi.

Ì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

Fi ọrọìwòye kun