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

بوابتان، سؤالان

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

الاثنان متكاملان. إسقاط أي منهما يزيل ضابطًا؛ وإضافة أحدهما لا تعوض عن الآخر.

ما يقيّده التثبيت فعليًا

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

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

التثبيت على المنصة إعداد، لا سياسة

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

بما أن الآلية تختلف، يجب كتابة المتطلب لكل منصة. والسياسة التي تقول «ثبّت الشهادة» دون تسمية المنصة غير قابلة للتنفيذ.

التدوير يحدد هل يصمد التثبيت

الجزء الصعب ليس الإصدار الأول، بل تجديد الشهادة بعده. فسياسة ثقة صارمة ترفض مفتاحًا جديدًا شرعيًا بالحزم نفسه الذي ترفض به مفتاح مهاجم.

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

الجهاز المفقود مشكلة ثالثة

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

اختبر أربع علاقات بدلًا من العلاقة الوحيدة التي تراها: الخادم والعملية المقصودين، وحسابًا يجب رفضه، وهوية خادم يجب رفضها، والتدوير المخطط. وVPN عامل يمارس الأولى فقط. اكتب ما أثبته كل اختبار، لأن الشخص التالي سيفترض أن نفقًا أخضر يعني أن الأربعة نجحت.

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