Um holerite chega no WhatsApp da análise e alguém pergunta se foi feito por IA. São duas perguntas: se a declaração assinada que o arquivo faz sobre a própria origem ainda fecha, sim ou não, e uma nota, que tem taxa de erro.
Quase toda afirmação confiante sobre “detectar IA em documento” move de mansinho uma resposta do segundo tipo para o primeiro. Uma verificação determinística tem dois resultados e nenhuma margem; uma probabilística devolve um número, e um número só serve depois que alguém mediu a taxa de falso positivo dele. Só uma pode ser dita como fato.
1. A camada determinística: procedência C2PA
C2PA é a única verificação desta página sem limiar para calibrar. É um manifesto embutido no arquivo e assinado por quem o produziu, cuja ligação forte é um hash SHA-256 sobre os bytes: recalcule, compare, e fecha ou não fecha. A especificação e a implementação de referência são públicas.
O que um manifesto válido prova, e a lista é curta:
- O arquivo passou por quem detém aquela chave, no momento registrado.
- Os bytes não mudaram desde então. Qualquer alteração quebra o hash.
O que ele nunca prova:
- Autoria. Quem assina é o último processo que tocou o arquivo, não quem escreveu o conteúdo.
- Veracidade. Um manifesto válido numa nota diz que aquele arquivo é byte a byte o arquivo assinado. Não diz que a operação existiu, que o valor é devido ou que o pagamento caiu.
-
Confiança na cadeia. Nossos arquivos de teste
autoassinados voltam com
validation_state: ValidesigningCredential.untrustedao mesmo tempo: a matemática fecha, a cadeia é desconhecida. Ler um campo e reportar o outro é de onde saem as frases erradas.
E a ausência de manifesto significa: nada. Medimos cinco regravações comuns de uma imagem assinada por ferramentas que não conhecem C2PA: recompressão JPEG em qualidade 70, regravação de PNG, conversão para JPEG, redimensionamento e um print de tela. As cinco destruíram a credencial por completo. Remover procedência não é ataque, é efeito colateral de salvar um arquivo, e um documento que passou pelo WhatsApp já passou por isso.
Quando o manifesto falha, diga o que falhou
A frase correta
é “este arquivo foi modificado depois de assinado”, ou “a própria declaração
assinada não corresponde mais”. Nossos arquivos de teste produzem os dois
códigos: assertion.dataHash.mismatch quando o conteúdo mudou sob
uma declaração intacta, claimSignature.mismatch quando os bytes
da declaração é que mudaram. Nenhum dos dois é “adulterado”, nenhum é
constatação de fraude.
Fabricante de imagem emite; para documento, ninguém emite
A Anthropic
anunciou em 11 de agosto de 2026
que o Claude assina .svg, .png e .jpg
gerados, e diz no mesmo documento que esses metadados “podem desaparecer em
conversões de formato, prints de tela ou regravações”. A OpenAI publica
Content Credentials nos modelos de imagem desde 2024 e
agora combina isso com SynthID;
o Google embute SynthID na geração. Até agosto de 2026 nenhum grande provedor
anexa manifesto a um PDF, DOCX ou planilha gerados.
Tabela de suporte em contentauth/c2pa-rs, lida em 14 de agosto de 2026. Só leitura significa que o PDF consegue carregar uma credencial que alguém colocou nele, e o ferramental padrão não coloca.
Ou seja: procedência em documento é uma verificação que eleva confiança. A presença é sinal positivo forte; a ausência é o caso esmagadoramente normal.
2. O que medimos: a assinatura dentro do PDF
Um PDF é um contêiner, e as imagens embutidas nele são arquivos separados, com superfície de procedência própria. Ninguém mediu se uma imagem assinada mantém a credencial depois de entrar em um documento. Assinamos uma, passamos por todos os geradores de PDF de um laptop, extraímos os fluxos de volta e revalidamos cada um.
- 6/6caminhos de JPEG preservaram a credencial, byte a byte
- 0/2caminhos de PNG preservaram
- 9/9PDFs respondem “No claim found”
| Caminho até o PDF | Formato de origem | Resultado |
|---|---|---|
| img2pdf | JPEG | Fluxo byte a byte idêntico, manifesto ainda válido |
| Chrome imprimir-para-PDF (tamanho natural e reduzido) | JPEG | Fluxo byte a byte idêntico, manifesto ainda válido |
| Ghostscript (direto e como reprocessamento) | JPEG | Fluxo byte a byte idêntico, manifesto ainda válido |
| qpdf --linearize | JPEG | Fluxo byte a byte idêntico, manifesto ainda válido |
| img2pdf, Chrome imprimir-para-PDF | PNG | Recomprimido para raster cru: credencial perdida |
| Chrome imprimir-para-PDF | SVG | Desenhado como vetor, sem fluxo de imagem: nada para carregar |
Quem decide é o formato, não o gerador: um PDF não tem contêiner de PNG, então os pixels são reemitidos e o pedaço que guardava a credencial fica sem lugar. Dos três formatos que a Anthropic assina, exatamente um chega ao documento. O método completo e as versões estão no relato (em inglês): does a C2PA signature survive a PDF?
O que a Tamperlens faz com C2PA hoje, sem rodeio. O motor
de imagem detecta a presença de um contêiner de Content
Credentials em imagem avulsa (a caixa JUMBF no JPEG, o pedaço
caBX no PNG), e reporta isso como sinal informativo que diz,
no próprio relatório, “presença detectada, manifesto não interpretado”. Ele
não decodifica o manifesto e não verifica a cadeia de assinatura.
Não lê C2PA dentro de PDF; isso é trabalho proposto, não
recurso entregue. Tudo nas duas seções acima é o padrão, ou a nossa própria
medição com a ferramenta oficial.
3. Sinais de estrutura que o verificador lê hoje
São leituras determinísticas de fatos cujo significado é probabilístico. Se a string está no arquivo não é questão de opinião; o que ela sugere sobre o documento quase sempre é. Manter as duas coisas separadas é a maior parte da disciplina.
| Sinal | O que é lido, exatamente | Por que não é veredicto |
|---|---|---|
| Producer e creator | O dicionário Info e o XMP nomeiam o software que gravou os bytes: ReportLab PDF Library, Skia/PDF m### para Chrome headless, string de versão do LibreOffice, nomes simples para WeasyPrint e wkhtmltopdf |
São campos de texto puro. Quem sabe escrever um PDF escreve Adobe PDF Library ali: leia como ponto fora da curva (consulta de producer) |
| Metadados de gerador em imagens embutidas | O valor IPTC trainedAlgorithmicMedia no XMP; um bloco parameters do AUTOMATIC1111; um grafo prompt ou workflow do ComfyUI. Arquivo com bloco de parâmetros de geração não foi fotografado |
É a única família de imagem que chega a severidade alta, mas só no sentido da presença. Ausência continua não sendo nada |
| Atualizações incrementais e revisões | O PDF cresce por acréscimo, então um arquivo pode conter as próprias versões anteriores. Contar isso é exato | Assinar, preencher formulário e anotar são causas de rotina (incremental vs reescrita completa) |
| Cobertura da assinatura | O /ByteRange nomeia os bytes protegidos; comparar o último byte coberto com o último byte do arquivo é aritmética (o que o validador do ITI verifica) |
Responde só se algo foi anexado depois da assinatura: não se o que foi anexado era mal-intencionado |
Um documento gerado inteiro: uma revisão só, metadados coerentes, um producer, nunca aberto em editor. Passa por todas essas verificações, e essa é justamente a forma de um documento escrito por máquina. Estrutura pega edição. Para o arquivo que nasceu pronto, o peso passa para a próxima seção.
4. Aritmética: o sinal de conteúdo que sobrevive
O indício mais confiável em documento financeiro gerado por modelo não é visual. No estudo GPT4o-Receipt (1.235 comprovantes gerados por modelo contra autênticos), os humanos viram artefatos visuais melhor que as máquinas e ainda assim acertaram menos se o documento era de IA. O sinal que funcionou foi o que ninguém enxerga: as contas não fechavam.
Repare na assimetria, que é a metade honesta. Dígito verificador que falha é evidência; dígito que passa não é. Qualquer gerador que implemente a regra corretamente produz números que passam. E o nosso motor só reporta quebra de saldo depois que a coluna prova que é um saldo, porque a maioria das colunas numéricas de documento real não é saldo nenhum.
Na prática brasileira é aqui que o holerite se decide: proventos menos descontos tem que dar o líquido, e o valor por extenso tem que combinar com o numérico. Nada disso depende de o PDF ter sido feito por IA, por Excel ou por um sistema de folha. Veja também o verificador de holerite e fraude em extratos bancários.
5. A camada probabilística e os números reais
Detectores treinados em adulteração feita à mão caem para perto do acaso quando a adulteração vem de um modelo de difusão. Quatro trabalhos independentes de 2026 mediram isso. O acaso é uma AUC de 0,50.
Fontes: When the Forger Is the Judge (humanos 0,501, autojulgamento 0,532, DocTamper 0,585, TruFor 0,599 contra 0,962) e AIForge-Doc (juiz zero-shot 0,509, DocTamper 0,563 contra 0,98), ambos de 2026.
| Estudo | O que foi medido | Resultado |
|---|---|---|
| AIForge-Doc | Documentos financeiros e formulários forjados, nove idiomas | DocTamper com AUC 0,563 em conteúdo forjado por IA, contra 0,98 dentro da distribuição de treino; um modelo de uso geral como juiz, 0,509 |
| When the Forger Is the Judge | Preenchimento por difusão dentro de documentos, com máscaras de pixel | TruFor 0,599 (contra 0,962 em adulteração tradicional), DocTamper 0,585, humanos 0,501 e o próprio modelo gerador julgando as forjas que fez, 0,532 |
| DOCFORGE-BENCH | 14 métodos de detecção em 8 conjuntos de dados, sem ajuste | AUC de pixel razoável, mas F1 de pixel perto de zero; o veredicto dos próprios autores é que nenhum método avaliado funciona de forma confiável fora da caixa |
| GPT4o-Receipt | Humanos e modelos sobre comprovantes gerados | Humanos abaixo dos juízes automáticos no geral; o sinal confiável dominante foi a aritmética, não a aparência |
Por que um classificador da página inteira não enxerga um valor trocado
O DOCFORGE-BENCH mediu a região adulterada em 0,27% a 4,17% dos pixels. Um modelo que pontua a página toda dilui uma anomalia de um por cento em noventa e nove por cento de documento intacto: daí manter métrica de ranqueamento razoável e quase não localizar nada.
As entradas também se mexem: regravar em outra qualidade, imprimir e digitalizar, ou uma tabela de quantização JPEG fora do comum já afastam o arquivo da distribuição em que esses detectores foram treinados.
Portanto: a Tamperlens não entrega nota de “isto é IA” e não publica taxa de detecção. Não existe benchmark independente de detectores de fraude documental que permita a ninguém sustentar uma comparação de acurácia, e qualquer porcentagem sem tamanho de amostra, processo de rotulagem e taxa de falso positivo é hipótese vestida de número. O que publicamos é a nossa própria taxa de erro medida.
O que isso não consegue dizer
- Ausência de procedência não é prova de autoria humana. Quase nada escreve manifesto dentro de PDF, e toda regravação comum apaga os que existem, 5 de 5 na nossa medição. Arquivo silencioso é o caso normal, não atestado de saúde.
- Manifesto válido não torna o conteúdo verdadeiro. Ele amarra bytes a um signatário, não um salário a um holerite.
- Válido não é confiável. Uma cadeia autoassinada fecha matematicamente sem provar nada sobre quem assinou. As duas leituras precisam aparecer, ou a frase está errada.
- Manifesto quebrado quer dizer “modificado depois de assinado”. Não é “adulterado” e não é constatação de fraude: regravar, converter ou otimizar quebram a assinatura exatamente como uma edição intencional.
- Gerado por IA não é sinônimo de fraudulento. O fornecedor que diagrama a nota com um modelo e o contador que regera um extrato num PDF mais limpo produzem documentos feitos por máquina e inteiramente honestos. O que decide um caso é se as afirmações são verdadeiras e se o arquivo mudou depois de emitido.
- Não existe negativa confiante. Nenhuma verificação estrutural ou estatística estabelece que um documento não foi gerado por modelo. A camada determinística só confirma positivos.
- Nada disso substitui o emissor. O banco confirma o pagamento, o empregador confirma o holerite, a SEFAZ confirma a nota. Análise de arquivo é a segunda opinião, e é sempre afirmação sobre um arquivo, nunca sobre uma pessoa.
Uma ordem de trabalho
- Pergunte primeiro à camada determinística. Existe manifesto, no documento ou em alguma imagem embutida? Ele fecha, e contra qual cadeia?
- Leia o histórico do próprio arquivo. Producer e XMP, contagem de revisões, o que uma revisão posterior substituiu, o que a assinatura cobre.
- Confira os números contra eles mesmos. Cadeias de saldo, totais, dígitos verificadores: a camada que ainda funciona no documento gerado inteiro e nunca editado.
- Trate qualquer nota probabilística como desempate, nunca como base da decisão, e só com taxa de falso positivo medida na sua própria entrada.
- Vá ao emissor no que for relevante.
Automatizando
A Tamperlens interpreta os bytes crus em vez de se apoiar numa biblioteca de PDF de alto nível: carregue e salve o arquivo com quase qualquer uma delas e o histórico de revisões some. Dezoito famílias de sinais rodam em todo documento, cada uma devolvendo severidade, explicação em linguagem simples e evidência legível por máquina, todas documentadas com suas causas legítimas no guia das famílias de sinais.
Os documentos são interpretados em memória e nunca gravados em disco. O motor usa só CPU, não chama serviço de terceiros e é determinístico.
Rode a camada determinística em um documento
Abra a amostra “Assinada e depois modificada”: um laudo pré-calculado sobre um PDF cuja assinatura já não cobre o que está embaixo dela, que é o passo 1 da ordem acima com a evidência junto. Sem conta, sem upload, sem cota. Seu próprio arquivo entra no mesmo verificador: o arquivo é enviado por HTTPS, processado em memória e nunca gravado em disco, num servidor em Helsinque, na Finlândia (privacidade).
A Tamperlens reporta sinais de risco, não veredictos de autenticidade. Sinais têm causas legítimas; combine-os com a sua própria lógica de decisão.
Leitura relacionada
- Como saber se um PDF foi editado A versão manual das verificações de estrutura: dicionário Info vs XMP, contagem de %%EOF, par /ID, subconjuntos de fontes.
- Fraude em extratos bancários Onde a camada aritmética trabalha mais: extratos gerados inteiros, com uma coluna de saldo que precisa fechar.
- Verificador de holerite Proventos, descontos e líquido conferidos entre si, além dos sinais de estrutura do arquivo.
- Guia das famílias de sinais As dezoito famílias, o que cada uma detecta, suas causas legítimas e como a severidade é decidida.
- Precisão medida e falsos positivos Os números que conseguimos defender, com o corpus e o método por trás de cada um.