الطوابع الزمنية والوقت الموثوق به
Spec: RFC 3161 RFC 3161 Spec: RFC 5816 RFC 5816 Spec: ISO 32000-2, §12.8.5 ISO 32000-2 §12.8.5 Evidence: Standard-backed
لمحة سريعة
قسم بعنوان «لمحة سريعة»لا يسجّل الطابع الزمني “متى وُقّع هذا المستند.” بل يثبت أمرًا أضيق نطاقًا وأقوى دلالة: أنّ جزءًا محدّدًا من البيانات كان موجودًا قبل لحظة محدّدة، بشهادة طرف غير الموقِّع. وهذا التمييز هو جوهر قيمة الوقت الموثوق به، وكثيرًا ما يُساء فهمه.
لماذا يهمّ هذا
قسم بعنوان «لماذا يهمّ هذا»وقت التوقيع المضمَّن في التوقيع ليس إلا ما ادّعاه حاسوب الموقِّع. وقد تكون الساعة خاطئة عن غير قصد أو عن عمد. وإذا كان الدليل الوحيد على متى هو تأكيد الموقِّع نفسه، فيمكنه تقديم تاريخ المستند أو تأخيره كما يشاء. ويمكن أن تبدو شهادة أُلغيت بالأمس كأنها وقّعت العام الماضي. إنّ “متى” ليست تفصيلًا هامشيًا؛ فهي التي تحدّد ما إذا كان التوقيع الذي أُنشئ بشهادة منتهية الصلاحية الآن أو مُلغاة الآن لا يزال معتدًّا به. وإذا كان الوقت الموثوق به خاطئًا، انهارت كل حجّة صلاحية طويلة الأمد مبنية عليه.
الخلاصة الموجزة
قسم بعنوان «الخلاصة الموجزة»- وقت التوقيع الذي يقرّره الموقِّع نفسه هو ادّعاء، وليس دليلًا. ومن السهل تزويره.
- الطابع الزمني المتوافق مع RFC 3161 هو رمز موقَّع صادر عن سلطة طوابع زمنية (TSA) يربط تجزئة بياناتك بـوقت الـTSA.
- وما يثبته دقيق: أنّ البيانات كانت موجودة قبل الوقت المعلَن من الـTSA. لا لحظة الإنشاء بالضبط — بل حدٌّ أعلى.
- يعيد الرمز صدى العدد المستخدَم مرة واحدة (nonce) وبصمة الرسالة (message imprint) الخاصّين بك، فلا يمكن أن يكون إعادة تشغيل، ولا أن يتعلّق ببيانات مختلفة.
- يطبّق الطابع الزمني للمستند الآليّة نفسها على ملف PDF بأكمله، فيرسّخ كل ما يسبقه — التوقيع وأدلّة التحقّق المضمَّنة فيه — في لحظة موثوقة.
كيف يتعامل NextPDF مع ذلك
قسم بعنوان «كيف يتعامل NextPDF مع ذلك»يتعامل NextPDF مع الطابع الزمني بوصفه شيئًا يجب التحقّق منه، لا مجرّد شيء تحصل عليه. فطلب الرمز هو الجزء الأصغر من العمل. وموقف المحرّك واضح: الرمز غير المتحقَّق منه ليس دليلًا.
عندما يضع المحرّك طابعًا زمنيًا على توقيع، يرسل إلى الـTSA تجزئة للبيانات وعددًا عشوائيًا جديدًا يُستخدَم مرة واحدة (nonce)، ولا يرسل البيانات نفسها أبدًا. ثم يُفحَص الرمز المُعاد وفق المجموعة الكاملة من الخصائص التي تجعله ذا معنى: أن تكون حالة السلطة “granted”، وأن يطابق الـ nonce في الرمز القيمة التي أُرسلت، وأن تطابق بصمة الرسالة في الرمز التجزئة المُرسلة، وأن يجتاز التوقيع التشفيري للرمز نفسه التحقّق، وأن يكون نوع محتوى الرمز هو نوع الطابع الزمني، وأن يقع الوقت المعلَن ضمن حدّ تسامح مقبول. وأيّ تباين يعني إخفاقًا صارمًا مع سبب مصنَّف. ولا يوجد مسار من نوع “يبدو قريبًا بما يكفي”. ويتّبع الطابع الزمني للمستند القاعدة نفسها، لكن على الملف بأكمله بدلًا من قيمة توقيع واحد.
- Hash the data Only a digest of the signature value (or the whole PDF, for a document timestamp) is computed — never the data itself.
- Send hash + nonce The digest and a fresh random nonce go to the Time-Stamp Authority.
- TSA returns a token A signed token binds the digest to the TSA’s genTime and echoes the nonce.
- Verify the token Status granted, nonce matches, message imprint matches, token signature verifies, time within tolerance.
- Conclude an upper bound The data provably existed before the TSA’s stated time — attested by a party that is not the signer.
ما تقوله الأدلّة
قسم بعنوان «ما تقوله الأدلّة» Evidence: Standard-backed التعريف دقيق ومحدّد.
Spec: ISO/IEC 18014-2, §3 ISO/IEC 18014-2 §3 يعرّف خدمة الطوابع الزمنية
بأنها الخدمة التي تقدّم دليلًا على أنّ عنصر بيانات كان موجودًا قبل نقطة معيّنة
في الزمن — حدٌّ أعلى، لا لحظة إنشاء.
Spec: ISO/IEC 18014-2, §7 ISO/IEC 18014-2 §7 يعرّف محتوى
TSTInfo الخاص بالرمز: بصمة رسالة (تجزئة بياناتك)، ووقت
التوليد، ورقم تسلسلي، و nonce اختياريًا.
Spec: ISO/IEC 18014-2, §6 ISO/IEC 18014-2 §6 ينصّ على الاستنتاج الذي يجوز
للمتحقِّق استخلاصه عند النجاح: أنّ عنصر البيانات كان موجودًا قبل الوقت المذكور في
الرمز — لا أكثر ولا أقل.
وبالنسبة إلى PDF، يحدّد Spec: ISO 32000-2, §12.8.5 ISO 32000-2 §12.8.5 الطابع الزمني للمستند: يغطّي مدى البايتات الملف بأكمله باستثناء
قيمة Contents، وتُرسَل تلك التجزئة إلى سلطة طوابع زمنية، ويُوضَع
رمز RFC 3161 المُعاد — بصيغته المحدَّثة بموجب Spec: RFC 5816 RFC 5816 — في
Contents. إنه انضباط مدى البايتات نفسه المطبَّق على التوقيع، لكن مطبَّقًا على الزمن
بدلًا من الهوية. و Spec: RFC 6960, §4.4.4 RFC 6960 §4.4.4 يوضّح سبب
أهمية ذلك للديمومة: فالوقت الموثوق به هو ما يتيح للمتحقِّق أن يثبت أنّ
التوقيع كان موثوقًا به يوم إنشائه حتى بعد أن انتهت صلاحية
الشهادة.
يرسل محرّك NextPDF تجزئة و nonce، لا البيانات أبدًا، ويتحقّق من الرمز المُعاد وفق الحالة والـ nonce وبصمة الرسالة وتوقيع الرمز ونوع المحتوى وحدّ التسامح الزمني قبل أن يعدّه دليلًا.
مثال عملي
قسم بعنوان «مثال عملي»لا تركّب رمز طابع زمني يدويًا. فما يهمّ هو موضع الثقة. فالـTSA مكوّن تهيّئه وتحميه، لأنّ وقته يصبح دليلك.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// Asking for any level at or above B-T requires a TSA.$level = SignatureLevel::PAdES_B_T;$level->requiresTimestamp(); // true → a Time-Stamp Authority must be supplied
// The TSA endpoint, its transport security, and its trust anchor are// deployment-supplied. The engine sends a hash plus a fresh nonce — never the// document — and verifies the returned token before the signature is accepted.// A token that fails any check (status, nonce, imprint, signature, time)// is a hard error, not a warning.والنقطة المهمة هي أنّ المحرّك يرسل تجزئة، لا المستند، فلا يرى الـTSA محتواك أبدًا. ثم يتحقّق من الاستجابة. والـTSA الذي لا يمكنك المصادقة عليه ليس وقتًا موثوقًا به. إنه مجرّد ساعة أخرى.
مفهوم خاطئ شائع
قسم بعنوان «مفهوم خاطئ شائع»الفخّ هو قراءة الطابع الزمني على أنه “وُقّع هذا تمامًا عند الساعة 14:32 في هذا التاريخ.” فهو ليس ساعة إيقاف لواقعة التوقيع. بل يثبت أنّ البيانات كانت موجودة في موعد لا يتجاوز وقت الـTSA، وهو حدٌّ أعلى يحدّده طرف ثالث. وقد يكون الإنشاء قد حدث في أيّ وقت قبل ذلك. والفخّ الثاني هو افتراض أنّ أيّ خادم طوابع زمنية يمنحك وقتًا موثوقًا به. فالرمز الذي لا يمكنك التحقّق من توقيعه، أو الذي لا تثق بسلطته، لا يثبت شيئًا. إنه ساعة ليس لديك سبب لتصديقها. يأتي الوقت الموثوق به من TSA يمكنك المصادقة عليه ورمز تحقّقت منه، لا من مجرّد طلب رقم من خادم.
الحدود والقيود
قسم بعنوان «الحدود والقيود»يبني NextPDF الطلب، ويرسل تجزئة فقط، ويتحقّق من الرمز المُعاد. لكنه لا يضمن السلطة التي تقف وراءه. إنّ دقّة الـTSA، وصلاحية شهادته نفسها، وجدارته بالثقة، هي خصائص للخدمة ولتهيئة عملية النشر لديك، لا للمحرّك. يربط الطابع الزمني تجزئة بـوقت. ولا يقول شيئًا عن معنى البيانات، أو هوية الموقِّع، أو ما إذا كانت شهادة الموقِّع صالحة. تلك عمليات تحقّق منفصلة يتناولها التحقّق من التوقيع بشكل صحيح. ولا يستطيع المحرّك أن يجعل TSA غير جدير بالثقة جديرًا بها. كما لا تؤكّد هذه الصفحة أيّ وزن قانوني محدّد للطابع الزمني؛ فذلك يتوقّف على حالة الـTSA والولاية القضائية. أمّا كيفية إعادة استخدام الوقت الموثوق به لإبقاء توقيعٍ قابلٍ للتحقّق على مدى عقود، فيتناولها التحقّق طويل الأمد.
يتوافر نمط الطوابع الزمنية حسب الفئة:
| Edition | Availability |
|---|---|
| Core | Not in this edition |
| Pro | PAdES B-T — طابع زمني RFC 3161 متحقَّق منه على قيمة التوقيع، من TSA يوفّره النشر لديك. |
| Enterprise | يضيف الطابع الزمني للمستند المستخدَم في B-LT وB-LTA لترسيخ أدلّة التحقّق المضمَّنة ولتشغيل حلقة التجديد الأرشيفي. |
مستندات ذات صلة
قسم بعنوان «مستندات ذات صلة»- التحقّق طويل الأمد — كيف يختم الطابع الزمني للمستند الأدلّة المضمَّنة ويُجدَّد مع مرور الوقت.
- ملفّات تعريف PAdES الأساسية — موضع الطابع الزمني للتوقيع (B-T) والطابع الزمني للمستند (B-LTA) في تدرّج المستويات.
- شرح التواقيع المؤهَّلة — موضع الطابع الزمني المؤهَّل في صورة الثقة لـeIDAS.
مسرد المصطلحات
قسم بعنوان «مسرد المصطلحات»- الطابع الزمني (RFC 3161) — رمز موقَّع صادر عن TSA يربط تجزئة للبيانات بوقت الـTSA، ويثبت أنّ البيانات كانت موجودة قبل ذلك الوقت.
- سلطة الطوابع الزمنية (TSA) — الخدمة الموثوقة التي تُصدِر رموز الطوابع الزمنية.
TSTInfo— بنية محتوى الرمز: بصمة الرسالة، ووقت التوليد، والرقم التسلسلي، و nonce اختياريًا.- بصمة الرسالة (message imprint) — تجزئة البيانات التي يُوضَع عليها الطابع الزمني، ويُعاد صداها في الرمز.
- العدد المستخدَم مرة واحدة (Nonce) — قيمة عشوائية جديدة تُرسَل مع الطلب ويُعاد صداها في الرمز، فلا يمكن أن تكون الاستجابة إعادة تشغيل.
- الطابع الزمني للمستند — طابع زمني RFC 3161 على ملف PDF بأكمله (بصيغته المحدَّثة بموجب RFC 5816)، يرسّخ التوقيع وأدلّته في لحظة موثوقة.