В дървото на изходните текстове на 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.
Напомняме, че VPN WireGuard реализован на основе современных методов шифрования, обеспечивает высокую производительность, прост в использовании, лишен усложнений и хорошо зарекомендовал себя в ряде крупных внедрений, обрабатывающих большие объемы трафика. Проект развивается с 2015 года, прошёл аудит и формальную верификацию применяемых методов шифрования. В WireGuard применяется концепция маршрутизации по ключам шифрования, что подразумевает привязку к каждому сетевому интерфейсу закрытого ключа и использование открытых ключей для связи.
Обмен открытыми ключами для установки соединения осуществляется по аналогии с SSH. Для согласования ключей и соединения без запуска отдельного демона в пространстве пользователя используется механизм Noise_IK из Noise Protocol Framework, аналогичный поддержанию authorized_keys в SSH. Передача данных происходит через инкапсуляцию в пакеты UDP. Поддерживается смена IP адреси VPN-сервера (роуминг) без разрыва соединения с автоматической перенастройкой клиента.
Новите версии Wine 9.2 и Winlator 5.0. За ядрото на Linux е предложен драйвер ntsync
Източник: opennet.ru
