Skip to content

Repository files navigation

vestigia

vestigia: integridade e rastreabilidade de evidências digitais, direto no navegador.

Abrir a ferramenta · Baixar para uso offline · Ler o aviso legal

Interface do vestigia: painel local para registrar evidências digitais e documentar a cadeia de custódia

O que é

O vestigia é uma ferramenta local para apoiar a verificação de integridade e a documentação da cadeia de custódia de evidências digitais (arquivos, prints, logs, imagens forenses, e-mails exportados, entre outros). O projeto nasce do cruzamento entre duas áreas que estudo e trabalho: Direito e Segurança Digital.

Na prática investigativa e no contencioso, é cada vez mais comum lidar com provas em formato digital, mas garantir que um arquivo apresentado hoje é exatamente o mesmo que foi coletado semanas ou meses atrás, sem qualquer alteração, é um desafio técnico que a maior parte dos operadores do Direito não tem ferramentas simples para enfrentar. O vestigia tenta preencher essa lacuna: calcula o "hash" (impressão digital) de um arquivo, registra os eventos de manuseio da evidência de forma cronológica e gera um manifesto que permite, a qualquer momento, verificar se o arquivo permanece íntegro.

O processamento é 100% local: o hash é calculado dentro do seu navegador e nenhum arquivo, hash ou metadado é transmitido. Não há backend, upload ou conta. Você pode usar a ferramenta pela página pública ou baixá-la para trabalhar totalmente offline.

Experimentar agora: https://neto7z.github.io/vestigia/

Fundamento legal

O conceito de cadeia de custódia trabalhado aqui tem como referência o art. 158-A do Código de Processo Penal (Decreto-Lei nº 3.689/1941), incluído pela Lei nº 13.964/2019 (o chamado "Pacote Anticrime"). O dispositivo define cadeia de custódia como o conjunto de procedimentos destinados a manter e documentar a "história cronológica do vestígio", assegurando a rastreabilidade de sua posse e manuseio desde o reconhecimento até o descarte.

Em outras palavras: a lei exige que se saiba, a qualquer momento, quem teve contato com a evidência, quando, o que fez com ela e se ela permanece inalterada. O vestigia é uma tentativa de traduzir esse princípio jurídico em uma ferramenta técnica simples, útil para fins de estudo, organização de casos e apoio a rotinas de trabalho, não para substituir os procedimentos periciais oficiais (ver Aviso Legal).

Texto oficial do Código de Processo Penal: https://www.planalto.gov.br/ccivil_03/decreto-lei/del3689.htm

Funcionalidades

  • Cálculo de hash SHA-256 de arquivos, localmente, via Web Crypto API do navegador;
  • Metadados para qualquer arquivo com formato detectado pela assinatura, bytes iniciais, tamanho, MIME, modificação e SHA-256;
  • Metadados incorporados de JPEG/EXIF (inclusive câmera, captura e GPS), PNG e PDF quando estiverem presentes;
  • Leitura estrutural de JSON e texto, além de etiquetas ID3 de áudio MP3;
  • Prévia imediata de imagens com dimensões, tamanho e tipo MIME;
  • Primeiro elo automático e editável ao selecionar o arquivo, seguido dos eventos cronológicos de cadeia de custódia;
  • Continuação completa de manifesto existente para recuperar identificação, arquivo, hash, metadados e todos os eventos, acrescentar novos elos e gerar revisões sucessivas;
  • Geração de manifesto JSON da evidência, reunindo hash, metadados e histórico de eventos;
  • Elos consolidados e encadeados por SHA-256: uma revisão gerada não permite apagar o histórico; correções são novos elos de retificação;
  • Assinatura local ECDSA P-256 do manifesto, com chave pública exportável e verificação automática;
  • Rascunho automático e casos com múltiplas evidências, guardados somente no navegador;
  • Importação de vários manifestos, filtro da cadeia e comparação entre revisões;
  • Anexos de apoio por hash em cada evento, sem incorporar ou enviar os arquivos;
  • Pacote ZIP e etiqueta QR, gerados localmente para facilitar guarda e conferência;
  • Aplicativo instalável (PWA), com cache para operação offline após o primeiro acesso;
  • Verificação posterior de integridade: recalcula o hash do arquivo e compara com o manifesto original, apontando se houve alteração;
  • Exportação de relatório técnico com o resumo da cadeia de custódia e o resultado da verificação;
  • Modo de demonstração com dados fictícios, para explorar a ferramenta sem usar evidências reais.

Como executar

O vestigia não precisa de instalação, dependências ou etapa de build. Em qualquer opção, o processamento permanece dentro do navegador.

Opção 1: usar no navegador

Acesse https://neto7z.github.io/vestigia/. A página entrega apenas os arquivos estáticos da aplicação; a evidência selecionada não é enviada ao GitHub nem a outro servidor.

Opção 2: baixar o ZIP para uso offline

  1. Acesse o repositório: https://github.com/neto7z/vestigia
  2. Clique no botão verde Code e depois em Download ZIP.
  3. Extraia a pasta em qualquer lugar do seu computador.
  4. Dê duplo clique em index.html (ele abre no seu navegador padrão).

Opção 3: clonar com git

git clone https://github.com/neto7z/vestigia.git
cd vestigia

