זיהוי פגיעה בחתימה

זיהוי פגיעה בחתימה

זיהוי פגיעה בחתימה

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מחרוזות קצרות שמסבירות כל מציאה

ראה גם

 עברית