Detectando Comprometimento de Assinatura

Detectando Comprometimento de Assinatura

Detectando Comprometimento de Assinatura

SignaturesCompromiseDetector é o ponto de entrada para este guia: ele inspeciona o histórico de revisões de um documento assinado em busca de indicadores de que conteúdo foi adicionado após a última assinatura ter sido aplicada, e relata o que encontra como um CompromiseCheckResult. Esta é a superfície de segurança coberta por este cluster da base de conhecimento — não cobre a criação ou aplicação de assinaturas, nem a criptografia de documentos; ele apenas examina assinaturas que já existem em um documento.


Executando uma Verificação de Comprometimento

Construa SignaturesCompromiseDetector com o documento que você deseja inspecionar, então chame SignaturesCompromiseDetector.check(). A verificação percorre cada assinatura já presente no documento e procura por bytes não assinados anexados após a última revisão assinada — um sinal de que o conteúdo pode ter sido sobreposto posteriormente — enquanto tolera material de validação de longo prazo legítimo (como um repositório de segurança de documento ou um carimbo de tempo de arquivo) adicionado por uma assinatura posterior que cobre a anterior.


Interpretando o Resultado

SignaturesCompromiseDetector.check() retorna um CompromiseCheckResult com quatro propriedades:

  • CompromiseCheckResult.has_compromised_signatures — True se alguma assinatura mostrou um indicador de adulteração.
  • CompromiseCheckResult.compromised — espelha CompromiseCheckResult.has_compromised_signatures, fornecido como um alias de conveniência somente leitura.
  • CompromiseCheckResult.signatures_coverage — o número de assinaturas que o detector examinou no documento.
  • CompromiseCheckResult.reasons — uma lista de strings curtas descrevendo por que o documento foi sinalizado, quando foi.

Um documento sem assinaturas, ou nenhum documento, é relatado como não comprometido, com CompromiseCheckResult.signatures_coverage igual a 0.


Dicas e Melhores Práticas

  • Trate CompromiseCheckResult.compromised e CompromiseCheckResult.has_compromised_signatures como intercambiáveis — eles sempre relatam o mesmo valor.
  • Verifique CompromiseCheckResult.signatures_coverage antes de confiar em um resultado de False: uma cobertura de 0 significa que o detector não encontrou assinaturas para examinar, não que assinaturas existentes foram verificadas como intactas.
  • Leia CompromiseCheckResult.reasons quando CompromiseCheckResult.has_compromised_signatures está True — a lista explica qual heurística foi acionada, o que é útil ao registrar ou exibir o resultado para um revisor.
  • SignaturesCompromiseDetector inspeciona o histórico de revisões em busca de indicadores de adulteração; ele não valida a integridade da assinatura criptográfica por si só, portanto combine-o com os resultados de validação de assinatura do próprio documento onde isso for relevante para o seu fluxo de trabalho.

Problemas comuns

ProblemaCausaCorreção
CompromiseCheckResult.signatures_coverage é 0 para um documento que você sabe que está assinadoSignaturesCompromiseDetector foi construído sem um documento, ou o objeto de documento não tem assinaturas acessíveisConfirme se o documento passado para SignaturesCompromiseDetector expõe suas assinaturas antes de chamar SignaturesCompromiseDetector.check()
CompromiseCheckResult.reasons está vazio mesmo que você esperasse uma explicaçãoCompromiseCheckResult.has_compromised_signatures é False para este documentoOs motivos são preenchidos somente quando um indicador de comprometimento foi realmente encontrado; uma lista vazia em um resultado limpo é esperada
Um PDF legitimamente atualizado (por exemplo, um com um carimbo de data/hora de validação de longo prazo adicionado) é marcado como comprometidoA adição posterior não está totalmente coberta por uma assinatura subsequente ou não é reconhecida como material apenas de validaçãoExecute a verificação novamente após confirmar que a atualização foi feita por uma assinatura ou carimbo de data/hora de cobertura adequado, e inspecione CompromiseCheckResult.reasons para o gatilho específico

FAQ

O que CompromiseCheckResult.compromised realmente verifica?

Ele relata o mesmo valor que CompromiseCheckResult.has_compromised_signatures: se SignaturesCompromiseDetector.check() encontrou algum indicador de adulteração nas assinaturas do documento.

Um signatures_coverage de 0 significa que o documento está seguro?

Não — isso significa que nenhuma assinatura foi encontrada para examinar. SignaturesCompromiseDetector não pode relatar assinaturas que não vê, portanto, uma cobertura de 0 é um resultado de “nada a verificar”, não uma confirmação de integridade.

O SignaturesCompromiseDetector pode criar ou verificar uma assinatura criptográfica?

Não. Ele apenas inspeciona o histórico de revisões existente de um documento em busca de indicadores de que o conteúdo foi adicionado após a última assinatura. Criar, aplicar ou validar criptograficamente assinaturas está fora do escopo desta classe.

Adicionar um carimbo de tempo legítimo após a assinatura sempre disparará um achado de comprometimento?

Não necessariamente. O detector foi projetado para tolerar uma adição posterior que esteja coberta por uma assinatura subsequente, ou que apenas adicione material de validação em vez de novo conteúdo. Verifique CompromiseCheckResult.reasons se você encontrar um achado inesperado.


API Reference Resumo

Classe/MétodoDescrição
SignaturesCompromiseDetectorInspeciona um documento assinado em busca de indicadores de adulteração após a última assinatura
SignaturesCompromiseDetector.check()Executa a verificação e retorna um CompromiseCheckResult
CompromiseCheckResultO resultado de uma verificação de comprometimento
CompromiseCheckResult.compromisedAlias somente leitura para CompromiseCheckResult.has_compromised_signatures
CompromiseCheckResult.has_compromised_signaturesSe um indicador de adulteração foi encontrado
CompromiseCheckResult.signatures_coverageO número de assinaturas examinadas
CompromiseCheckResult.reasonsCadeias curtas explicando qualquer constatação

Ver também

 Português