تخطيط مستويات الأساس في PAdES
لمحة سريعة
قسم بعنوان «لمحة سريعة»التوقيعات الإلكترونية المتقدمة لملفات PDF (PAdES) هي عائلة ملفات التعريف المُوحَّدة في ETSI EN 319 142. وتُعرِّف أربعة مستويات مطابقة أساسية — B-B وB-T وB-LT وB-LTA — يضيف فيها كل مستوى أعلى مادةً إلى المستوى الأدنى منه مباشرةً. تربط هذه الصفحة تلك المستويات بما يُنتجه NextPDF. كما تفصل سطح Core عن إصداري Pro وEnterprise. هذا التخطيط سلوكي: فهو يصف ما يُصدِره المحرك، لا الفئات الداخلية.
الخلاصة: يُنتج NextPDF Core بنى توقيع متوافقة مع B-B وB-T. ويُشحَن مسار إنتاج B-LT وB-LTA في إصداري Pro وEnterprise. أمّا قبول التوقيع المُنتَج بوصفه مطابقاً عند مستوى معين فيعتمد على المُتحقِّق ومراسي الثقة المُهيَّأة لديه. لا يستطيع المُنتِج تأكيد المطابقة نيابةً عن المُتحقِّق.
التثبيت
قسم بعنوان «التثبيت»composer require nextpdf/core:^3نظرة مفاهيمية عامة
قسم بعنوان «نظرة مفاهيمية عامة»التوقيع الرقمي لملف PDF هو بنية CMS SignedData ضمن صيغة بناء جملة رسائل التشفير، تُخزَّن في مدخل Contents في قاموس التوقيع. تحدِّد مصفوفة ByteRange نطاقات البايتات التي يُغطِّيها الموجز — ISO 32000-2 §12.8.1. يحمل CMS SignerInfo السمات الموقَّعة، ومنها سمتا content-type وmessage-digest — RFC 5652 §5.3. ويُحسَب موجز الرسالة على تلك السمات عبر عملية §5.4. يستخدم PAdES نموذج سمات التوقيعات الإلكترونية المتقدمة لـCMS (CAdES) داخل قاموس توقيع PDF.
مستويات الأساس الأربعة تراكمية:
- B-B يضم التوقيع الأساسي مع سماته الموقَّعة الإلزامية.
- B-T يضيف سمة ختم زمني للتوقيع تُحسَب على قيمة التوقيع. تُثبِت سمة الختم الزمني أن التوقيع كان موجوداً عند اللحظة المختومة زمنياً — ETSI PAdES §5.4.3. وتُنتج سلطة الختم الزمني الرمز المميز وفق RFC 3161 — RFC 3161 §2.4.1.
- B-LT يضيف مادة التحقق طويل الأمد — بيانات الشهادات، وبروتوكول حالة الشهادة عبر الإنترنت (OCSP)، وقائمة إبطال الشهادات (CRL) — الموضوعة في مخزن أمان المستند — ETSI PAdES §6.2.2، وISO 32000-2 §12.8.4.3، وموضع بيانات التحقق كما يصفه ETSI EN 319 142-2 §6.3.
- B-LTA يضيف ختماً زمنياً أرشيفياً للمستند للحفاظ على الصلاحية عبر فترات طويلة — ETSI PAdES §6.2.2.
المستويات الأربعة تراكمية بشكل صارم — يحتفظ كل مستوى أعلى بكل ما يحمله المستوى الأدنى منه مباشرةً ويضيف طبقة مادة جديدة واحدة بالضبط. تُظهِر تسميات الانتقال إصدار المُنتِج الذي يوفّر كل خطوة.
سطح واجهة برمجة التطبيقات
قسم بعنوان «سطح واجهة برمجة التطبيقات»استخدم تعداد SignatureLevel لاختيار مستوى. فهو يُعرِّف الحالات PAdES_B_B وPAdES_B_T وPAdES_B_LT وPAdES_B_LTA. تُبيِّن طرائقه requiresTimestamp() وrequiresDss() وrequiresDocumentTimestamp() وisAvailableInEnvironment() متطلبات كل مستوى وما إذا كان وقت التشغيل الحالي يستطيع تلبيتها. في توزيعة Core، تُرجِع isAvailableInEnvironment() القيمة true لـB-B وB-T والقيمة false لـB-LT وB-LTA. وهي تُرجِع false لـB-LT وB-LTA لأن مُنتِج التحقق طويل الأمد يُحَل في وقت التشغيل وليس جزءاً من الحزمة مفتوحة المصدر. استخدم في كود الإنتاج عقد SignerInterface بدلاً من هذه الأنواع الداخلية.
مصفوفة دعم المستويات
قسم بعنوان «مصفوفة دعم المستويات»| المستوى | ما يضيفه | Core (nextpdf/core) | Pro / Enterprise |
|---|---|---|---|
| B-B | التوقيع الأساسي مع السمات الموقَّعة الإلزامية | يُنتج بنيةً متوافقة؛ مُختبَرة على خطوط أساس ذهبية اصطناعية | السطح نفسه |
| B-T | ختم زمني للتوقيع على قيمة التوقيع | يُنتج بنيةً متوافقة عند توفير خدمة ختم زمني وفق RFC 3161 | السطح نفسه |
| B-LT | بيانات التحقق في مخزن أمان المستند | لا يُشحَن المُنتِج في Core؛ اختيار B-LT دون حزمة Enterprise يفشل بأمان | المُنتِج مشحون |
| B-LTA | ختم زمني أرشيفي للمستند | لا يُشحَن المُنتِج في Core؛ يفشل بأمان كما سبق | المُنتِج مشحون |
يعني “يُنتج بنيةً متوافقة” أن NextPDF يُصدِر توقيعاً تتبع بنيتُه البنود المُستشهَد بها. وتتحقق مجموعات الاختبار في tests/Corpus/pades/ وtests/Golden/baselines/ من تلك البنية. ولا يعني ذلك أن مُتحقِّقاً خارجياً يُصادِق على المُخرَج عند ذلك المستوى. راجع قسم المطابقة.
مثال على الكود — بداية سريعة
قسم بعنوان «مثال على الكود — بداية سريعة»<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Contracts\SignerInterface;
/** * Sign a byte range with any SignerInterface implementation. * * @param SignerInterface $signer A Core or Premium signer. * @param string $byteRange The PDF byte range to sign. * * @return string Hex-encoded CMS SignedData for the PDF /Contents field. */function signByteRange(SignerInterface $signer, string $byteRange): string{ return $signer->sign($byteRange)->toHex();}تعتمد الدالة على عقد SignerInterface لا على فئة ملموسة. ويُحقِّق هذا العقد كلٌّ من موقِّع Core البرمجي (B-B أو B-T) وموقِّع وحدة أمان عتادية (HSM) في إصدار Premium. لا يتغيّر كود المُستدعي عند تغيُّر الإصدار.
مثال على الكود — للإنتاج
قسم بعنوان «مثال على الكود — للإنتاج»<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Security\Signature\SignatureLevel;
/** * Resolve the highest baseline level the current runtime can produce. * * B-B and B-T are produced by the Core distribution. B-LT and B-LTA * require the Enterprise long-term-validation package; without it the * level reports unavailable so callers fail closed rather than emit a * structure that does not carry the validation material the level names. * * @return SignatureLevel The highest level available in this runtime. */function highestAvailableLevel(): SignatureLevel{ foreach ([ SignatureLevel::PAdES_B_LTA, SignatureLevel::PAdES_B_LT, SignatureLevel::PAdES_B_T, SignatureLevel::PAdES_B_B, ] as $level) { if ($level->isAvailableInEnvironment()) { return $level; } }
return SignatureLevel::PAdES_B_B;}تُرجِع isAvailableInEnvironment() القيمة true لـB-B وB-T دون حزمة إضافية. ولا تُرجِع true لـB-LT وB-LTA إلا عند تثبيت حزمة التحقق طويل الأمد لإصدار Enterprise. إذا اخترت مستوى غير متاح دون تفعيل التراجع صراحةً، يطرح NextPDF استثناءً مُصنَّفاً لمستوى غير قابل للوصول، وتُسمِّي رسالة الاستثناء الحزمة المفقودة. وبذلك يفشل النشر ذو التهيئة الخاطئة بأمان بدلاً من إصدار مستوى أدنى مما طلبه المُستدعي بصمت.
الحالات الحدّية والمزالق
قسم بعنوان «الحالات الحدّية والمزالق»- التوقيع B-T من الناحية البنيوية لا يساوي توقيعاً جرى التحقق منه بوصفه B-T. يجري التحقق لدى المُتحقِّق اعتماداً على مراسي ثقته وحداثة بيانات الإبطال لديه. لا يستطيع المُنتِج تأكيد النتيجة.
- يتطلّب المستويان PAdES B-LT وB-LTA حزمة NextPDF Enterprise (
nextpdf/enterprise). إذا لم تكن مُثبَّتة، يفشل الموقِّع بأمان ويكون B-LT/B-LTA غير متاحين. يُوفِّر Core المستويين B-B/B-T عبرNextPDF\Contracts\SignerInterfaceالعام؛ ويبقى التحقق طويل الأمد خلفLtvManagerInterface. اختيار مستوى غير متاح في Core يفشل بأمان افتراضياً. يُسمِّي الاستثناء المُصنَّف الحزمة العامة المفقودة، لا نوعاً داخلياً. التدهور السلس إلى مستوى أدنى اختياري، وليس افتراضياً أبداً. - يجب أن يستثني موجز نطاق البايتات قيمة التوقيع. إذا غطّى الموجز أيضاً ثُمانيات
Contents، فلن يَنجح التحقق أبداً — ISO 32000-2 §12.8.1. - في B-T، يكون الختم الزمني للتوقيع على قيمة التوقيع، لا على بايتات المستند. في B-LTA، يكون الختم الزمني الأرشيفي ختماً زمنياً منفصلاً للمستند. وهما غير قابلين للتبادل — ETSI PAdES §5.4.3 و§6.2.2.
- ETSI EN 319 142-1 (جزء مستويات الأساس) ليس ضمن مجموعة أدلة هذا المشروع. تستند ادعاءات بنية المستويات هنا إلى ETSI EN 319 142-2، ومستند ملف التعريف
pades، وISO 32000-2 §12.8، وRFC 5652 / RFC 3161. وتَرِد أسماء المستويات والبنية التراكمية بوصفها مُطبَّقة في v3.x. لا تدّعي هذه الصفحة أي نتيجة اختبار مطابقة أو إثبات من طرف ثالث.
الأداء
قسم بعنوان «الأداء»تزداد التكلفة مع المستوى. B-B عملية توقيع واحدة تستغرق أعداداً أحادية الرقم من المللي ثانية لمفتاح برمجي. يضيف B-T رحلة شبكة واحدة ذهاباً وإياباً إلى سلطة الختم الزمني. ويضيف B-LT عملية جلب واحدة لبيانات الإبطال لكل شهادة في السلسلة. ويضيف B-LTA ختماً زمنياً إضافياً للمستند. تُغطِّي ميزانية زمن الجدار البالغة 1500 ms توقيع B-T واحداً مع سلطة ختم زمني بعيدة (TSA) عبر اتصال قائم مسبقاً. أما B-LT أو B-LTA مقابل نقطة نهاية إبطال بطيئة فيتجاوزانها وينبغي وضعهما خارج مسار الطلب. ملف إعادة الإنتاج هو structural، لا bitwise. يُضمِّن الختم الزمني لحظة التوقيع، لذلك تختلف عمليتا تشغيل في بايتات الختم الزمني بينما تظل بنية المستند متطابقة.
ملاحظات الأمان
قسم بعنوان «ملاحظات الأمان»المستوى الذي يدّعيه التوقيع والمستوى الذي يجري التحقق منه عنده أمران مختلفان. تصف هذه الصفحة سطح المُنتِج فقط. يعتمد التحقق طويل الأمد على بيانات التحقق المُجمَّعة وقت التوقيع وعلى استمرار ثقة المُتحقِّق بالمراسي نفسها لاحقاً. لا يستطيع المُنتِج ضمان أيٍّ من الأمرين. وتعود الثقة بالختم الزمني إلى الثقة بسلطة الختم الزمني، التي يضبطها النشر عبر مُزوِّد قابل للحقن. هذه الصفحة مُعلَّمة بـexport_control_class: legal-review-required لأنها تتعلّق بملفات تعريف لتوقيعات تشفيرية. جميع المصادر المعيارية مُعاد صياغتها، ولا يُعاد إنتاج أيٍّ منها، حفاظاً على سلامة الاستشهاد.
المطابقة
قسم بعنوان «المطابقة»| الادعاء | المعيار | البند | الدليل |
|---|---|---|---|
تُخزَّن قيمة التوقيع مُرمَّزة بـDER بوصفها CMS SignedData أو TimeStampToken في مدخل Contents في قاموس التوقيع. | ISO 32000-2 | §12.8.1 | |
يُحسَب الموجز على نطاقات ByteRange ويستثني قيمة التوقيع. | ISO 32000-2 | §12.8.1 | |
| تُحسَب سمة الختم الزمني للتوقيع على قيمة التوقيع (B-T). | ETSI PAdES (EN 319 142) | §5.4.3 | |
| تُحمَل مواد التحقق طويل الأمد في مخزن أمان المستند (B-LT). | ETSI PAdES (EN 319 142) / ISO 32000-2 | §6.2.2 / §12.8.4.3 | ، |
| تُوضَع بيانات التحقق في قاموسَي DSS وVRI. | ETSI EN 319 142-2 | §6.3 | ، |
| يحافظ الختم الزمني الأرشيفي للمستند على الصلاحية عبر فترات طويلة (B-LTA). | ETSI PAdES (EN 319 142) | §6.2.2 | |
| يحمل SignerInfo سمتي content-type وmessage-digest الموقَّعتين. | RFC 5652 | §5.3 | |
| يُحسَب موجز الرسالة على السمات الموقَّعة المُرمَّزة بـDER (عملية §5.4). | RFC 5652 | §5.4 | |
| يُطلَب الختم الزمني من RFC 3161 TSA ويُرجِع بنية TSTInfo. | RFC 3161 | §2.4.1 |
جميع البنود مُعاد صياغتها. لا يُعيد NextPDF إنتاج النص المعياري. راجع المعايير المنشورة للحصول على الصياغة المُعتمَدة. ETSI EN 319 142-1 ليس ضمن مجموعة الأدلة. تستند الادعاءات البنيوية حول مستويات الأساس إلى المصادر أعلاه، وهي مذكورة بوصفها مُطبَّقة في v3.x.
السياق التجاري
قسم بعنوان «السياق التجاري»يُنتج Core بنى توقيع B-B وB-T. ويتوفر مسار إنتاج B-LT وB-LTA، وحفظ مفاتيح HSM وPKCS#11، وملف سياسة التشفير FIPS 140-3 في إصداري Pro وEnterprise. يَحُل Core مُنتِج التحقق طويل الأمد في وقت التشغيل، لذلك لا يحمل المحرك مفتوح المصدر أي تبعية تجارية. لا تتغيّر واجهة برمجة تطبيقات SignerInterface عند الترقية.
انظر أيضاً
قسم بعنوان «انظر أيضاً»- الأمان / التوقيع — سطح تنفيذ CMS والختم الزمني والتحقق طويل الأمد (LTV) وسلسلة الثقة والإبطال.
- العقود / التوقيع — واجهة مُزوِّد الخدمة
SignerInterface(SPI) ومستويات الاستقرار. - الأمان — سطح تنفيذ التشفير والتوقيع.
- المطابقة — فرض PDF/A والملف الشخصي المُقترِن بالأرشفة الموقَّعة.
- PAdES · PAdES B-T · DSS · CAdES — مصطلحات المسرد.