تخطَّ إلى المحتوى
getnextpdf.com

Enterprise الإصدار

الأمان — HSM وPKCS#11 ووضع FIPS

يضيف ⁨NextPDF Enterprise⁩ مسار توقيع برمز ⁨PKCS#11⁩ عتادي وسياسة تشفير في وضع ⁨FIPS⁩ فوق سطح أمان ⁨Core⁩ و⁨Pro⁩. تبيّن هذه الصفحة السلوك، والحدود، وموقف شهادة ⁨FIPS⁩ وحفظ المفاتيح الصريح.

تُشحَن هذه القدرة في ⁨NextPDF Enterprise⁩ (nextpdf/enterprise) وتُفعَّل بغلاف ترخيص من مستوى ⁨Enterprise⁩. النشر الذي لا يملك ذلك الاستحقاق لا يُحمّل أصناف هذه القدرة. قارن الإصدارات واحصل على ترخيص.

سطح أمان ⁨Enterprise⁩ ثلاثة أجزاء: موقّع رمز عتادي، وسياسة تشفير في وضع ⁨FIPS⁩، وحارس اختبار ذاتي عند التشغيل.

يُكيّف موقّع الرمز العتادي رمز ⁨PKCS#11⁩ — بطاقة ذكية، أو جهاز ⁨USB⁩، أو وحدة ⁨HSM⁩ متّصلة بالشبكة. يحدّد الموقّع موقع الشهادة والمفتاح الخاص على الرمز بالتسمية. ثم يطلب من الرمز حساب التوقيع. لا يغادر المفتاح الخاص حدود الرمز؛ وتجري العملية داخل الرمز. تتبع عملية توقيع الرمز والجلسة وتسجيل دخول المستخدم ⁨PKCS#11 v3.1⁩ §5. يحتاج مسار ⁨HSM⁩ إلى امتداد ⁨PHP⁩ ‏ext-pkcs11. وذلك الامتداد ليس جزءًا من ⁨PHP⁩ القياسي. ثبّته على حِدة. استخدم فحص التوفّر قبل إنشاء الموقّع.

تُقيِّد سياسة تشفير وضع ⁨FIPS⁩ الخيارات التشفيرية بمجموعة معتمَدة. لها إعدادان مسبقان. يسمح الإعداد الصارم بملخّصات ⁨SHA-256⁩ و⁨SHA-384⁩ و⁨SHA-512⁩؛ ومعرّفات كائنات توقيع ⁨RSA⁩ و⁨ECDSA⁩ بتلك الملخّصات؛ وتشفير ⁨AES-256-CBC⁩؛ وأحجام مفاتيح دنيا ⁨RSA 2048⁩ و⁨EC 256⁩. الإعداد القياسي مماثل لكنه يسمح أيضًا بـ ⁨AES-128-CBC⁩ لقابلية التشغيل البيني الأقدم. يلفّ حارسُ وقت التشغيل السياسةَ. يفحص الحارس كل ملخّص ومعرّف كائن توقيع وخوارزمية تشفير وقوّة مفتاح قبل تشغيل العملية. يثير الاختيار غير المسموح به انتهاكًا من نوع محدَّد ويوقف العملية. المسار يفشل فشلًا مغلقًا: لا تُرخّي السياسة نفسها أبدًا ولا تستبدل بخوارزمية أضعف. يتبع الحدّ الأدنى لطول مفتاح ⁨RSA⁩ معيار ⁨NIST SP 800-131A Rev.2⁩ §3. ويتبع اقتران منحنى ⁨ECDSA⁩ والملخّص ⁨FIPS 186-5⁩ §6.1.1.

يُشغِّل حارس الاختبار الذاتي عند التشغيل مجموعةَ اختبارات الإجابة المعروفة مرة عند بدء العملية. تغطّي المجموعة دوال الملخّص، ورمز المصادقة (⁨MAC⁩)، والتشفير، والتوقيع، وبتات العشوائية المعتمَدة. إذا أخفق أي اختبار، يدخل حارس ⁨FIPS⁩ في ⁨Enterprise⁩ حالة خطأ ويرفض الخدمات التشفيرية حتى إعادة التعيين. تُخزَّن النتيجة مؤقتًا طوال عمر العملية؛ وتتوفّر إعادة تشغيل عند الطلب. تتبع فئة الاختبار الذاتي ومُطلِق الاختبار الشرطي معياري ⁨ISO/IEC 19790:2025⁩ §⁨7.10⁩ و§7.10.3.

