FreeBSD кодын санд VPN WireGuard-ийн шинэ хэрэгжилт нэмэгдлээ

FreeBSD эхийн модыг VPN WireGuard-ын зохиогч Жейсон А.Доненфельд, Жон Х.Болдуин нарын оролцоотойгоор үндсэн FreeBSD болон WireGuard хөгжүүлэлтийн багийн хамтран бэлтгэсэн цөмийн модулийн код дээр суурилсан VPN WireGuard-ын шинэ хэрэгжилтээр өөрчилсөн. 2000-аад оны эхээр FreeBSD цөмд SMP болон NUMA дэмжлэгийг хэрэгжүүлсэн GDB болон FreeBSD-ийн алдартай хөгжүүлэгч. Драйверыг FreeBSD-д (sys/dev/wg) хүлээн авмагц одооноос эхлэн FreeBSD репозиторыг хөгжүүлж, хадгалах болно.

Кодыг хүлээн авахаас өмнө FreeBSD сангийн дэмжлэгтэйгээр өөрчлөлтийн бүрэн хяналтыг хийсэн бөгөөд энэ үеэр драйверын цөмийн бусад дэд системүүдтэй харьцах үйл ажиллагаа болон програмын өгсөн криптограф командыг ашиглах боломжид дүн шинжилгээ хийсэн. цөмийг үнэлэв.

Драйверт шаардлагатай криптографийн алгоритмуудыг ашиглахын тулд FreeBSD цөмийн крипто дэд системийн API-г өргөтгөсөн бөгөөд үүнд libsodium номын сангаас шаардлагатай алгоритмуудын хэрэгжилтийг ашиглан стандарт крипто API-ээр дамжуулан FreeBSD-д дэмжигдээгүй алгоритмуудыг ашиглах боломжийг олгодог холболт нэмэгдсэн. . FreeBSD-д өгөгдсөн алгоритмын хэрэгжилт нь тогтмол хэш хэмжээтэй холбоотой тул драйверт суулгасан алгоритмуудаас зөвхөн Blake2 хэшийг тооцоолох код л үлддэг.

Нэмж дурдахад, хянан шалгах явцад кодын оновчлол хийгдсэн бөгөөд энэ нь олон цөмт CPU-ийн ачааллын хуваарилалтын үр ашгийг нэмэгдүүлэх боломжийг олгосон (шифрлэлт, пакет тайлах даалгавруудыг CPU-ийн цөмд холбох жигд тэнцвэрийг хангасан). Үүний үр дүнд пакетуудыг боловсруулахад шаардагдах зардал нь Линуксийн драйверийг хэрэгжүүлэхэд ойртсон. Код нь шифрлэлтийн ажиллагааг хурдасгахын тулд ossl драйверийг ашиглах боломжийг олгодог.

WireGuard-г FreeBSD-д нэгтгэх өмнөх оролдлогоос ялгаатай нь шинэ хувилбар нь ifconfig-ийн өөрчилсөн хувилбараас илүүтэйгээр stock wg хэрэгслийг ашигладаг бөгөөд энэ нь Линукс болон FreeBSD хооронд нэгдсэн тохиргоо хийх боломжийг олгосон юм. Wg хэрэгсэл, түүнчлэн драйвер нь FreeBSD эх сурвалжид багтсан бөгөөд wg кодыг лицензийн өөрчлөлтөөр хийх боломжтой болсон (код нь одоо MIT болон GPL лицензийн дагуу боломжтой). WireGuard-г FreeBSD-д оруулах сүүлчийн оролдлого нь 2020 онд хийгдсэн боловч дуулиан шуугианаар дуусгавар болсон бөгөөд үүний үр дүнд чанар муутай, буфертэй болгоомжгүй харьцсан, шалгалтын оронд бүдүүвч ашигласан, протоколыг бүрэн хэрэгжүүлээгүй зэргээс болж аль хэдийн нэмсэн кодыг устгасан. болон GPL лицензийг зөрчсөн.

VPN WireGuard нь орчин үеийн шифрлэлтийн аргуудын үндсэн дээр хэрэгжсэн, маш өндөр гүйцэтгэлтэй, хэрэглэхэд хялбар, хүндрэлгүй бөгөөд их хэмжээний траффик боловсруулдаг хэд хэдэн томоохон суурилуулалтад өөрийгөө нотолсон гэдгийг санаарай. Төсөл нь 2015 оноос хойш хөгжиж байгаа бөгөөд ашигласан шифрлэлтийн аргуудын аудит, албан ёсны шалгалтыг давсан. WireGuard нь сүлжээний интерфэйс бүрд хувийн түлхүүр холбож, нийтийн түлхүүрийг ашиглан холбох шифрлэлтийн түлхүүрийн чиглүүлэлтийн ойлголтыг ашигладаг.

Холболт үүсгэхийн тулд нийтийн түлхүүр солилцох нь SSH-тэй төстэй. Түлхүүрүүдийг тохиролцож, тусдаа хэрэглэгчийн орон зайн дэмон ажиллуулахгүйгээр холбогдохын тулд SSH-д зөвшөөрөгдсөн_түлхүүрүүдийг хадгалахтай адил Noise Protocol Framework-ийн Noise_IK механизмыг ашигладаг. Өгөгдөл дамжуулалтыг UDP пакетуудад капсулжуулах замаар гүйцэтгэдэг. Энэ нь үйлчлүүлэгчийн автомат тохиргоотой холболтыг таслахгүйгээр VPN серверийн IP хаягийг (роуминг) өөрчлөхийг дэмждэг.

Шифрлэлт нь Даниел Ж. Бернштейн, Танжа Ланге, Питер Швабе нарын боловсруулсан ChaCha20 урсгалын шифр болон Poly1305 мессежийн баталгаажуулалтын (MAC) алгоритмыг ашигладаг. ChaCha20 ба Poly1305 нь AES-256-CTR ба HMAC-ийн илүү хурдан бөгөөд аюулгүй аналогууд болж байрладаг бөгөөд програм хангамжийн хэрэгжилт нь тусгай техник хангамжийн тусламжгүйгээр тогтмол гүйцэтгэлийн хугацааг хангах боломжийг олгодог. Хуваалцсан нууц түлхүүрийг үүсгэхийн тулд Даниел Бернштэйний санал болгосон Curve25519 хэрэгжилтийн Диффи-Хеллманы эллипс муруй протоколыг ашигладаг. Хэшгийн хувьд BLAKE2s алгоритмыг (RFC7693) ашигладаг.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх