هل أُبطلت شهادة VPN خاطئة؟ خيارات الاسترداد وحدوده
حدّد الجهة المُصدرة والرقم التسلسلي ورمز السبب قبل المساس بمركز الشهادات. الإبطال الدائم وتعليق الشهادة وإيقاف القبول ثلاثة إصلاحات.
أبطل أحدهم شهادة في وحدة تحكم CA، والآن يتعذر على مستخدم الاتصال. أول ما يتبادر إلى الذهن هو البحث عن التراجع، وهو غير موجود في معظم بنى PKI: فالإبطال حقيقة مُعلنة عن رقم تسلسلي، والمسار المدعوم للعودة هو شهادة جديدة، لا سجل معكوس. اتبع الفحوص أدناه بالترتيب، لأن الإصلاح الذي يُسمح لك به يعتمد على رمز السبب وعلى ما إذا كان المفتاح قد كُشف يومًا.
حدّد الشهادة، لا الشخص
تتكرر الأسماء الشائعة. قد يحمل مستخدم أعاد التسجيل في الربع الماضي شهادتين بالاسم الشائع نفسه وبرقمين تسلسليين مختلفين، وإبطال إحداهما يترك الأخرى عاملة. حدّد الكائن الدقيق أولًا:
openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40
دوّن الرقم التسلسلي والجهة المُصدرة وتاريخ الإبطال والسبب المسجل في CRL. ثم تأكد من الأجهزة التي تقدّم ذلك الرقم التسلسلي، لأن الشهادة المُبطلة قد تظل مثبتة على حاسوب محمول وهاتف وموجه احتياطي، والبديل الذي يصل إلى واحد منها فقط ينتج حادثة ثانية.
يفحص سلوكي سريع يؤكد الحالة دون تغيير أي شيء:
openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt
إذا أفاد بأن الشهادة مُبطلة، فالـ CRL والعميل متفقان؛ وإذا تحقق بنجاح، فالعميل الذي بين يديك ليس المُبطل، ويستمر البحث.
تحقق مما إذا كان مركز الشهادات قد استخدم التعليق أو الإبطال الدائم
يعرّف RFC 5280 الرمز certificateHold كحالة مؤقتة، والرمز removeFromCRL كإشارة تحريرها. دورة الحياة تلك حقيقية، لكنها ليست زر تراجع عامًا. وقراءة رمز السبب تخبرك ما إذا كانت الجهة المُصدرة تنوي أصلًا دعم التحرير.
الفخ هو افتراض أن النية المؤقتة تعني سجلًا مؤقتًا. إذا كان قيد CA يحمل keyCompromise أو cessationOfOperation، فالشهادة مُبطلة إبطالًا دائمًا مهما كان ما ينوي الشخص الذي ضغط الزر فعله. وعلى العكس، فالقيد الموسوم certificateHold في CA لا يطبق تحرير التعليق يبقى دائمًا عمليًا، لأن شيئًا لن ينشر التحرير أبدًا.
توضح مراكز الشهادات المبنية على OpenSSL هذا الحد. يقبل الأمر ca قيم -crl_reason بما فيها certificateHold و removeFromCRL، لكنه لا يولّد CRL تفاضلية — وتذكر وثائق OpenSSL CA هذا القيد في مخرجات CRL لديها. إن CRL كاملة تحذف الرقم التسلسلي ببساطة هي نموذج نشر مختلف عن نسخة تفاضلية تقول "هذا القيد محرَّر"، لذا فإن لصق removeFromCRL في CA افتراضية مبنية على OpenSSL لا ينتج التحرير المعرّف بالمعايير.
إذا كان المفتاح قد كُشف، فاستبدله
الشهادة المُبطلة بيان بأن هذا المفتاح قد لا يكون موثوقًا بعد الآن. إذا كان الإبطال صحيحًا في جوهره — ضياع حاسوب محمول، نسخ المفتاح إلى قرص مشترك، لصق المفتاح الخاص في تذكرة — فإن استعادة الشهادة نفسها تعكس قرارًا أمنيًا كان يعمل كما ينبغي.
أصدر زوج مفاتيح جديدًا عبر عملية التسجيل، ووزّع الملف الشخصي الجديد، واترك الرقم التسلسلي القديم مُبطلًا طوال عمره. وحدّث كل ما يثبّت الهوية بالرقم التسلسلي أو البصمة، بما في ذلك قوائم القبول وجرد الأجهزة والمراقبة التي تتوقع شهادة محددة.
حجة الراحة لاستعادة القديمة حقيقية، لكن يجب الرد عليها صراحةً لا بهدوء. "يحتاج المستخدم إلى الوصول اليوم" سبب لتسريع الإصدار، لا سبب لسحب إبطال مفتاح لا تستطيع تفسيره.
إذا كان خطأ إداريًا، فاستبدل تحت السيطرة
حين يكون الإبطال خاطئًا ببساطة ولم يُكشف المفتاح قط، فالإصلاح يظل استبدالًا مضبوطًا لا تحريرًا. استخدم العملية المدعومة من الجهة المُصدرة، وحافظ على الرقم التسلسلي وتاريخ الإصدار، وتجنب الاختصارين المغريين: قلب حرف الحالة في index.txt من R إلى V، وحذف صف الإصدار كي تعيد شهادة جديدة استخدام الرقم التسلسلي.
في CA من OpenSSL تكون قاعدة البيانات مفصولة بعلامات جدولة ويسهل قراءتها خطأً، وهذا ما يجعل التحرير اليدوي مغريًا:
awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt
اقرأه ولا تكتبه. فتعديل الملف يغيّر CRL التالية دون أي أثر تدقيق، وأي نسخة CA ثانية أو نسخة احتياطية لا تزال تحتفظ بالصف الأصلي ستخالفها لاحقًا.
بعد إصدار البديل، انشر CRL جديدة عبر الآلية المعتادة ودع العملاء يلتقطونها. إن إزالة CRL أو تقصير عمرها إلى لا شيء أو تعطيل فحص الإبطال في ملف العميل الشخصي يصلح مستخدمًا واحدًا عبر إضعاف كل إبطال نشرته CA يومًا.
أكّد قبولًا جديدًا واحتفظ بالسجل
اختبر باتصال جديد، لا بالجلسة المفتوحة سابقًا. فقد لا يعيد النفق الحيّ تشغيل فحوص القبول التي يجريها مصافحة جديدة، وتعمل ذاكرات CRL المؤقتة على إبقاء العميل متصلًا حتى يحدّثها. افصل وأعد الاتصال، وأكّد في سجل الخادم أي رقم تسلسلي قُبل.
سجّل ما حدث وهو لا يزال طازجًا: أي رقم تسلسلي أُبطل، ومن أبطلها، وبأي سبب، وأي بديل صدر، ومتى أُعيد نشر CRL. ذلك السجل هو ما يجعل مراجعة الإبطال التالية ممكنة، وهو أيضًا الدليل على أن الخطأ عولج لا أُخفي.
للتعليقات القصيرة مستقبلًا، استخدم آلية إيقاف القبول إن كانت البيئة تملكها — حساب معطّل في طبقة الهوية، أو عضوية مجموعة أُزيلت، أو ملف عميل محتجز. فهذا يفصل قرار السياسة المؤقت عن مسألة ما إذا كانت الشهادة الصادرة لا تزال جديرة بالثقة، وهو بالضبط التمييز الذي ضاع في المرة الأولى.