القرار الحامل هو إبقاء المفتاح الخاص داخل حدود الرمز وجعل سياسة التشفير تفشل فشلًا مغلقًا. الموقّع الذي يستطيع تصدير مفتاح، أو الرجوع بصمت إلى خوارزمية أضعف، يُبطل الضمان الذي توجد وحدة ⁨HSM⁩ لتوفيره. لذا يطلب الموقّع من الرمز حساب التوقيع في مكانه، ويرفض حارس وضع ⁨FIPS⁩ أي ملخّص أو ⁨OID⁩ أو قوّة مفتاح خارج الإعداد المعتمَد قبل تشغيل العملية. يمدّ الاختبار الذاتي عند التشغيل الموقفَ نفسه إلى بدء التشغيل: الوحدة غير المتحقَّق منها ترفض الخدمة بدلًا من التوقيع ببدائيات غير مختبَرة. والنتيجة حدّ يمكنك الاستدلال عليه، حيث حفظ المفتاح مملوك للمشغِّل والرمز، لا لهذا البرنامج.

خلفية التصميم: التوقيع المدعوم بـ ⁨HSM⁩.

السطح العامالنوعالغرضالاستقرارمنذ
موقّع رمز ⁨PKCS#11⁩صنف (يُنفِّذ واجهة ⁨Core⁩ ‏HsmSignerInterface)وقّع برمز ⁨PKCS#11⁩؛ يبقى المفتاح على الرمزمستقر1.0.0
سياسة تشفير ⁨FIPS⁩صنف (يُنفِّذ واجهة ⁨Core⁩ ‏CryptoPolicyInterface)إعداد مسبق لخوارزمية مسموحة وقوّة مفتاحمستقر1.9.0
حارس وضع ⁨FIPS⁩صنفأكّد أن ملخّصًا أو معرّف كائن توقيع أو خوارزمية تشفير أو قوّة مفتاح مسموح بهمستقر1.9.0
حارس إقلاع ⁨FIPS⁩صنفشغّل واخزن مؤقتًا الاختبار الذاتي عند التشغيل؛ أكّد أن الوحدة عاملةمستقر3.2.0
موقّع ⁨OpenSSL CLI⁩ / المحرّكصنف (يُنفِّذ HsmSignerInterface)وقّع عبر محرّك ⁨OpenSSL⁩ أو سطر أوامر ⁨OpenSSL⁩ للرموز المدعومة بالمحرّكمستقر1.0.0

يأخذ مُنشئ موقّع الرمز مسار مكتبة ⁨PKCS#11⁩، ورقم الفتحة، ورمز التعريف الشخصي (⁨PIN⁩) للرمز، وتسمية الشهادة، وتسمية مفتاح منفصلة اختيارية. معامل ⁨PIN⁩ موسوم بأنه حسّاس؛ ولا يُسجَّل ولا يُسلسَل. يعرض الموقّع أيضًا شهادة الموقّع وسلسلة الشهادة بصيغة ⁨DER⁩. العقد الموثوق للمعاملات والأنواع هو مرجع الـ ⁨API⁩ المنشور لحزمة nextpdf/enterprise؛ عامِل ذلك المرجع — لا هذه الصفحة — كالعقد.

Terminal window
composer require nextpdf/core
composer require nextpdf/enterprise:^3
Construct a FIPS-mode guard and assert a hash is allowed
use NextPDF\Enterprise\Security\Fips\FipsCryptoPolicy;
use NextPDF\Enterprise\Security\Fips\FipsModeGuard;
$guard = new FipsModeGuard(FipsCryptoPolicy::strict());
// Throws a typed FIPS violation if the algorithm is not approved.
$guard->assertHashAllowed('sha256');
$guard->assertKeyStrengthAllowed('rsa', 2048);
Run the power-on self-test at container boot, then gate signing
use NextPDF\Enterprise\Security\Fips\FipsBootGuard;
use NextPDF\Enterprise\Security\Fips\FipsSelfTest;
// At application bootstrap (one self-test cycle per worker process):
$bootGuard = new FipsBootGuard(new FipsSelfTest());
$bootGuard->assertOperational(); // throws on a known-answer-test failure
$container->set(FipsBootGuard::class, $bootGuard);
// The PKCS#11 token signer is only available when ext-pkcs11 is loaded.
// Check availability before you construct the signer. The PIN is a secret;
// supply it from your secret manager, never from source or logs.

