OpenVPN: بنية VPN المستندة إلى TLS
ادرسوا كيفية استخدام OpenVPN لـ TLS في قناة التحكم، ولـ ciphers قابلة للتهيئة في قناة البيانات.
OpenVPN: بنية VPN المستندة إلى TLS درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
معمارية القناتين في OpenVPN
يستخدم OpenVPN قناتين منفصلتين: قناة التحكم وقناة البيانات. تتولى قناة التحكم التوثيق وإنشاء الجلسة وتبادل الإعدادات باستخدام TLS. وتحمل قناة البيانات حركة مرور VPN الفعلية المشفّرة باستخدام شفرة متناظرة يجري التفاوض عليها عبر قناة التحكم. ويتيح هذا الفصل لـ OpenVPN الاستفادة من منظومة TLS الكاملة لإدارة المفاتيح.
قناة التحكم: TLS للتفاوض على المفاتيح
تُجري قناة التحكم في OpenVPN جلسة TLS كاملة. ويوثّق كلا الطرفين هويته باستخدام شهادات X.509 موقعة من CA مشتركة. ويوفّر TLS تبادل المفاتيح والتحقق من الشهادات والتفاوض على معلمات شفرة قناة البيانات. وبما أن TLS يدعم ECDHE، فإن قناة التحكم توفر السرية الأمامية التامة؛ فلا يمكن استرداد مفاتيح قناة البيانات من جلسة ملتقطة حتى مع امتلاك مفتاح CA.
تشفير قناة البيانات
يجري التفاوض على تشفير قناة البيانات عبر قناة التحكم في TLS. ويستخدم OpenVPN 2.4 والإصدارات الأحدث افتراضيًا AES-256-GCM، وهي شفرة AEAD توفر السرية والسلامة في عملية واحدة. أما الإصدارات الأقدم فكانت تستخدم AES-256-CBC مع HMAC-SHA256 بشكل منفصل. وتُفضَّل أنماط AEAD لأنها تلغي الحاجة إلى التحقق المنفصل من MAC وتقاوم هجمات أوراكل الحشو.
tls-crypt: تغليف باستخدام مفتاح مشترك مسبقًا
يغلّف الخيار tls-crypt جلسة TLS بأكملها، بما في ذلك client hello، داخل غلاف متناظر موثَّق بواسطة HMAC باستخدام مفتاح مشترك مسبقًا. وهذا يعني أن العملاء غير الموثَّقين لا يستطيعون حتى بدء مصافحة TLS؛ إذ تُسقط حزمهم الأولية بصمت. ويحمي ذلك خادم OpenVPN من هجمات DDoS القائمة على TLS لتضخيم الهجمات، كما يخفي حقيقة تشغيل خادم VPN.
tls-auth مقابل tls-crypt
يضيف الخيار الأقدم tls-auth وسم HMAC إلى حزم قناة التحكم في TLS، لكنه لا يشفّرها. ويمنع ذلك حقن الحزم، لكنه يظل يكشف مصافحة TLS للمراقبين. أما tls-crypt فيشفّر غلاف قناة التحكم ويوثّقه، مما يوفر الحماية من DoS ومقاومة تحليل حركة المرور معًا. ويُعد tls-crypt الخيار الحديث الموصى به؛ بينما أصبح tls-auth مهجورًا لصالح tls-crypt-v2.
توثيق العملاء المستند إلى الشهادات
يوثّق OpenVPN العملاء باستخدام شهادات X.509 موقعة من سلطة الشهادات الخاصة بـ VPN. ويحصل كل عميل على شهادة فريدة ومفتاح خاص. ويتحقق الخادم من سلسلة الشهادات، ويمكنه اختياريًا التحقق من قائمة إبطال الشهادات (CRL) لرفض الشهادات الملغاة. ويؤدي إلغاء شهادة إلى إزالة وصول العميل فورًا، بخلاف الأنظمة القائمة على PSK، حيث يؤثر تغيير مفتاح واحد في جميع العملاء.
النقل عبر UDP مقابل TCP
يمكن تشغيل OpenVPN عبر UDP، وهو الخيار الافتراضي والموصى به، أو عبر TCP. ويتجنب UDP مشكلة TCP-over-TCP، حيث يتسبب فقدان الحزم في إعادة إرسالها مرتين، على مستوى TCP وعلى مستوى تطبيق VPN، مما يؤدي إلى تدهور كبير في الأداء. غير أن بعض الشبكات تحظر UDP. ويمكن لتشغيل OpenVPN على منفذ TCP 443 تجاوز جدران الحماية التي لا تسمح إلا بحركة مرور HTTPS، على حساب الأداء عند فقدان الحزم.
أنماط واجهة tun وtap
يعمل OpenVPN في وضع tun، أي وضع التوجيه، أو وضع tap، أي وضع الجسر. وينشئ وضع tun واجهة شبكة IP من نقطة إلى نقطة، لتوجيه حزم IP بين العميل وشبكة VPN. أما وضع tap فينشئ واجهة جسر Ethernet ويمرر إطارات Ethernet، بما في ذلك البث العام والبروتوكولات غير المعتمدة على IP. ويتميز وضع tun بكفاءة أكبر ويناسب معظم حالات استخدام VPN، بينما يلزم وضع tap لربط مقاطع الشبكة أو استخدام البروتوكولات غير المعتمدة على IP.
توجيهات الدفع لإعداد العميل
يمكن لخوادم OpenVPN دفع توجيهات الإعداد إلى العملاء المتصلين تلقائيًا. ومن توجيهات الدفع الشائعة push "route 10.0.0.0 255.0.0.0"، لإضافة مسار إلى العميل، وpush "dhcp-option DNS 10.0.0.1"، لتعيين خادم DNS، وpush "redirect-gateway def1"، لتوجيه كل حركة مرور العميل عبر VPN. ويؤدي ذلك إلى مركزية إدارة إعدادات العملاء دون تعديل ملفات إعداد كل عميل على حدة.
السرية الأمامية التامة في OpenVPN
يحقق OpenVPN السرية الأمامية التامة من خلال TLS ECDHE، أي Diffie-Hellman المؤقت على المنحنيات الإهليلجية، في قناة التحكم. ويُستخدم زوج مفاتيح مؤقت جديد لكل جلسة TLS، لذلك لا يمكن اشتقاق مفتاح الجلسة من المفتاح الخاص لشهادة الخادم طويلة الأمد. وحتى إذا جرى التقاط حركة المرور المشفّرة اليوم والحصول على شهادة الخادم لاحقًا، فلن يكون فك تشفير الجلسات السابقة ممكنًا.
إهمال الشفرات الضعيفة في OpenVPN 2.5 والإصدارات الأحدث
أهمل OpenVPN 2.5 شفرة Blowfish (BF-CBC)، التي كانت افتراضيًا في السابق. وتستخدم BF-CBC حجم كتلة يبلغ 64 بت، مما يجعلها عرضة لهجمات عيد الميلاد SWEET32 في الجلسات الطويلة. ويستخدم OpenVPN الحديث AES-256-GCM افتراضيًا. كما أهمل OpenVPN 2.5 الشفرات غير المعتمدة على AEAD في قناة البيانات، وشدّد متطلبات الحد الأدنى لإصدار TLS، فأوقف دعم TLS 1.0 وTLS 1.1.
قناة التحكم مقابل قناة البيانات في OpenVPN
ما الوظيفة الأساسية لقناة التحكم في OpenVPN؟
خلاصة معمارية OpenVPN
خلاصة OpenVPN: تستخدم قناة التحكم TLS للتوثيق والتفاوض على الشفرات، وتستخدم قناة البيانات شفرة AEAD المتفاوض عليها، وهي AES-256-GCM افتراضيًا، ويغلّف tls-crypt بروتوكول TLS لمنع المصافحات غير الموثَّقة، ويوفر ECDHE السرية الأمامية، ويعتمد توثيق العملاء على الشهادات مع إبطالها عبر CRL، ويُفضَّل UDP على TCP لتحسين الأداء، كما يُفضَّل وضع tun لحالات استخدام توجيه IP.
تعلم Cryptology Academy مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 67
- الدروس
- 261
الأسئلة الشائعة
هل درس «OpenVPN: بنية VPN المستندة إلى TLS» مجاني؟
نعم — نص درس «OpenVPN: بنية VPN المستندة إلى TLS» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «OpenVPN: بنية VPN المستندة إلى TLS»؟
ادرسوا كيفية استخدام OpenVPN لـ TLS في قناة التحكم، ولـ ciphers قابلة للتهيئة في قناة البيانات. تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «OpenVPN: بنية VPN المستندة إلى TLS»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- IPsec: بروتوكولا IKEv2 وESP وAH
- WireGuard: شبكة VPN باستخدام ChaCha20 وCurve25519
- OpenVPN: بنية VPN المستندة إلى TLS
- مقارنة بروتوكولات VPN: الأمان والأداء