HTTPS وVPN لا يتحققان من الحزمة التي تثبّتها
التسليم المشفّر يحمي مسارًا لا ناشرًا. قارن ما يتحقق منه apt وdnf5 فعليًا، ثم اعرف أي حدّ فشل قبل أن تلمس المفاتيح.
تفشل إحدى عمليات التحديث، ويأتي الاقتراح في الموضوع على النحو المعتاد: فبما أن الحركة تمرّ عبر VPN، لا بدّ أن التنزيل موثوق، فتُخفَّف عملية التحقق من التوقيع لتجاوز الخطأ. لقد دُمجت فكرتان منفصلتان في جملة واحدة. التشفير يحمي مسارًا بين طرفين؛ أما التحقق فيقرّر ما إذا كانت البايتات قد جاءت من الناشر الذي قصدته. النفق يوفّر الأول ولا يقول شيئًا عن الثاني.
العَرَض عادةً خطأ تحقّق على مضيف واحد، في مستودع واحد، بينما يتحدّث كل شيء آخر بشكل طبيعي. هذا الشكل يدلّ أصلًا على أن مسار الشبكة يعمل وأن الخلاف يتعلّق بالثقة.
ضابطتا تحكّم تجيبان عن سؤالين مختلفين
أمن النقل يجيب عن مَن يوجد في الطرف الآخر من هذا الاتصال وعمّا إذا كان بإمكان أي شخص على المسار قراءته أو تعديله. أما التحقق من الحزمة فيجيب عمّا إذا كانت هذه القطعة قد نُشرت من السلطة التي أعددتها، وعليه أن يصمد عند تنزيلها عبر مرآة لا تتحكّم بها.
هذان السؤالان يتقاطعان عند الحدود فقط. الشهادة الصحيحة على مرآة تثبت أن المرآة هي المرآة؛ لكنها لا تثبت أن المرآة تحمل محتوى ناشر غير معدّل. الحزمة الموقَّعة تثبت أن الناشر وقّعها؛ لكنها لا تخبرك أن الشبكة أوصلت أحدث إصدار أو أن المستودع الذي أشرت إليه هو المستودع الذي وافقت عليه مؤسستك.
نمط الفشل الذي يصنعه الناس بتعطيل الفحوص هو خسارة دائمة للضمانة الثانية، مقابل تنزيل واحد ناجح. وهذه المقايضة لا تُرى حتى يأتي اليوم الذي تهمّ فيه.
ما يتحقق منه apt فعليًا
نموذج APT هو سلسلة أرشيف موثَّقة. البيانات الوصفية للإصدار الموقَّعة تقود عبر مجموع التحقّق إلى فهارس الحزم، وتلك الفهارس تقود عبر مجموع التحقّق إلى ملفات الحزم الفردية. والتحقّق من السلسلة هو ما يجعل المرآة غير موثوقة لكن قابلة للاستخدام: يمكن للمرآة أن تقدّم ما تشاء، وتوقيع البيانات الوصفية هو الذي يقرّر قبول APT له.
وهذا عن قصد ليس مماثلًا لفحص توقيع المشرف على كل حزمة مثبَّتة، والتمييز يفسّر لماذا يُستخدم «الحزمة موقَّعة» و«الأرشيف موثَّق» بالتبادل في تقارير الأعطال وهما يعنيان أمرين مختلفين.
apt-get update
apt-cache policy
apt-config dump | grep -iE 'AllowInsecure|AllowDowngrade'
اقرأ مخرجات التحديث بدلًا من رمز الخروج وحده. يذكر APT المستودع الذي فشلت بياناته الوصفية، وذلك الاسم هو الحدّ الذي يجب فحصه. المستودع المعلَّم كموثوق دون تحقّق من التوقيع، أو تجاوز المستودع غير الآمن، قرار تكوين اتخذه شخص ما ويجب أن يستطيع تفسيره.
الحداثة خاصية منفصلة أيضًا. يمكن أن يكون ملف بيانات وصفية موقَّع بشكل صحيح أقدم من الذي رأيته الأسبوع الماضي، ولهذا تحمل بيانات الإصدار تاريخ انتهاء، ولهذا قد ينتج خلل في الساعة على العميل أعطال تحقّق تشبه مشاكل المفتاح.
ما الذي يفحصه dnf5 بشكل منفصل
جانب RPM يكشف مفتاحين متميزين، والخلط بينهما ينتج الصنف نفسه من الخطأ في الاتجاه الآخر. أحدهما يتحكّم في ما إذا كان يجب أن تحمل ملفات الحزم توقيعًا صالحًا؛ والآخر يتحكّم في ما إذا كان يجب أن تكون البيانات الوصفية للمستودع موقَّعة. يمكن ضبطهما باستقلال، ويمكن للنظام أن يكون صارمًا في أحدهما متسامحًا في الآخر.
dnf5 config-manager --dump 2>/dev/null | grep -iE 'gpgcheck|repo_gpgcheck'
rpm -q --qf '%{NAME} %{SIGPGP:pgpsig}\n' bash
استعلام الحزمة يُظهر كيف تبدو بيانات توقيع النسخة المثبَّتة، وهو فحص واقعي مفيد مقابل ملف تكوين يدّعي الصرامة. وما لا يخبرك به هو السياسة المدعومة للتوزيعة، وهي ما يجب أن تتبعه بدلًا من تعليمة عامة «فعّل GPG» من منتدى.
حيث يختلف المديران، فالاختلاف معماري لا علامة على أن أحدهما أضعف. كلاهما يتحقّق من محتوى الناشر؛ لكنهما يضعان التوقيع في نقطتين مختلفتين في السلسلة.
ما يضيفه النفق وما لا يضيفه
يمكن لـ VPN أن يوفّر مسارًا مطلوبًا، ويُبقي حركة التحديث خارج شبكة وصول غير موثوقة، ويقلّل ما يراه مراقب محلي. هذه فوائد تشغيلية حقيقية، ولا شيء منها هو التحقق من الناشر.
HTTPS يضيف ضمانته الخاصة، وهي أضيق مما تبدو. إنه يتحقّق من طرف TLS الذي اتصلت به. وإن كان ذلك الطرف مرآة، فقد تحقّقت من المرآة لا من محتوى الأرشيف الذي تقدّمه. هذه بالضبط هي الحالة التي وُجدت سلسلة البيانات الوصفية الموقَّعة لمعالجتها.
ولا يَعِد أي من الضابطتين بالتوافر. يمكن للشبكة أن تمنع التسليم، والكائن الموثَّق ليس تلقائيًا الأحدث. استخدم سياسة الحداثة الخاصة بمدير الحزم بدلًا من استنتاجها من وجود أيقونة قفل.
شخّص الحدّ الذي فشل
سمِّ المرحلة قبل تغيير أي شيء: تحليل DNS، أو الوسيط أو المسار، أو هوية طرف TLS، أو توثيق الأرشيف، أو فحوص توقيع الحزمة، أو التثبيت. لكل منها شكل خطأ مميز ومالك مميز.
إصلاح مسار شبكة لا ينبغي أن يتضمّن أبدًا إعلان مفتاح توقيع مجهول موثوقًا، أو تجاهل الشهادات، أو قبول تكوين مستودع لم تطلبه. وإذا دار مفتاح فعلًا، فإن التوزيعة أو مالك المستودع ينشر المفتاح الجديد عبر قناة يمكنك التحقّق منها، وذلك هو التصحيح الذي يجب تطبيقه.
اكتب أي حدّ فشل ومن يملكه. سيكون عطل التحديث التالي عند حدّ مختلف، ووجود القائمة يجعل التشخيص خمس دقائق بدلًا من جدال آخر حول ما إذا كان النفق يجعل التحديثات آمنة.