اليوم ، انتقلت Linus إلى نفسها فرعًا
صافًا مع واجهات
WireGuard VPN. تم
الإبلاغ عن هذا الحدث في قائمة المراسلات WireGuard.

حاليًا ، يستمر تجميع التعليمات البرمجية لنظام Linux 5.6 kernel الجديد. WireGuard عبارة عن شبكة افتراضية خاصة (VPN) سريعة من الجيل الجديد تتضمن تشفير حديث. تم تطويره في الأصل كبديل أبسط وأكثر ملاءمة لشبكات VPN الحالية. المؤلف هو أخصائي أمن المعلومات الكندي جيسون دونينفيلد. في أغسطس 2018 ،
تم الإشادة بـ WireGuard بواسطة Linus Torvalds. حول الوقت ، بدأ العمل على دمج VPN في نواة Linux. كانت العملية متأخرة قليلا.
كتب لينوس في 2 أغسطس 2018: "أرى أن جيسون قام بطلب تجمع لتضمين WireGuard في القلب". - هل يمكنني إعلان حبي مرة أخرى لشبكة VPN هذه والأمل في اندماج سريع؟ قد لا تكون الشفرة مثالية ، لكنني نظرت إليها ، ومقارنة بأهوال OpenVPN و IPSec ، فهذا عمل فني حقيقي. "
على الرغم من رغبات لينوس ، استمر الاندماج لمدة عام ونصف. تبين أن المشكلة الرئيسية مرتبطة بتطبيقاتهم الخاصة لوظائف التشفير ، والتي كانت تستخدم لزيادة الإنتاجية. بعد مفاوضات مطولة في سبتمبر 2019 ، تم
التوصل إلى حل وسط لنقل التصحيحات إلى الميزات الأساسية لواجهة برمجة التطبيقات Crypto ، والتي لدى مطوري WireGuard شكاوى بشأن الأداء والأمان الشامل. لكنهم قرروا تحويل وظائف تشفير WireGuard الأصلية إلى واجهة برمجة تطبيقات Zinc منفصلة ذات مستوى منخفض ثم نقلها في النهاية إلى النواة. في نوفمبر ، حافظ المطورون الأساسيون على وعودهم
ووافقوا على نقل جزء من الرمز من الزنك إلى المركز الرئيسي. على سبيل المثال ،
تتضمن Crypto API تطبيقات سريعة أعدها WireGuard لخوارزميات ChaCha20 و Poly1305.
في النهاية ، في 9 كانون الأول (ديسمبر) 2019 ، قبل David S. Miller ، المسئول عن النظام الفرعي لشبكات Linux kernel ،
تصحيحات مع تطبيق واجهة VPN من مشروع WireGuard إلى الفرع التالي net.
واليوم ، 29 يناير 2020 ، ذهبت التغييرات إلى Linus لإدراجها في النواة.

