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
- Envie um arquivo PDF assinado. A validação começa automaticamente.
- A ferramenta exibe um resumo: número de assinaturas encontradas e quantas são válidas.
- Cada assinatura recebe um cartão detalhado com nome do signatário, emissor, datas e status.
- 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
/ByteRangeda assinatura, calcula o hash deles com o algoritmo declarado pelo signatário e compara o resultado com o atributomessageDigestdentro 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: assine PDFs com seu próprio certificado
- Achatar PDF (Flatten): achate um PDF antes de assinar para evitar modificações após a assinatura
- Remover Metadados: limpe um PDF antes de aplicar uma assinatura