WireGuard: شبكة VPN باستخدام ChaCha20 وCurve25519
استكشفوا التصميم التشفيري المبسّط لـ WireGuard باستخدام ChaCha20-Poly1305 وCurve25519 وBLAKE2.
WireGuard: شبكة VPN باستخدام ChaCha20 وCurve25519 درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
فلسفة تصميم WireGuard
صُمم WireGuard مع جعل البساطة الشديدة هدفًا أساسيًا. ويتكون مستودع شفرته من نحو 4,000 سطر، مقارنةً بـ 70,000 سطر لـ OpenVPN وأكثر من 400,000 سطر لـ strongSwan IPsec. ويعني تقليل عدد الأسطر وجود ثغرات محتملة أقل، وامتلاك سطح تدقيق صغير بما يكفي ليراجعه مهندس واحد مراجعة شاملة. وهذه البساطة خيار أمني متعمد، وليست قيدًا على الميزات.
البدائيات التشفيرية الثابتة
بخلاف OpenVPN وIPsec، لا يتفاوض WireGuard على خوارزميات التشفير. يستخدم كل اتصال WireGuard المجموعة الثابتة نفسها من البدائيات: Curve25519 لبروتوكول ECDH، وChaCha20-Poly1305 للتشفير الموثَّق، وBLAKE2s للتجزئة، وSipHash-2-4 لتأمين جداول التجزئة. ويؤدي ذلك إلى إلغاء تفاوض الشفرات، مما يزيل فئة كاملة من هجمات خفض المستوى.
مصافحة إطار عمل Noise Protocol
يطبّق WireGuard نمط المصافحة Noise_IKpsk2 من إطار عمل Noise Protocol. يوفّر هذا الإطار طريقة منهجية لبناء بروتوكولات تبادل مفاتيح ذات خصائص أمان قابلة للإثبات. يستخدم نمط IKpsk2 أزواج مفاتيح ثابتة ومؤقتة، مع مفتاح مشترك مسبقًا اختياري لتوفير مقاومة إضافية للحوسبة الكمومية، ويُكمل المصافحة خلال ذهاب وإياب واحد.
Curve25519 لتبادل المفاتيح
Curve25519 منحنى إهليلجي صممه Daniel Bernstein لتحقيق أداء وأمان مرتفعين. يستخدمه WireGuard لإجراء اتفاق مفاتيح Diffie-Hellman على المنحنيات الإهليلجية (ECDH). يمتلك كل نظير زوج مفاتيح ثابتًا من Curve25519 لاستخدامه في تحديد الهوية طويلة الأمد، كما تستخدم المصافحة أزواج مفاتيح مؤقتة لتوفير السرية الأمامية. وتعمل عمليات Curve25519 بزمن ثابت، مما يحد من مخاطر هجمات التوقيت.
تشفير البيانات باستخدام ChaCha20-Poly1305
يشفّر WireGuard جميع حزم البيانات باستخدام ChaCha20-Poly1305، وهي خوارزمية تشفير موثَّق. ChaCha20 عبارة عن شفرة تدفق سريعة جدًا على الأجهزة التي لا تتوفر فيها مسرّعات عتادية لـ AES، مثل الهواتف الذكية والأجهزة المضمّنة. ويوفّر Poly1305 وسم التوثيق. ويضمن تركيب AEAD المشترك اكتشاف أي عبث بالنص المشفّر قبل فك تشفيره.
BLAKE2s للتجزئة
BLAKE2s دالة تجزئة تشفيرية محسّنة للمنصات ذات 32 بت وللرسائل القصيرة. يستخدمها WireGuard في خطوات اشتقاق المفاتيح أثناء المصافحة، وكذلك لحساب معرّفات الجلسات. وتُعد BLAKE2s أسرع من SHA-256 على معظم المنصات، مع توفير مستوى أمان مكافئ. وقد صُممت خلفًا لـ BLAKE، الذي كان أحد المتأهلين إلى المرحلة النهائية من SHA-3.
أزواج المفاتيح الثابتة والمؤقتة
يمتلك نظراء WireGuard زوج مفاتيح ثابتًا يؤدي دور هويتهم طويلة الأمد. وتتبادل الأطراف المفاتيح العامة خارج النطاق أثناء الإعداد، وتستخدمها كمعرّفات للنظراء. وأثناء كل مصافحة، ينشئ كلا النظيرين أيضًا أزواج مفاتيح مؤقتة. ويوفّر تبادل ECDH بين المفاتيح الثابتة والمؤقتة، بالاقتران مع تبادل ECDH بين أزواج المفاتيح المؤقتة، كلًا من التوثيق والسرية الأمامية.
التوجيه القائم على مفاتيح التشفير
يطبّق WireGuard التوجيه القائم على مفاتيح التشفير؛ إذ يحدد كل نظير في الإعداد عناوين IP، أي عناوين IP المسموح بها، التي يمكن الوصول إليها عبر ذلك النظير. وعندما تطابق حزمة صادرة عناوين IP المسموح بها لأحد النظراء، تُشفّر باستخدام مفتاح ذلك النظير. أما الحزم الواردة فتُفكّر تشفيرها، ويجب أن يطابق عنوان IP المصدر فيها عناوين IP المسموح بها للمفتاح المستخدم؛ وإلا تُسقط. وتحدد المفاتيح جدول التوجيه.
إدارة الاتصالات القائمة على المؤقتات
لا يملك WireGuard مفهومًا للاتصال المستمر. فإذا لم تكن هناك حركة مرور، فلن تُرسل أي حزم، ويختفي VPN فعليًا من الشبكة. وتُشغَّل المصافحات عند الطلب عند وجود حركة مرور لإرسالها. ويرسل إعداد PersistentKeepalive القابل للتهيئة حزمًا فارغة دوريًا للحفاظ على تعيينات NAT للأجهزة الموجودة خلف موجّهات NAT.
WireGuard في نواة Linux
أُدمج WireGuard في النواة الرئيسية لـ Linux في الإصدار 5.6، الذي صدر في مارس 2020. ويمنح تشغيله في مساحة النواة وصولًا مباشرًا إلى مكدس الشبكات في النواة وإلى العتاد التشفيري، مما يؤدي إلى معدل نقل أعلى من تطبيقات VPN التي تعمل في مساحة المستخدم. أما على المنصات الأخرى، مثل Windows وmacOS وiOS وAndroid، فيعمل WireGuard في مساحة المستخدم عبر تطبيق متعدد المنصات.
مقارنة أداء WireGuard
تُظهر الاختبارات المعيارية باستمرار تفوق WireGuard على OpenVPN بمقدار 3 إلى 4 مرات في معدل النقل. ويكون IPsec المزود بتسريع عتادي لـ AES-NI منافسًا لـ WireGuard على الأنظمة التي تحتوي على عتاد AES. وعلى أجهزة ARM التي لا تحتوي على AES-NI، يتفوق ChaCha20 المستخدم في WireGuard بفارق كبير على البدائل القائمة على AES. كما يؤدي انخفاض استخدام CPU إلى إطالة عمر البطارية على الأجهزة المحمولة.
البدائيات التشفيرية في WireGuard
ما الخوارزمية التي يستخدمها WireGuard لتشفير حزم البيانات؟
خلاصة WireGuard
خلاصة WireGuard: نحو 4,000 سطر من التعليمات البرمجية لتقليص سطح الهجوم، وبدائيات ثابتة دون تفاوض، ومصافحة Noise IKpsk2 باستخدام Curve25519، وChaCha20-Poly1305 للبيانات، وBLAKE2s للتجزئة، وتوجيه قائم على مفاتيح التشفير يربط نطاقات IP بالمفاتيح العامة، ومفاتيح مؤقتة لتوفير السرية الأمامية، وتكامل مع النواة لتحقيق أقصى أداء، ونموذج اتصالات عديم الحالة مع مصافحات عند الطلب.
الأسئلة الشائعة
هل درس «WireGuard: شبكة VPN باستخدام ChaCha20 وCurve25519» مجاني؟
نعم — نص درس «WireGuard: شبكة VPN باستخدام ChaCha20 وCurve25519» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «WireGuard: شبكة VPN باستخدام ChaCha20 وCurve25519»؟
استكشفوا التصميم التشفيري المبسّط لـ WireGuard باستخدام ChaCha20-Poly1305 وCurve25519 وBLAKE2. تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «WireGuard: شبكة VPN باستخدام ChaCha20 وCurve25519»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- IPsec: بروتوكولا IKEv2 وESP وAH
- WireGuard: شبكة VPN باستخدام ChaCha20 وCurve25519
- OpenVPN: بنية VPN المستندة إلى TLS
- مقارنة بروتوكولات VPN: الأمان والأداء