Guia passo a passo

Verificar um pacote de provas do ProofSnap

Em 2026, um pacote de provas do ProofSnap pode ser verificado de três formas: no painel lateral da extensão, no Verificador de Confiança gratuito em getproofsnap.com ou com os scripts verify.sh e verify.ps1 do próprio ZIP. Todas recalculam o hash SHA-256 de cada arquivo, conferem a assinatura RSA do manifest.json e mostram os carimbos do tempo do pacote.

Por Radim Motycka, fundador e engenheiro principal do ProofSnap, que desenvolveu o painel, a API e o sistema de captura explicados neste guia. ·

Vale para

Pacotes web, de vídeo, de sessão e de arquivos

Três caminhos

Painel lateral, site, scripts

Conta

Dispensável no site

Para que serve este guia

Um pacote de provas vale pouco se não puder ser verificado: quem recebe o ZIP quer saber que nenhum arquivo mudou depois da captura. Você o verifica logo após a captura e de novo antes de entregá-lo. A parte contrária ou um perito verificam o mesmo ZIP depois, por conta própria, com ou sem o ProofSnap. Este guia mostra os três caminhos passo a passo e explica como ler os resultados.

Quem usa e para quê

  • Advogados e escritórios de advocacia: conferem o ZIP antes de juntá-lo ao processo ou de enviá-lo à parte contrária, por exemplo quando ele registra uma reclamação falsa no Reclame Aqui ou um post ofensivo.
  • Peritos judiciais e assistentes técnicos: repetem a verificação no próprio computador com verify.sh ou verify.ps1, sem depender do ProofSnap.
  • Departamentos jurídicos, compliance e encarregados de dados (DPO): verificam os pacotes recebidos de colegas ou fornecedores antes de arquivá-los em um caso.
  • Investigadores, detetives particulares, jornalistas e checadores: mostram a um cliente ou a uma redação que a página capturada não foi retocada depois.
  • Proteção de marca e e-commerce: conferem as provas de anúncios falsificados em marketplaces, ou de condições de venda alteradas, antes de enviar uma notificação extrajudicial.
  • Quem recebe um pacote: a parte contrária ou o juízo verifica o arquivo recebido no Verificador de Confiança, sem conta.

Três formas de verificar

As três formas conferem as mesmas coisas: se cada arquivo continua sendo o que foi selado no momento da captura e quais carimbos do tempo indicam quando o pacote existia. Escolha o caminho que serve a quem vai fazer a verificação.

Tem um plano do painel do ProofSnap? O painel tem uma verificação de pacotes própria: veja No painel do ProofSnap.

O que uma verificação bem-sucedida comprova

A verificação de um pacote de provas do ProofSnap responde a três perguntas distintas. Integridade: cada arquivo ainda tem o hash SHA-256 registrado no manifest.json. Coerência: a assinatura RSA em manifest.sig corresponde ao manifesto, então nem a lista de hashes foi alterada. Tempo: uma prova OpenTimestamps mostra que o manifesto existia no mais tardar no momento de um determinado bloco Bitcoin. Um carimbo do tempo qualificado da Disig a.s., prestador qualificado de serviços de confiança na Lista de Confiança da UE, o vincula a uma data e a uma hora.

A assinatura comprova apenas a integridade, porque a chave dela é gerada a cada captura e viaja dentro do pacote, no publickey.pem; quem comprova o tempo são os carimbos do tempo. Os scripts verify.sh e verify.ps1 percorrem as mesmas quatro etapas (integridade dos arquivos, assinatura do manifesto, carimbo do tempo eIDAS e âncora Bitcoin, para a qual imprimem o comando do cliente OpenTimestamps) e terminam com um de três códigos de saída: 0 para PASS, 1 para FAIL e 2 para INCOMPLETE.

Os três caminhos comparados

O verificador do painel lateral lê pacotes de até cerca de 1,8 GB, mas a memória do navegador pode acabar já a partir de cerca de 900 MB. Para pacotes maiores, use verify.sh ou verify.ps1, que conferem arquivo por arquivo pacotes de qualquer tamanho.

