إعداد TSA
لمحة سريعة
قسم بعنوان «لمحة سريعة»لا يتّصل NextPDF بسلطة طوابع زمنية (TSA) إلا عندما توقّع عند المستوى PAdES B-T أو أعلى. عند B-B لا يوجد طابع زمني ولا اتصال بالشبكة، لذا لا تنطبق هذه الصفحة على توقيع B-B.
كي يعمل B-T جاهزًا فور التثبيت، يَشحن NextPDF سلطة طوابع زمنية افتراضية مدمجة. هذا الافتراضي وسيلة راحة: فهو يتيح نجاح توقيع مختوم زمنيًّا دون أي إعداد إضافي. لكنه ليس موثوقًا علنًا وليس مؤهَّلًا وفق eIDAS، لذا فهو غير مناسب للاستخدام الإنتاجي أو الامتثالي دون اختيار متعمّد. توضّح هذه الصفحة بالضبط ما هو الافتراضي، وكيف توجّه NextPDF إلى سلطة TSA الخاصة بك، وكيف تعطّل الختم الزمني، ومساري الترقية.
ثلاث خصائص مستقلّة يجب عدم الخلط بينها:
- مستضاف ذاتيًّا — مَن يشغّل الخادم وإلى أي جذر تتسلسل شهادته؛
- موثوق علنًا — ما إذا كانت منظومة التحقّق التي يستخدمها الأطراف المعتمِدون عليك (مخزن الثقة أو قائمة الثقة لديهم) تثق بذلك الجذر سلفًا دون إعداد يدوي، بدلًا من اشتراط تثبيت جذر خاص يدويًّا. يتعلّق هذا بمراسي ثقة الطرف المعتمِد، لا بأي برنامج بعينه مثل بنية المفتاح العام للويب (Web PKI)؛
- مؤهَّل وفق eIDAS — ما إذا كان الطابع الزمني يحمل أثرًا قانونيًّا مؤهَّلًا في الاتحاد الأوروبي.
الافتراضي المشحون مستضاف ذاتيًّا فقط. تضيف سلطة TSA الموثوقة علنًا الخاصية الثانية. أما سلطة TSA المؤهَّلة وفق eIDAS فتحمل إضافةً وضعًا قانونيًّا مؤهَّلًا، يجري التحقّق منه عبر قوائم الثقة المعتمَدة في الاتحاد الأوروبي، وقد يشغّلها مزوّد خدمة ثقة مؤهَّل خارجي (QTSP). الخصائص الثلاث مستقلّة — لا تستلزم إحداها الأخرى.
سلطة الطوابع الزمنية الافتراضية المدمجة
قسم بعنوان «سلطة الطوابع الزمنية الافتراضية المدمجة»نقطة النهاية الافتراضية هي https://timestamp.pateon.com.tw، وهي خادم الختم الزمني
وفق RFC 3161 الخاص بـ NextPDF. وهي مستضافة ذاتيًّا: تتسلسل شهادة وحدة الختم الزمني
لديها إلى جذر PATEON خاص، لا إلى برنامج ثقة عام. ولذلك لا يستطيع الطرف المعتمِد
التحقّق من طابع زمني صادر عن الافتراضي ما لم يكن قد ثبّت جذر PATEON ذاك ووثق به خارج النطاق.
ولأن رمز RFC 3161 لا يحمل أي دليل خارجي على صحّة الوقت المؤكَّد، فإن الثقة في أي طابع زمني كهذا تستند بالكامل إلى الثقة في سلطة TSA المُصدِرة (ISO/IEC 18014-2 §7.3). وبالنسبة للافتراضي المشحون فإن مرساة الثقة تلك خاصة، ولهذا فالافتراضي افتراضي للراحة والتطوير، لا افتراضي بدرجة امتثالية.
عندما تكون نقطة النهاية الافتراضية قيد الاستخدام ويكون لإطار العمل لديك مُسجِّل مُهيّأ، يُصدر NextPDF تحذيرًا لمرّة واحدة عند بدء العملية ينبّه إلى أن الافتراضي غير موثوق علنًا ويشير إلى هذا الإعداد. التحذير إعلامي؛ ويظلّ التوقيع ناجحًا.
تجاوز الافتراضي
قسم بعنوان «تجاوز الافتراضي»اضبط نقطة نهاية TSA في إعداد مُحوِّل إطار العمل لديك. يختلف المفتاح الدقيق من مُحوِّل
لآخر (انظر الجدول لكل إطار عمل):
في Laravel هو متغيّر البيئة NEXTPDF_TSA_URL، وفي Symfony عقدة الحزمة
nextpdf.tsa.url، وفي CodeIgniter مفتاح البيئة nextPdf.tsa.url.
تُحلّ سلطة TSA الفعّالة بهذه الأسبقية، الأعلى أولًا:
TsaClientصريح تنشئه وتحقنه بنفسك — هذا يفوز دائمًا.- العنوان المُهيّأ في مُحوِّلك — يُستخدم عندما لا تحقن عميلًا.
- الافتراضي المدمج — يُستخدم فقط حين لا يكون أيٌّ مما سبق مضبوطًا.
# Laravel (.env): use your own publicly-trusted TSA instead of the shipped default.NEXTPDF_TSA_URL=http://timestamp.digicert.comتعطيل الطابع الزمني
قسم بعنوان «تعطيل الطابع الزمني»إبقاء عنوان TSA في مُحوِّلك عند افتراضيّه (غير مُهيّأ) يُبقي نقطة النهاية الافتراضية المدمجة. أما ضبط ذلك العنوان على قيمة فارغة فمختلف: فهو يعطّل الختم الزمني. ومع عدم تهيئة أي سلطة TSA، يفشل توقيع مطلوب عند B-T أو أعلى فشلًا مغلقًا برسالة خطأ “TSA required” بدلًا من التراجع الصامت إلى B-B.
# Laravel (.env):# NEXTPDF_TSA_URL unset -> use the built-in default (timestamp succeeds against pateon).# NEXTPDF_TSA_URL empty -> no TSA; a B-T+ request fails closed.NEXTPDF_TSA_URL=اختيار خوارزمية تلخيص messageImprint
قسم بعنوان «اختيار خوارزمية تلخيص messageImprint»يحمل طلبُ الطابع الزمني وفق RFC 3161 حقلَ messageImprint — وهو قيمة تجزئة (hash) للبيانات التي يجري ختمها زمنيًّا — ويستخدم NextPDF خوارزمية SHA-256 لتلك البصمة افتراضيًّا. الافتراضي خيار متعمّد وقابل للتشغيل البيني؛ ونادرًا ما تحتاج إلى تغييره.
عندما تُنشئ TsaClient يدويًّا، يمكنك اختيار خوارزمية تلخيص مختلفة للبصمة عبر
مُعامِل المُنشئ imprintHashAlgorithm، الذي يأخذ إحدى حالات
TsaImprintHashAlgorithm: Sha256 (الافتراضي) أو Sha384 أو Sha512 أو
Sha3_256 أو Sha3_384 أو Sha3_512. يُبقي الافتراضي كل طلب صادر مطابقًا بايتًا
ببايت للإصدارات السابقة، فالترقية لا تغيّر شيئًا ما لم تختر ذلك صراحةً.
use NextPDF\Security\Timestamp\TsaClient;use NextPDF\Security\Timestamp\TsaImprintHashAlgorithm;
// Default — SHA-256 imprint, unchanged from earlier releases:$tsa = new TsaClient('https://timestamp.example.com/tsa');
// Opt in to a stronger imprint digest:$tsa = new TsaClient( 'https://timestamp.example.com/tsa', imprintHashAlgorithm: TsaImprintHashAlgorithm::Sha512,);قيدان يجدر بك معرفتهما قبل الابتعاد عن الافتراضي:
- دعم المنظومة يقتصر على SHA-256 اليوم. تتوافق البصمة غير المبنيّة على SHA-256 مع مُحقِّق الرموز في Core، لكن بوابة إثبات PAdES B-T في nextpdf-server وخريطة تلخيص التحقّق في Premium لا تعترفان حاليًّا إلا ببصمات SHA-256. ولذلك فإن طابعًا زمنيًّا للتوقيع مبنيًّا بخوارزمية تلخيص بصمة مختلفة لن يُثبت B-T على تلك الأسطح بعد. أبقِ الافتراضي ما لم يكن كل مستهلِك لطوابعك الزمنية معروفًا بقبوله للتلخيص الذي تختاره.
- يجب أن تطابق التلخيصات المحسوبة مسبقًا الخوارزمية. يأخذ
getDocumentTimestamp()قيمة تجزئة مستند محسوبة مسبقًا؛ وهو يفشل فشلًا مغلقًا، قبل أي اتصال بالشبكة، عندما لا يطابق طولُ تلك التجزئة خوارزميةَ البصمة المُهيّأة، بدلًا من إرسال طلب غير مطابق.
مسارات الترقية
قسم بعنوان «مسارات الترقية»لأي شيء يتجاوز التطوير أو الاستخدام الداخلي، استبدل بالافتراضي أحد خيارين أقوى.
سلطة TSA موثوقة علنًا
قسم بعنوان «سلطة TSA موثوقة علنًا»وجّه عنوان TSA في مُحوِّلك إلى سلطة TSA تتسلسل شهادتها إلى جذر عام يثق به الأطراف
المعتمِدون عليك سلفًا — مثل http://timestamp.digicert.com. لا يلزم توزيع أي جذر خاص.
تذكر سلطة TSA بدرجة إنتاجية عادةً المطابقة لسياسة ختم زمني مثل ETSI EN 319 421 §5،
وتتبع ملف بروتوكول RFC 3161 الموصوف في ETSI EN 319 422 §7؛ تأكّد من ذلك مقابل
السياسة المنشورة للمشغّل بدلًا من افتراضه من الثقة العامة وحدها.
سلطة TSA مؤهَّلة وفق eIDAS
قسم بعنوان «سلطة TSA مؤهَّلة وفق eIDAS»للطوابع الزمنية التي يجب أن تحمل أثرًا قانونيًّا مؤهَّلًا في الاتحاد الأوروبي، استخدم خدمة ختم زمني مؤهَّلة من مزوّد خدمة ثقة مؤهَّل (QTSP) مُدرَج على قائمة ثقة معتمَدة في الاتحاد الأوروبي. يربط الطابع الزمني الإلكتروني المؤهَّل الوقت بالبيانات على نحو يمنع منطقيًّا التغيير غير القابل للكشف، ويستند إلى مصدر وقت دقيق مرتبط بالتوقيت العالمي المنسّق (UTC)، ويكون محميًّا بتوقيع إلكتروني متقدّم أو ختم إلكتروني متقدّم من QTSP، أو بطريقة مكافئة (Regulation (EU) 910/2014, Art 42). هذا أقوى خيار، وهو الذي يُختار عندما يسمّي تنظيمٌ ما الطوابع الزمنية المؤهَّلة صراحةً.
الإعداد لكل إطار عمل
قسم بعنوان «الإعداد لكل إطار عمل»يقيم الافتراضي في إعداد كل مُحوِّل إطار عمل، لا في المحرّك الأساسي. لا يخترع Core عنوانًا
أبدًا: يتطلّب TsaClient تبنيه يدويًّا نقطة نهاية صريحة، ويرمي استثناءً إن كانت فارغة.
تُعيد المستويات طويلة الأمد (B-LT وB-LTA) استخدام سلطة TSA نفسها المُهيّأة لـ B-T.
| Integration | أين يقيم الافتراضي | كيف تتجاوزه |
|---|---|---|
| Laravel | config/nextpdf.php -> tsa.url | اضبط NEXTPDF_TSA_URL في .env |
| Symfony | إعداد الحزمة nextpdf.tsa.url | اضبط العقدة، أو اربطها بمتغيّر بيئة |
| CodeIgniter | Config\NextPdf::$tsa['url'] | تجاوزه عبر مفتاح البيئة nextPdf.tsa.url |
| Plain core | لا افتراضي ضمني | ابنِ TsaClient بعنوان صريح + عميل PSR-18 مُحصَّن |
في كل مُحوِّل، لا يبني B-B أبدًا عميل TSA، لذا لا يتأثّر التوقيع غير المختوم زمنيًّا بأي شيء من هذا الإعداد.
نموذج الثقة والمعايير
قسم بعنوان «نموذج الثقة والمعايير»قيمة الطابع الزمني هي سلسلة الثقة التي خلفه، لا البايتات نفسها. لا يؤكّد رمز RFC 3161 سوى وقت؛ وكون ذلك التأكيد جديرًا بالتصديق هو خاصية لسلطة TSA التي وقّعته (RFC 3161 §2؛ ISO/IEC 18014-2 §7.3). حين تُبقي الافتراضي المشحون فأنت تختار مرساة ثقة مستضافة ذاتيًّا وخاصة — وهي مناسبة للتطوير وسير العمل الداخلي حيث يستطيع كل طرف معتمِد تثبيت جذر PATEON، لكنها ليست مناسبة للمستندات التي يتحقّق منها أطراف ثالثة. ولتلك، انتقل إلى سلطة TSA موثوقة علنًا، أو إلى سلطة TSA مؤهَّلة وفق eIDAS عندما يكون الأثر القانوني المؤهَّل مطلوبًا.
إن كنت تشغّل الافتراضي بنفسك، فيمكنك تثبيت المفتاح العام لسلطة TSA في عميل PSR-18 المحقون الخاص بك. لا تثبّت الافتراضي المشحون في كود مشترك: فدوران مفتاح من جانب المشغّل سيكسر عندئذٍ كل مستخدمي الافتراضي دفعةً واحدة. الثقة في طابع زمني هي سلسلة الشهادات وجذر PATEON، لا تثبيت في طبقة النقل.