تشخیص نفوذ امضا

تشخیص نفوذ امضا

تشخیص نفوذ امضا

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 را به‌عنوان قابل تعویض در نظر بگیرید — آن‌ها همیشه مقدار یکسانی را گزارش می‌دهند.
  • قبل از اعتماد به نتیجهٔ False، CompromiseCheckResult.signatures_coverage را بررسی کنید: پوشش 0 به این معنی است که آشکارساز هیچ امضایی برای بررسی نیافته است، نه اینکه امضای موجود تأیید شده به‌عنوان سالم باشد.
  • هنگامی که CompromiseCheckResult.has_compromised_signatures برابر True باشد، CompromiseCheckResult.reasons را بخوانید — این فهرست توضیح می‌دهد کدام هورستیک فعال شده است، که برای ثبت لاگ یا نمایش نتیجه به بازبین مفید است.
  • SignaturesCompromiseDetector تاریخچهٔ بازنگری را برای نشانه‌های دستکاری می‌نگرد؛ خود به‌تنهایی یکپارچگی امضای رمزنگاری‌شده را تأیید نمی‌کند، بنابراین در مواردی که برای جریان کار شما مهم است، نتایج اعتبارسنجی امضای خود سند را همراه آن استفاده کنید.

مسائل رایج

مشکلدلیلراه‌حل
CompromiseCheckResult.signatures_coverage 0 برای سندی که می‌دانید امضا شده استSignaturesCompromiseDetector بدون سند ساخته شده بود، یا شی سند امضای قابل دسترسی نداردقبل از فراخوانی SignaturesCompromiseDetector.check()، تأیید کنید که سندی که به SignaturesCompromiseDetector پاس داده شده است امضاهای خود را نشان می‌دهد
CompromiseCheckResult.reasons خالی است، اگرچه شما انتظار توضیح داشتیدCompromiseCheckResult.has_compromised_signatures False برای این سنددلیل‌ها فقط زمانی پر می‌شوند که نشانگر نفوذ واقعاً پیدا شده باشد؛ انتظار می‌رود در نتیجه‌ای پاک، لیست خالی باشد
یک PDF که به‌طور مشروع به‌روز شده است (مثلاً 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رشته‌های کوتاه توضیح‌دهندهٔ هر یافته

همچنین ببینید:

 فارسی