A: painel lateralB: siteC: scripts do ZIP
Quem usaVocê, antes do envioQualquer pessoa que receba o pacoteUm perito no próprio computador
Conta ProofSnapNecessáriaNão é necessáriaNão é necessária
Onde funcionaChrome ou Edge com o ProofSnapQualquer navegador atualmacOS, Linux, Windows
Usa os servidores do ProofSnapPara as duas verificações de tempoPara as duas verificações de tempoNão
Vídeos grandesAté cerca de 1,8 GBLimitado pela memória do navegadorSem limite de tamanho

Etapa 1, para todos

Trabalhe com o ZIP original

Todos os caminhos descritos aqui conferem o ZIP exatamente como o ProofSnap o gerou, seja ele uma captura web, um vídeo, uma sessão com várias abas ou uma certificação de arquivo. Esse mesmo ZIP é o que você entrega à parte contrária, ao seu advogado ou ao juízo. Guarde o original intacto e trabalhe com cópias. O que cada arquivo do ZIP contém é explicado em Ler um pacote de provas.

  1. 1O ZIP. Renomear o arquivo ZIP não causa problemas: as verificações olham os arquivos que ele contém. Não acrescente arquivos, não remova nenhum e não o compacte de novo.
  2. 2manifest.json. A lista de todos os arquivos com o hash SHA-256 de cada um, assinada em manifest.sig com a chave que está em publickey.pem. Quando existem, os carimbos do tempo Bitcoin e eIDAS são aplicados a este arquivo.
  3. 3verification/. Os scripts e o guia em texto simples para conferir o pacote sem o ProofSnap, veja as etapas 8 a 10.
Um exemplo de pacote de captura web com OpenTimestamps e eIDAS, aberto em um gerenciador de arquivos (simplificado). A lista exata depende do plano e das opções.

Caminho A

Verificar no painel lateral do ProofSnap

O verificador vem integrado à extensão, ao lado das ferramentas de captura. Na interface em português, ele se chama “ProofSnap Verificador de Confiança”.

Etapa 2, no painel lateral

Abra o ProofSnap Verificador de Confiança

Abra o painel lateral do ProofSnap e role para além das opções de captura. O bloco ProofSnap Verificador de Confiança fica logo acima de “Certificação de arquivos” e começa fechado. Para vê-lo, você precisa de uma conta ProofSnap com um plano ou com créditos; quem não tem o ProofSnap usa o site (etapa 7).

  1. 1Ícone do ProofSnap. Abre o painel lateral. A aba do navegador que está aberta não importa.
  2. 2ProofSnap Verificador de Confiança. Clique no título para abrir o bloco.
O verificador fica abaixo das opções de captura e acima de “Certificação de arquivos”. Funciona em qualquer aba. Painel lateral reconstruído a partir da interface da extensão; plano e números são exemplos.

Etapa 3, no painel lateral

Selecione o ZIP e clique em Verificar arquivo zip

O verificador aceita um pacote de captura web ou de vídeo, um pacote de sessão, uma certificação de arquivo, uma certificação combinada de vários arquivos e um pacote em lote com um ZIP por arquivo. Ele reconhece sozinho o tipo de pacote lendo o manifesto.

  1. 1Clique para enviar ou arraste e solte. Escolha o ZIP. O nome dele aparece em azul abaixo da área de envio.
  2. 2Verificar arquivo zip. Executa todas as verificações no seu navegador. As duas verificações de tempo consultam o serviço de verificação do ProofSnap, então continue on-line. Pacotes muito grandes (a partir de cerca de 900 MB, em geral vídeos longos) podem esgotar a memória do navegador; acima de cerca de 1,8 GB, o verificador indica os scripts da etapa 8.
O bloco aberto, com o ZIP selecionado. Enquanto você não escolhe um arquivo, o botão fica apagado e não pode ser clicado.

Etapa 4, no painel lateral

Leia o resultado

