Дэвид Миллер (), ядро тармагынын ички тутуму үчүн жооптуу Linux, тор-кийинки филиалга долбоордон VPN интерфейсин ишке ашыруу менен Кийинки жылдын башында, net-next тармагында топтолгон өзгөрүүлөр өзөктүк чыгарылыштын негизин түзөт. Linux 5.6.
Кодду жайылтуу аракеттери WireGuard Негизги ядродо акыркы бир нече жылдан бери аракеттер көрүлүп келген, бирок алар иштин натыйжалуулугун жогорулатуу үчүн колдонулган криптографиялык функциялардын менчик ишке ашырууларына көз каранды болгондуктан, ийгиликсиз бойдон калган. Башында бул функциялар болгон ядро үчүн кошумча төмөнкү деңгээлдеги Zinc API катары, акыры стандарттык Crypto API алмаштыра алат.
Kernel Recipes конференциясындагы баяндамалардан кийин, жаратуучулар WireGuard аяк оонада иштеп чыгуучулар кире ала турган, өзөктөгү бар Crypto API'син колдонуу үчүн патчтарыңызды конвертациялаңыз WireGuard Иштин натыйжалуулугу жана жалпы коопсуздук боюнча даттануулар бар. Zinc API'син иштеп чыгууну улантуу чечими кабыл алынды, бирок ал өзүнчө долбоор катары иштелип чыгышы керек.
Ноябрда ядрону иштеп чыгуучулар компромисске жооп кылып, коддун бир бөлүгүн Цинктен негизги ядрого өткөрүп берүүгө макул болду. Негизинен, кээ бир Zinc компоненттери өзөккө жылдырылат, бирок өзүнчө API катары эмес, Crypto API подсистемасынын бир бөлүгү катары. Мисалы, Crypto API мурунтан эле даярдалган WireGuard ChaCha20 жана Poly1305 алгоритмдерин тез ишке ашыруу.
Алдыдагы жеткирүүгө байланыштуу WireGuard негизги командада, долбоордун негиздөөчүсү репозиторийин кайра түзүү жөнүндө. Иштеп чыгууну жөнөкөйлөтүү үчүн, монолиттик репозиторий менен алмаштырылдыWireGuardӨзүнчө иштөө үчүн иштелип чыккан .git, негизги ядродогу код менен иштөөнү уюштурууга ылайыктуураак үч өзүнчө репозиторийди алат:
- — долбоордогу өзгөртүүлөр менен толук ядро дарагы Wireguard, анын патчтары өзөккө киргизүү үчүн каралып чыгат жана үзгүлтүксүз түрдө net/net-next бутактарына көчүрүлөт.
- - wg жана wg-quick сыяктуу колдонуучу мейкиндигинде иштеген утилиталар жана скрипттер үчүн репозиторий. Репозиторийди бөлүштүрүү үчүн пакеттерди түзүү үчүн колдонсо болот.
- — модулдун версиясы бар, ядродон өзүнчө жеткирилген жана эски ядролор менен шайкештикти камсыз кылуу үчүн compat.h катмарын камтыган репозиторий. Негизги иштеп чыгуу репозиторийде жүргүзүлөт. wireguard-linux.git, бирок колдонуучулардан мүмкүнчүлүк жана суроо-талап болсо, патчтардын өзүнчө версиясы да жумушчу формада колдоого алынат.
Эске сала кетсек, VPN WireGuard Заманбап шифрлөө ыкмаларын колдонуу менен ишке ашырылган, ал абдан жогорку өндүрүмдүүлүктү камсыз кылат, колдонууга оңой, татаалдашууларсыз жана чоң көлөмдөгү трафикти иштетүү боюнча бир катар ири масштабдуу жайылтууларда өзүн далилдеди. Долбоор 2015-жылдан бери иштелип чыгып, аудиттен өткөн жана шифрлөө ыкмалары колдонулат. Колдоо WireGuard Ал буга чейин NetworkManager жана systemd программаларына интеграцияланган жана ядронун патчтары базалык дистрибуцияларга киргизилген. , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, и .
В WireGuard Шифрлөө ачкычын багыттоо концепциясы колдонулат, ал ар бир тармак интерфейсине жеке ачкычты байлоону жана аны ачык ачкычты байлоо үчүн колдонууну камтыйт. Ачык ачкычтар SSH сыяктуу жол менен байланыш түзүү үчүн алмашылат. Колдонуучу мейкиндигинде өзүнчө демонду иштетпестен ачкычтарды сүйлөшүү жана байланыш түзүү үчүн, Noise_IK механизми ...дан башталат. SSHда авторизацияланган_ачкычтарды сактоого окшош. Маалыматтарды берүү UDP пакеттеринде инкапсуляция аркылуу ишке ашырылат. Ал VPN серверинин (роуминг) IP дарегин байланышты ажыратпастан өзгөртүүнү жана кардарды автоматтык түрдө кайра конфигурациялоону колдойт.
Шифрлөө үчүн агым шифри жана билдирүүнүн аныктыгын текшерүү алгоритми (MAC) , Дэниел Бернштейн тарабынан иштелип чыккан (), Таня Ланге
(Таня Ланге) жана Питер Швабе. ChaCha20 жана Poly1305 AES-256-CTR жана HMAC тезирээк жана коопсуз аналогдору катары жайгаштырылган, программалык камсыздоону ишке ашыруу атайын аппараттык колдоону колдонбостон, белгиленген аткаруу убактысына жетүүгө мүмкүндүк берет. Жалпы жашыруун ачкычты түзүү үчүн, ишке ашырууда эллиптикалык ийри Диффи-Хеллман протоколу колдонулат. , ошондой эле Даниел Бернштейн тарабынан сунушталган. хэшдөө үчүн колдонулган алгоритм болуп саналат .
боюнча өндүрүмдүүлүк WireGuard салыштырмалуу 3.9 эсе жогорку өткөрүү жөндөмдүүлүгүн жана 3.8 эсе жогорку жооп кайтаруу жөндөмдүүлүгүн көрсөттү OpenVPN (HMAC-SHA2-256 менен 256-биттик AES). IPsec (256-биттик ChaCha20+Poly1305 жана AES-256-GCM-128) менен салыштырганда WireGuard Бир аз иштөө артыкчылыгы (13-18%) жана кечигүүнүн азайышы (21-23%) байкалат. Тесттер долбоордун өзүнүн шифрлөө алгоритмдеринин тез ишке ашырууларын колдонуу менен жүргүзүлдү; ядронун жергиликтүү Crypto API'сине өтүү иштөөнүн начарлашына алып келиши мүмкүн.
Source: opennet.ru
