تمت إضافة تطبيق VPN WireGuard الجديد إلى FreeBSD Codebase

تم تعديل شجرة مصدر FreeBSD باستخدام تطبيق VPN WireGuard جديد استنادًا إلى التعليمات البرمجية من وحدة kernel التي أعدتها فرق تطوير FreeBSD و WireGuard الأساسية مع مدخلات من Jason A. مطور معروف لـ GDB و FreeBSD ، قام بتطبيق دعم SMP و NUMA في نواة FreeBSD في أوائل العقد الأول من القرن الحادي والعشرين. بمجرد قبول برنامج التشغيل في FreeBSD (sys / dev / wg) ، سيتم تطويره وصيانته في مستودع FreeBSD من الآن فصاعدًا.

قبل قبول الكود ، تم إجراء مراجعة كاملة للتغييرات بدعم من FreeBSD Foundation ، والتي تم خلالها أيضًا تحليل تفاعل السائق مع بقية الأنظمة الفرعية للنواة وإمكانية استخدام أساسيات التشفير التي يوفرها تم تقييم النواة.

لاستخدام خوارزميات التشفير المطلوبة من قبل السائق ، تم توسيع واجهة برمجة تطبيقات النظام الفرعي لتشفير نواة FreeBSD ، والتي تمت إضافة رابط يسمح باستخدام خوارزميات غير مدعومة في FreeBSD من خلال واجهة برمجة تطبيقات التشفير القياسية باستخدام تنفيذ الخوارزميات اللازمة من مكتبة libsodium. من بين الخوارزميات المضمنة في برنامج التشغيل ، لم يتبق سوى رمز حساب تجزئة Blake2 ، نظرًا لأن تنفيذ هذه الخوارزمية المتوفرة في FreeBSD مرتبط بحجم تجزئة ثابت.

بالإضافة إلى ذلك ، أثناء عملية المراجعة ، تم تنفيذ تحسين الكود ، مما جعل من الممكن زيادة كفاءة توزيع الحمل على وحدات المعالجة المركزية متعددة النواة (تم ضمان موازنة موحدة لربط مهام التشفير وفك تشفير الحزمة إلى نوى وحدة المعالجة المركزية). نتيجة لذلك ، تم تقريب الحمل الزائد لحزم المعالجة من تنفيذ برنامج التشغيل لنظام التشغيل Linux. يوفر الرمز أيضًا القدرة على استخدام برنامج تشغيل ossl لتسريع عمليات التشفير.

على عكس المحاولة السابقة لدمج WireGuard في FreeBSD ، يستخدم التطبيق الجديد الأداة المساعدة stock wg ، بدلاً من نسخة معدلة من ifconfig ، مما سمح بتكوين موحد بين Linux و FreeBSD. يتم تضمين الأداة المساعدة wg ، بالإضافة إلى برنامج التشغيل ، في مصادر FreeBSD ، والتي أصبحت ممكنة من خلال تغيير الترخيص في كود wg (الرمز متاح الآن بموجب تراخيص MIT و GPL). تم إجراء آخر محاولة لتضمين WireGuard في FreeBSD في عام 2020 ، لكنها انتهت بفضيحة ، ونتيجة لذلك تمت إزالة الكود المضاف بالفعل بسبب الجودة الرديئة ، والتعامل مع المخزن المؤقت بإهمال ، واستخدام التنبيهات بدلاً من الشيكات ، والتنفيذ غير الكامل للبروتوكول وانتهاك ترخيص GPL.

تذكر أن تطبيق VPN WireGuard يتم تنفيذه على أساس أساليب التشفير الحديثة ، ويوفر أداءً عاليًا للغاية ، وسهل الاستخدام ، وخالي من التعقيدات ، وقد أثبت نفسه في عدد من عمليات النشر الكبيرة التي تعالج كميات كبيرة من حركة المرور. تم تطوير المشروع منذ عام 2015 ، واجتاز التدقيق والتحقق الرسمي لطرق التشفير المستخدمة. يستخدم WireGuard مفهوم توجيه مفتاح التشفير ، والذي يتضمن ربط مفتاح خاص بكل واجهة شبكة واستخدام المفاتيح العامة للربط.

تبادل المفاتيح العامة لإنشاء اتصال مشابه لـ SSH. للتفاوض على المفاتيح والاتصال بدون تشغيل برنامج خفي منفصل لمساحة المستخدم ، يتم استخدام آلية Noise_IK لإطار عمل بروتوكول الضوضاء ، على غرار الحفاظ على المفاتيح المصرح بها في SSH. يتم نقل البيانات من خلال التغليف في حزم UDP. وهو يدعم تغيير عنوان IP لخادم VPN (التجوال) دون قطع الاتصال بإعادة التكوين التلقائي للعميل.

يستخدم التشفير خوارزمية دفق ChaCha20 وخوارزمية مصادقة الرسائل Poly1305 (MAC) التي طورها Daniel J. Bernstein و Tanja Lange و Peter Schwabe. يتم وضع ChaCha20 و Poly1305 كنظائر أسرع وأكثر أمانًا من AES-256-CTR و HMAC ، حيث يتيح تنفيذ البرنامج تحقيق وقت تنفيذ ثابت دون الحاجة إلى دعم خاص للأجهزة. لإنشاء مفتاح سري مشترك ، يتم استخدام بروتوكول Diffie-Hellman منحنى بيضاوي في تطبيق Curve25519 ، والذي اقترحه أيضًا Daniel Bernstein. للتجزئة ، يتم استخدام خوارزمية BLAKE2s (RFC7693).

المصدر: opennet.ru

إضافة تعليق