O resultado resume todas as verificações em uma única linha. Passe o mouse sobre ela para ler uma breve explicação.

  1. 1Integridade: confere. Todas as verificações criptográficas foram aprovadas: os arquivos correspondem ao manifesto, e o manifesto corresponde à assinatura criada com a chave do pacote. O verificador só mostra esta linha depois de realmente conferir a assinatura e recalcular os hashes dos arquivos.
  2. 2Integridade: modificada. A prova foi alterada ou está incompleta: pelo menos uma verificação falhou. Mais abaixo você encontra o que fazer.
  3. 3Mostrar verificação técnica. Abre as verificações individuais (próxima etapa).
Acima: um pacote íntegro. Abaixo: o mesmo ponto quando uma verificação falhou.

Etapa 5, no painel lateral

Abra a verificação técnica

Cada linha é uma verificação. Uma barra azul indica uma verificação aprovada ou uma informação, uma barra vermelha uma verificação que falhou. As linhas que aparecem dependem do que o pacote contém.

  1. 1manifest.json. A assinatura RSA do manifesto é conferida com a chave pública do pacote. Ela comprova que o manifesto não mudou desde que foi assinado.
  2. 2Integridade dos arquivos. O hash SHA-256 de cada arquivo listado no manifesto é recalculado e comparado. A assinatura e a chave são gravadas depois do manifesto, então só a presença delas é conferida. Os pacotes de sessão incluem os arquivos de cada aba, os de vídeo a gravação, e os criados no modo forense também o arquivo WARC, o arquivo HAR e cada recurso em resources/.
  3. 3Cadeia de custódia. A hora da captura é plausível (não está no futuro nem tem mais de 30 anos), o forensic_log.json corresponde ao hash registrado em chain_of_custody.json, a cadeia de hashes dele é recalculada passo a passo e o hash final da cadeia confere. A linha que cita a norma ISO repete o que o chain_of_custody.json declara; não é uma avaliação.
  4. 4Contexto da captura. Versão da extensão, quantos servidores de hora confirmaram a hora da captura, a pontuação de integridade do dispositivo e o número de operações registradas. Um pacote de sessão também lista todas as abas que inclui.

As linhas dos carimbos do tempo

  1. 5OpenTimestamps. O bloco Bitcoin em que o manifesto está ancorado, com a data dele. Logo depois de uma captura, esta linha indica que a confirmação está pendente (veja a etapa 11). Ela não aparece nas capturas do plano Essential, a menos que tenha sido usado um crédito eIDAS ou Video SnapPack.
  2. 6Carimbo de tempo qualificado da UE. O carimbo do tempo qualificado é válido para este manifesto: emissor e hora em UTC. A Disig a.s. é um prestador qualificado de serviços de confiança na Lista de Confiança da UE.
  3. 7Carimbo de tempo qualificado da UE (LTV). Uma segunda verificação que não precisa de servidor nenhum: hash, assinatura, cadeia de certificados e status de revogação, tudo a partir do eidas_validation.json do pacote. Se o serviço eIDAS não estiver acessível, esta verificação roda sozinha.
  4. 8Emissor. Lembra que a chave de assinatura é gerada dentro do pacote: a assinatura comprova a integridade, os carimbos do tempo comprovam o tempo.
Verificação técnica do pacote de exemplo, algumas horas depois da captura. Os valores são exemplos.

Etapa 6, certificações de arquivos

Compare o arquivo original com o certificado

Em uma certificação de arquivo, o verificador acrescenta um bloco que compara qualquer arquivo que você arraste para ele com o hash certificado. Use-o para mostrar que a cópia que você ou a parte contrária têm hoje é exatamente o arquivo que foi certificado. O hash do arquivo é calculado no seu navegador, e o arquivo não é enviado. Como criar uma certificação de arquivo na extensão é explicado no guia Certificar um arquivo.

  1. 1O ZIP da certificação. Verifique-o antes, como nas etapas 3 a 5.
  2. 2Verifique se o arquivo original corresponde ao certificado. Arraste o original. Arquivo corresponde ao certificado significa que este arquivo já existia na data e na hora certificadas. Arquivo NÃO corresponde significa que o hash é diferente: não é o arquivo que foi certificado. Você pode arrastar vários arquivos juntos, por exemplo os originais de uma certificação combinada.
  3. 3Resultado. Refere-se ao próprio pacote, como em qualquer outro pacote.
  4. 4Tipo de pacote. “File Certification” com o hash certificado, ou “Certificação combinada de arquivos” com o número de arquivos.
