الوقت الموثوق به: كيف يثبت الطابع الزمني وقت الحدوث
Spec: RFC 3161RFC 3161Spec: RFC 5816RFC 5816Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5
لمحة سريعة
قسم بعنوان «لمحة سريعة»يجيب الطابع الزمني عن سؤال واحد، بسيط في ظاهره وزلق على نحو مفاجئ: هل كانت هذه البيانات موجودة بعدُ؟ لا من صنعها، ولا ما إذا كانت صحيحة — بل فقط أنّ هذه البايتات بعينها، عند لحظة محدّدة، كانت في العالم فعلًا. تبني هذه الصفحة الفكرة من الأساس: ما الذي تفعله سلطة الطوابع الزمنية، وما الذي يحتويه الرمز فعليًّا، ولماذا يصير رقمٌ على ساعة دليلًا.
وهي الرفيق المنطلق من المبادئ الأولى للصفحة المركّزة على المحرّك الطوابع الزمنية والوقت الموثوق به. اقرأ هذه أولًا إذا بدت لك عبارة “الوقت الموثوق به” مصطلحًا غامضًا.
لماذا يهمّ هذا
قسم بعنوان «لماذا يهمّ هذا»ساعة حاسوبك اعترافٌ، لا إثبات. يمكنك ضبطها على أيّ قيمة تشاء، وكذلك يستطيع أيُّ شخص آخر. وفي اللحظة التي يصبح فيها التاريخ مهمًّا لطرف ثانٍ — عقدٌ كان يجب توقيعه قبل موعد نهائي، أو سجلٌّ كان يجب أن يوجد قبل نزاع — تصبح ساعتك أنت عديمة القيمة كدليل، لأنّك تتحكّم بها. وكامل مشكلة الوقت الموثوق به هو إيجاد ساعة لا تستطيع تحريكها.
وهذا ليس شأنًا هامشيًّا. فكل ملف PDF موقَّع طويل العمر يتّكئ عليه. إذ تنتهي صلاحية شهادة التوقيع في النهاية؛ وبعد سنوات، يحتاج المتحقِّق إلى أن يعرف أنّ التوقيع أُنشئ بينما كانت الشهادة لا تزال صالحة. ومن دون سجلٍّ مستقلٍّ لـ”متى”، يبقى ذلك السؤال بلا إجابة صادقة. الوقت الموثوق به هو الأساس الصامت الذي يقوم عليه صرح التواقيع الدائمة بأكمله.
الخلاصة الموجزة
قسم بعنوان «الخلاصة الموجزة»- يثبت الطابع الزمني أنّ جزءًا من البيانات كان موجودًا قبل لحظة معلَنة. وهذا حدٌّ أعلى للعمر، لا أكثر.
- يُنتجه طرف ثالث، هو سلطة الطوابع الزمنية (TSA)، تثق بساعتها تحديدًا لأنّها ليست ساعتك.
- لا ترى الـTSA بياناتك أبدًا. فهي توقّع تجزئةً لها، مربوطةً بقيمة وقت، وتعيد رمزًا موقَّعًا صغيرًا.
- يثبت الرمز ثلاثة أمور معًا: أنّ البيانات هي البيانات (تطابق التجزئة)، وأنّ الوقت هو وقت الـTSA (توقيعها)، وأنّ الرد يطابق الطلب الذي أرسلته (الـnonce الذي تعيده صدًى، حمايةً من إعادة تشغيل استجابة أقدم).
- وهو لا يثبت من كتب البيانات، ولا أنّ البيانات صحيحة، ولا اللحظة الدقيقة للإنشاء. فقط: ليس بعد هذا الوقت.
- تتدفّق الثقة إلى الـTSA. والـTSA الموثوقة عمومًا تكفي لأغلب السجلّات؛ أمّا الـTSA المؤهَّلة وفق eIDAS فتحمل افتراضًا قانونيًّا في الاتحاد الأوروبي.
كيف يتعامل NextPDF مع ذلك
قسم بعنوان «كيف يتعامل NextPDF مع ذلك»ابدأ بالحيلة التي تقع في صميم كل شيء. أنت تريد من غريب أن يشهد على متى كانت بياناتك موجودة، لكنك لا تستطيع أن تُريه البيانات — فقد تكون سرّية، وهي على أيّ حال قد تكون ضخمة. لذا فأنت لا تفعل. بل تحسب تجزئةً: بصمةً قصيرة ثابتة الطول تتغيّر تمامًا إذا تغيّر ولو بايت واحد من الأصل، ولا يمكن استرجاع الأصل منها. ترسل البصمة، لا الملف.
تأخذ الـTSA تلك البصمة، وتُرفق بها وقتها الجاري الخاص، وتوقّع الزوج بمفتاحها الخاص، وتعيد رمز طابع زمني (Spec: RFC 3161, §2.1RFC 3161 §2.1). والرمز هو الربط مجعولًا دائمًا: هذه البصمة، عند هذا الوقت، بشهادتي. ولأنّ الرمز موقَّع، لا يستطيع أحد — ولا حتى الـTSA بعد ذلك — تغيير الوقت من دون كسر التوقيع. ولأنّه يحمل بصمتك، فهو عديم الفائدة لأيّ ملف آخر. ولأنّ الطلب يتضمّن nonce عشوائيًّا جديدًا تعيده الـTSA صدًى من دون تغيير، يمكنك أن تعرف أنّ الرد يقابل هذا الطلب بعينه وأنّه ليس إعادة تشغيل لاستجابة أقدم — فالـnonce يشهد للحداثة، لا لهويّة من سأل (Spec: RFC 3161, §2.4.2RFC 3161 §2.4.2).
تخيّل ختمًا من الشمع مضغوطًا فوق رسالة مطويّة. الختم لا يقرأ الرسالة؛ بل يثبت فقط أنّ الرسالة كانت كاملةً وحاضرةً حين ضُغط الختم. الطابع الزمني ختمٌ تضغطه ساعة لا تملكها، فوق بصمةٍ لبياناتك.
- Fingerprint the dataCompute a one-way hash of the file or the signature value. The data itself never leaves your hands.
- Ask the authoritySend the hash and a fresh random nonce to the Time-Stamp Authority.
- The TSA seals a timeIt signs the hash bound to its own clock and echoes your nonce, producing a small signed token.
- Store the tokenFor a PDF, the token is placed inside the file so the proof travels with the document.
- Verify laterAnyone who trusts the TSA can check the token: its signature against the TSA certificate, the matching hash, the echoed nonce, and the time — then concludes an upper bound on age.
في ملف PDF، تلبس هذه الآليّة نفسها قبّعتين. الطابع الزمني للتوقيع يختم متى طُبّق التوقيع، بوضع طابع زمني على قيمة التوقيع. أمّا الطابع الزمني للمستند فيختم متى وُجد الملف بأكمله، بحساب تجزئة كامل ملف PDF (مستثنيًا الموضع المخصَّص الذي سيشغله الرمز) وتخزين الرمز المُعاد في ذلك الموضع (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5). والنوع الثاني هو ما يجدّده التوقيع الأرشيفي الطويل العمر عبر السنين ليُبقي ثقته حديثة.
تفصيلٌ حديثٌ واحد جدير بالمعرفة: كانت صيغة طابع زمني أقدم تثبّت نفسها على خوارزمية تجزئة واحدة لتسمية شهادة الـTSA الخاصة. أمّا الملف التعريفي المحدَّث فيتيح للرمز أن يُسمّي شهادته بتجزئة حديثة بدلًا من ذلك (Spec: RFC 5816, §2.1RFC 5816 §2.1)، فلا يرث الوقت الموثوق به بهدوء تشفير الأمس.
مثال عملي
قسم بعنوان «مثال عملي»أنت لا تركّب رمزًا يدويًّا، ولا ينبغي أن ترغب في ذلك. الشيء الجدير بالفهم هو منفذ الثقة: أيّ ساعة تختار أن تصدّق. في NextPDF، يجعل طلبُ مستوى توقيعٍ يحتاج إلى وقت موثوق به ذلك الاختيار صريحًا بدلًا من ضمنيّ.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// A baseline signature trusts only the signer's own clock.$baseline = SignatureLevel::PAdES_B_B;$baseline->requiresTimestamp(); // false → no third party vouches for "when"
// Stepping up to B-T means a Time-Stamp Authority must be supplied:// from here on, "when" is attested by a clock you do not control.$timestamped = SignatureLevel::PAdES_B_T;$timestamped->requiresTimestamp(); // true → a TSA is now part of your trust model
// The decision is now visible at the call site, not buried in a default.// Choosing the TSA is choosing whose time becomes your evidence.ليست العبرة من المثال هي الـAPI. بل هي أنّ سؤال “هل لديّ وقت موثوق به؟” حقيقةٌ بنعم أو لا حول مستندك، يحدّدها ما إذا كانت الـTSA في الحلقة — والمحرّك يرفض أن يدع تلك الحقيقة غامضة.
مفهوم خاطئ شائع
قسم بعنوان «مفهوم خاطئ شائع»الفخّ هو قراءة الطابع الزمني على أنه “أُنشئ هذا عند الساعة 14:32.” فهو لا يقول شيئًا من هذا القبيل. بل يقول “وُجد هذا في موعد لا يتجاوز الساعة 14:32.” والفرق هو جوهر المسألة كلها. الطابع الزمني حدٌّ أعلى، لا حدٌّ أدنى أبدًا ولا لحظة دقيقة. فقد تكون بياناتك موجودة سنوات قبل أن تتفرّغ لوضع طابع زمني عليها؛ والرمز صامت عن ذلك. فهو يرسم خطًّا واحدًا ويقول: ليس بعد هنا.
ومفهوم خاطئ ثانٍ أكثر كلفةً: أنّ الطابع الزمني يثبت أنّ مستندك أصيل أو صحيح. فهو لا يثبت أيًّا منهما. إنّه غير مكترث بالمعنى. فالكذبة الموقَّعة بطابع زمني مثاليّ تظل كذبة — قديمةً الآن على نحو قابل للإثبات. الأصالة تأتي من التوقيع الذي يقول من؛ والصدق يأتي من العالم. أمّا الطابع الزمني فلا يتحدّث أبدًا إلا عن متى.
الحدود والقيود
قسم بعنوان «الحدود والقيود»مدى الطابع الزمني يتوقّف تمامًا عند حدود نموذج ثقته. فهو يثبت حدًّا أعلى للعمر، وذلك فقط، وفقط إن وثقت بالسلطة التي ختمته.
ثمة طبقتان من السلطة جديرتان بالتمييز. الـTSA الموثوقة عمومًا تتسلسل إلى شهادة تقبلها برمجياتك أصلًا؛ فرموزها قابلة للتحقّق على نطاق واسع وملائمة لأغلب السجلّات. أمّا الـTSA المؤهَّلة وفق eIDAS فهي مزوّد خاضع للإشراف على قائمة موثوقة في الاتحاد الأوروبي، والطابع الزمني الإلكتروني المؤهَّل يحمل افتراضًا قانونيًّا بدقّة تاريخه وسلامة البيانات — افتراضًا لا يحمله الطابع الزمني العاديّ (Spec: eIDAS, Art. 41eIDAS Art. 41). والاختيار بينهما سؤالٌ عن الوزن الإثباتيّ الذي تحتاجه، لا عن كيفية عمل البايتات؛ فالتشفير هو نفسه.
كما يرث الطابع الزمني عمر مراسي ثقته الخاصة. فشهادة الـTSA قد تنتهي صلاحيتها أو تُلغى، وخوارزمية التجزئة التي استخدمتها قد تتقادم. ولذلك تحديدًا لا تضع المستندات الطويلة العمر طابعًا زمنيًّا واحدًا وتمضي بعيدًا — بل تجدّد، مُراكِمةً طابعًا زمنيًّا جديدًا للمستند فوق الدليل القديم قبل أن يضعف الدليل القديم. وحلقة التجديد تلك موضوعٌ بذاته؛ انظر التحقّق طويل الأمد.
| Edition | Availability |
|---|---|
| Core | يدعم PAdES B-B وB-T. B-B هو التوقيع الأساسيّ بلا طابع زمني؛ وB-T يطلب ويضمّن طابعًا زمنيًّا متحقَّقًا منه على RFC 3161 للتوقيع مقابل TSA يوفّره النشر تختار ساعتها. |
| Pro | يضيف بيانات التحقّق طويل الأمد المضمَّنة (الشهادات، وOCSP، وCRLs) التي يحتاجها B-LT لإبقاء التوقيع قابلًا للتحقّق بعد انتهاء صلاحية شهاداته. |
| Enterprise | يضيف حلقة تجديد B-LTA، فيختم بيانات التحقّق تحت طابع زمني جديد للمستند ويُعيد ختمها قبل أن تضعف الحماية. |
مستندات ذات صلة
قسم بعنوان «مستندات ذات صلة»- الطوابع الزمنية والوقت الموثوق به — الآليّة نفسها على مستوى المحرّك وPAdES، مع تفصيل قواعد التحقّق.
- التحقّق طويل الأمد — كيف يُبقي تجديد طوابع المستند الزمنية التوقيع قابلًا للتحقّق لسنوات.
- كيف يثبت التوقيع من وقّع — نصف “من” من القصة الذي تتركه هذه الصفحة جانبًا.
- شرح التواقيع المؤهَّلة — ما الذي يعنيه “مؤهَّل”، ولماذا تحمل الـTSA المؤهَّلة وزنًا قانونيًّا.
مسرد المصطلحات
قسم بعنوان «مسرد المصطلحات»- سلطة الطوابع الزمنية (TSA) — خدمة مستقلة تُصدِر رموز طوابع زمنية موقَّعة. تثق بساعتها تحديدًا لأنّها ليست ساعتك.
- رمز الطابع الزمني — الكائن الموقَّع الصغير الذي تعيده الـTSA، رابطًا تجزئةً لبياناتك بقيمة وقت (Spec: RFC 3161, §2.1RFC 3161 §2.1).
- التجزئة (بصمة الرسالة) — بصمة قصيرة أحادية الاتجاه للبيانات. توقّع الـTSA هذه، لا البيانات نفسها أبدًا، فيبقى محتواك خاصًّا.
- Nonce — رقم عشوائيّ جديد يُرسَل مع الطلب ويُعاد صدًى من دون تغيير في الرد، يُظهِر أنّ الرمز يقابل ذلك الطلب بعينه وأنّه ليس استجابةً قديمةً معادة التشغيل (يشهد للحداثة، لا لهويّة السائل).
- الحدّ الأعلى — ما يرسّخه الطابع الزمني: أنّ البيانات وُجدت في موعد لا يتجاوز اللحظة المعلَنة. وليس لحظة إنشاء دقيقة أبدًا.
- الطابع الزمني المؤهَّل وفق eIDAS — طابع زمني من مزوّد أوروبيّ خاضع للإشراف يحمل افتراضًا قانونيًّا بدقّة التاريخ وسلامة البيانات.
- الطابع الزمني للمستند — طابع زمني على كامل ملف PDF، يُستخدَم لترسيخ وتجديد أدلّة التحقّق طويل الأمد (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5).