تُدمج ثلاثة أطراف مراقبة في سؤال واحد كلما سأل أحدهم هل يخفي الـ VPN حركته: الشبكة المتصل بها، والجهاز الذي بين يديه، ومشغّل النفق. كل واحد منها يعرف شيئًا مختلفًا، والنفق يغيّر كل واحد من تلك الآراء بطريقة مختلفة. من المفيد العمل في الاتجاه المعاكس والبدء من الادعاء المطروح، لأن الادعاء هو الشيء الذي يجب أن يصمد أمام التدقيق. قرّر أي ادعاء تحتاج، ثم قارن الأدوات به.

الادعاء الأول: لا أحد يستطيع قراءة الحركة

ابدأ بأضيق ادعاء: أن تبقى الحمولة غير مقروءة. المراقب السلبي على المسار لا يستطيع النظر داخل جلسة TLS، لذا يضيف النفق القليل إلى موقع يستخدم HTTPS بالفعل، ولا يضيف شيئًا ضد الطرفين. الطرف الذي يكسر هذا الادعاء هو من يتحكم في الجهاز، لأن وكيل الفحص يُنهي الاتصال ويعيد توقيعه بجذر يثق به الجهاز مسبقًا. لهذا يظهر القفل ما دامت سلسلة الشهادات تحمل اسم المؤسسة التي نصّبت الجذر.

security find-certificate -a -p /Library/Keychains/System.keychain | openssl crl2pkcs7 -nocrl -certfile /dev/stdin | openssl pkcs7 -noout -print_certs | grep subject
certutil -store Root

على macOS تطبع تلك السلسلة سطر موضوع واحد لكل شهادة في حلقة مفاتيح الجهاز، دون فتح أي نافذة؛ وعلى Windows يسرد certutil -store Root المخزن نفسه الذي يعرضه certlm.msc رسوميًا. الجذر الذي ينتمي إلى مدرسة أو صاحب عمل أو منتج أمن شبكات هو الإدخال الذي تبحث عنه. العثور على واحد يثبت فقط أن الاعتراض ممكن، لا أنه يحدث.

ما يجوز لك فعله بشأن ذلك مسألة سياسة لا مسألة تقنية. إزالة ملف تعريف أو جذر فحص من عتاد لا تملكه تنتهك عادة اتفاقية الاستخدام المقبول، ونظام الإدارة يميل إلى ملاحظة ذلك وإعادة تطبيقه، لذا فشرط ألا يقرأ مالك الجهاز حركتك يحتاج جهازًا آخر لا إعدادًا آخر.

الادعاء الثاني: لا أحد يستطيع رؤية أين تذهب

الوجهة هي الادعاء الأصعب، لأن إفصاحين يحدثان قبل تحميل أي صفحة. يذهب الاستعلام إلى أي خادم أسماء مهيّأ النظام لاستخدامه، والجواب مرئي للشبكة التي تحمله. ثم يحمل مصافحة TLS اسم الخادم المطلوب صريحًا ما لم يكن Encrypted Client Hello مدعومًا في الطرفين. لا يتضمن أي من الإفصاحين فك تشفير، لذا لا أثر للنفق على أي منهما.

resolvectl status | grep -A2 "Link"
nslookup example.com

أي خادم أسماء مستخدم فعليًا هو ما يحدد الانكشاف، ويمكن قياسه بدل الجدال حوله. على Linux يطبع resolvectl status خوادم DNS لكل رابط، ويخبرك خرجه هل يجيب خادم الموقع أم الخادم المدفوع. ويجيب Windows على السؤال نفسه بـ nslookup example.com، أول كتلة في خرجه هي خادم DNS الذي أجاب.

عندما يستعلم الحاسوب المحمول من خادم الموقع قبل أن يقوم النفق، أو يصل ملف التعريف دون خادم بديل فيبقى القديم مستخدمًا، ما زال المسؤول يجمع أسماء المضيفين دون فك تشفير أي شيء. الـ DNS المشفّر في المتصفح إما يتجاوز الخادم المدفوع وإما يُحجب كليًا ويفشل مغلقًا. ويرى مشغّل المخرج الأسماء نفسها من جهته. لذا تغيير خادم الأسماء لا ينقل ذلك الإفصاح بعيدًا عن مزوّد النفق.

الادعاء الثالث: لا أحد يعرف أنك اتصلت

الادعاء الثالث هو الذي لا يستطيع النفق تحمّله، لأن الحزم ما زالت تعبر الشبكة المحلية. تلك الشبكة تعرف عنوان الطرف الآخر، والحجم التقريبي، والتوقيت، ووجود جلسة مشفّرة واحدة طويلة العمر، وهذا يكفي للحجب أو الخنق أو مجرد الملاحظة. الجدار الناري الذي لا يستطيع قراءة حزمة يمكنه مع ذلك أن يرفض تمريرها. أن تكون مراقبًا ليس كأن لا يراقبك أحد: لقد نقلت المراقب ولم تحذفه.

أي تطبيق يتجاهل المسار المدفوع، وكذلك التنفق المنقسم، ينتجان تدفقات خارج النفق تبدو تمامًا كما كانت قبلًا. هذه هي التدفقات التي يلاحظها المراقب الحذر أولًا، وجدول مسارات العميل يبيّن أي الوجهات مستبعدة.

المشغّل في الطرف الآخر يحمل الصورة المعاكسة لذلك المنظر: عنوان المخرج، والتوقيت، والحجم، وعادة أسماء المواقع. يصبح مزوّدك هو الطرف صاحب نقطة الرؤية، وهذا مقايضة مختلفة عن الاختفاء. اختيار مزوّد تثق به قرار حقيقي؛ أما وصف النتيجة بأنها غير مراقبة فليس كذلك.

قرّر أي ادعاء تحتاج

اكتب المتطلب في سطر واحد قبل أن تلمس أي عميل: إخفاء المحتوى، أو إخفاء الوجهات، أو إخفاء ما إذا كنت قد اتصلت أصلًا. المحتوى يتكفل به HTTPS مع النفق، أما الوجهات فتتطلب خادم أسماء ومسارًا يتجاوزان تجهيزات الموقع بالكامل.

المتطلب الثالث هو المربك، لأن شيئًا ما زال متصلًا بشكل مرئي في مكان ما، مشفّرًا أو غير مشفّر. لا إعداد عميل يغيّر ذلك. وإذا تباعد المتطلب والسياسة، فإن تلك الفجوة مكانها محادثة مع من يملك السياسة، لا خيار في العميل. والشخص القادر على الإجابة هو من كتب السياسة.

مقالات ذات صلة