Uma certificação de arquivo, com o arquivo original arrastado para o bloco extra. Nome do arquivo e hash são exemplos; a lista continua mais abaixo.

Para quem usa o painel

No painel do ProofSnap

Em um plano pago, o painel do ProofSnap confere um pacote em Ferramentas > Verificar um pacote; no modo sandbox, a ferramenta não aparece. Arraste o ZIP, por exemplo um baixado do Histórico de capturas. O ZIP é verificado no seu navegador e não é enviado. Ao ProofSnap chega só o hash SHA-256 do manifest.json, para procurá-lo no registro de emissão.

  1. 1Resultado. “Verificado. Pacote íntegro.”, “Falha na verificação. Pacote modificado.” ou “Pacote inválido.”, com o hash SHA-256 do manifest.json a que os carimbos do tempo e o registro se referem.
  2. 2Assinatura do manifesto e hashes dos arquivos. A assinatura RSA do manifest.json e o hash SHA-256 de cada arquivo listado no manifesto. Um arquivo presente no ZIP mas não listado no manifesto também deixa o resultado como modificado.
  3. 3Vinculado a este pacote. Os arquivos .ots e .tsr se referem exatamente a este manifest.json. O painel não confere o bloco Bitcoin nem a cadeia de certificados da TSA: isso fica a cargo do Verificador de Confiança (etapa 7). Os scripts (etapas 8 a 10) imprimem os comandos para conferi-los à mão.
  4. 4Registro de emissão ProofSnap. Emitido pelo ProofSnap, com a data em que o ProofSnap registrou este manifesto no momento da emissão. Não registrado aparece em cinza e não é sinal de adulteração: os pacotes emitidos antes da criação do registro não constam nele.

A exportação de um caso também é aceita: cada pacote de captura dentro dela é conferido e listado com o próprio resultado. Se o navegador não conseguir ler um ZIP, a ferramenta avisa e indica o verificador on-line.

Ferramentas > Verificar um pacote no painel, simplificado: cada linha também explica a própria verificação em uma frase. Nome do arquivo, tamanho, hash e data são exemplos.

Caminho B

Verificar no site

Para qualquer pessoa que receba o pacote. Não é preciso instalar nada: o Verificador de Confiança funciona em qualquer navegador.

Etapa 7, no site

Verifique em getproofsnap.com, sem conta

A parte contrária, o juízo ou um perito podem abrir o Verificador de Confiança deste site em qualquer navegador, sem o ProofSnap e sem conta. Ele faz o mesmo tipo de verificação e lista cada resultado linha por linha. O ZIP é aberto no navegador; para as verificações Bitcoin e eIDAS, a página envia ao serviço de verificação do ProofSnap o manifesto, o hash dele e as provas dos carimbos do tempo.

  1. 1Arraste o ZIP. Ou clique para escolhê-lo.
  2. 2Verificar pacote de provas. Inicia as verificações.
  3. 3Resultados da verificação. Uma marca de seleção azul indica uma verificação aprovada, um X escuro uma verificação que falhou.
  4. 4Dados do pacote. Tipo, ID e hora da captura, lidos do manifesto.
  5. 5Assinatura do manifesto verificada. A mesma verificação do painel lateral.
  6. 6Hash corresponde. Uma linha por arquivo. Um arquivo alterado mostra Hash não corresponde, um arquivo que falta, Arquivo ausente.
  7. 7Cadeia de custódia. Hash do registro forense, cadeia de hashes, norma declarada e integridade do dispositivo.
  8. 8Carimbos do tempo. O bloco Bitcoin com a data dele na hora local, o carimbo do tempo eIDAS e a verificação offline LTV. Na certificação de um único arquivo, a página também confere automaticamente o arquivo original contido no ZIP.
