Rilevamento del compromesso della firma

Rilevamento del compromesso della firma

Rilevamento della compromissione della firma

SignaturesCompromiseDetector è il punto di ingresso per questa guida: controlla la cronologia delle revisioni di un documento firmato per individuare indicatori che il contenuto sia stato aggiunto dopo l’ultima firma applicata, e restituisce ciò che trova come un CompromiseCheckResult. Questa è la superficie di sicurezza coperta da questo cluster della base di conoscenza — non copre la creazione o l’applicazione di firme, né la crittografia dei documenti; esamina solo le firme già presenti su un documento.


Esecuzione di un controllo di compromissione

Costruisci SignaturesCompromiseDetector con il documento che desideri ispezionare, quindi chiama SignaturesCompromiseDetector.check(). Il controllo percorre ogni firma già presente sul documento e cerca byte non firmati aggiunti dopo l’ultima revisione firmata — un segno che il contenuto potrebbe essere stato sovrapposto successivamente — pur tollerando materiale legittimo di validazione a lungo termine (come un archivio di sicurezza del documento o un timestamp di archivio) aggiunto da una firma successiva di copertura.


Interpretazione del risultato

SignaturesCompromiseDetector.check() restituisce un CompromiseCheckResult con quattro proprietà:

  • CompromiseCheckResult.has_compromised_signatures — True se qualche firma ha mostrato un indicatore di manomissione.
  • CompromiseCheckResult.compromised — rispecchia CompromiseCheckResult.has_compromised_signatures, fornito come alias di comodità in sola lettura.
  • CompromiseCheckResult.signatures_coverage — il numero di firme che il rilevatore ha esaminato sul documento.
  • CompromiseCheckResult.reasons — un elenco di brevi stringhe che descrivono perché il documento è stato segnalato, quando è avvenuto.

Un documento senza firme, o nessun documento, viene segnalato come non compromesso, con CompromiseCheckResult.signatures_coverage pari a 0.


Suggerimenti e Buone Pratiche

  • Considera CompromiseCheckResult.compromised e CompromiseCheckResult.has_compromised_signatures come intercambiabili — riportano sempre lo stesso valore.
  • Verifica CompromiseCheckResult.signatures_coverage prima di fidarti di un risultato False: una copertura di 0 significa che il rilevatore non ha trovato firme da esaminare, non che le firme esistenti siano state verificate come intatte.
  • Leggi CompromiseCheckResult.reasons quando CompromiseCheckResult.has_compromised_signatures è True — l’elenco spiega quale euristica è stata attivata, utile durante la registrazione o la presentazione del risultato a un revisore.
  • SignaturesCompromiseDetector esamina la cronologia delle revisioni alla ricerca di indicatori di manomissione; non valida autonomamente l’integrità della firma crittografica, quindi accoppialo ai risultati di convalida delle firme del documento dove ciò è rilevante per il tuo flusso di lavoro.

Problemi comuni

ProblemaCausaCorrezione
CompromiseCheckResult.signatures_coverage è 0 per un documento che sai essere firmatoSignaturesCompromiseDetector è stato costruito senza un documento, o l’oggetto documento non ha firme accessibiliConferma che il documento passato a SignaturesCompromiseDetector esponga le sue firme prima di chiamare SignaturesCompromiseDetector.check()
CompromiseCheckResult.reasons è vuoto anche se ti aspettavi una spiegazioneCompromiseCheckResult.has_compromised_signatures è False per questo documentoLe ragioni vengono popolate solo quando è stato effettivamente trovato un indicatore di compromissione; un elenco vuoto su un risultato pulito è previsto
Un PDF legittimamente aggiornato (ad es. con un timestamp di convalida a lungo termine aggiunto) viene segnalato come compromessoL’aggiunta successiva non è completamente coperta da una firma successiva o non è riconosciuta come materiale solo di convalidaRiesegui il controllo dopo aver confermato che l’aggiornamento è stato effettuato da una firma o timestamp di copertura appropriato, e ispeziona CompromiseCheckResult.reasons per il trigger specifico

FAQ

Cosa controlla effettivamente CompromiseCheckResult.compromised?

Riporta lo stesso valore di CompromiseCheckResult.has_compromised_signatures: se SignaturesCompromiseDetector.check() ha rilevato qualche indicatore di manomissione nelle firme del documento.

Un signatures_coverage di 0 significa che il documento è sicuro?

No — significa che non sono state trovate firme da esaminare. SignaturesCompromiseDetector non può segnalare firme che non può vedere, quindi una copertura 0 è un risultato di “nulla da controllare”, non una conferma di integrità.

Può SignaturesCompromiseDetector creare o verificare una firma crittografica?

No. Esamina solo la cronologia delle revisioni esistente di un documento alla ricerca di indicatori che il contenuto sia stato aggiunto dopo l’ultima firma. Creare, applicare o convalidare crittograficamente le firme è al di fuori di ciò che fa questa classe.

L’aggiunta di un timestamp legittimo dopo la firma attiverà sempre un avviso di compromissione?

Non necessariamente. Il rilevatore è progettato per tollerare un’aggiunta successiva che è essa stessa coperta da una firma successiva, o che aggiunge solo materiale di convalida anziché nuovo contenuto. Controlla CompromiseCheckResult.reasons se vedi un risultato inatteso.


API Reference Riepilogo

Classe/MetodoDescrizione
SignaturesCompromiseDetectorIspeziona un documento firmato alla ricerca di indicatori di manomissione dopo l’ultima firma
SignaturesCompromiseDetector.check()Esegue il controllo e restituisce un CompromiseCheckResult
CompromiseCheckResultIl risultato di un controllo di compromissione
CompromiseCheckResult.compromisedAlias di sola lettura per CompromiseCheckResult.has_compromised_signatures
CompromiseCheckResult.has_compromised_signaturesSe è stato trovato un indicatore di manomissione
CompromiseCheckResult.signatures_coverageIl numero di firme esaminate
CompromiseCheckResult.reasonsBrevi stringhe che spiegano eventuali riscontri

Vedi anche

 Italiano