قائمة وسائط المُنشئ الكاملة، وأنواع الاستثناءات، وإنشاء موقّع رمز ⁨PKCS#11⁩ موثَّقة في المرجع المتعمّق لأمان ⁨Enterprise⁩.

  • يثير مُنشئ موقّع رمز ⁨PKCS#11⁩ استثناء عملية من نوع محدَّد عندما لا يكون ext-pkcs11 محمَّلًا. افحص التوفّر أولًا.
  • يخزّن موقّع الرمز مؤقتًا وحدة ⁨PKCS#11⁩ واحدة لكل مسار مكتبة لكل عملية. يُحقّق هذا قاعدة «التهيئة مرة لكل وحدة» في واجهة الرمز.
  • تُرجع آليات رمز ⁨ECDSA⁩ توقيعًا خامًا. يحوّله الموقّع إلى الصيغة المُرمَّزة بـ ⁨DER⁩ لأجل قابلية التشغيل البيني مع ⁨PDF⁩ و⁨OpenSSL⁩.
  • يرفض حارس ⁨FIPS⁩ نوع المفتاح غير المعروف افتراضيًا. لا يُقبل نوع مفتاح غير معروف بصمت.
  • مسار توقيع ما بعد الكموم تجريبي، واشتراكي، ومُعطَّل افتراضيًا. لا تعترف ملفات تعريف ⁨PAdES⁩ القياسية للأرشفة طويلة الأمد بعدُ بمجموعات ما بعد الكموم. لا تُفعِّله لأجل توقيعات ⁨AdES⁩ الإنتاجية.

فحوصات حارس ⁨FIPS⁩ عمليات بحث في خريطة تجزئة في زمن ثابت. يعمل الاختبار الذاتي عند التشغيل مرة لكل عملية؛ وتُستهلَك تكلفته على مدى عمر العملية، لا لكل استدعاء توقيع. تضيف عملية توقيع ⁨PKCS#11⁩ رحلة واحدة ذهابًا وإيابًا إلى الرمز. وتضيف وحدة ⁨HSM⁩ المتّصلة بالشبكة زمن وصول تلك الرحلة.

  • مسار التوقيع يفشل فشلًا مغلقًا. يثير إخفاق بدائية أو ثغرة سياسة استثناءً من نوع محدَّد. ولا يخفض المسار الدرجة بصمت أبدًا إلى خوارزمية أضعف.
  • معامل ⁨PIN⁩ الرمز موسوم بأنه حسّاس. ولا يُسجَّل ولا يُسلسَل.
  • يبقى المفتاح الخاص لرمز ⁨PKCS#11⁩ على الرمز. وتجري عملية التوقيع داخل حدود الرمز.
  • يضع الاختبار الذاتي عند التشغيل حارسَ ⁨FIPS⁩ في ⁨Enterprise⁩ في حالة خطأ عند عدم تطابق اختبار الإجابة المعروفة ويرفض الخدمات التشفيرية حتى إعادة التعيين.
  • يتطلّب استخدام ⁨AES-GCM⁩ شعاع تهيئة فريدًا لكل مفتاح، وفق ⁨NIST SP 800-38D⁩ §5.

إقامة البيانات وتخفيفات المعلومات الشخصية

قسم بعنوان «إقامة البيانات وتخفيفات المعلومات الشخصية»

تعمل شيفرة التوقيع وسياسة ⁨FIPS⁩ داخل العملية. لا يغادر أي محتوى مستند المضيفَ لأجل فحص سياسة ⁨FIPS⁩ أو الاختبار الذاتي عند التشغيل. يتلقّى رمز ⁨PKCS#11⁩ البيانات المطلوب توقيعها، لا محتوى مستند غير ذي صلة. وتتلقّى وحدة ⁨HSM⁩ المتّصلة بالشبكة تلك البيانات عبر القناة الشبكية التي تهيّئها. تبقى مادة المفتاح داخل حدود الرمز أو ⁨HSM⁩.

القياس الآمن وتنقية السجلات

قسم بعنوان «القياس الآمن وتنقية السجلات»

معامل ⁨PIN⁩ الرمز معامل مُنشئ حسّاس ومُستبعَد من السجلات والتسلسل. لا تُضِف ⁨PIN⁩ ولا تسمية الرمز ولا مادة المفتاح إلى سجلات تطبيقك. عامِل كل بيانات اعتماد الرمز كأسرار في سياسة تسجيلك وتتبّعك.