O verificador deste site, simplificado: o cabeçalho do site foi omitido. Resultados do mesmo pacote de exemplo da etapa 5.

Caminho C

Verificar sem o ProofSnap

Cada pacote traz os próprios scripts de verificação na pasta verification. Eles estão listados no manifesto assinado, então são cobertos pela mesma assinatura das provas.

Etapa 8, sem o ProofSnap

Rode o verify.sh no macOS ou no Linux

Para uma verificação que não depende de nada do ProofSnap, descompacte uma cópia do pacote e rode o script que vem nele. Basta o que o macOS e o Linux já têm: um shell, o awk e uma ferramenta SHA-256 (shasum, sha256sum ou openssl), mais o openssl para as etapas da assinatura e do eIDAS. O script não grava nada no pacote.

  1. 1Início. Na pasta descompactada: bash verification/verify.sh.
  2. 2Integridade dos arquivos. Recalcula o hash SHA-256 de cada arquivo listado no manifesto: OK, MISMATCH ou MISSING. Um arquivo presente na pasta mas não listado no manifesto é sinalizado como NOT COVERED.
  3. 3Assinatura do manifesto. Confere o manifest.sig com o openssl. Verified OK é a resposta do próprio openssl.
  4. 4eIDAS. Compara o hash contido no token qualificado com o manifest.json, confere o certificado raiz do pacote com a impressão digital publicada da CA Disig QCA4 e verifica a assinatura do token. Imprime o comando openssl para a cadeia de certificados completa.
  5. 5OpenTimestamps. Imprime o comando para conferir a âncora Bitcoin com o cliente OpenTimestamps (ots), que se instala à parte.
  6. 6RESULT. PASS (código de saída 0), FAIL quando uma verificação foi executada e falhou (1), ou INCOMPLETE quando faltava uma ferramenta (2), o que não indica defeito no pacote.
Terminal simplificado no Linux com OpenSSL 3. Cada linha abaixo do comando é impressa pelo verify.sh exatamente assim; o nome da pasta e o hash são exemplos.

Etapa 9, sem o ProofSnap

Rode o verify.ps1 no Windows

Descompacte uma cópia do pacote, abra o PowerShell (versão 5 ou posterior) nessa pasta e rode o comando abaixo. O script executa as mesmas quatro etapas do verify.sh.

  1. 1Início. powershell -ExecutionPolicy Bypass -File verification\verify.ps1 na pasta descompactada.
  2. 2Integridade dos arquivos. Usa o Get-FileHash, que vem com o Windows, e compara também os valores SHA-512 registrados no manifesto. Esta parte não precisa de mais nada.
  3. 3Sem OpenSSL. O Windows não traz o OpenSSL, então as etapas da assinatura e do eIDAS avisam que não puderam ser executadas. Instale o OpenSSL 3 e rode o script de novo para uma verificação completa.
  4. 4RESULT. O resultado é INCOMPLETE só porque duas verificações não foram executadas; tudo o que foi executado passou.
Janela do Windows PowerShell simplificada em um computador sem OpenSSL, a situação padrão do Windows. Linhas como o verify.ps1 as imprime; a pasta é um exemplo.

Etapa 10, sem o ProofSnap

Ou siga à mão o VERIFICATION_GUIDE.txt

Os peritos que preferem digitar cada comando por conta própria, ou que não podem rodar scripts, encontram o procedimento manual em verification/VERIFICATION_GUIDE.txt. Ele faz parte do pacote assinado, assim como os scripts.

  1. 1Evidence ID. Vincula o guia a este pacote.
  2. 2A) Os scripts. Os comandos das etapas 8 e 9.
  3. 3B) On-line. O endereço do verificador on-line, etapa 7.
  4. 4C) À mão. Quatro etapas, cada uma com o comando exato.
  5. 5STEP 1. Recalcule o hash SHA-256 de cada arquivo e compare com o manifesto.
  6. 6STEP 2. O comando openssl para a assinatura do manifesto. Mais adiante: o comando eIDAS, com notas sobre o OpenSSL 3 e sobre o LibreSSL que o macOS instala com o nome openssl, e o comando OpenTimestamps.
