اكتشاف اختراق التوقيع

اكتشاف اختراق التوقيع

اكتشاف اختراق التوقيع

SignaturesCompromiseDetector هو نقطة الدخول لهذا الدليل: يقوم بفحص تاريخ مراجعات المستند الموقّع للبحث عن مؤشرات على إضافة محتوى بعد تطبيق آخر توقيع، ويُبلغ عما يجده كـ CompromiseCheckResult. هذه هي السطح الأمني الذي تغطيه هذه المجموعة من قاعدة المعرفة — لا يغطي إنشاء أو تطبيق التواقيع، أو تشفير المستند؛ بل يفحص فقط التواقيع الموجودة بالفعل على المستند.


تشغيل فحص الاختراق

أنشئ SignaturesCompromiseDetector بالمستند الذي تريد فحصه، ثم استدعِ SignaturesCompromiseDetector.check(). يتحقق الفحص من كل توقيع موجود بالفعل على المستند ويبحث عن بايتات غير موقعة مضافة بعد آخر مراجعة موقعة — إشارة إلى أن المحتوى قد تم طبقه لاحقًا — مع تحمل مادة التحقق طويلة الأمد الشرعية (مثل مخزن أمان المستند أو طابع زمني للأرشيف) التي يضيفها توقيع لاحق يغطي السابق.


تفسير النتيجة

SignaturesCompromiseDetector.check() يُعيد CompromiseCheckResult يحتوي على أربع خصائص:

  • CompromiseCheckResult.has_compromised_signatures — True إذا أظهر أي توقيع مؤشرًا على العبث.
  • CompromiseCheckResult.compromised — ينسخ CompromiseCheckResult.has_compromised_signatures، مُقدَّم كاسم مستعار للراحة للقراءة فقط.
  • CompromiseCheckResult.signatures_coverage — عدد التوقيعات التي فحصها الكاشف على المستند.
  • CompromiseCheckResult.reasons — قائمة بالسلاسل القصيرة التي تصف سبب وضع العلامة على المستند، ومتى تم ذلك.

يُبلّغ عن مستند لا يحتوي على توقيعات، أو عدم وجود مستند على الإطلاق، بأنه غير مخترق، حيث تكون قيمة CompromiseCheckResult.signatures_coverage مساوية لـ 0.


نصائح وأفضل الممارسات

  • عامل CompromiseCheckResult.compromised وCompromiseCheckResult.has_compromised_signatures كقابلة للتبديل — دائمًا ما تُبلغ عن نفس القيمة.
  • تحقق من CompromiseCheckResult.signatures_coverage قبل الوثوق بنتيجة False: تغطية قدرها 0 تعني أن الكاشف لم يجد توقيعات لفحصها، وليس أن التوقيعات الموجودة تم التحقق من سلامتها.
  • اقرأ CompromiseCheckResult.reasons عندما يكون CompromiseCheckResult.has_compromised_signatures هو True — توضح القائمة أي خوارزمية تم تفعيلها، وهو أمر مفيد عند التسجيل أو عرض النتيجة على المراجع.
  • SignaturesCompromiseDetector يفحص سجل الإصدارات بحثًا عن مؤشرات التلاعب؛ لا يتحقق من سلامة التوقيع المشفر بنفسه، لذا يجب ربطه بنتائج التحقق من التوقيع الخاصة بالمستند حيثما يكون ذلك مهمًا في سير عملك.

مشكلات شائعة

المشكلةالسببالإصلاح
CompromiseCheckResult.signatures_coverage هو 0 لوثيقة تعلم أنها موقعةتم إنشاء SignaturesCompromiseDetector بدون مستند، أو كائن المستند لا يحتوي على توقيعات يمكن الوصول إليهاتأكد من أن المستند الممرَّ إلى SignaturesCompromiseDetector يكشف عن توقيعاته قبل استدعاء SignaturesCompromiseDetector.check()
CompromiseCheckResult.reasons فارغ على الرغم من أنك كنت تتوقع شرحًاCompromiseCheckResult.has_compromised_signatures هو False لهذا المستنديتم ملء الأسباب فقط عندما يتم العثور فعليًا على مؤشر اختراق؛ من المتوقع وجود قائمة فارغة في نتيجة نظيفة
يُصنَّف ملف PDF محدث بصورة شرعية (مثل الذي يحتوي على طابع زمني للتحقق طويل الأمد) على أنه مخترقالإضافة اللاحقة غير مغطاة بالكامل بتوقيع لاحق أو لا تُعترف بها كمادة خاصة بالتحقق فقطأعد تشغيل الفحص بعد التأكد من أن التحديث تم بواسطة توقيع تغطية مناسب أو طابع زمني، وتفقد CompromiseCheckResult.reasons للعثور على المشغل المحدد

FAQ

ما الذي يتحقق منه CompromiseCheckResult.compromised فعليًا؟

يُبلغ عن نفس القيمة كما في CompromiseCheckResult.has_compromised_signatures: ما إذا كان SignaturesCompromiseDetector.check() قد وجد أي مؤشر تلاعب عبر توقيعات المستند.

هل يعني وجود signatures_coverage من نوع 0 أن المستند آمن؟

لا — هذا يعني أنه لم يتم العثور على أي توقيعات للفحص. لا يمكن لـ SignaturesCompromiseDetector الإبلاغ عن توقيعات لا يستطيع رؤيتها، لذا فإن تغطية 0 تعني نتيجة “لا شيء للفحص”، وليس تأكيدًا على السلامة.

هل يمكن لـ SignaturesCompromiseDetector إنشاء أو التحقق من توقيع مشفر؟

لا. إنها تفحص فقط تاريخ إصدارات المستند الحالي بحثًا عن مؤشرات على أن المحتوى أُضيف بعد التوقيع الأخير. إنشاء أو تطبيق أو التحقق من صحة التواقيع بشكل تشفيرى خارج نطاق ما تقوم به هذه الفئة.

هل سيؤدي إضافة طابع زمني شرعي بعد التوقيع دائمًا إلى اكتشاف اختراق؟

ليس بالضرورة. تم تصميم الكاشف لتحمل الإضافة اللاحقة التي تكون مغطاة بتوقيع لاحق، أو التي تضيف فقط مادة تحقق بدلاً من محتوى جديد. تحقق من CompromiseCheckResult.reasons إذا رأيت اكتشافًا غير متوقع.


API Reference ملخص

الفئة/الطريقةوصف
SignaturesCompromiseDetectorيفحص المستند الموقع للبحث عن مؤشرات التلاعب بعد آخر توقيع
SignaturesCompromiseDetector.check()يُجري الفحص ويُعيد CompromiseCheckResult
CompromiseCheckResultنتيجة فحص الاختراق
CompromiseCheckResult.compromisedالاسم المستعار للقراءة فقط لـ CompromiseCheckResult.has_compromised_signatures
CompromiseCheckResult.has_compromised_signaturesما إذا تم العثور على مؤشر تلاعب
CompromiseCheckResult.signatures_coverageعدد التوقيعات التي تم فحصها
CompromiseCheckResult.reasonsسلاسل قصيرة توضح أي اكتشاف

انظر أيضاً

 العربية