Detekce kompromitace podpisu

Detekce kompromitace podpisu

Detekce kompromitace podpisu

SignaturesCompromiseDetector je vstupním bodem tohoto průvodce: zkoumá historii revizí podepsaného dokumentu a hledá indikátory, že byl obsah přidán po posledním aplikování podpisu, a hlásí, co nalezne, jako CompromiseCheckResult. Toto je bezpečnostní oblast pokrytá touto sekcí znalostní báze — nezahrnuje vytváření nebo aplikaci podpisů ani šifrování dokumentu; pouze zkoumá podpisy, které již v dokumentu existují.


Provádění kontroly kompromitace

Sestavte SignaturesCompromiseDetector s dokumentem, který chcete zkontrolovat, a poté zavolejte SignaturesCompromiseDetector.check(). Kontrola prochází každý podpis, který je v dokumentu již přítomen, a hledá nepodepsané bajty připojené po poslední podepsané revizi — znak toho, že byl obsah následně přidán — přičemž toleruje legitimní materiál pro dlouhodobou validaci (například úložiště zabezpečení dokumentu nebo archivní časové razítko) přidaný pozdější, pokrývající podpis.


Interpretace výsledku

SignaturesCompromiseDetector.check() vrací CompromiseCheckResult se čtyřmi vlastnostmi:

  • CompromiseCheckResult.has_compromised_signatures — True, pokud nějaký podpis vykázal indikátor manipulace.
  • CompromiseCheckResult.compromised — zrcadlí CompromiseCheckResult.has_compromised_signatures, poskytováno jako jen pro čtení pohodlný alias.
  • CompromiseCheckResult.signatures_coverage — počet podpisů, které detektor na dokumentu zkontroloval.
  • CompromiseCheckResult.reasons — seznam krátkých řetězců popisujících, proč a kdy byl dokument označen.

Dokument bez podpisů nebo vůbec žádný dokument je hlášen jako nekompromitovaný, přičemž CompromiseCheckResult.signatures_coverage je rovno 0.


Tipy a osvědčené postupy

  • Považujte CompromiseCheckResult.compromised a CompromiseCheckResult.has_compromised_signatures za zaměnitelné — vždy uvádějí stejnou hodnotu.
  • Zkontrolujte CompromiseCheckResult.signatures_coverage před tím, než budete důvěřovat výsledku False: pokrytí 0 znamená, že detektor nenašel žádné podpisy k prozkoumání, nikoli že existující podpisy byly ověřeny jako neporušené.
  • Přečtěte si CompromiseCheckResult.reasons, když je CompromiseCheckResult.has_compromised_signatures True — seznam vysvětluje, která heuristika byla spuštěna, což je užitečné při logování nebo při prezentaci výsledku recenzentovi.
  • SignaturesCompromiseDetector kontroluje historii revizí kvůli indikátorům manipulace; sám neověřuje integritu kryptografického podpisu, takže jej spojte s výsledky ověřování podpisu dokumentu tam, kde je to pro váš pracovní postup důležité.

Časté problémy

ProblémPříčinaOprava
CompromiseCheckResult.signatures_coverage je 0 pro dokument, o kterém víte, že je podepsánSignaturesCompromiseDetector byl vytvořen bez dokumentu, nebo objekt dokumentu nemá přístupné podpisyPotvrďte, že dokument předaný do SignaturesCompromiseDetector má své podpisy k dispozici, než zavoláte SignaturesCompromiseDetector.check()
CompromiseCheckResult.reasons je prázdný, i když jste očekávali vysvětleníCompromiseCheckResult.has_compromised_signatures je False pro tento dokumentDůvody jsou vyplněny pouze tehdy, když byl skutečně nalezen indikátor kompromisu; prázdný seznam u čistého výsledku je očekávaný
Legitimně aktualizovaný PDF (např. s přidaným časovým razítkem dlouhodobé validace) je označen jako kompromitovanýPozdější přídavek není plně pokryt následnou podpisem nebo není rozpoznán jako materiál pouze pro validaciZnovu spusťte kontrolu po potvrzení, že aktualizace byla provedena vhodným pokrývajícím podpisem nebo časovým razítkem, a prozkoumejte CompromiseCheckResult.reasons kvůli konkrétnímu spouštěči

FAQ

Co konkrétně kontroluje CompromiseCheckResult.compromised?

Zpráva uvádí stejnou hodnotu jako CompromiseCheckResult.has_compromised_signatures: zda SignaturesCompromiseDetector.check() nalezl jakýkoli indikátor manipulace v podpisových záznamech dokumentu.

Znamená signatures_coverage s hodnotou 0, že je dokument bezpečný?

Ne — to znamená, že nebyly nalezeny žádné podpisy k prozkoumání. SignaturesCompromiseDetector nemůže hlásit o podpisy, které nevidí, takže pokrytí 0 je výsledek „nic ke kontrole“, nikoli potvrzení integrity.

Může SignaturesCompromiseDetector vytvořit nebo ověřit kryptografický podpis?

Ne. Pouze kontroluje existující historii revizí dokumentu a hledá indikátory, že obsah byl přidán po posledním podpisu. Vytváření, aplikování nebo kryptografické ověřování podpisů spadá mimo to, co tato třída dělá.

Způsobí přidání legitimního časového razítka po podpisu vždy zjištění kompromisu?

Ne nutně. Detektor je navržen tak, aby toleroval pozdější přidání, které je samo pokryto následným podpisem, nebo které přidává pouze validační materiál místo nového obsahu. Zkontrolujte CompromiseCheckResult.reasons, pokud uvidíte neočekávané zjištění.


API Reference Shrnutí

Třída/MetodaPopis:
SignaturesCompromiseDetectorKontroluje podepsaný dokument na indikátory manipulace po posledním podpisu
SignaturesCompromiseDetector.check()Spustí kontrolu a vrátí CompromiseCheckResult
CompromiseCheckResultVýsledek kontroly kompromisu
CompromiseCheckResult.compromisedAlias jen pro čtení pro CompromiseCheckResult.has_compromised_signatures
CompromiseCheckResult.has_compromised_signaturesZda byl nalezen indikátor manipulace
CompromiseCheckResult.signatures_coveragePočet prověřených podpisů
CompromiseCheckResult.reasonsKrátké řetězce popisující jakýkoli nález

Viz také:

 Čeština