توقيع ملف PDF بتوقيع PAdES أساسي (منقولة)
نُقلت هذه الوصفة
قسم بعنوان «نُقلت هذه الوصفة»أصبح شرح التوقيع الذي كان في هذه الصفحة متجاوزًا الآن. استخدم الوصفة المرجعية بدلاً منه:
توقيع ملف PDF بمستوى PAdES B-B، ثم ترقيته إلى PAdES B-T
سبب تغيير هذه الصفحة (تصويب)
قسم بعنوان «سبب تغيير هذه الصفحة (تصويب)»ذكرت نسخة سابقة من هذه الصفحة أن المسار عالي المستوى Document::setSignature() ← save() غير موصول وأنه يطرح NotImplementedException. لم يعد ذلك صحيحًا. فالمسار عالي المستوى يكتب الآن توقيعًا فعليًا.
يكتب Document::setSignature($cert, SignatureLevel::PAdES_B_B)->save() (وما يكافئه من output() / getPdfData()) حقل /Sig يشتمل على /ByteRange وكائن SignedData لـ Cryptographic Message Syntax (CMS) مرمَّز بقواعد الترميز المميز Distinguished Encoding Rules (DER)، وذلك في مدخل Contents ضمن قاموس التوقيع. وهذه هي البنية التي يحددها ISO 32000-2 §12.8 لـ SubFilter الخاص بـ ETSI.CAdES.detached. وتكون النتيجة قابلة للتحقق عبر CMS؛ إذ يستطيع أيُّ متحقِّق قياسي من نوع CMS/PKCS#7 (Public-Key Cryptography Standards #7) تحليلها والتحقق منها.
- B-B — وهو مستوى Core — يُنتَج مباشرة عبر هذا المسار.
- B-T يضيف signature-time-stamp واحدًا وفق RFC 3161 عند تمرير
TsaClientفي الاستدعاء نفسه. - B-LT / B-LTA يمكن الوصول إليهما عبر المسار نفسه عالي المستوى (
setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save()) عند تثبيت حزمتي Pro و Enterprise معًا؛ ومن دونهما يفشل الاستدعاء فشلاً آمنًا بدلاً من كتابة مراجعة طويلة الأمد جزئية. كما تفشل المستندات المشفَّرة فشلاً آمنًا مع B-LT/B-LTA.
لا يزال المسار الأدنى مستوى NextPDF\Security\Signature\DigitalSigner مدعومًا. وتشرحه الوصفة المرجعية أدناه شرحًا متكاملاً من البداية إلى النهاية. أما المسار عالي المستوى فليس إلا غلافًا تيسيريًا رقيقًا فوق محرك التوقيع نفسه. وتختبر مجموعة اختبارات التكامل كلا المسارين وتُنتج كائن CMS فعليًا قابلاً للتحليل.
تنبيه U-1 (نطاق الادعاء). تعني عبارة “قابل للتحقق عبر CMS” أن الكائن المُنتَج هو كائن
SignedDataسليم البنية من نوع CMS وفق RFC 5652 وISO 32000-2 §12.8. وهي ليست تأكيداً على المطابقة لملف التعريف الأساسي في ETSI EN 319 142-1 أو على الصلاحية القانونية. والجزء الخاص بالمستويات الأساسية من ذلك المعيار غير مُدرَج في مجموعة التحقق؛ أما متطلبsignature-time-stampفي B-T فقد جرى التحقق منه إزاء ETSI EN 319 122-1 §5.3 بالاستناد إلى RFC 3161 وRFC 5652 وRFC 5816 و ISO 32000-2 §12.8. B-LT/B-LTA يُنتجان بنية التحقق طويل الأمد (قاموس DSS إضافةً إلى مراجعة DocTimeStamp)؛ ولكنهما لا يوصفان بأنهما مختبَران للمطابقة لملف التعريف. يحدد المطابقة، إلى جانب الصلاحية القانونية، متحقِّق مستقل.
ما بقي دون تغيير
قسم بعنوان «ما بقي دون تغيير»تظل الحقائق البنيوية التي أكدتها الصفحة القديمة بشأن المُخرَج المخزَّن على القرص صحيحة. وتعيد الوصفة البديلة عرضها مدعومةً بالأدلة:
- تُخزَّن قيمة التوقيع في مدخل
Contentsفي قاموس التوقيع (ISO 32000-2 §12.8.1). - يُحسَب الملخَّص على
ByteRangeويستثني قيمة التوقيع نفسها (ISO 32000-2 §12.8.1).
لا تؤكد هذه الصفحة أن أي توقيع ناتج صالح قانونيًا. فالصلاحية القانونية تعتمد على الشهادة ومرساة الثقة الخاصة بها وسياسة المتحقِّق. ويقع ذلك كله خارج نطاق هذه المكتبة.