المزايا المعلنة لـ WireGuard على حلول VPN الأخرى:
- سهل الاستخدام
- يستخدم التشفير الحديث: إطار بروتوكول الضوضاء ، Curve25519 ، ChaCha20 ، Poly1305 ، BLAKE2 ، SipHash24 ، HKDF ، إلخ.
- رمز قابل للقراءة مدمج ، وأسهل للتحري عن الثغرات الأمنية.
- عالية الأداء.
- مواصفات واضحة ومفصلة.
يستغرق المنطق الأساسي لـ WireGuard أقل من 4000 سطر من التعليمات البرمجية ، في حين أن OpenVPN و IPSec هما مئات الآلاف من الخطوط.
يستخدم WireGuard مفهوم توجيه مفتاح التشفير ، والذي يتضمن ربط مفتاح خاص بكل واجهة شبكة واستخدامه لربط المفاتيح العامة. ويتم تبادل المفاتيح العامة لإقامة اتصال عن طريق القياس مع SSH. للتفاوض على المفاتيح والاتصال دون بدء البرنامج الخفي في مساحة المستخدم ، يتم استخدام آلية Noise_IK من إطار بروتوكول الضوضاء ، على غرار الحفاظ على المفاتيح المخولة في SSH. يتم نقل البيانات من خلال التغليف في حزم UDP. وهو يدعم تغيير عنوان IP لخادم VPN (التجوال) دون قطع الاتصال مع إعادة التكوين التلقائي للعميل ، يكتب Opennet.
للتشفير ، يتم استخدام تشفير دفق ChaCha20 وخوارزمية مصادقة رسائل Poly1305 (MAC) التي طورها دانيال ج. بيرنشتاين وتانجا لانج وبيتر شوابي. يتم وضع ChaCha20 و Poly1305 كأداة تمثيلية أسرع وأكثر أمانًا لـ AES-256-CTR و HMAC ، حيث يتيح تنفيذ البرنامج تحقيق وقت تشغيل ثابت دون الحاجة إلى دعم أجهزة خاص. لإنشاء مفتاح سري مشترك ، يتم استخدام بروتوكول Diffie-Hellman بشأن المنحنيات الإهليلجية في تنفيذ Curve25519 ، الذي اقترحه أيضًا دانييل بيرنشتاين. للتجزئة ، يتم استخدام خوارزمية BLAKE2s (RFC7693) . "
نتائج
اختبار الأداء من الموقع الرسمي:
عرض النطاق الترددي (ميغابت / ثانية)
بينغ (مللي ثانية)
تكوين الاختبار:
- Intel Core i7-3820QM و Intel Core i7-5200U
- بطاقات Gigabit Intel 82579LM و Intel I218LM
- Linux 4.6.1
- تكوين WireGuard: 256 بت ChaCha20 مع Poly1305 لنظام التشغيل Mac
- التكوين الأول لـ IPsec: ChaCha20 256 بت مع Poly1305 لـ MAC
- تكوين IPsec الثاني: AES-256-GCM-128 (مع AES-NI)
- تكوين OpenVPN: مجموعة التشفير AES المكافئة 256 بت مع HMAC-SHA2-256 ، وضع UDP
- تم قياس الأداء باستخدام
iperf3
، مما يدل على متوسط النتيجة في 30 دقيقة.
نظريًا ، بعد الاندماج في مكدس الشبكة ، يجب أن يعمل WireGuard بشكل أسرع. ولكن في الواقع ، لن يكون هذا هو الحال بالضرورة بسبب الانتقال إلى وظائف التشفير المضمنة في قلب واجهة برمجة تطبيقات التشفير. ربما لم يتم تحسينها جميعًا إلى مستوى أداء WireGuard الأصلي.
"في رأيي ، WireGuard مثالي بشكل عام للمستخدم. يتم اتخاذ جميع القرارات ذات المستوى المنخفض في المواصفات ، وبالتالي فإن عملية إعداد بنية تحتية VPN نموذجية لا تستغرق سوى بضع دقائق. يكاد يكون من المستحيل الخلط بين التكوين ، - كتبوا على Habré في عام 2018. - يتم وصف عملية التثبيت بالتفصيل على الموقع الرسمي ، وأود أن أذكر دعمًا ممتازًا لـ OpenWRT . تم تحقيق سهولة الاستخدام وضغط قاعدة الشفرة هذه بسبب رفض توزيع المفاتيح. لا يوجد نظام شهادات معقد وكل هذا الرعب للشركات ؛ يتم توزيع مفاتيح التشفير القصيرة تقريبا مثل مفاتيح SSH. "
تم تطوير مشروع WireGuard منذ عام 2015 ، لقد مر بتدقيق وتحقق
رسمي . تم دمج دعم WireGuard في NetworkManager و systemd ، وتعتبر تصحيحات kernel جزءًا من التوزيعات الأساسية لـ Debian Unstable و Mageia و Alpine و Arch و Gentoo و OpenWrt و NixOS و Subgraph و ALT.