هذا حدّ تشفيري، لذا فنموذج التهديد صريح. تُسلَّم البيانات المطلوب توقيعها إلى الرمز؛ والرمز يحمل المفتاح. يثير خطأ الرمز أو ⁨HSM⁩ استثناءً من نوع محدَّد؛ ولا يُنتج الموقّع نتيجة غير موقَّعة أو موقَّعة جزئيًا. تعتمد حماية المفتاح على الرمز أو ⁨HSM⁩، وعلى النشر، وعلى المشغِّل — لا على هذا البرنامج وحده. انظر حدود النشر.

  • يتوافق نموذج الاختبار الذاتي عند التشغيل والشرطي مع ⁨ISO/IEC 19790:2025⁩ §⁨7.10⁩ و§7.10.3.
  • يتوافق الحدّ الأدنى لطول مفتاح توقيع ⁨RSA⁩ مع ⁨NIST SP 800-131A Rev.2⁩ §3.
  • يتوافق اقتران منحنى ⁨ECDSA⁩ والملخّص المعتمَد مع ⁨FIPS 186-5⁩ §6.1.1.
  • تتوافق عملية توقيع رمز ⁨PKCS#11⁩ وتسجيل دخول الجلسة مع ⁨PKCS#11 v3.1⁩ §5.
  • تتوافق مسؤولية حماية المفتاح مع ⁨NIST SP 800-57 Part 1 Rev.5⁩ §5.5.2.
  • يتوافق تفرّد شعاع تهيئة ⁨AES-GCM⁩ مع ⁨NIST SP 800-38D⁩ §5.

كل مصدر معياري مُعاد صياغته. لا يُعاد إنتاج أي نص معياري في هذه الصفحة. هذه الصفحة تتعلق بالتوقيع التشفيري.

تُقيِّد سياسة وضع ⁨FIPS⁩ الخيارات التشفيرية بالمجموعة المعتمَدة الموصوفة أعلاه. عند التهيئة مقابل مزوّد ⁨OpenSSL⁩ مُتحقَّق منه وفق ⁨FIPS⁩، تعمل البدائية الأساسية داخل ذلك الحدّ المُتحقَّق منه. أما ⁨NextPDF Enterprise⁩ نفسه فيؤدّي التجميع البنيوي، وحساب الملخّص، وفرض السياسة.

‏⁨NextPDF Enterprise⁩ ليس وحدة تشفيرية مُتحقَّقًا منها وفق ⁨FIPS⁩ ولا يطرح أي ادعاء بشهادة ⁨FIPS⁩. يعمل ⁨NextPDF Enterprise⁩ في وضع متوافق مع ⁨FIPS⁩ فقط عندما يُهيَّأ بمزوّد تشفير مُتحقَّق منه وفق ⁨FIPS⁩ — مثلًا مزوّد ⁨OpenSSL⁩ مُتحقَّق منه وفق ⁨FIPS⁩ — أو وحدة ⁨HSM⁩ مُتحقَّق منها وفق ⁨FIPS⁩. سياسة وضع ⁨FIPS⁩ تساعد على الامتثال؛ وهي ليست شهادة.

يشحن ⁨NextPDF Core⁩ الموقّع البرمجي، واستهلاك الطابع الزمني وفق ⁨RFC 3161⁩، والتحقق من المسار وفق ⁨RFC 5280⁩، وفحص الإبطال عبر ⁨OCSP⁩ و⁨CRL⁩. يُنتج ⁨Core⁩ مستويَي ⁨PAdES⁩ ‏⁨B-B⁩ و⁨B-T⁩. يضيف ⁨NextPDF Pro⁩ الحجب، واكتشاف المعلومات الشخصية في طبقة النص، والتوقيع التسلسلي متعدّد الأطراف، واستراتيجيات التوقيع عن بُعد وعبر ⁨KMS⁩ السحابية (⁨AWS KMS⁩، و⁨GCP Cloud KMS⁩، و⁨Azure Key Vault⁩). ⁨NextPDF Pro⁩ لا يوفّر مسار رمز ⁨PKCS#11⁩ عتادي ولا يوفّر ملف سياسة تشفير وضع ⁨FIPS⁩. يُشحَن موقّع رمز ⁨PKCS#11⁩ العتادي، وملف سياسة تشفير وضع ⁨FIPS⁩، وحارس الاختبار الذاتي عند التشغيل، ومُنتِج ⁨PAdES B-LT⁩ و⁨B-LTA⁩ في حزمة nextpdf/enterprise فقط. النشر الذي لا يملك استحقاق ⁨Enterprise⁩ لا يُحمّل أصناف ⁨Enterprise⁩.