Depois, abra o index.html no navegador (duplo clique, ou arraste o arquivo para uma aba). No Linux dá para usar:

xdg-open index.html

Pronto. A partir daí você pode até desconectar da internet: como todo o processamento é local, a ferramenta continua funcionando offline.

Como usar

  1. Abra a ferramenta online ou o arquivo index.html baixado.
  2. Iniciar ou continuar: selecione um arquivo novo ou use Continuar manifesto para recuperar um registro anterior. Se um manifesto Vestigia em JSON for selecionado por engano como arquivo da evidência, ele será reconhecido e aberto automaticamente como continuação.
  3. Conferir o registro automático: a prévia, os metadados disponíveis, o SHA-256 e o primeiro elo aparecem assim que o arquivo é selecionado.
  4. Completar a custódia: enquanto um elo está em rascunho, use Editar para corrigir os dados e acrescente os demais eventos de manuseio.
  5. Gerar manifesto: o sistema encadeia e assina os dados em um JSON numerado por revisão. Os elos consolidados não podem ser apagados; use Retificar para acrescentar uma correção rastreável.
  6. Verificar depois: carregue o arquivo atual e o manifesto correspondente para conferir se o hash permanece igual.
  7. Exportar relatório: gere um relatório técnico legível, útil para impressão ou salvamento em PDF.

Use o modo de demonstração para testar o fluxo completo com dados fictícios antes de trabalhar com arquivos reais.

Como funciona a integridade (SHA-256)

O SHA-256 é uma função hash criptográfica: recebe um arquivo de qualquer tamanho e devolve uma sequência fixa de 256 bits (representada como uma string hexadecimal de 64 caracteres). Duas propriedades tornam essa técnica útil para verificar integridade:

  • Determinismo: o mesmo arquivo, byte a byte, sempre produz o mesmo hash;
  • Efeito avalanche: qualquer alteração no arquivo (mudar um único bit, adicionar um espaço, recomprimir uma imagem) produz um hash completamente diferente, sem qualquer relação aparente com o original.

Por isso, comparar o hash calculado no momento da verificação com o hash registrado no manifesto original é uma forma confiável de detectar se um arquivo foi modificado desde a sua coleta. O vestigia não "recupera" nem "corrige" arquivos alterados; apenas evidencia, de forma técnica, se a integridade se manteve.

Privacidade por concepção

O vestigia foi projetado para não depender de nenhum servidor:

  • Todo o cálculo de hash é feito localmente, pela Web Crypto API do próprio navegador;
  • Nenhum arquivo, hash, metadado ou evento de cadeia de custódia é transmitido pela rede;
  • O manifesto e o relatório gerados ficam sob controle exclusivo de quem usa a ferramenta.

Isso é relevante tanto para proteger o sigilo de evidências sensíveis quanto para reduzir a superfície de exposição de dados pessoais eventualmente presentes nos arquivos analisados.

Aviso legal

O vestigia é uma ferramenta de apoio e estudo, não um substituto de perícia oficial. Ele não supre os procedimentos formais de cadeia de custódia previstos em lei, tampouco produz laudo pericial. Os dados usados no modo de demonstração são fictícios. Antes de qualquer uso em contexto processual ou probatório, consulte o AVISO-LEGAL.md na íntegra.

Limitações

  • O vestigia verifica integridade (se o arquivo mudou), não autenticidade de origem nem autoria, o que depende de outros mecanismos (assinatura digital, certificação, perícia);
  • Metadados internos podem não existir: aplicativos de mensagem, redes sociais e editores frequentemente removem EXIF, GPS, autoria e datas ao recomprimir ou exportar arquivos;
  • O registro dos eventos de cadeia de custódia depende da boa-fé e da disciplina de quem usa a ferramenta: o encadeamento e a assinatura local detectam alterações posteriores, mas não comprovam que um evento informado era verdadeiro nem equivalem a certificado ICP-Brasil ou carimbo de tempo qualificado;
  • Por rodar localmente, a responsabilidade pela guarda do manifesto e pelo backup dos dados é inteiramente do usuário: se o manifesto for perdido, a verificação posterior fica inviabilizada;
  • Não substitui os requisitos formais de cadeia de custódia previstos no art. 158-A a 158-F do CPP para fins de persecução penal, que envolvem procedimentos, lacração e responsáveis formalmente designados;
  • Ferramenta em estágio de portfólio e estudo, não passou por auditoria de segurança independente.

Roadmap (ideias futuras)

  • Suporte a outros algoritmos de hash (SHA-3, BLAKE3) para comparação;
  • Exportação do relatório em PDF;
  • Carimbo de tempo interoperável e assinatura com certificado externo;
  • Leitura aprofundada de metadados de contêineres Office/OpenDocument.

Testes

node tests/testes.node.js
python3 tests/e2e.py

A bateria pura valida manifesto, migração, metadados, hash, cadeia criptográfica, assinatura e ZIP. O teste ponta a ponta usa Selenium e Chromium para conferir o fluxo real de demonstração, geração, bloqueio dos elos, continuação do JSON e QR.

Licença

Distribuído sob licença MIT. Veja o arquivo LICENSE para o texto completo.

About

Instrumento local para verificar integridade (SHA-256) e documentar a cadeia de custodia de evidencias digitais. Roda inteiramente no navegador.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages