FreeBSD koodibaasi on lisatud uus VPN WireGuardi rakendus.

В дерево исходных текстов FreeBSD приняты изменения с новой реализацией VPN WireGuard, основанной на коде модуля ядра, совместно подготовленного основными командами разработчиков FreeBSD и WireGuard при участии Джейсона Доненфилда (Jason A. Donenfeld), автора VPN WireGuard, и Джона Болдуина (John H. Baldwin), известного разработчика GDB и FreeBSD, в начале 2000-х годов реализовавшего поддержку SMP и NUMA в ядре FreeBSD. После принятия драйвера в состав FreeBSD (sys/dev/wg), его разработка и сопровождение отныне будет вестись в репозитории FreeBSD.

Перед принятием кода при поддержке организации FreeBSD Foundation было проведено полное рецензирование изменений, в ходе которого также было проанализировано взаимодействие драйвера с остальными подсистемами ядра и оценена возможность задействования предоставляемых ядром криптографических примитивов.

Для использования необходимых драйверу криптографических алгоритмов было произведено расширение API криптоподсистемы ядра FreeBSD, в который была добавлена обвязка, позволяющая использовать через стандартный крипто-API не поддерживаемые во FreeBSD алгоритмы, используя реализацию необходимых алгоритмов из библиотеки libsodium. Из алгоритмов, встроенных в драйвер оставлен лишь код для вычисления хэшей Blake2, так как предоставляемая во FreeBSD реализация данного алгоритма завязана на фиксированный размер хэша.

Кроме того, в процессе рецензирования была проведена оптимизация кода, позволившая поднять эффективность распределения нагрузки на многоядерных CPU (обеспечена равномерная балансировка привязки задач шифрования и расшифровки пакета к ядрам CPU). В итоге накладные расходы при обработке пакетов были приближены к реализации драйвера для Linux. В коде также обеспечена возможность использования драйвера ossl для ускорения операций шифрования.

В отличие от прошлой попытки интеграции WireGuard во FreeBSD в новой реализации задействована штатная утилита wg, а не модифицированная версия ifconfig, что позволило унифицировать настройку в Linux и FreeBSD. Утилита wg как и драйвер включена в состав исходных текстов FreeBSD, что стало возможным благодаря изменению лицензии на код wg (код теперь доступен под лицензиями MIT и GPL). Прошлая попытка включения WireGuard в состав FreeBSD была предпринята в 2020 году, но завершилась скандалом, в результате которого уже добавленный код был удалён из-за низкого качества, безалаберной работы с буферами, использования заглушек вместо проверок, неполной реализации протокола и нарушения лицензии GPL.

Tuletame meelde, et VPN WireGuard on rakendatud tänapäevaste krüptimismeetodite alusel, tagab väga kõrge jõudluse, on lihtne kasutada, vaba keerukustest ja on hästi tõestatud mitmetes suurtes rakendustes, mis töötlevad suuri andmemahtusid. Projekt on arenenud alates 2015. aastast, läbinud auditi ja ametliku verifitseerimise rakendatud krüptimismeetodite osas. WireGuard kasutab krüpteerimise võtmete põhist marsruutimise kontseptsiooni, mille kohaselt seostatakse iga võrguühenduse jaoks privaatvõti ja avatud võtmete seostamiseks rakendatakse seda.

Avauste võtmete vahetus seose loomiseks toimub SSH-i sarnasel viisil. Võtmete kooskõlastamiseks ja ühendamiseks ilma eraldi demonite käivitamiseta kasutab Noise_IK mehhanismi Noise Protocol Frameworkist, mis on sarnane SSH-s autoriseeritud võtmete haldamisega. Andmete edastamine toimub UDP-pakettidesse kapseldamise kaudu. Toetatakse vahetust IP-aadressid VPN-serverid (roaming) katkestusteta ühendusega ja automaatse kliendi ümberseadistamisega.

Krüptimiseks kasutatakse voogkrüptimist ChaCha20 ja sõnumi autentimise algoritmi (MAC) Poly1305, mis on välja töötatud Daniel J. Bernstein'i, Tanja Lange'i ja Peter Schwabe'i poolt. ChaCha20 ja Poly1305 positsioneeritakse kui kiirem ja turvalisem alternatiiv AES-256-CTR ja HMAC-le, mille tarkvaraline implementeerimine võimaldab saavutada fikseeritud täitmise aega, ilma spetsiaalset riistvaratugi kasutamata. Ühise salajase võtme genereerimiseks kasutatakse Diiffi-Hellmani protokolli elliptiliste kõverate puhul Curve25519 elluviimises, mille on samuti esitanud Daniel J. Bernstein. Hasherimiseks kasutatakse algoritmi BLAKE2s (RFC7693).

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster