Detectarea compromiterii semnăturii

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 — True dacă 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 și CompromiseCheckResult.has_compromised_signatures ca interschimbabile — raportează întotdeauna aceeași valoare.
  • Verifică CompromiseCheckResult.signatures_coverage înainte de a avea încredere într-un rezultat False: o acoperire de 0 înseamnă că detectorul nu a găsit semnături de examinat, nu că semnăturile existente au fost verificate ca intacte.
  • Citește CompromiseCheckResult.reasons când CompromiseCheckResult.has_compromised_signatures este True — lista explică care euristică a fost declanșată, ceea ce este util la înregistrarea sau prezentarea rezultatului unui revizor.
  • SignaturesCompromiseDetector inspectează 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 semnatSignaturesCompromiseDetector a fost construit fără un document sau obiectul document nu are semnături accesibileConfirmă 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țieCompromiseCheckResult.has_compromised_signatures este False pentru acest documentMotivele 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 compromisAdăugirea ulterioară nu este acoperită complet de o semnătură ulterioară sau nu este recunoscută ca material destinat doar validăriiRulaț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:
SignaturesCompromiseDetectorInspectează un document semnat pentru indicatori de manipulare după ultima semnătură
SignaturesCompromiseDetector.check()Rulează verificarea și returnează un CompromiseCheckResult
CompromiseCheckResultRezultatul unei verificări de compromitere
CompromiseCheckResult.compromisedAlias doar în citire pentru CompromiseCheckResult.has_compromised_signatures
CompromiseCheckResult.has_compromised_signaturesDacă a fost găsit un indicator de manipulare
CompromiseCheckResult.signatures_coverageNumărul de semnături examinate
CompromiseCheckResult.reasonsȘiruri scurte care explică orice constatare

Vezi și:

 Română