التحقّق طويل الأمد
Spec: ETSI EN 319 142-1 ETSI EN 319 142-1 Spec: RFC 6960 RFC 6960 Spec: ISO 32000-2, §12.8.4 ISO 32000-2 §12.8.4 Evidence: Standard-backed
لمحة سريعة
قسم بعنوان «لمحة سريعة»يستند التوقيع الذي تتحقّق منه اليوم إلى وقائع لا تدوم: شهادة تنتهي صلاحيّتها، وخوادم سحب تتوقّف عن العمل، وخوارزميات تجزئة تضعف. يحفظ التحقّق طويل الأمد الأدلّة داخل المستند ما دامت لا تزال قابلة للحصول عليها. وعندها يمكن فحص التوقيع بعد سنوات من دون الحاجة إلى سؤال أيّ جهة عن أيّ شيء.
لماذا يهمّ هذا
قسم بعنوان «لماذا يهمّ هذا»الخاصّية الخطِرة في التوقيع الرقمي أنّه قد يفقد قابليته للتحقّق بصمت مع أنّه يبدو كما هو. لا يتغيّر شيء في الملف. قد تتوقّف سلطة الشهادات عن الإجابة عن الأسئلة المرتبطة بشهادة انتهت صلاحيّتها منذ زمن طويل. والمدقّق الذي كان يحتاج إلى تلك الإجابة لم يعد يستطيع الحصول عليها. والعقد الذي كان صالحاً بلا أدنى شكّ يوم توقيعه قد يصبح “تعذّر التحديد” بعد عقد من الزمن. وبعد عقد من الزمن هو بالضبط الوقت الذي يُرجَّح فيه نشوب نزاع وتبلغ فيه المخاطر أعلى مستوياتها. إذا كان التزام الاحتفاظ لديك يُقاس بالسنوات، فتوقيع بلا تحقّق طويل الأمد هو خطر لا يظهر إلّا لاحقاً.
الخلاصة الموجزة
قسم بعنوان «الخلاصة الموجزة»- تعتمد صلاحيّة التوقيع على وقائع خارجيّة حسّاسة للوقت: نافذة صلاحيّة الشهادة، وحالة السحب من خادم.
- تصبح تلك الوقائع غير قابلة للحصول عليها بعد انتهاء صلاحيّة الشهادة — فالسلطات ليست ملزَمة بالإجابة إلى الأبد.
- يلتقط التحقّق طويل الأمد الأدلّة وقت التوقيع — الشهادات، واستجابات OCSP، وقوائم CRL — ويُضمِّنها في مخزن أمان المستند (DSS) الخاصّ بالمستند.
- ثمّ يُثبت ختمٌ زمني للمستند أنّ الأدلّة نفسها كانت موجودة وصالحة في تلك اللحظة، ويمكن تجديده قبل أن تضعف حمايته هو نفسه.
- والنتيجة: يحمل المستند دليله بنفسه. لم يعد التحقّق يعتمد على بقاء خادم ما متاحاً.
كيف يتعامل NextPDF معه
قسم بعنوان «كيف يتعامل NextPDF معه»المبدأ هو: “اجمع الدليل ما دمت قادراً، ثمّ اختمه.” عندما يُنتج NextPDF توقيعاً طويل الأمد، يجمع سلسلة الشهادات واستجابات السحب التي تُثبت أنّ شهادة التوقيع كانت سليمة في لحظة التوقيع. ويكتبها في DSS كقيم مُضمَّنة لا كروابط. ثمّ يضيف ختماً زمنياً للمستند فوق كلّ ذلك. القيم المُضمَّنة هي جوهر المسألة. أمّا الرابط إلى خادم سحب فهو بالضبط الاعتماد الذي وُجد التحقّق طويل الأمد لإزالته.
تُكتب الطبقات طويلة الأمد كمراجعات مستند منفصلة، وتُلحَق من دون المساس بنطاق البايتات الخاصّ بالتوقيع الأصلي. ويظلّ التوقيع الأوّل قابلاً للتحقّق. تُضاف المادّة طويلة الأمد حوله، لا داخله. وعندما تتقادم حماية الختم الزمني للمستند نفسه، يتيح المستوى الأرشيفي إضافة ختم زمني آخر فوقه. والنتيجة سلسلة يضمن فيها كلّ ختم زمني كلّ ما تحته.
- Sign The signature and its signed attributes are written (B-B).
- Capture evidence Certificate chain, OCSP responses, and CRLs proving the certificate was valid at signing time are gathered.
- Embed in the DSS The evidence is written into the document as embedded values, not links (B-LT).
- Seal with a document timestamp A timestamp proves the embedded evidence existed and was valid at that moment (B-LTA).
- Renew before it weakens Another timestamp is layered before the previous one’s protection ages, extending verifiability.
ماذا تقول الأدلّة
قسم بعنوان «ماذا تقول الأدلّة»Evidence: Standard-backed تُذكر الحاجة بوضوح في Spec: RFC 6960, §4.4.4 RFC 6960 §4.4.4 : يمكن لحالة السحب أن تبقى أطول من نافذة صلاحيّة الشهادة، وتمنح آليّة قطع الأرشفة المدقّقين سياقاً تاريخياً لتقرير ما إذا كان التوقيع موثوقاً في الوقت الذي أُنتج فيه، حتّى بعد انتهاء صلاحيّة الشهادة المستخدَمة في التحقّق. ولهذا يوجد التحقّق طويل الأمد. تبقى إجابات السحب متاحة لمدة محدودة فقط، لذا التقطها قبل أن تنقضي تلك المدة.
تعود الآليّة إلى ETSI. Spec: ETSI EN 319 142-2, §5.5 ETSI EN 319 142-2 §5.5 ينصّ على أنّ السلوك طويل الأمد يتطلّب مخزن أمان مستند يحمل بيانات التحقّق كقيم، يليه ختم زمني للمستند. Spec: ISO 32000-2, §12.8.3.3 ISO 32000-2 §12.8.3.3 يربط الأمر معاً: PAdES هو CAdES CMS مُدمَجاً مع التحقّق طويل الأمد (§12.8.4) و قاموس الختم الزمني للمستند (§12.8.5). كما أنّ Spec: ETSI EN 319 142-2, §6.3.2.2 ETSI EN 319 142-2 §6.3.2.2 هو سبب وضع الختم الزمني مبكّراً: ينبغي تطبيقه مباشرةً بعد التوقيع ليكون الوقت المسجَّل أقرب ما يكون إلى الوقت الفعلي.
يطبّق محرّك NextPDF ذلك عبر المستويين B-LT وB-LTA: قيم سحب مُضمَّنة في DSS، وختم زمني للمستند يختمها، وحلقة أرشفة تُجدِّد الختم — مكتوبةً كمراجعات مُلحَقة تترك نطاق البايتات الخاصّ بالتوقيع الأصلي سليماً.
مثال عملي
قسم بعنوان «مثال عملي»المستوى الذي تختاره هو القرار طويل الأمد. تجعل واجهة API المتطلّب صريحاً قبل أن تلتزم به.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// B-LT embeds validation material; B-LTA adds the renewable seal.$level = SignatureLevel::PAdES_B_LTA;
$level->requiresDss(); // true → certificates + revocation embedded$level->requiresDocumentTimestamp(); // true → a document timestamp seals the DSS
// The high-level seam produces the level end to end: it embeds the DSS// dictionary and appends the DocTimeStamp revision in one call.$document ->setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient) ->save();
// The engine produces this only if the deployment can supply what it needs// (a TSA, and revocation data reachable at signing time). It fails with an// actionable error rather than embedding nothing and reporting success.المسار عالي المستوى المعروض أعلاه — setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save() — أصبح الآن موصولاً من طرف إلى طرف؛ كانت الإصدارات السابقة تكشف تعداد المستوى ولكن لا تكشف المسار الذي يُنتجه. ما تكتبه هو البنية: قاموس DSS ومراجعة DocTimeStamp الموصوفة في Spec: ISO 32000-2, §12.8 ISO 32000-2 §12.8 . هذه البنية ليست مُختبَرة لمطابقة الملف الشخصي، ولا يؤكّد المسار أيّ شيء بشأن مطابقة ETSI أو الصلاحيّة القانونيّة. يتطلّب المستويان B-LT وB-LTA كلاًّ من Pro وEnterprise؛ وعلى أيّ مستوى آخر يفشل المسار فشلاً مغلقاً بدلاً من إنتاج نتيجة جزئيّة. كما يفشل المستند المُشفَّر فشلاً مغلقاً بالنسبة إلى B-LT وB-LTA؛ فلا يُكتب DSS ولا الختم الزمني للمستند فوق محتوى مُشفَّر، لأنّ ذلك سيكتبهما على نحوٍ غير صحيح.
لا يمكن استدراك هذا الاختيار لاحقاً بتكلفة زهيدة. يجب التقاط أدلّة السحب وقت التوقيع، ما دامت الإجابات لا تزال موجودة. واتّخاذ قرار “سنضيف التحقّق طويل الأمد لاحقاً” يعني عادةً اتّخاذ قرار ضمني: “لن تكون لدينا الأدلّة عندما نحتاج إليها.”
مفهوم خاطئ شائع
قسم بعنوان «مفهوم خاطئ شائع»المفهوم الخاطئ هو: “التحقّق طويل الأمد يجعل التوقيع صالحاً إلى الأبد.” هو لا يجعل أيّ شيء صالحاً. بل يحفظ القدرة على الفحص لصلاحيّة تأكّدت وقت التوقيع. إذا كانت الشهادة قد سُحبت بالفعل عند توقيع المستند، فإنّ تضمين تلك الواقعة لا يُنقذ التوقيع، بل يوثّق الفشل بشكل دائم. التحقّق طويل الأمد آليّة لحفظ الدليل، لا آليّة لإنشائه. والمفهوم الخاطئ الثاني هو الاعتقاد بأنّ B-LTA خيار “اضبطه وانسَه.” يحمي الختم الزمني الأرشيفي بخوارزميات تتقادم هي نفسها. ومن دون تجديد، يرث ملفّ B-LTA في النهاية الهشاشة نفسها التي كان يُفترض أن يُفلت منها.
الحدود والقيود
قسم بعنوان «الحدود والقيود»يجمع NextPDF الأدلّة ويُضمِّنها ويكتب الأختام الزمنيّة. لكنه لا يملك صحّة الأدلّة ولا جدول تجديدها. فاستجابات السحب لا تكون أفضل من السلطة التي أصدرتها ولا من اللحظة التي جُلبت فيها. والاتّصال بتلك السلطة وقت التوقيع مسؤوليّة نشر. ولا يمكن للمحرّك أن يختلق إجابة سحب لم يتمكّن من الحصول عليها. والتجديد الأرشيفي عمليّة تشغيليّة. يمكن للمحرّك أن يضيف ختماً زمنياً آخر، لكنّه لا يمكنه أن يقرّر متى تتطلّبه سياسة الاحتفاظ لديك. أمّا ما إذا كانت البيانات المُضمَّنة ستُعَدّ كافية لاحقاً فهو سؤال متعلّق بالمدقّق والسياسة، يُعالَج في التحقّق من توقيع على الوجه الصحيح. لا تؤكّد هذه الصفحة المقبوليّة القانونيّة، التي تعتمد على الولاية القضائيّة والموقِّع والشهادة.
توفّر التحقّق طويل الأمد بحسب المستوى:
| Edition | Availability |
|---|---|
| Core | Not in this edition |
| Pro | PAdES B-T — ختم زمني موثوق على قيمة التوقيع — متوفّر، لكن مادّة التحقّق المُضمَّنة (DSS) ليست جزءاً من B-T. |
| Enterprise | PAdES B-LT وB-LTA: قيم شهادة وسحب مُضمَّنة في DSS، والختم الزمني للمستند الذي يختمها، وحلقة الأرشفة القابلة للتجديد. |
مستندات ذات صلة
قسم بعنوان «مستندات ذات صلة»- الملفّات الأساسيّة لـPAdES — موضع B-LT وB-LTA في تدرّج المستويات وما يضيفه كلّ منهما.
- الأختام الزمنيّة والوقت الموثوق — الختم الزمني للمستند الذي يختم الأدلّة المُضمَّنة.
- التحقّق من توقيع على الوجه الصحيح — كيف يستخدم المدقّق المادّة المُضمَّنة، ولماذا لا تكفي كلمة “صالح” وحدها.
- سير عمل الاتّفاقيّات الموقَّعة — سير العمل الكامل من طرف إلى طرف حيث تُطبَّق مادّة التحقّق طويل الأمد عملياً.
مسرد المصطلحات
قسم بعنوان «مسرد المصطلحات»- التحقّق طويل الأمد (LTV) — تضمين الأدلّة اللازمة للتحقّق من توقيع، كي لا يعتمد التحقّق لاحقاً على خدمات خارجيّة.
- مخزن أمان المستند (DSS) — بنية PDF التي تحمل الشهادات وبيانات السحب المُضمَّنة للتحقّق طويل الأمد.
- استجابة OCSP — بيان موقَّع عن حالة سحب شهادة في لحظة زمنيّة محدّدة (Online Certificate Status Protocol، RFC 6960).
- CRL — قائمة سحب الشهادات (Certificate Revocation List)؛ قائمة موقَّعة بالشهادات المسحوبة.
- الختم الزمني للمستند — ختم زمني وفق RFC 3161 يُطبَّق على المستند بأكمله، ويُثبت أنّ الأدلّة المُضمَّنة كانت موجودة وصالحة في ذلك الوقت.
- حلقة الأرشفة — إضافة ختم زمني جديد للمستند بشكل متكرّر قبل أن تضعف حماية الختم السابق، ممّا يمدّ قابليّة التحقّق.