مشهد المعايير
Spec: ISO 32000-2 ISO 32000-2 Spec: ETSI EN 319 142-1 ETSI EN 319 142-1 Spec: RFC 3161 RFC 3161 Spec: WCAG 2.2 WCAG 2.2 Evidence: Standard-backed
لمحة سريعة
قسم بعنوان «لمحة سريعة»لا يخضع محرّك PDF لمستند واحد، بل لمنظومة صغيرة من المعايير وضعتها هيئات مختلفة، ويشير بعضها إلى بعض. ترسم هذه الصفحة خريطة لهذه المنظومة كما يتتبعها NextPDF. كما تُظهر المسار الذي يقطعه بند ما من “المعيار ينص على ذلك” إلى “المحرّك يفعل ذلك، واختبار يثبته.”
كُتبت هذه الصفحة لمهندس متمرّس يحتاج إلى معرفة أيُّ مستند يحكم سلوكاً معيّناً قبل أن يقرّر ما إذا كانت قراءة NextPDF له قراءةً يمكن الدفاع عنها.
لماذا يهمّ هذا
قسم بعنوان «لماذا يهمّ هذا»“دعم PDF” ادّعاء يخفي سؤالاً: دعمُ ماذا بالضبط؟ البنية الأساسية هي ISO 32000-2. والتوقيعات تمرّ عبر ETSI. والطوابع الزمنية بروتوكول من IETF. وHTML وCSS اللذان يعرضهما المحرّك مصدرهما W3C. والتشفير الكامن في الأساس من NIST. وإتاحة الوصول إلى المُخرَجات من W3C مجدداً.
إذا تعاملت مكتبة مع هذه المعايير ككتلة واحدة غير متمايزة، فلن تستطيع تحليل سبب الفشل. عندما يرفض مدقّق فاتورة موقّعة، فالسؤال الأول المفيد ليس “هل ملف PDF تالف؟” بل “أيُّ بند من أيِّ معيار لم يُستوفَ، وعلى أيِّ جانب؟” ولطرح هذا السؤال، تحتاج إلى خريطة تسمّي الهيئات، وإلى سرد أمين لكيفية تحوّل البند إلى سلوك.
النسخة المختصرة
قسم بعنوان «النسخة المختصرة»- يتتبع NextPDF خمس هيئات معايير. ISO تملك التنسيق. ETSI تملك ملفات التوقيع الأوروبية. IETF تملك بروتوكولات النقل (الطوابع الزمنية، وأوّليات التشفير بالإحالة). W3C تملك HTML وCSS ومعايير إتاحة الوصول. NIST تملك خوارزميات التشفير المعتمدة.
- تشكّل هذه المستندات مسارات، لا قائمة: فقدرة واحدة على توقيع PDF تسلك ISO ← ETSI ← IETF ← NIST، إذ تشير كل طبقة معيارياً إلى التالية.
- لا يتحوّل البند إلى سلوك بمجرد قراءته. بل يتحوّل إلى سلوك حين يُعاد صياغته ويُستشهَد به، ويُربَط بمتطلَّب، ويُنفَّذ، ويُثبَّت باختبار. والصفحة التي تصف السلوك توضّح ذلك عبر مستوى الإثبات الخاص بها.
- حين يكون البند إلزامياً، فإنه يحمل كلمة مفتاحية معيارية (مثل
shallأوmust). يعامل NextPDF تلك الكلمات المفتاحية بوصفها عقداً. أماshouldفهي توصية يوثّقها بوصفها كذلك، لا بوصفها ضماناً.
كيف يتعامل NextPDF مع ذلك
قسم بعنوان «كيف يتعامل NextPDF مع ذلك»الاتحاد، لا الكتلة الواحدة
قسم بعنوان «الاتحاد، لا الكتلة الواحدة»ISO 32000-2 هو المركز. فهو يعرّف معنى الملف المطابق. يجب أن يلتزم الملف المطابق بكل متطلَّب من متطلَّبات المستند، مع حريته في إغفال أيِّ ميزة لا يشترطها المستند صراحةً Spec: ISO 32000-2, §6 ISO 32000-2 §6 . كما يفرض الالتزام على الكاتب: فأيُّ شيء ينشئه NextPDF أو يعدّله في ملف يجب أن يكون مطابقاً للتنسيق ومتسقاً مع العناصر الموجودة فعلاً Spec: ISO 32000-2, §6 ISO 32000-2 §6 . هذا البند وحده هو سبب رفض المحرّك إصدار تحديث تزايدي غير متسق بنيوياً. وليس ذلك تفضيلاً من NextPDF، بل قاعدة في التنسيق نفسه.
ومن هذا المركز، يشير ISO 32000-2 إلى الخارج. فمعالجة التوقيع فيه مُعرَّفة “عن طريق الإحالة” إلى سلسلة ETSI EN 319 142 الخاصة بـ PAdES. وتشير ETSI بدورها إلى RFC 3161 من IETF للحصول على رمز الطابع الزمني، وإلى سلسلة NIST FIPS لخوارزميات التجزئة والتوقيع. وعليه، فالقدرة مسار يمرّ عبر عدة مستندات، كلٌّ منها معياري في طبقته الخاصة.
- Step 1 of 5: ISO 32000-2 §12.8 signatures
- Step 2 of 5: ETSI EN 319 142-1 PAdES baseline
- Step 3 of 5: RFC 3161 timestamp token
- Step 4 of 5: NIST FIPS 180-4 hash strength
- Step 5 of 5: WCAG 2.2 tagged output
كيف يتحوّل البند إلى سلوك
قسم بعنوان «كيف يتحوّل البند إلى سلوك»الصورة الخطِرة من العمل على المعايير هي قراءة بند ثم كتابة الشيفرة من الذاكرة. مسار NextPDF أطول عن قصد، لأن المسار الأطول هو الذي يمكن تدقيقه:
- Retrieve The clause is read from the standard, not from memory.
- Cite It is paraphrased and pinned with a chunk digest, never quoted.
- Classify Its keyword (shall / should / may) sets whether it is a contract or a recommendation.
- Map The obligation becomes a concrete engine requirement.
- Implement The requirement is built into the pipeline.
- Pin A test holds the behaviour against drift.
- Tag The page that describes it declares its evidence level.
خطوة “التصنيف” هي الموضع الذي يُحسَم فيه معظم الغموض. تُرمِّز المواصفات مستويات متطلباتها في كلمات مفتاحية: عائلة MUST وSHALL وSHOULD وMAY المعروفة. ومعنى تلك الكلمات المفتاحية محدَّد بموجب عُرف IETF لكلمات المتطلبات المفتاحية، المحدَّث ليوضّح أن الصيغ المكتوبة بأحرف كبيرة وحدها هي المعيارية، ثم يُضاف هذا المعنى إلى النص الوصفي لكل مواصفة
Spec: RFC 2119 RFC 2119 Spec: RFC 8174 RFC 8174 .
يقرأ NextPDF كلمة shall بوصفها حدّاً صارماً لا يتجاوزه المحرّك، وكلمة
should بوصفها توصية يتّبعها ويوثّقها بوصفها توصية —
لا بوصفها وعداً أبداً. هذا التمييز هو الفرق بين بيان قدرات أمين
وادّعاء مبالَغ فيه.
المطابقة متدرّجة، لا ثنائية
قسم بعنوان «المطابقة متدرّجة، لا ثنائية»نادراً ما تكون “المطابقة” قراراً ثنائياً. معايير التوقيع متدرّجة بمستويات — فالملف الأوروبي طويل الأمد مع الأرشفة، مثلاً، موجود تحديداً لإضافة رموز الطوابع الزمنية التي تُبقي التوقيع قابلاً للتحقق بعد إنشائه بوقت طويل Spec: ETSI EN 319 122-1, §6 ETSI EN 319 122-1 §6 . وهذا ادّعاء أقوى بكثير من توقيع أساسي مجرّد. ومعيار إتاحة الوصول على النمط نفسه: لا يُبلَغ مستوى مطابقة إلا باستيفاء كل معيار نجاح عند ذلك المستوى، ويذكر الادّعاء المستوى الذي بلغه فعلاً Spec: WCAG 2.2, §5.2.1 WCAG 2.2 §5.2.1 . لذا يذكر NextPDF الملف والمستوى، لا كلمة “متوافق” المطلقة.
ماذا يقول الدليل
قسم بعنوان «ماذا يقول الدليل»هذه الصفحة Evidence: Standard-backed : كل ادّعاء فيها مرتبط ببند، ومُعاد صياغته، ومُستشهَد به مع بصمة رقمية كي يستطيع المراجِع التالي إعادة التحقق منه مقابل المصدر.
| الطبقة | الهيئة | البند المرجعي (مُعاد صياغته) | ما الذي يحكمه في NextPDF |
|---|---|---|---|
| التنسيق | ISO | يجب أن تكون العناصر التي ينشئها الكاتب أو يعدّلها مطابقةً وأن تبقى متسقة Spec: ISO 32000-2, §6 ISO 32000-2 §6 | ملف PDF الذي يُصدِره المحرّك |
| المطابقة | ISO | يستوفي الملف المطابق كل المتطلبات؛ والميزات الإضافية اختيارية Spec: ISO 32000-2, §6 ISO 32000-2 §6 | معنى “مُخرَجات صالحة” |
| ملف التوقيع | ETSI | يضيف المستوى طويل الأمد مع الأرشفة طوابع زمنية للتحقق لاحقاً Spec: ETSI EN 319 122-1, §6 ETSI EN 319 122-1 §6 | ملف PAdES الذي يستهدفه التوقيع |
| الوقت الموثوق | IETF | تُثبِت خدمة الطوابع الزمنية أن معطىً كان موجوداً قبل وقت معيّن Spec: RFC 3161, §2 RFC 3161 §2 | رمز الطابع الزمني للمستند |
| التشفير | NIST | تختلف دوال التجزئة المعتمدة في قوة الأمان التي تمنحها Spec: NIST FIPS 180-4, §1 NIST FIPS 180-4 §1 | خوارزمية البصمة الرقمية الكامنة تحت التوقيع |
| إتاحة الوصول إلى المُخرَجات | W3C | يتطلب مستوى المطابقة كل معيار عند ذلك المستوى Spec: WCAG 2.2, §5.2.1 WCAG 2.2 §5.2.1 | ادّعاءات إتاحة الوصول على ملفات PDF المعروضة |
البصمات الرقمية المستشهَد بها مسجَّلة في بيانات frontmatter ضمن citations لهذه الصفحة. لا يُعاد إنتاج أيٌّ من نصوص المعايير هنا. والقاعدة التي تحكم هذا الاختيار هي نفسها الموضحة في صفحة انضباط الاستشهاد.
مثال عملي
قسم بعنوان «مثال عملي»أنت لا تُشغِّل مشهد المعايير؛ بل تقرؤه لتقرّر ما الذي تطلبه من المحرّك. وبصورة عملية، فإن استدعاء توقيع قابل للتحقق طويل الأمد هو بيان عن أيِّ نقطة على المسار تحتاج إليها:
<?php
declare(strict_types=1);
use NextPDF\Core\Document;use NextPDF\Security\Signature\CertificateInfo;use NextPDF\Security\Signature\DigitalSigner;use NextPDF\Security\Signature\SignatureLevel;
// The signature level is a coordinate on the ISO -> ETSI -> RFC trail.// PAdES B-B is the ETSI baseline CMS SignedData the Core engine produces;// B-T adds an RFC 3161 timestamp, and B-LT/B-LTA add the DSS and document// timestamps that keep a signature validatable after the certificate// expires. The level you name is the point on the trail you are asking for.$certInfo = CertificateInfo::fromFiles( certPath: 'signer-cert.pem', keyPath: 'signer-key.pem',);
// The functional signing path is the direct two-phase signing engine.// (Document::setSignature() records intent but its writer seam is not yet// wired and fail-fasts on output — see the PadesOrchestrator docblock.)$signer = new DigitalSigner( certInfo: $certInfo, level: SignatureLevel::PAdES_B_B,);
$result = $signer->sign(file_get_contents('agreement.pdf'));
printf( "PAdES %s CMS: %d bytes, timestamp=%s\n", SignatureLevel::PAdES_B_B->value, $result->getSize(), $result->hasTimestamp() ? 'yes' : 'no',);تسمية PAdES_B_LTA بدلاً من مستوى أساسي مجرّد ليست مفتاحاً لضبط الأداء. بل هي قرار بشأن عمق امتداد الالتزام على مسار المعايير. يستدعي B-LT وB-LTA طبقتَي DSS والطابع الزمني الأرشيفي، ويتطلبان حزمة LTV المؤسسية وقت التشغيل. وبدلاً من التدهور الصامت، يرفض المحرّك التظاهر بأن مستوى أدنى يقدّم مستوى أعلى.
مفهوم خاطئ شائع
قسم بعنوان «مفهوم خاطئ شائع»الفخّ هو قراءة “NextPDF متوافق مع المعايير” بوصفها ضماناً واحداً شاملاً. الأمر ليس كذلك، ولا يقدّم أيُّ محرّك أمين مثل هذا الضمان. التوافق يكون بحسب كل معيار، وكل بند، وكل مستوى. يستهدف NextPDF الخط الأساسي لـ PDF 2.0، وملفات PAdES المسمّاة، ومستويات إتاحة الوصول المعلَنة — كلٌّ محدَّد النطاق، وكلٌّ مُستشهَد به. والادّعاء الذي لا يقف خلفه بند ومستوى هو تسويق، وInsider_ لا يطبعه.
الفخّ الثاني الأدقّ هو افتراض أن should المعيارية وعد. إنها توصية. يوثّق NextPDF التوصيات بوصفها توصيات. ضمانات المحرّك مبنية من بنود shall، وهذا الفرق جوهري.
الحدود والقيود
قسم بعنوان «الحدود والقيود»هذه الصفحة هي الخريطة، لا الأرض. فهي لا تُعدِّد كل بند ينفّذه NextPDF، وليست شهادة مطابقة. إثبات كل سلوك موجود في صفحة الموضوع التي تملك ذلك السلوك، بمستوى الإثبات الخاص بتلك الصفحة — مثل PDF 2.0: ما الذي تغيّر لمعرفة فرق التنسيق.
ومشهد المعايير يتغيّر أيضاً. تصدر إصدارات جديدة، وتُحدَّث الإحالات. والبند المُستشهَد به هنا مثبَّت على لقطة المتن المسجَّلة في citations الخاصة بهذه الصفحة. وعند تنقيح معيار مصدري، يُعاد التحقق من الاستشهاد مقابل البند الجديد، ولا يُفترَض انتقاله كما هو. وحيثما تذكر هذه الصفحة قدرة من فئة Premium، فإنها تفعل ذلك على مستوى أيِّ معيار تخضع له، لا على مستوى الآلية الداخلية أبداً.
مستندات ذات صلة
قسم بعنوان «مستندات ذات صلة»- PDF 2.0: ما الذي تغيّر — الفرق الملموس في ISO 32000-2 الذي تشير إليه طبقة التنسيق في هذه الخريطة.
- التوثيق بوصفه منتجاً — لماذا يُعامَل انضباط ربط البنود بالسلوك بوصفه هندسة.
- انضباط الاستشهاد — القاعدة التي تقرّر كيف يُستشهَد ببند هنا، وما الذي يعنيه مستوى الإثبات.
مسرد المصطلحات
قسم بعنوان «مسرد المصطلحات»- هيئة معايير — منظمة تنشر مواصفة (ISO وETSI وIETF وW3C وNIST). تملك كلٌّ منها طبقة مختلفة من حزمة PDF.
- بند معياري — متطلَّب في معيار، يُحدَّد بكلمته المفتاحية (
shall/mustللإلزامي، وshouldللموصى به، وmayللاختياري). - مسار المعايير — سلسلة مرتَّبة من المواصفات تسلكها قدرة واحدة، حيث يشير كل مستند معيارياً إلى التالي.
- مستوى المطابقة — درجة متدرّجة من التوافق (ملف أساسي من ETSI، أو مستوى من WCAG). يذكر الادّعاء المستوى الذي بلغه فعلاً، لا كلمة “متوافق” المطلقة.
- PAdES — التوقيعات الإلكترونية المتقدمة لـ PDF، عائلة ملفات التوقيع ETSI EN 319 142 التي يشير إليها ISO 32000-2 لتوقيع PDF.