Дэвид Миллер (), Linux ядросының желілік ішкі жүйесіне жауапты, желі-келесі филиалға жобадан VPN интерфейсін іске асырумен Келесі жылдың басында нет-келесі тармақта жинақталған өзгерістер Linux ядросының 5.6 шығарылымына негіз болады.
WireGuard кодын негізгі ядроға жылжыту әрекеттері соңғы бірнеше жылда жасалды, бірақ өнімділікті жақсарту үшін пайдаланылатын криптографиялық функциялардың меншікті іске асыруларына байланысты болғандықтан сәтсіз болды. Бастапқыда бұл функциялар болды ядро үшін стандартты Crypto API ауыстыра алатын қосымша төменгі деңгейлі Zinc API ретінде.
Kernel Recipes конференциясындағы келіссөздерден кейін WireGuard жасаушылары қыркүйекте жариялады WireGuard әзірлеушілері өнімділік пен жалпы қауіпсіздікке қатысты шағымдары бар ядродағы бар Crypto API пайдалану үшін олардың патчтарын ауыстырыңыз. Zinc API әзірлеуді жалғастыру туралы шешім қабылданды, бірақ жеке жоба ретінде.
Қараша айында ядроны әзірлеушілер Олар ымыраға келіп, мырыш кодының бір бөлігін негізгі ядроға тасымалдауға келісті. Негізінде, кейбір Цинк құрамдастары ядроға бөлек API ретінде емес, Crypto API ішкі жүйесінің бөлігі ретінде тасымалданады. Мысалы, Crypto API қазірдің өзінде WireGuard бағдарламасында дайындалған ChaCha20 және Poly1305 алгоритмдерін жылдам енгізу.
WireGuard-тың негізгі ядродағы алдағы шығарылымына байланысты жобаның негізін қалаушы Репозиторийді қайта құрылымдауға қатысты. Әзірлеуді жеңілдету үшін оқшаулану үшін жасалған монолитті «WireGuard.git» репозиторийі негізгі ядродағы кодты ұйымдастыруға ыңғайлы үш бөлек репозиториймен ауыстырылады:
- — Wireguard жобасынан өзгерістері бар толық ядро ағашы, оның патчтары ядроға қосу үшін қаралып, жүйелі түрде желі/желі-келесі тармақтарға тасымалданатын болады.
- — 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 OpenVPN (HMAC-SHA2-256 бар 256-биттік AES) салыстырғанда 3.9 есе жоғары өткізу қабілеттілігін және 3.8 есе жоғары жауап беру қабілетін көрсетті. IPsec (256-биттік ChaCha20+Poly1305 және AES-256-GCM-128) салыстырғанда, WireGuard аз өнімділік артықшылығын (13-18%) және кідіріс уақытын (21-23%) төмендетті. Тесттер жобаның жеке шифрлау алгоритмдерін жылдам енгізу арқылы орындалды; негізгі Crypto API интерфейсіне ауысу өнімділіктің төмендеуіне әкелуі мүмкін.
Ақпарат көзі: opennet.ru
