أين يقع TLS داخل OpenVPN، وما الذي يغيّر الشكل
يشغّل OpenVPN بروتوكول TLS لقناة التحكم داخل إطاره الخاص، لذا فإن البايتات الأولى ليست مصافحة ويب. وثلاثة خيارات تغيّر بالفعل ما يُرى.
يستخدم OpenVPN بروتوكول TLS فعلاً، ويوسّع الناس ذلك عادةً إلى ادعاء لا يحتمله: أن النفق بذلك يشبه متصفحًا يزور موقعًا. الجزء الأول صحيح. والثاني ليس كذلك. فبروتوكول TLS هنا يخص قناة تحكم تسير داخل حاوية OpenVPN نفسها، إلى جانب قناة حمولة بتشفير مختلف تمامًا، لذا يرى من يفحص البايتات الافتتاحية بروتوكول OpenVPN.
محدثتان في مظروف واحد
تخيّل الجلسة كمحدثتين تتقاسمان مظروفًا واحدًا. إحداهما تتحقق من الشهادات وتشتق مادة المفتاح. والأخرى تشفّر ما ترسله فعلاً، باستخدام ما أنتجته الأولى.
المظروف هو البروتوكول. تبدأ كل حزمة بترويسة صغيرة تسمّي نوعها، وتصل تلك الترويسة قبل أي شيء آخر.
ما يصل أولًا فعلاً
بسبب هذا الترتيب، فإن أول ما يظهر على السلك ليس سجل TLS. إنه ترويسة OpenVPN، يتبعها محتوى القناة التي تعلنها الترويسة. توجد رسالة ClientHello هناك، لكن ليس عند البايت صفر. ولا حاجة إلى أي فك تشفير لملاحظة الفرق، لأن الشكل وحده يكشفه.
الإعدادات الافتراضية تهم هنا أيضًا. التدفق UDP إلى 1194 ما لم يختر الملف الشخصي TCP. وفي الحالتين يكون المظهر الخارجي نفقًا لا طلب ويب.
ثلاث طرق صادقة لتغيير الشكل
طرفي TLS مثل stunnel يقبل TLS على منفذ في كل طرف ويسلّم التدفق المفكوك إلى OpenVPN محليًا، فيرى الشبكة TLS إلى ذلك المنفذ. والبروتوكول الذي يكون TLS من البايت الأول يتصرف بشكل آخر: فالتبادل المتوافق مع AnyConnect الذي ينفّذه ocserv يشبه الوصول البعيد المؤسسي الذي تتوقعه شبكات كثيرة بالفعل. أما SSTP، الذي يأتي مع Windows، فله الخاصية نفسها في منتج مختلف.
على Linux، يحمل خيار -w في SSH وصلة نقطة إلى نقطة داخل جلسة SSH، وهو مفيد حين يكون SSH البروتوكول المسموح الوحيد. وهو الأرخص بين الأربعة إذا كان SSH يعمل أصلًا من تلك الشبكة، والأقل فائدة إن لم يكن كذلك.
ما لا يغيّره أي منها
لا يغيّر أي من هذه ما يمكن للنفق الوصول إليه. فهي لا تجعل عنوانًا محظورًا قابلًا للوصول، ولا تصادق على أحد، ولا تقرر المسارات.
يكلّفك الغلاف مكوّنًا أيضًا. مستمعان وملفا تهيئة يعنيان مكانين للفشل، ويبدوان متطابقين من مقعد المستخدم. احسب ذلك في الميزانية قبل تبنّي واحد. تبقى الجلسة تدفقًا مشفّرًا واحدًا طويل العمر إلى وجهة واحدة، ويبقى حجمها وتوقيتها مرئيين.
شخّص أولًا، ثم اختر
شخّص أولًا إذن. يُجاب عن UDP المُسقَط بوضع TCP، ويُجاب عن بصمة معروفة ببروتوكول مختلف أو بغلاف. واختيار أداة قبل معرفة الحجب هو كيف ينتهي الناس إلى صيانة ثلاث طبقات تفشل كلها للسبب نفسه.
الشبكة التي تسمح بمنافذ الويب فقط تضيّق الخيار إلى بروتوكول قائم على TLS على المنفذ 443. وتطبيق الثلاثة دفعة واحدة يعطيك كومة لا يستطيع أحد تصحيح أخطائها، لذا غيّر شيئًا واحدًا وأعد اختبار التدفق نفسه.
إذا لم ينطبق أي منها، فالإجابة الدقيقة أن هذه الشبكة لن تحمل نفقًا لك. وهذا استنتاج لا فشل جهد. وتجريب خيارات أكثر لا يعكس قرارًا سياسيًا اتُّخذ في مكان أعلى.
ثمة حد يقف أمام كل ذلك. إذن تشغيل نفق على شبكة شخص آخر مسألة سياسة، تُقرر بمعزل عن كون الآلية تعمل. هذه الوقائع تشرح ما يراه المراقب، ولا تمنح إذنًا.