الخلاصة

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

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

ليس في هذا التسلسل خلل بالضرورة. الخلل الإداري هو إعلان اكتمال انتقال الثقة لمجرد اكتمال تدوير الشهادة.

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

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

ما الذي يثبته الختم الزمني

يبني RFC 3161 البروتوكول حول MessageImprint، وهي معرّف خوارزمية التجزئة وقيمة التجزئة للبيانات. تتحقق سلطة الختم من الخوارزمية والطول، لكنها لا تفحص البرنامج نفسه. يحمل الرمز سياسة ورقماً تسلسلياً فريداً وgenTime، ويوقّع بمفتاح مخصص للختم الزمني.

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

يبقى التحقق عملاً نشطاً. يطلب RFC 3161 فحص حالة الاستجابة وشهادة سلطة الختم والبصمة والخوارزمية والتوقيع وملاءمة التوقيت. ويجسّد SignTool من Microsoft هذا الفصل في أوامر مستقلة هي sign وtimestamp وverify. يستخدم مسار RFC 3161 الخيار /tr للخادم و/td لخوارزمية تجزئة الختم. ويمكن للتحقق فحص سلسلة الشهادة وحالة الإبطال، لا مجرد وجود بنية موقعة.

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

الإبطال يرسم حداً زمنياً

تشمل متطلبات CA/Browser Forum شهادات توقيع الشفرة الموثوقة علناً وسلطات الختم المرتبطة بها. وهي تلزم سلطة الشهادات التي تصدرها بتشغيل خدمة متوافقة مع RFC 3161، والتوصية باستخدامها، ورفض MessageImprint المبني على SHA-1.

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

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

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

المقام الصحيح هو كل الآثار الموزعة

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

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

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

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

حدود الدليل

يحدد RFC 3161 الرمز والتحقق ولا يزكي مزوداً بعينه. ولا توحّد متطلبات CA/Browser Forum كل أنظمة التشغيل. وتثبت وثائق Microsoft السلوك الموثق لـSignTool وAuthenticode وClickOnce، لا سلوك كل بيئة برمجية.

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

المصادر