O início do guia em um visualizador de texto simples (simplificado). Ele continua com a etapa 3 (STEP 3, eIDAS), a etapa 4 (STEP 4, OpenTimestamps) e a cadeia de hashes. O Evidence ID é um exemplo.

Verificar à mão os carimbos do tempo eIDAS e Bitcoin

O carimbo do tempo eIDAS com o OpenSSL

O carimbo do tempo qualificado de um pacote do ProofSnap é o arquivo manifest.json.tsr.

  1. Copie o valor do campo rootCaPem do eidas_validation.json para um arquivo chamado tsa-root.pem.
  2. Compare-o com a impressão digital publicada da CA Disig QCA4 que o verify.sh imprime.
  3. Na pasta descompactada, rode openssl ts -verify -in manifest.json.tsr -data manifest.json -CAfile tsa-root.pem.

Use o OpenSSL 3, e não o LibreSSL que o macOS instala com o nome openssl: o LibreSSL não sabe ler um atributo dos carimbos do tempo qualificados e acusa erro até em um carimbo válido.

A âncora Bitcoin com o cliente OpenTimestamps

Instale o cliente OpenTimestamps (ots) e rode ots verify manifest.json.ots -f manifest.json. Uma prova confirmada indica o bloco Bitcoin, e isso mostra que o manifesto existia no mais tardar no momento daquele bloco. Uma prova ainda pendente deve ser verificada de novo algumas horas depois.

Resultados

Dois resultados que merecem atenção

Um carimbo do tempo Bitcoin pendente e um pacote apontado como modificado.

Quando a âncora Bitcoin está pendente

Verifique de novo algumas horas depois

Um carimbo do tempo Bitcoin só fica definitivo quando um bloco Bitcoin o inclui. Logo depois de uma captura, a prova está enviada, mas ainda não confirmada. Isso é normal e não muda o resultado.

  1. 1Pendente. Enviado: confirmação Bitcoin pendente (normalmente 1-3 horas). No site: OpenTimestamps: prova enviada, aguardando confirmação.
  2. 2Verificado. Verifique de novo o mesmo ZIP, sem alterá-lo, depois de algumas horas: a linha passa a indicar o bloco Bitcoin. Isso mostra que o pacote existia no mais tardar no momento daquele bloco. Não tente atualizar nem substituir o arquivo .ots.

Poucos minutos depois da captura

Algumas horas depois, mesmo ZIP

A linha OpenTimestamps na verificação técnica do painel lateral. Número do bloco e data são exemplos.

Quando o resultado indica uma alteração

Não conserte o ZIP: volte ao original

Abra Mostrar verificação técnica: a linha vermelha indica a verificação e, em geral, o arquivo. Não tente corrigir o pacote: qualquer alteração o faria falhar de novo. Verifique, em vez disso, o download original. As causas mais comuns são erros de manuseio inofensivos.

  1. 1Um arquivo foi alterado. Abrir um arquivo do pacote e salvá-lo, mesmo sem mudanças visíveis, ou renomeá-lo, basta para que ele deixe de corresponder ao manifesto.
  2. 2O pacote foi descompactado e compactado de novo. Compactar de novo costuma mover tudo uma pasta para baixo, e o verificador deixa de encontrar o manifest.json no primeiro nível do ZIP. Alguns programas também acrescentam arquivos ocultos próprios.

Se o download original também aparecer como modificado, guarde-o como está e escreva para support@getproofsnap.com informando a linha vermelha da verificação técnica.

Um arquivo interno foi aberto e salvo de novo

O pacote foi descompactado e compactado de novo

O início da verificação técnica em dois casos típicos. Os nomes dos arquivos são exemplos.

Perguntas frequentes

Provas que qualquer pessoa pode verificar

Recebeu um pacote do ProofSnap? Confira-o no Verificador de Confiança. Quer capturar as suas próprias provas? Instale o ProofSnap.

Instalar o ProofSnap, 7 dias de teste
Abrir o painel do ProofSnap