في نشر يقتصر على ⁨Pro⁩، يكون مسار التوقيع المدعوم عتاديًا وسحابيًا هو استراتيجية ⁨Pro⁩ عبر ⁨KMS⁩ السحابية: تحمل ⁨KMS⁩ سحابية أو ⁨KMS⁩ مدعومة بـ ⁨HSM⁩ المفتاحَ، ويرسل ⁨Pro⁩ ملخّص السمات الموقّعة، لا المستند، إلى المزوّد. يوفّر ⁨Pro⁩ تكامل ⁨KMS⁩، لا مصنع رمز ⁨PKCS#11⁩ في ⁨Enterprise⁩ ولا ملف وضع ⁨FIPS⁩. تهيئة تطلب ⁨B-LT⁩ أو ⁨B-LTA⁩ أو رمز ⁨PKCS#11⁩ أو ملف وضع ⁨FIPS⁩ في نشر يقتصر على ⁨Pro⁩ تفشل فشلًا مغلقًا برسالة تسمّي مكوّن ⁨Enterprise⁩ المفقود. راجع الأمان — ⁨NextPDF Pro⁩ لأجل سطح التوقيع في ⁨Pro⁩.

في نشر يقتصر على ⁨Core⁩، يُنتج الموقّع البرمجي ⁨PAdES B-B⁩ و⁨B-T⁩ بمفتاح محلي أو مفتاح يُزوَّد من خلال عقد استراتيجية التوقيع في ⁨Core⁩. لا يملك ⁨Core⁩ أي مسار رمز عتادي ولا ملف وضع ⁨FIPS⁩. راجع الأمان — ⁨NextPDF Core⁩.

يُوصَف تكامل رمز ⁨PKCS#11⁩، وربط آلياته، ومعالجة جلسته على مستوى السلوك فقط. أما جدول ربط الآليات الداخلي، ومنطق استعادة الجلسة الداخلي، ومادة ترحيل ما بعد الكموم فخارجة عن نطاق السطح العام ولا تُعاد هنا.

يتكامل ⁨NextPDF Enterprise⁩ مع رمز ⁨PKCS#11⁩، أو وحدة ⁨HSM⁩، أو خدمة ⁨KMS⁩. ولا يخزّن مفتاح التوقيع بنفسه ولا يولّده ولا يضمن أمنه. يعتمد أمن المفتاح على الرمز، أو ⁨HSM⁩، أو ⁨KMS⁩، وعلى النشر، وعلى المشغِّل — لا على ⁨NextPDF Enterprise⁩ وحده. المشغِّل مسؤول عن تزويد الرمز، ومعالجة ⁨PIN⁩، وتهيئة الفتحة، والحماية الشبكية لوحدة ⁨HSM⁩ المتّصلة بالشبكة، وتهيئة الثقة. تتبع مسؤولية حماية المفتاح ⁨NIST SP 800-57 Part 1 Rev.5⁩ §5.5.2. لا يعرض ⁨NextPDF Enterprise⁩ معالجة ⁨PIN⁩ الرمز، ولا أجزاء تهيئة الفتحة الداخلية، ولا مادة اعتماد المورّد في هذه الوثائق.

تتعلق هذه الصفحة بالتوقيع التشفيري وتكامل وحدة أمان الأجهزة. سياسة وضع ⁨FIPS⁩ ميزة مساعِدة على الامتثال. وهي ليست رأيًا قانونيًا ولا شهادة. استشر مستشاري الامتثال والشؤون القانونية لديك بخصوص التزاماتك التنظيمية.

توثِّق هذه الصفحة السلوك القابل للملاحظة خارجيًا والسطح العام المدعوم للـ ⁨API⁩ فقط. أما مسارات فضاء الأسماء الداخلية، وأصناف المساعِدة، وجداول الآليات، وأسماء ملفات أدلة التشغيل، وبادئات التذاكر فخارجة عن النطاق.

  • يؤكّد حارس ⁨FIPS⁩ كل ملخّص ومعرّف كائن توقيع وخوارزمية تشفير وقوّة مفتاح مقابل الإعداد النشط ويثير انتهاكًا من نوع محدَّد عند اختيار غير مسموح به.
  • يعمل الاختبار الذاتي عند التشغيل مرة لكل عملية ويرفض الخدمات التشفيرية عند إخفاق اختبار الإجابة المعروفة حتى إعادة التعيين.
  • يتطلّب موقّع رمز ⁨PKCS#11⁩ ‏ext-pkcs11؛ ويثير استثناء عملية من نوع محدَّد عند غياب الامتداد.
  • مسار التوقيع يفشل فشلًا مغلقًا ولا يستبدل أبدًا بخوارزمية أضعف.