mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-08 08:52:28 +01:00
100 lines
6.5 KiB
Markdown
100 lines
6.5 KiB
Markdown
---
|
|
title: Validar Assinatura
|
|
description: Verifique assinaturas digitais em arquivos PDF. Confira a validade do certificado, a identidade do signatário, a integridade do documento e o status da cadeia de confiança.
|
|
---
|
|
|
|
# Validar Assinatura
|
|
|
|
Envie um PDF assinado e esta ferramenta extrai todas as assinaturas digitais, identifica o signatário, verifica a validade do certificado e informa se o documento foi modificado após a assinatura. Você também pode fornecer um certificado confiável para verificar a cadeia da assinatura.
|
|
|
|
## Como funciona
|
|
|
|
1. Envie um arquivo PDF assinado. A validação começa automaticamente.
|
|
2. A ferramenta exibe um resumo: número de assinaturas encontradas e quantas são válidas.
|
|
3. Cada assinatura recebe um cartão detalhado com nome do signatário, emissor, datas e status.
|
|
4. Opcionalmente, envie um **certificado confiável** (.pem, .crt, .cer, .der) para verificar a assinatura em relação a uma âncora de confiança específica. A revalidação é executada automaticamente.
|
|
|
|
## O que é verificado
|
|
|
|
### Análise da assinatura
|
|
|
|
A ferramenta extrai os objetos de assinatura PKCS#7 do PDF, decodifica a estrutura ASN.1 e obtém o certificado X.509 do signatário, junto com qualquer cadeia de certificados incorporada na assinatura.
|
|
|
|
### Validade do certificado
|
|
|
|
- **Expiração**: o certificado está dentro do período de validade no momento?
|
|
- **Detecção de autoassinatura**: o certificado é o próprio emissor?
|
|
- **Cadeia de confiança**: quando um certificado confiável é fornecido, o certificado do signatário remonta a ele?
|
|
|
|
### Verificação criptográfica
|
|
|
|
- A ferramenta reconstrói os bytes cobertos pelo `/ByteRange` da assinatura, calcula o hash deles com o algoritmo declarado pelo signatário e compara o resultado com o atributo `messageDigest` dentro da assinatura.
|
|
- Em seguida, ela reserializa os atributos assinados como um SET DER e verifica a assinatura com a chave pública do certificado do signatário.
|
|
- **Uma assinatura só é considerada válida quando todas essas verificações passam.** Se os bytes do PDF foram modificados após a assinatura, ou se a assinatura incorporada não corresponde à chave do signatário, o status mostra "Inválido: falha na verificação criptográfica" com o motivo específico.
|
|
|
|
#### Algoritmos de assinatura suportados
|
|
|
|
| Algoritmo | Caminho de verificação |
|
|
| ----------------------- | ------------------------------------------------------------------------------------------ |
|
|
| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, com fallback para Web Crypto |
|
|
| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
|
|
| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` após a conversão da assinatura DER → IEEE P1363 |
|
|
|
|
Se uma assinatura usa um algoritmo fora dessa lista (por exemplo Ed25519, SM2 ou RSA com um OID de digest incomum), o cartão mostra **"Não verificada: algoritmo de assinatura não compatível"** em amarelo, junto com o OID ou o motivo específico. Trata-se de uma distinção deliberada em três estados:
|
|
|
|
- **Válida**: assinatura verificada criptograficamente com a chave pública do signatário.
|
|
- **Inválida**: a verificação foi executada e deu resultado negativo (bytes alterados, chave incompatível).
|
|
- **Não verificada**: a ferramenta não conseguiu executar a verificação para esse algoritmo. Os metadados do certificado continuam sendo exibidos, mas você deve tratar a assinatura como "desconhecida" e verificá-la com o Adobe Acrobat ou `openssl cms -verify`.
|
|
|
|
### Algoritmos de digest inseguros
|
|
|
|
- Assinaturas que usam **MD5 ou SHA-1** são rejeitadas como inválidas e sinalizadas com o status "Resumo inseguro". Ambos os algoritmos têm ataques de colisão publicados, então uma assinatura sobre um hash SHA-1 ou MD5 não oferece garantia de integridade.
|
|
- SHA-224, SHA-256, SHA-384 e SHA-512 são todos aceitos.
|
|
|
|
### Cobertura do documento
|
|
|
|
- **Cobertura total**: a assinatura cobre todo o arquivo PDF, ou seja, nenhum byte foi adicionado ou alterado após a assinatura.
|
|
- **Cobertura parcial**: a assinatura cobre apenas parte do arquivo. Isso pode indicar que houve modificações após a assinatura (não necessariamente maliciosas: salvamentos incrementais produzem cobertura parcial).
|
|
|
|
## Detalhes da assinatura
|
|
|
|
Cada cartão de assinatura mostra:
|
|
|
|
- **Assinado por**: nome comum, organização e e-mail do certificado do signatário
|
|
- **Emissor**: a autoridade certificadora que emitiu o certificado do signatário
|
|
- **Assinado em**: o carimbo de data e hora incorporado na assinatura
|
|
- **Válido de / Válido até**: o período de validade do certificado
|
|
- **Motivo**: por que o documento foi assinado (se informado)
|
|
- **Local**: onde foi assinado (se informado)
|
|
- **Status de cobertura**: total ou parcial
|
|
- **Selo de confiança**: confiável ou fora da cadeia de confiança (somente quando um certificado personalizado é fornecido)
|
|
|
|
### Detalhes técnicos
|
|
|
|
Expanda a seção de detalhes técnicos para ver:
|
|
|
|
- Número de série do certificado do signatário
|
|
- Algoritmo de digest (SHA-256, SHA-512 etc.)
|
|
- Algoritmo de assinatura (RSA com SHA-256, ECDSA com SHA-256 etc.)
|
|
- Mensagens de erro para assinaturas inválidas
|
|
|
|
## Casos de uso
|
|
|
|
- Verificar um contrato assinado digitalmente antes de assinar em seguida
|
|
- Auditar documentos assinados para confirmar que não foram adulterados
|
|
- Conferir se um certificado expirou desde que o documento foi assinado
|
|
- Validar assinaturas com o certificado raiz da sua organização
|
|
- Inspecionar os detalhes de assinatura de documentos governamentais ou jurídicos
|
|
|
|
## Dicas
|
|
|
|
- Um certificado autoassinado não significa que a assinatura é inválida: significa que a identidade do signatário não pode ser verificada por meio de um terceiro confiável. Isso é comum em documentos internos.
|
|
- A cobertura parcial nem sempre indica adulteração. Muitos fluxos de trabalho de PDF adicionam atualizações incrementais (como uma segunda assinatura) que criam cobertura parcial.
|
|
- Envie o certificado raiz ou intermediário da sua organização como certificado confiável para obter a verificação da cadeia de confiança.
|
|
|
|
## Ferramentas relacionadas
|
|
|
|
- [Assinatura Digital PDF](./digital-sign-pdf): assine PDFs com seu próprio certificado
|
|
- [Achatar PDF (Flatten)](./flatten-pdf): achate um PDF antes de assinar para evitar modificações após a assinatura
|
|
- [Remover Metadados](./remove-metadata): limpe um PDF antes de aplicar uma assinatura
|