تم تضمين VPN WireGuard في Linux kernel 5.6

قام لينوس اليوم بنقل فرع net-next المزود بواجهات VPN إلى نفسه WireGuard. حول هذا الحدث ذكرت في القائمة البريدية لـ WireGuard.

تم تضمين VPN WireGuard في Linux kernel 5.6

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

كتب لينوس في 2 أغسطس 2018: "أرى أن جيسون قد قدم طلب سحب لتضمين WireGuard في النواة". — هل يمكنني أن أعلن مرة أخرى حبي لشبكة VPN هذه وأتمنى أن يتم دمجها قريبًا؟ قد لا يكون الكود مثاليًا، لكنني نظرت إليه، ومقارنة بأهوال OpenVPN وIPSec، فهو عمل فني حقيقي."

على الرغم من رغبات لينوس، استمر الاندماج لمدة عام ونصف. وتبين أن المشكلة الرئيسية كانت مرتبطة بالتطبيقات الخاصة لوظائف التشفير، والتي تم استخدامها لتحسين الأداء. وبعد مفاوضات مطولة في سبتمبر 2019، تم ذلك تم اتخاذ قرار وسط ترجمة التصحيحات إلى وظائف Crypto API المتوفرة في النواة، والتي يشكو مطورو WireGuard منها في مجال الأداء والأمن العام. لكنهم قرروا فصل وظائف تشفير WireGuard الأصلية إلى واجهة برمجة تطبيقات Zinc منفصلة منخفضة المستوى ونقلها في النهاية إلى النواة. في نوفمبر، أوفى مطورو النواة بوعدهم و متفق عليه نقل جزء من الكود من Zinc إلى النواة الرئيسية. على سبيل المثال، في Crypto API متضمن تطبيقات سريعة لخوارزميات ChaCha20 وPoly1305 المعدة في WireGuard.

أخيرًا، في 9 ديسمبر 2019، ديفيد س. ميلر، المسؤول عن النظام الفرعي للشبكات في Linux kernel، أخذت إلى فرع net-next بقع مع تنفيذ واجهة VPN من مشروع WireGuard.

واليوم، 29 يناير 2020، ذهبت التغييرات إلى Linus لإدراجها في النواة.

تم تضمين VPN WireGuard في Linux kernel 5.6

المزايا المزعومة لـ WireGuard على حلول VPN الأخرى:

  • سهل الاستخدام.
  • يستخدم التشفير الحديث: إطار عمل بروتوكول الضوضاء ، Curve25519 ، ChaCha20 ، Poly1305 ، BLAKE2 ، SipHash24 ، HKDF ، إلخ.
  • كود مضغوط قابل للقراءة ، أسهل في البحث عن الثغرات الأمنية.
  • أداء عالي.
  • واضحة ومفصلة تخصيص.

يستهلك كل المنطق الأساسي لـ WireGuard أقل من 4000 سطر من التعليمات البرمجية، بينما يتطلب OpenVPN وIPSec مئات الآلاف من الأسطر.

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

للتشفير تستخدم تيار الشفرات ChaCha20 وخوارزمية مصادقة الرسائل (MAC) Poly1305، صممه دانيال بيرنشتاين (دانيال بيرنشتاين)، تانيا لانج وبيتر شوابي. يتم وضع ChaCha20 وPoly1305 باعتبارهما نظائرهما الأسرع والأكثر أمانًا لـ AES-256-CTR وHMAC، حيث يتيح تنفيذ البرنامج تحقيق وقت تنفيذ ثابت دون استخدام دعم الأجهزة الخاص. لإنشاء مفتاح سري مشترك، يتم استخدام بروتوكول Diffie-Hellman ذي المنحنى الإهليلجي في التنفيذ Curve25519، كما اقترحه دانييل بيرنشتاين. الخوارزمية المستخدمة للتجزئة هي بليك2s (RFC7693)".

النتائج اختبارات الأداء من الموقع الرسمي:

عرض النطاق الترددي (ميجابت/ثانية)
تم تضمين VPN WireGuard في Linux kernel 5.6

بينغ (مللي ثانية)
تم تضمين VPN WireGuard في Linux kernel 5.6

تكوين الاختبار:

  • إنتل كور i7-3820QM وإنتل كور i7-5200U
  • بطاقات جيجابت Intel 82579LM وIntel I218LM
  • لينكس شنومكس
  • تكوين WireGuard: ChaCha256 20 بت مع Poly1305 لنظام التشغيل MAC
  • تكوين IPsec الأول: ChaCha256 20 بت مع Poly1305 لنظام التشغيل MAC
  • تكوين IPsec الثاني: AES-256-GCM-128 (مع AES-NI)
  • تكوين OpenVPN: مجموعة تشفير مكافئة AES 256 بت مع HMAC-SHA2-256، وضع UDP
  • تم قياس الأداء باستخدام iperf3، يظهر متوسط ​​النتيجة خلال 30 دقيقة.

من الناحية النظرية، بمجرد دمج WireGuard في مكدس الشبكة، يجب أن يعمل بشكل أسرع. ولكن في الواقع لن يكون هذا هو الحال بالضرورة بسبب الانتقال إلى وظائف التشفير Crypto API المضمنة في النواة. ربما لم يتم تحسينها جميعًا حتى الآن لمستوى أداء WireGuard الأصلي.

"من وجهة نظري، يعد WireGuard مثاليًا بشكل عام للمستخدم. يتم اتخاذ جميع القرارات ذات المستوى المنخفض في المواصفات، وبالتالي فإن عملية إعداد البنية التحتية النموذجية لشبكة VPN تستغرق بضع دقائق فقط. يكاد يكون من المستحيل إفساد التكوين - писали في حبري في عام 2018. - عملية التثبيت وصفها بالتفصيل على الموقع الرسمي ، أود أن أشير بشكل منفصل إلى الامتياز دعم OpenWRT. تم تحقيق سهولة الاستخدام وضغط قاعدة التعليمات البرمجية من خلال القضاء على توزيع المفاتيح. لا يوجد نظام شهادات معقد وكل هذا الرعب الذي تمارسه الشركات؛ يتم توزيع مفاتيح التشفير القصيرة مثل مفاتيح SSH إلى حد كبير.

تم تطوير مشروع WireGuard منذ عام 2015، وقد تم تدقيقه و التحقق الرسمي. تم دمج دعم WireGuard في NetworkManager وsystemd، وتم تضمين تصحيحات kernel في التوزيعات الأساسية لـ Debian Unstable وMageia وAlpine وArch وGentoo وOpenWrt وNixOS وSubgraph وALT.

المصدر: www.habr.com

إضافة تعليق