FreeBSD булак дарагы жаңы VPN ишке ашыруусу менен жаңыртылды. WireGuard, FreeBSD өзөктүк иштеп чыгуу топтору тарабынан биргелешип даярдалган ядро модулунун кодуна негизделген жана WireGuard VPNдин автору Джейсон А. Доненфельддин катышуусунда WireGuard, жана 2000-жылдардын башында FreeBSD ядросунда SMP жана NUMA колдоосун ишке ашырган белгилүү GDB жана FreeBSD иштеп чыгуучусу Джон Х. Болдуин. Драйвер FreeBSDге (sys/dev/wg) кабыл алынгандан кийин, аны иштеп чыгуу жана тейлөө эми FreeBSD репозиторийинде жүргүзүлөт.
Код кабыл алынганга чейин, FreeBSD Фондунун колдоосу менен өзгөртүүлөрдү толук карап чыгуу жүргүзүлүп, анын жүрүшүндө драйвердин ядронун калган подсистемалары менен өз ара аракеттенүүсү жана ядро тарабынан берилген криптографиялык примитивдерди колдонуу мүмкүнчүлүгү талдоого алынган. бааланды.
Драйвер талап кылган криптографиялык алгоритмдерди колдонуу үчүн FreeBSD ядросунун крипто-подсистемасынын API'си кеңейтилген, ага стандарттык крипто-API аркылуу FreeBSDде колдоого алынбаган алгоритмдерди колдонууга мүмкүндүк берүүчү аппарат кошулган. libsodium китепканасынан керектүү алгоритмдерди. Драйверге орнотулган алгоритмдердин ичинен Blake2 хэштерин эсептөө коду гана калды, анткени FreeBSDде берилген бул алгоритмдин ишке ашырылышы белгиленген хэш өлчөмүнө байланган.
Мындан тышкары, карап чыгуу процессинде көп ядролуу процессорлордо жүктөмдү бөлүштүрүүнүн натыйжалуулугун жогорулатуу үчүн кодду оптималдаштыруу жүргүзүлдү (процессордун өзөктөрү боюнча пакеттерди шифрлөө жана чечмелөө тапшырмаларынын бирдей тең салмактуулугун камсыз кылды). Натыйжада, пакеттерди иштетүү боюнча кошумча чыгымдар драйверди ишке ашыруунун чыгымдарына жакындатылды. LinuxКод ошондой эле шифрлөө операцияларын тездетүү үчүн osl драйверин колдонуу мүмкүнчүлүгүн берет.
Мурунку интеграциялоо аракетинен айырмаланып WireGuard FreeBSDде жаңы ишке ашыруу ifconfigтин өзгөртүлгөн версиясынын ордуна стандарттуу wg утилитасын колдонот, бул конфигурацияны бириктирүүгө мүмкүндүк берди. Linux жана FreeBSD. wg утилитасы, драйвер сыяктуу эле, FreeBSD булак кодуна киргизилген, бул wg кодунун лицензиясын өзгөртүү менен мүмкүн болгон (код эми MIT жана GPL лицензиялары боюнча жеткиликтүү). Кошуу үчүн мурунку аракет WireGuard FreeBSD менен бириктирүү аракети 2020-жылы жасалган, бирок талаш-тартыштар менен аяктаган, буга чейин кошулган код сапаттын начардыгынан, буферди начар иштетүүдөн, текшерүүлөрдүн ордуна stub'дарды колдонуудан, протоколду толук ишке ашыруудан жана GPL лицензиясынын бузулушунан улам алынып салынган.
Эскерте кетсек, бул VPN WireGuard Заманбап шифрлөө ыкмаларын колдонуу менен ишке ашырылган, ал абдан жогорку өндүрүмдүүлүктү камсыз кылат, колдонууга оңой, татаалдашууларсыз жана чоң көлөмдөгү трафикти иштетүүчү бир катар ири масштабдуу жайылтууларда өзүн далилдеди. Долбоор 2015-жылдан бери иштелип чыгып, шифрлөө ыкмаларынын аудитинен жана расмий текшерүүсүнөн өткөн. WireGuard Ачкычка негизделген маршруттоо концепциясы колдонулат, ал ар бир тармак интерфейсине жеке ачкычты байлоону жана байланыштыруу үчүн ачык ачкычтарды колдонууну камтыйт.
Байланыш түзүү үчүн ачык ачкычтарды алмашуу SSHке окшош. Колдонуучу мейкиндигинде өзүнчө демонду иштетпестен ачкычтарды сүйлөшүү жана туташуу үчүн, SSHдеги authorized_keysти тейлөөгө окшош Noise Protocol Framework'тен Noise_IK механизми колдонулат. Маалыматтарды берүү UDP пакеттеринде инкапсуляциялоо аркылуу жүргүзүлөт. Өзгөртүү колдоого алынат. IP даректери VPN серверлери (роуминг) байланыш үзгүлтүккө учурабастан, кардарды автоматтык түрдө кайра конфигурациялоо менен.
Шифрлөө ChaCha20 агымынын шифрин жана Даниел Дж. Бернштейн, Таня Ланге жана Питер Швабе тарабынан иштелип чыккан Poly1305 билдирүүнүн аныктыгын текшерүү (MAC) алгоритмин колдонот. ChaCha20 жана Poly1305 AES-256-CTR жана HMACтин тезирээк жана коопсуз аналогдору катары жайгаштырылган, программалык камсыздоону ишке ашыруу атайын аппараттык колдоону талап кылбастан, белгиленген аткаруу убактысына жетүүгө мүмкүндүк берет. Бөлүшүлгөн жашыруун ачкычты түзүү үчүн Curve25519 ишке ашыруудагы эллиптикалык ийри Диффи-Хеллман протоколу, ошондой эле Даниел Бернштейн тарабынан сунушталган. Хэшинг үчүн BLAKE2s алгоритми (RFC7693) колдонулат.
Source: opennet.ru
