OBSERVAR. CONFERIR. DESCOBRIR.
Laboratório
de Auditoria.
Dois dossiês.
Qual deles conta a história inteira?
Selecione dois arquivos do seu computador e descubra qual dos dois dossiês passa na auditoria.
Os originais ficam no seu dispositivo. O servidor recebe apenas as impressões digitais SHA-256, os nomes e os tamanhos necessários.
01 / PREPARE A INVESTIGAÇÃO
Seus arquivos, suas evidências
Escolha exatamente dois arquivos. Cada entrada recebe seu próprio registro, mesmo quando nomes ou conteúdos forem iguais.
Qualquer tipo de arquivo · até 50 MiB por arquivo
Nomes com até 120 caracteres · geração e rodada em memória
Nenhum arquivo selecionado
Nenhum arquivo selecionado
Você terá até 15 minutos nesta sessão.
Os originais continuam locais.
02 / SIGA AS EVIDÊNCIAS
O par está pronto. Investigue.
Baixe os ZIPs A e B. Os dois são material de treinamento. A aparência não decide: compare os artefatos com seus originais e as referências abaixo.
03 / CONSULTE SE PRECISAR
Uma ajuda para seguir as pistas
A dica, o guia e as referências estão disponíveis antes do palpite. Abrir ou fechar estas consultas mantém seus arquivos e a rodada.
Receba uma dica
O hash funciona como uma impressão digital. Mudar os bytes muda o resultado. A assinatura permite detectar alterações e identificar qual chave assinou; compare essa chave com a referência pública.
O carimbo de tempo vincula uma impressão digital a um horário certificado. Ele precisa se referir ao hash certo e vir da autoridade autorizada. Nenhum desses mecanismos, sozinho, comprova autoria ou a data de criação do conteúdo.
Ver passo a passo da auditoria
Audite A e B separadamente, com os dois originais na ordem das entradas. Nenhuma etapa precisa do verificador da Provenia ou envia os originais pela rede.
Baixar ferramentas e guia de auditoria local ↓
Extraia as ferramentas em uma pasta. Instale Python 3.12 ou superior e execute no PowerShell ou terminal, dentro dessa pasta:
python -m venv .venv .venv/Scripts/python -m pip install -r requirements.txt .venv/Scripts/python scripts/audit.py "Dossie-A.zip" --original "caminho/arquivo-1" --original "caminho/arquivo-2" --trust public .venv/Scripts/python scripts/audit.py "Dossie-B.zip" --original "caminho/arquivo-1" --original "caminho/arquivo-2" --trust public
No macOS/Linux, troque .venv/Scripts/python por .venv/bin/python. O auditor usa MuPDF, ASN.1 e cryptography; não importa o gerador nem conhece o gabarito. VERIFIED aprova; FAILED aponta falha; PARTIAL indica evidência ou confiança incompleta e não aprova esta rodada. Uma referência indisponível deixa a auditoria inconclusiva.
Abra o ZIP com cuidado
Onde: lista de arquivos do ZIP. Como: use
python -m zipfile -l "Dossie-A.zip"e repita para B. Espere: exatamenteDossier.pdfeDossier.json, na raiz ou na mesma pasta de primeiro nível. Não deve haver entradas duplicadas, criptografia, caminhos absolutos ou... Ausência ou caminho impróprio desqualifica o pacote. O auditor valida limites antes de ler; não extraia arquivos suspeitos automaticamente.Compare os dois originais
Onde:
records[i].title,file_name,file_size_bytesefile_hashno JSON. Como: executeGet-FileHash -Algorithm SHA256 -LiteralPath "arquivo"para cada original ou use o auditor. Espere: dois registros, numerados por entrada, com nome, tamanho e hash correspondentes. Compare por entrada, mesmo com nomes iguais; não basta comparar o conjunto de hashes. Uma diferença mostra conteúdo trocado, associação incorreta ou arquivo omitido.Confirme a chave e a assinatura do JSON
Onde: bloco
signaturee registro público desta página. Como: o auditor remove somente o membrosignaturee usajson.dumps(..., indent=4, ensure_ascii=False, sort_keys=False).encode("utf-8"). Verifica Ed25519 com a assinatura Base64. Calcula SHA-256 do DER SubjectPublicKeyInfo da chave PEM. Espere: assinatura válida, fingerprint calculado igual ao declarado, PEM e key_id publicados, vigentes e não revogados. Assinatura inválida indica alteração. Uma chave desconhecida pode assinar corretamente, mas tem confiança parcial e não aprova a rodada.Confira a assinatura e o hash do PDF
Onde: assinatura digital do PDF,
dossier.pdf_hashe referência do signatário acima. Como: o auditor verifica CMS, os intervalosByteRange, a cadeia e a identidade com os certificados públicos. Compare tambémGet-FileHash -Algorithm SHA256 -LiteralPath "Dossier.pdf"com o JSON. Espere: uma assinatura PAdES íntegra cobrindo a entrega, certificado autorizado e políticaDocMDP P=1(nenhuma alteração). O SHA-256 deve ser do PDF final assinado. Uma cadeia válida com outro signatário não autoriza a emissão. A raiz pública PDF fica apenas na pastapublicdo auditor; nenhuma instalação no sistema é necessária.Leia a evidência temporal de cada registro
Obtenha a raiz temporal desta página, fora dos ZIPs. Confira seu fingerprint SHA-256 sobre o certificado em DER com o comando abaixo (ignore os dois-pontos e diferenças entre maiúsculas e minúsculas ao comparar). Não use a raiz PDF nesta etapa.
openssl x509 -in "public/tsa-root.pem" -noout -fingerprint -sha256
Onde:
external_timestampem cada registro. Como: o auditor decodificatimestamp_response_base64como resposta RFC 3161 integral, lêTSTInfoe verifica CMS e a cadeia atétsa-root.pem. Espere: SHA-256 demessageImprintigual ao hash do registro, nonce igual ao declarado, assinatura válida, certificado com EKU crítico exclusivo de timestamp, autoridade com identidade e política iguais às referências publicadas abaixo. A cadeia precisa chegar à raiz temporal cujo fingerprint você conferiu; o auditor usa esse PEM somente na operação local.genTimeUTC, serial, política e fingerprint devem coincidir com os resumos. Hash trocado vincula o carimbo a outro conteúdo; resumo divergente altera a data apresentada; assinatura inválida ou outra raiz elimina a confiança. Sem token ou nonce completo, a prova é parcial. A data de criação declarada não é o horário certificado.Percorra a cadeia de registros
Onde:
uuid,sequence_number,based_on.record_uuid,based_on.sequence_numberecreated_at_utc. Como: localize o destino de cada vínculo ou consulte o diagnósticochain. Espere: UUIDs únicos, numeração 1 e 2, segundo ligado ao primeiro, cronologia coerente, sem ciclos nem referência futura. Vínculo sem destino ou ciclo demonstra uma cadeia incoerente. Esse vínculo é didático e não prova derivação real entre seus arquivos.
Anote as divergências e só então confirme seu palpite. O guia permanece disponível durante toda a investigação.
Consultar referências públicas
REFERÊNCIAS PÚBLICAS / FORA DOS PACOTES
A confiança começa aqui
Confira as identidades com esta página, independentemente do que cada ZIP declara. Estas referências valem para ambos os dossiês.
Manifesto · Ed25519
- Identificador e estado
- Carregando…
- Fingerprint SHA-256 do DER SPKI
Carregando…- Vigência UTC
- Carregando…
PDF · cadeia de treinamento
- Signatário autorizado
- Carregando…
- Fingerprint do certificado signatário
Carregando…- Fingerprint da raiz pública PDF
Carregando…
Baixar raiz pública PDF ↓ · Certificado signatário ↓
A raiz é privada do laboratório. Use-a apenas na auditoria do PDF, sem instalá-la no sistema. A emissão oficial usa outra cadeia de confiança.
Carimbos de tempo · RFC 3161
Carregando referência temporal…
- Fingerprint SHA-256 da raiz temporal (certificado DER)
Carregando…- Identidade da raiz temporal
- Carregando…
- Identidades autorizadas a carimbar
Ver políticas temporais autorizadas
A raiz temporal serve exclusivamente para os carimbos; é diferente da raiz do PDF.
04 / O SEU VEREDITO
Qual dossiê passa na auditoria?
Gere o par e confira as evidências antes de escolher.
A EVIDÊNCIA DECISIVA
1. O que foi adulterado
2. O que você deveria encontrar
3. O que foi encontrado e por que isso importa
4. Como conferir por conta própria
Abrir a etapa correspondente do guia →Os comandos usam Python com as dependências do auditor já instaladas e caminhos que você deve ajustar. Para um PDF extraído, execute os comandos na pasta que contém os dois artefatos.