Татбиқи нави VPN WireGuard ба пойгоҳи коди FreeBSD илова карда шуд

Дарахти манбаи FreeBSD бо татбиқи нави VPN WireGuard дар асоси коди модули ядрое, ки дар якҷоягӣ аз ҷониби гурӯҳҳои асосии таҳияи FreeBSD ва WireGuard бо саҳми Ҷейсон А. Доненфелд, муаллифи VPN WireGuard ва Ҷон Ҳ. Болдуин таҳия шудааст, тағир дода шуд. таҳиягари маъруфи GDB ва FreeBSD, ки дастгирии SMP ва NUMA-ро дар ядрои FreeBSD дар аввали солҳои 2000-ум амалӣ карда буд. Пас аз қабули драйвер ба FreeBSD (sys/dev/wg), он аз ҳоло дар анбори FreeBSD таҳия ва нигоҳ дошта мешавад.

Пеш аз қабули код, баррасии пурраи тағирот бо дастгирии Фонди FreeBSD гузаронида шуд, ки дар ҷараёни он ҳамкории драйвер бо дигар зерсистемаҳои ядро ​​​​ва имкони истифодаи примитивҳои криптографии пешниҳодкардаи ядро баҳо дода шуд.

Барои истифодаи алгоритмҳои криптографии талабкардаи драйвер, API зерсистемаи крипто ядрои FreeBSD васеъ карда шуд, ки ба он ҳатмӣ илова карда шуд, ки имкон медиҳад алгоритмҳои дар FreeBSD дастгирӣнашаванда тавассути API стандартии крипто бо истифода аз татбиқи алгоритмҳои зарурӣ аз китобхонаи libsodium истифода шавад. . Аз алгоритмҳое, ки дар драйвер сохта шудаанд, танҳо коди ҳисобкунии хэшҳои Blake2 боқӣ мемонад, зеро татбиқи ин алгоритми дар FreeBSD пешниҳодшуда ба андозаи ҳашҳои собит вобаста аст.

Илова бар ин, дар ҷараёни барраси, оптимизатсияи код анҷом дода шуд, ки имкон дод, ки самаранокии тақсимоти сарборӣ дар CPU-ҳои бисёраслӣ афзоиш ёбад (мувозинати ягонаи пайвастшавии рамзгузорӣ ва рамзкушоии бастаҳо ба ядроҳои CPU таъмин карда шуд). Дар натиҷа, хароҷоти коркарди бастаҳо ба татбиқи драйвер барои Linux наздиктар шуд. Рамз инчунин қобилияти истифодаи драйвери ossl-ро барои суръат бахшидан ба амалиёти рамзгузорӣ таъмин мекунад.

Баръакси кӯшиши қаблии ҳамгироӣ кардани WireGuard ба FreeBSD, татбиқи нав ба ҷои версияи тағирёфтаи ifconfig, ки барои конфигуратсияи ягона байни Linux ва FreeBSD имкон дод, утилитаи stock wg-ро истифода мебарад. Утилитаи wg ва инчунин драйвер ба манбаъҳои FreeBSD дохил карда шудаанд, ки тавассути тағир додани иҷозатнома ба коди wg имконпазир шудаанд (код ҳоло дар литсензияҳои MIT ва GPL дастрас аст). Кӯшиши охирин барои дохил кардани WireGuard ба FreeBSD соли 2020 анҷом дода шуда буд, аммо бо ҷанҷол анҷом ёфт, ки дар натиҷа коди аллакай иловашуда аз сабаби сифати паст, муносибати беэҳтиётонаи буфер, истифодаи нотаҳо ба ҷои чекҳо, иҷро нашудани протокол хориҷ карда шуд. ва вайрон кардани литсензияи GPL.

Ёдовар мешавем, ки VPN WireGuard дар асоси усулҳои муосири рамзгузорӣ амалӣ карда мешавад, иҷрои хеле баландро таъмин мекунад, истифодааш осон аст, аз мушкилот холӣ аст ва худро дар як қатор ҷойгиркунии бузург, ки миқдори зиёди трафикро коркард мекунанд, исбот кардааст. Лоиҳа аз соли 2015 таҳия шуда, аз аудит ва санҷиши расмии усулҳои рамзгузории истифодашуда гузашт. WireGuard мафҳуми масири калиди рамзгузориро истифода мебарад, ки он ба ҳар як интерфейси шабака пайваст кардани калиди хусусӣ ва истифодаи калидҳои оммавӣ барои пайваст карданро дар бар мегирад.

Мубодилаи калидҳои оммавӣ барои барқарор кардани пайвастшавӣ ба SSH монанд аст. Барои гуфтушунид кардани калидҳо ва пайвастшавӣ бе кор кардани демони алоҳидаи фазои корбар, механизми Noise_IK-и чаҳорчӯбаи протоколи садо истифода мешавад, ба монанди нигоҳ доштани калидҳои ваколатдор дар SSH. Интиқоли маълумот тавассути инкапсуляция дар бастаҳои UDP амалӣ карда мешавад. Он тағир додани суроғаи IP-и сервери VPN (роуминг) -ро бидуни қатъи пайвастшавӣ бо азнавбаркароркунии автоматии муштарӣ дастгирӣ мекунад.

Рамзгузорӣ шифри ҷараёни ChaCha20 ва алгоритми аутентификатсияи паёмҳои Poly1305 (MAC)-ро истифода мебарад, ки аз ҷониби Даниел Ҷ. Бернштейн, Таня Ланге ва Питер Швабе таҳия шудааст. ChaCha20 ва Poly1305 ҳамчун аналогҳои тезтар ва бехатари AES-256-CTR ва HMAC ҷойгир шудаанд, ки татбиқи нармафзори онҳо имкон медиҳад, ки бе ҷалби дастгирии махсуси сахтафзор вақти муайяни иҷроро ба даст оранд. Барои тавлиди калиди махфии муштарак, протоколи каҷи эллиптикии Диффи-Хелман дар татбиқи Curve25519, ки онро Даниел Бернштейн пешниҳод кардааст, истифода мешавад. Барои ҳашинг, алгоритми BLAKE2s (RFC7693) истифода мешавад.

Манбаъ: opennet.ru

Илова Эзоҳ