Detektera signaturkompromiss

Detektera signaturkompromiss

Upptäcka signaturkompromiss

SignaturesCompromiseDetector är startpunkten för den här guiden: den granskar en signerat dokuments revisionshistorik för indikatorer på att innehåll lagts till efter att den senaste signaturen applicerades, och rapporterar vad den hittar som en CompromiseCheckResult. Detta är säkerhetsytan som täcks av detta kunskapsbaskluster – den omfattar inte skapande eller tillämpning av signaturer, eller dokumentkryptering; den undersöker bara signaturer som redan finns på ett dokument.


Kör en kompromisskontroll

Skapa SignaturesCompromiseDetector med det dokument du vill granska, och anropa sedan SignaturesCompromiseDetector.check(). Kontrollfunktionen går igenom varje signatur som redan finns på dokumentet och söker efter osignerade byte som lagts till efter den senaste signerade revisionen – ett tecken på att innehåll kan ha lagts till i efterhand – samtidigt som den tolererar legitimt långsiktigt valideringsmaterial (såsom ett dokumentsäkerhetslager eller ett arkivtidsstämpel) som lagts till av en senare, övergripande signatur.


Tolka resultatet

SignaturesCompromiseDetector.check() returnerar en CompromiseCheckResult med fyra egenskaper:

  • CompromiseCheckResult.has_compromised_signatures — True om någon signatur visade en manipuleringsindikator.
  • CompromiseCheckResult.compromised — speglar CompromiseCheckResult.has_compromised_signatures, tillhandahålls som ett skrivskyddat bekvämlighetsalias.
  • CompromiseCheckResult.signatures_coverage — antalet signaturer som detektorn granskat på dokumentet.
  • CompromiseCheckResult.reasons — en lista med korta strängar som beskriver varför dokumentet flaggades, när det gjorde det.

Ett dokument utan signaturer, eller inget dokument alls, rapporteras som inte komprometterat, med CompromiseCheckResult.signatures_coverage lika med 0.


Tips och bästa praxis

  • Behandla CompromiseCheckResult.compromised och CompromiseCheckResult.has_compromised_signatures som utbytbara — de rapporterar alltid samma värde.
  • Kontrollera CompromiseCheckResult.signatures_coverage innan du litar på ett False-resultat: en täckning på 0 betyder att detektorn inte fann några signaturer att granska, inte att befintliga signaturer verifierades som intakta.
  • Läs CompromiseCheckResult.reasons när CompromiseCheckResult.has_compromised_signatures är True — listan förklarar vilken heuristik som utlöste, vilket är användbart vid loggning eller när resultatet visas för en granskare.
  • SignaturesCompromiseDetector granskar versionshistorik för tecken på manipulation; den validerar inte kryptografisk signaturintegritet själva, så kombinera den med dokumentets egna signaturvalideringsresultat där det är viktigt för ditt arbetsflöde.

Vanliga problem

ProblemOrsakLösning
CompromiseCheckResult.signatures_coverage är 0 för ett dokument som du vet är signeratSignaturesCompromiseDetector konstruerades utan ett dokument, eller så har dokumentobjektet inga åtkomliga signaturerBekräfta att dokumentet som skickas till SignaturesCompromiseDetector exponerar sina signaturer innan du anropar SignaturesCompromiseDetector.check()
CompromiseCheckResult.reasons är tom även om du förväntade dig en förklaringCompromiseCheckResult.has_compromised_signatures är False för detta dokumentAnledningar fylls endast i när en kompromissindikator faktiskt har hittats; en tom lista på ett rent resultat är förväntat
En legitimt uppdaterad PDF (t.ex. en med en tillagd långtidsgiltighetsstämpel) flaggas som komprometteradDet senare tillägget är inte helt täckt av en efterföljande signatur eller erkänns inte som material som endast används för valideringKör om kontrollen efter att ha bekräftat att uppdateringen gjordes med en korrekt täckande signatur eller tidsstämpel, och granska CompromiseCheckResult.reasons för den specifika utlösaren

FAQ

Vad kontrollerar CompromiseCheckResult.compromised egentligen?

Den rapporterar samma värde som CompromiseCheckResult.has_compromised_signatures: huruvida SignaturesCompromiseDetector.check() hittade någon manipulationsindikator i dokumentets signaturer.

Betyder ett signatures_coverage av 0 att dokumentet är säkert?

Nej — det betyder att inga signaturer hittades att granska. SignaturesCompromiseDetector kan inte rapportera om signaturer den inte kan se, så en 0 täckning är ett “inget att kontrollera”-resultat, inte en bekräftelse på integritet.

Kan SignaturesCompromiseDetector skapa eller verifiera en kryptografisk signatur?

Nej. Den granskar endast ett dokuments befintliga revisionshistorik för indikatorer på att innehåll lades till efter den senaste signaturen. Att skapa, tillämpa eller kryptografiskt validera signaturer ligger utanför vad den här klassen gör.

Kommer ett legitimt tidsstämplingstillägg efter signering alltid att utlösa ett kompromissfynd?

Inte nödvändigtvis. Detektorn är utformad för att tolerera ett senare tillägg som själv är täckt av en efterföljande signatur, eller som bara lägger till valideringsmaterial snarare än nytt innehåll. Kontrollera CompromiseCheckResult.reasons om du ser ett oväntat fynd.


API Reference Sammanfattning

Klass/MetodBeskrivning
SignaturesCompromiseDetectorInspekterar ett signerat dokument för manipuleringsindikatorer efter den sista signaturen
SignaturesCompromiseDetector.check()Kör kontrollen och returnerar en CompromiseCheckResult
CompromiseCheckResultResultatet av en kompromisskontroll
CompromiseCheckResult.compromisedSkrivskyddat alias för CompromiseCheckResult.has_compromised_signatures
CompromiseCheckResult.has_compromised_signaturesOm en manipuleringindikator hittades
CompromiseCheckResult.signatures_coverageAntalet undersökta signaturer
CompromiseCheckResult.reasonsKorta strängar som förklarar eventuella fynd

Se även

 Svenska