Објављени су WireGuard VPN за Windows и WireGuardNT 1.0

Џејсон А. Доненфелд, аутор WireGuard VPN-а, објавио је прво велико издање WireGuard клијентског софтвера за Windows 1.0, као и WireGuardNT 1.0 драјвере са портом ВПН WireGuard за Windows 10 и 11 језгро, са подршком за AMD64, x86 и ARM64 архитектуре. Код компоненти Windows језгра је лиценциран под GPLv2 лиценцом, а клијентски софтвер је лиценциран под MIT лиценцом.

Порт је базиран на кодној бази главне имплементације WireGuard-а за Linux језгро, која је конвертована да користи Windows језгро ентитете и NDIS мрежни стек. У поређењу са имплементацијом wireguard-go, која ради у корисничком простору и користи Wintun мрежни интерфејс, WireGuardNT нуди значајна побољшања перформанси елиминисањем контекстних прекидача и копирањем садржаја пакета из језгра у кориснички простор. Слично имплементацијама за Linux, OpenBSD и FreeBSD, сва логика обраде протокола у WireGuardNT-у ради директно на нивоу мрежног стека.

Верзија 1.0 је означена као прекретница, означавајући решавање низа проблема и испуњење предвиђених задатака, као што су: коришћење функције NdisWdfGetAdapterContextFromAdapterHandle() уместо мање безбедног чувања стања драјвера у пољу Reserved и коришћење недокументованих офсета; исправно и брзо праћење величине MTU (Maximum Transmission Unit) путем пресретања системских позива; коришћење C23 стандарда у коду.

Подсетимо, ВПН ВиреГуард је имплементиран на бази савремених метода шифровања, пружа веома високе перформансе, једноставан је за коришћење, без компликација и добро се показао у низу великих имплементација које обрађују велике количине саобраћаја. Пројекат се развија од 2015. године и прошао је ревизију и формалну верификацију коришћених метода шифровања. ВиреГуард користи концепт рутирања шифровања заснованог на кључу, који укључује повезивање приватног кључа са сваким мрежним интерфејсом и коришћење јавних кључева за везивање.

Размена јавних кључева за успостављање везе је слична SSH-у. За преговарање о кључевима и повезивање без покретања посебног демона у корисничком простору, користи се механизам Noise_IK из Noise Protocol Framework-а, слично одржавању authorized_keys у SSH-у. Пренос података се врши путем енкапсулације у UDP пакетима. Промена је подржана. ИП адресе VPN сервери (роминг) без прекида везе са аутоматском реконфигурацијом клијента.

Шифровање користи ЦхаЦха20 стреам шифру и Поли1305 алгоритам за потврду идентитета поруке (МАЦ), који су развили Даниел Ј. Бернстеин, Тања Ланге и Петер Сцхвабе. ЦхаЦха20 и Поли1305 су позиционирани као бржи и сигурнији аналоги АЕС-256-ЦТР и ХМАЦ, чија софтверска имплементација омогућава постизање фиксног времена извршења без употребе посебне хардверске подршке. За генерисање заједничког тајног кључа, Диффие-Хеллман протокол елиптичне криве се користи у имплементацији Цурве25519, коју је такође предложио Даниел Бернстеин. За хеширање се користи алгоритам БЛАКЕ2с (РФЦ7693).

Извор: опеннет.ру