नयाँ VPN कार्यान्वयन, WireGuard, FreeBSD कोडबेसमा थपिएको छ।

В дерево исходных текстов 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 मा समान रूपमा जडान स्थापना गर्न आदानप्रदान गरिन्छ। कुञ्जीहरू कुराकानी गर्न र प्रयोगकर्ता स्पेसमा छुट्टै डेमन नचलाएर जडान गर्न, SSH मा अधिकृत_कुञ्जीहरू कायम राख्न जस्तै, Noise Protocol Framework को Noise_IK मेकानिजम प्रयोग गरिन्छ। डाटा प्रसारण UDP प्याकेटहरूमा encapsulation मार्फत गरिन्छ। यसले स्वचालित ग्राहक पुन: कन्फिगरेसनको साथ जडान विच्छेद नगरी VPN सर्भर (रोमिङ) को IP ठेगाना परिवर्तन गर्न समर्थन गर्दछ।

एन्क्रिप्शनले ChaCha20 स्ट्रिम साइफर र Poly1305 सन्देश प्रमाणीकरण एल्गोरिथ्म (MAC) को प्रयोग गर्दछ, डेनियल जे बर्नस्टेन, तान्जा लाङ्गे र पिटर श्वाबे द्वारा विकसित। ChaCha20 र Poly1305 AES-256-CTR र HMAC को छिटो र सुरक्षित एनालगहरूको रूपमा राखिएको छ, जसको सफ्टवेयर कार्यान्वयनले विशेष हार्डवेयर समर्थनको प्रयोग नगरी एक निश्चित कार्यान्वयन समय प्राप्त गर्न अनुमति दिन्छ। साझा गोप्य कुञ्जी उत्पन्न गर्न, अण्डाकार कर्भ Diffie-Hellman प्रोटोकल Curve25519 कार्यान्वयनमा प्रयोग गरिन्छ, जसलाई डेनियल बर्नस्टेनले पनि प्रस्ताव गरेका थिए। BLAKE2s एल्गोरिथ्म (RFC7693) ह्यासिङका लागि प्रयोग गरिन्छ।

स्रोत: opennet.ru

एक टिप्पणी थप्न