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