Detectarea compromiterii semnăturii
Detectarea compromiterii semnăturii
SignaturesCompromiseDetector este punctul de intrare pentru acest ghid: inspectează istoricul reviziilor unui document semnat pentru indicii că conținutul a fost adăugat după aplicarea ultimei semnături și raportează ce găsește ca un CompromiseCheckResult. Aceasta este suprafața de securitate acoperită de acest cluster al bazei de cunoștințe — nu acoperă crearea sau aplicarea semnăturilor, sau criptarea documentului; examinează doar semnăturile care deja există pe un document.
Executarea unei verificări de compromitere
Construiți SignaturesCompromiseDetector cu documentul pe care doriți să îl inspectați, apoi apelați SignaturesCompromiseDetector.check(). Verificarea parcurge fiecare semnătură deja prezentă pe document și caută octeți nesemnați adăugați după ultima revizie semnată — un semn că conținutul ar fi putut fi suprapus ulterior — în timp ce tolerează materialul legitim de validare pe termen lung (cum ar fi un depozit de securitate al documentului sau un timestamp de arhivă) adăugat de o semnătură ulterioară, de acoperire.
Interpretarea rezultatului
SignaturesCompromiseDetector.check() returnează un CompromiseCheckResult cu patru proprietăți:
CompromiseCheckResult.has_compromised_signatures—Truedacă vreo semnătură a arătat un indicator de manipulare.CompromiseCheckResult.compromised— reflectăCompromiseCheckResult.has_compromised_signatures, oferit ca un alias de conveniență doar în citire.CompromiseCheckResult.signatures_coverage— numărul de semnături pe care detectorul le-a examinat în document.CompromiseCheckResult.reasons— o listă de șiruri scurte care descriu de ce a fost semnalat documentul, când a fost semnalat.
Un document fără semnături, sau niciun document, este raportat ca necompromis, cu CompromiseCheckResult.signatures_coverage egal cu 0.
Sfaturi și cele mai bune practici
- Tratează
CompromiseCheckResult.compromisedșiCompromiseCheckResult.has_compromised_signaturesca interschimbabile — raportează întotdeauna aceeași valoare. - Verifică
CompromiseCheckResult.signatures_coverageînainte de a avea încredere într-un rezultatFalse: o acoperire de0înseamnă că detectorul nu a găsit semnături de examinat, nu că semnăturile existente au fost verificate ca intacte. - Citește
CompromiseCheckResult.reasonscândCompromiseCheckResult.has_compromised_signaturesesteTrue— lista explică care euristică a fost declanșată, ceea ce este util la înregistrarea sau prezentarea rezultatului unui revizor. SignaturesCompromiseDetectorinspectează istoricul reviziilor pentru indicii de manipulare; nu validează în sine integritatea semnăturii criptografice, așa că îl asociați cu rezultatele de validare a semnăturii proprii ale documentului acolo unde acest lucru contează în fluxul dumneavoastră de lucru.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
CompromiseCheckResult.signatures_coverage este 0 pentru un document pe care știi că este semnat | SignaturesCompromiseDetector a fost construit fără un document sau obiectul document nu are semnături accesibile | Confirmă că documentul transmis către SignaturesCompromiseDetector expune semnăturile sale înainte de a apela SignaturesCompromiseDetector.check() |
CompromiseCheckResult.reasons este gol, deși te așteptai la o explicație | CompromiseCheckResult.has_compromised_signatures este False pentru acest document | Motivele sunt completate doar când a fost găsit efectiv un indicator de compromitere; se așteaptă o listă goală la un rezultat curat |
| Un PDF actualizat în mod legitim (de exemplu, unul cu un marcaj temporal de validare pe termen lung adăugat) este marcat ca compromis | Adăugirea ulterioară nu este acoperită complet de o semnătură ulterioară sau nu este recunoscută ca material destinat doar validării | Rulați din nou verificarea după ce confirmați că actualizarea a fost făcută printr-o semnătură sau un marcaj temporal de acoperire adecvat, și inspectați CompromiseCheckResult.reasons pentru declanșatorul specific |
FAQ
Ce verifică de fapt CompromiseCheckResult.compromised?
Raportează aceeași valoare ca CompromiseCheckResult.has_compromised_signatures: dacă SignaturesCompromiseDetector.check() a găsit vreun indicator de manipulare în semnăturile documentului.
Înseamnă un signatures_coverage de 0 că documentul este sigur?
Nu — înseamnă că nu au fost găsite semnături de examinat. SignaturesCompromiseDetector nu poate raporta semnăturile pe care nu le poate vedea, așa că o acoperire 0 este un rezultat „nimic de verificat”, nu o confirmare a integrității.
Poate SignaturesCompromiseDetector să creeze sau să verifice o semnătură criptografică?
Nu. Verifică doar istoricul de revizuire existent al documentului pentru indicii că conținutul a fost adăugat după ultima semnătură. Crearea, aplicarea sau validarea criptografică a semnăturilor este în afara a ceea ce face această clasă.
Va declanșa adăugarea unui timestamp legitim după semnare întotdeauna o constatare de compromitere?
Nu neapărat. Detectorul este conceput să tolerate o adăugire ulterioară care este acoperită de o semnătură ulterioară, sau care adaugă doar material de validare în loc de conținut nou. Verificați CompromiseCheckResult.reasons dacă observați o constatare neașteptată.
API Reference Rezumat
| Clasă/Metodă | Descriere: |
|---|---|
SignaturesCompromiseDetector | Inspectează un document semnat pentru indicatori de manipulare după ultima semnătură |
SignaturesCompromiseDetector.check() | Rulează verificarea și returnează un CompromiseCheckResult |
CompromiseCheckResult | Rezultatul unei verificări de compromitere |
CompromiseCheckResult.compromised | Alias doar în citire pentru CompromiseCheckResult.has_compromised_signatures |
CompromiseCheckResult.has_compromised_signatures | Dacă a fost găsit un indicator de manipulare |
CompromiseCheckResult.signatures_coverage | Numărul de semnături examinate |
CompromiseCheckResult.reasons | Șiruri scurte care explică orice constatare |